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/CentecV350Pipeline.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/CentecV350Pipeline.java
index 9203a00..6cafdb4 100644
--- a/drivers/default/src/main/java/org/onosproject/driver/pipeline/CentecV350Pipeline.java
+++ b/drivers/default/src/main/java/org/onosproject/driver/pipeline/CentecV350Pipeline.java
@@ -74,6 +74,7 @@
import java.util.Collection;
import java.util.Collections;
+import java.util.List;
import java.util.Objects;
import java.util.Set;
import java.util.concurrent.Executors;
@@ -634,4 +635,10 @@
}
}
+
+ @Override
+ public List<String> getNextMappings(NextGroup nextGroup) {
+ // TODO Implementation deferred to vendor
+ return null;
+ }
}
diff --git a/drivers/default/src/main/java/org/onosproject/driver/pipeline/DefaultSingleTablePipeline.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/DefaultSingleTablePipeline.java
index a58aeff..8e37746 100644
--- a/drivers/default/src/main/java/org/onosproject/driver/pipeline/DefaultSingleTablePipeline.java
+++ b/drivers/default/src/main/java/org/onosproject/driver/pipeline/DefaultSingleTablePipeline.java
@@ -17,6 +17,7 @@
import org.onlab.osgi.ServiceDirectory;
import org.onosproject.net.DeviceId;
+import org.onosproject.net.behaviour.NextGroup;
import org.onosproject.net.behaviour.Pipeliner;
import org.onosproject.net.behaviour.PipelinerContext;
import org.onosproject.net.driver.AbstractHandlerBehaviour;
@@ -39,6 +40,8 @@
import static org.slf4j.LoggerFactory.getLogger;
+import java.util.List;
+
/**
* Simple single table pipeline abstraction.
*/
@@ -167,4 +170,10 @@
public void next(NextObjective nextObjective) {
}
+ @Override
+ public List<String> getNextMappings(NextGroup nextGroup) {
+ // Default single table pipeline does not use nextObjectives or groups
+ return null;
+ }
+
}
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;
+ }
}
diff --git a/drivers/default/src/main/java/org/onosproject/driver/pipeline/OVSCorsaPipeline.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/OVSCorsaPipeline.java
index 7e9dfec..b47012d 100644
--- a/drivers/default/src/main/java/org/onosproject/driver/pipeline/OVSCorsaPipeline.java
+++ b/drivers/default/src/main/java/org/onosproject/driver/pipeline/OVSCorsaPipeline.java
@@ -72,6 +72,7 @@
import java.util.Collection;
import java.util.Collections;
+import java.util.List;
import java.util.Objects;
import java.util.Set;
import java.util.concurrent.Executors;
@@ -857,4 +858,10 @@
}
}
+
+ @Override
+ public List<String> getNextMappings(NextGroup nextGroup) {
+ // TODO Implementation deferred to vendor
+ return null;
+ }
}
diff --git a/drivers/default/src/main/java/org/onosproject/driver/pipeline/OltPipeline.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/OltPipeline.java
index 8c1307a..0d78def 100644
--- a/drivers/default/src/main/java/org/onosproject/driver/pipeline/OltPipeline.java
+++ b/drivers/default/src/main/java/org/onosproject/driver/pipeline/OltPipeline.java
@@ -702,4 +702,10 @@
}
}
+
+ @Override
+ public List<String> getNextMappings(NextGroup nextGroup) {
+ // TODO Implementation deferred to vendor
+ return null;
+ }
}
diff --git a/drivers/default/src/main/java/org/onosproject/driver/pipeline/PicaPipeline.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/PicaPipeline.java
index 14b729c..65c3b72 100644
--- a/drivers/default/src/main/java/org/onosproject/driver/pipeline/PicaPipeline.java
+++ b/drivers/default/src/main/java/org/onosproject/driver/pipeline/PicaPipeline.java
@@ -537,4 +537,10 @@
return appKryo.serialize(nextActions);
}
}
+
+ @Override
+ public List<String> getNextMappings(NextGroup nextGroup) {
+ // TODO Implementation deferred to vendor
+ return null;
+ }
}
diff --git a/drivers/default/src/main/java/org/onosproject/driver/pipeline/SoftRouterPipeline.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/SoftRouterPipeline.java
index 55e8bbf..0379c0e 100644
--- a/drivers/default/src/main/java/org/onosproject/driver/pipeline/SoftRouterPipeline.java
+++ b/drivers/default/src/main/java/org/onosproject/driver/pipeline/SoftRouterPipeline.java
@@ -57,6 +57,7 @@
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
+import java.util.List;
import java.util.Objects;
import static org.onlab.util.Tools.delay;
@@ -467,4 +468,10 @@
}
+ @Override
+ public List<String> getNextMappings(NextGroup nextGroup) {
+ // nextObjectives converted to flow-actions not groups
+ return Collections.emptyList();
+ }
+
}
diff --git a/drivers/default/src/main/java/org/onosproject/driver/pipeline/SpringOpenTTP.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/SpringOpenTTP.java
index 50b439f..0d54239 100644
--- a/drivers/default/src/main/java/org/onosproject/driver/pipeline/SpringOpenTTP.java
+++ b/drivers/default/src/main/java/org/onosproject/driver/pipeline/SpringOpenTTP.java
@@ -1126,4 +1126,10 @@
}
}
+
+ @Override
+ public List<String> getNextMappings(NextGroup nextGroup) {
+ // TODO Implementation deferred to vendor
+ return null;
+ }
}