Removing flow modification during sink/source addition/removal.
Changes:
- fwd objectives are pushed only the first time for a given device
- fwd objectives are removed only if the dev is no more serving the group
- mac/vlan filt objectives are pushed only the first time for a given device
- vlan filt objectives are pushed only the first time for a given cpoint
- filt objectives are purged upon device, link and edge port failures
- adds sr-filt-mcast to dump the installed filt obj
- updates onos-diags
Change-Id: I802ebec7e160486fea9ad4bf53aca36a2b1c7146
diff --git a/app/src/main/java/org/onosproject/segmentrouting/SegmentRoutingManager.java b/app/src/main/java/org/onosproject/segmentrouting/SegmentRoutingManager.java
index d08f111..281a3c1 100644
--- a/app/src/main/java/org/onosproject/segmentrouting/SegmentRoutingManager.java
+++ b/app/src/main/java/org/onosproject/segmentrouting/SegmentRoutingManager.java
@@ -99,6 +99,7 @@
import org.onosproject.segmentrouting.grouphandler.DefaultGroupHandler;
import org.onosproject.segmentrouting.grouphandler.DestinationSet;
import org.onosproject.segmentrouting.grouphandler.NextNeighbors;
+import org.onosproject.segmentrouting.mcast.McastFilteringObjStoreKey;
import org.onosproject.segmentrouting.mcast.McastHandler;
import org.onosproject.segmentrouting.mcast.McastRole;
import org.onosproject.segmentrouting.mcast.McastRoleStoreKey;
@@ -1030,6 +1031,11 @@
}
@Override
+ public Map<DeviceId, List<McastFilteringObjStoreKey>> getMcastFilters() {
+ return mcastHandler.getMcastFilters();
+ }
+
+ @Override
public Map<Set<DeviceId>, NodeId> getShouldProgram() {
return defaultRoutingHandler == null ? ImmutableMap.of() :
ImmutableMap.copyOf(defaultRoutingHandler.shouldProgram);
@@ -1412,6 +1418,8 @@
event.type());
processPortUpdatedInternal(((Device) event.subject()),
((DeviceEvent) event).port());
+ mcastHandler.processPortUpdate(((Device) event.subject()),
+ ((DeviceEvent) event).port());
} else if (event.type() == TopologyEvent.Type.TOPOLOGY_CHANGED) {
// Process topology event, needed for all modules relying on
// topology service for path computation