CLI command to help debug the mapping of next-Objectives to the
groups that are created by device drivers.
Change-Id: Iff9e04e5e96b2cabbdb40e83215315d2e27791a6
diff --git a/drivers/default/src/main/java/org/onosproject/driver/pipeline/OFDPA2Pipeline.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/OFDPA2Pipeline.java
index 2b27f0e..72fe8aa 100644
--- a/drivers/default/src/main/java/org/onosproject/driver/pipeline/OFDPA2Pipeline.java
+++ b/drivers/default/src/main/java/org/onosproject/driver/pipeline/OFDPA2Pipeline.java
@@ -1029,4 +1029,28 @@
protected static void fail(Objective obj, ObjectiveError error) {
obj.context().ifPresent(context -> context.onError(obj, error));
}
+
+
+ @Override
+ public List<String> getNextMappings(NextGroup nextGroup) {
+ List<String> mappings = new ArrayList<>();
+ List<Deque<GroupKey>> gkeys = appKryo.deserialize(nextGroup.data());
+ for (Deque<GroupKey> gkd : gkeys) {
+ Group lastGroup = null;
+ String gchain = "";
+ for (GroupKey gk : gkd) {
+ Group g = groupService.getGroup(deviceId, gk);
+ gchain += " 0x" + Integer.toHexString(g.id().id()) + " -->";
+ lastGroup = g;
+ }
+ // add port information for last group in group-chain
+ for (Instruction i: lastGroup.buckets().buckets().get(0).treatment().allInstructions()) {
+ if (i instanceof OutputInstruction) {
+ gchain += " port:" + ((OutputInstruction) i).port();
+ }
+ }
+ mappings.add(gchain);
+ }
+ return mappings;
+ }
}