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/core/api/src/main/java/org/onosproject/net/flowobjective/FlowObjectiveService.java b/core/api/src/main/java/org/onosproject/net/flowobjective/FlowObjectiveService.java
index 415264e..6e905de 100644
--- a/core/api/src/main/java/org/onosproject/net/flowobjective/FlowObjectiveService.java
+++ b/core/api/src/main/java/org/onosproject/net/flowobjective/FlowObjectiveService.java
@@ -16,6 +16,9 @@
package org.onosproject.net.flowobjective;
import com.google.common.annotations.Beta;
+
+import java.util.List;
+
import org.onosproject.net.DeviceId;
/**
@@ -82,4 +85,17 @@
throw new UnsupportedOperationException("Unsupported objective of type " + objective.getClass());
}
}
+
+ /**
+ * Retrieve all nextObjective to group mappings known to this onos instance,
+ * in a format meant for display on the CLI, to help with debugging. Applications
+ * are only aware of next-Ids, while the group sub-system is only aware of group-ids.
+ * This method fills in the gap by providing information on the mapping
+ * between next-ids and group-ids done by device-drivers.
+ *
+ * @return a list of strings preformatted by the device-drivers to provide
+ * information on next-id to group-id mapping. Consumed by the
+ * "next-ids" command on the CLI.
+ */
+ List<String> getNextMappings();
}
diff --git a/core/api/src/main/java/org/onosproject/net/flowobjective/FlowObjectiveStore.java b/core/api/src/main/java/org/onosproject/net/flowobjective/FlowObjectiveStore.java
index 85dec0f..a0a7634 100644
--- a/core/api/src/main/java/org/onosproject/net/flowobjective/FlowObjectiveStore.java
+++ b/core/api/src/main/java/org/onosproject/net/flowobjective/FlowObjectiveStore.java
@@ -16,6 +16,9 @@
package org.onosproject.net.flowobjective;
import com.google.common.annotations.Beta;
+
+import java.util.Map;
+
import org.onosproject.net.behaviour.NextGroup;
import org.onosproject.store.Store;
@@ -53,6 +56,13 @@
NextGroup removeNextGroup(Integer nextId);
/**
+ * Fetch all groups from the store and their mapping to nextIds.
+ *
+ * @return a map that represents the current snapshot of Next-ids to NextGroups
+ */
+ Map<Integer, NextGroup> getAllGroups();
+
+ /**
* Allocates a next objective id. This id is globally unique
*
* @return an integer