Implement CLI commands to view and delete SR internal stores
sr-next-dst (renamed from sr-next-hops)
sr-next-port
sr-next-vlan
sr-next-mcast (renamed from sr-mcast-next)
sr-next-pw
sr-next-xconnect
sr-next-invalidate <next-id>
Change-Id: Id5178f786bb97e26ddb86015105dd19604ac0817
diff --git a/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/SegmentRoutingManager.java b/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/SegmentRoutingManager.java
index ed2a678..19b0304 100644
--- a/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/SegmentRoutingManager.java
+++ b/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/SegmentRoutingManager.java
@@ -75,6 +75,7 @@
import org.onosproject.net.flow.TrafficSelector;
import org.onosproject.net.flow.TrafficTreatment;
import org.onosproject.net.flowobjective.FlowObjectiveService;
+import org.onosproject.net.flowobjective.NextObjective;
import org.onosproject.net.host.HostEvent;
import org.onosproject.net.host.HostListener;
import org.onosproject.net.host.HostProbingService;
@@ -856,7 +857,7 @@
}
@Override
- public ImmutableMap<DestinationSetNextObjectiveStoreKey, NextNeighbors> getDestinationSet() {
+ public ImmutableMap<DestinationSetNextObjectiveStoreKey, NextNeighbors> getDstNextObjStore() {
if (dsNextObjStore != null) {
return ImmutableMap.copyOf(dsNextObjStore.entrySet());
} else {
@@ -865,6 +866,76 @@
}
@Override
+ public ImmutableMap<VlanNextObjectiveStoreKey, Integer> getVlanNextObjStore() {
+ if (vlanNextObjStore != null) {
+ return ImmutableMap.copyOf(vlanNextObjStore.entrySet());
+ } else {
+ return ImmutableMap.of();
+ }
+ }
+
+ @Override
+ public ImmutableMap<PortNextObjectiveStoreKey, Integer> getPortNextObjStore() {
+ if (portNextObjStore != null) {
+ return ImmutableMap.copyOf(portNextObjStore.entrySet());
+ } else {
+ return ImmutableMap.of();
+ }
+ }
+
+ @Override
+ public ImmutableMap<String, NextObjective> getPwInitNext() {
+ if (l2TunnelHandler != null) {
+ return l2TunnelHandler.getInitNext();
+ } else {
+ return ImmutableMap.of();
+ }
+ }
+
+ @Override
+ public ImmutableMap<String, NextObjective> getPwTermNext() {
+ if (l2TunnelHandler != null) {
+ return l2TunnelHandler.getTermNext();
+ } else {
+ return ImmutableMap.of();
+ }
+ }
+
+ @Override
+ public void invalidateNextObj(int nextId) {
+ if (dsNextObjStore != null) {
+ dsNextObjStore.entrySet().forEach(e -> {
+ if (e.getValue().nextId() == nextId) {
+ dsNextObjStore.remove(e.getKey());
+ }
+ });
+ }
+ if (vlanNextObjStore != null) {
+ vlanNextObjStore.entrySet().forEach(e -> {
+ if (e.getValue() == nextId) {
+ vlanNextObjStore.remove(e.getKey());
+ }
+ });
+ }
+ if (portNextObjStore != null) {
+ portNextObjStore.entrySet().forEach(e -> {
+ if (e.getValue() == nextId) {
+ portNextObjStore.remove(e.getKey());
+ }
+ });
+ }
+ if (mcastHandler != null) {
+ mcastHandler.removeNextId(nextId);
+ }
+ if (l2TunnelHandler != null) {
+ l2TunnelHandler.removeNextId(nextId);
+ }
+ if (xconnectService != null) {
+ xconnectService.removeNextId(nextId);
+ }
+ }
+
+ @Override
public void verifyGroups(DeviceId id) {
DefaultGroupHandler gh = groupHandlerMap.get(id);
if (gh != null) {
@@ -884,7 +955,7 @@
@Override
public Map<McastStoreKey, Integer> getMcastNextIds(IpAddress mcastIp) {
- return mcastHandler.getMcastNextIds(mcastIp);
+ return mcastHandler.getNextIds(mcastIp);
}
@Override