Adds coordination during host movements
This fix assures that only the king will perform the update of the L3UC chain
Change-Id: I38b91beaa56b46b7dcd22b3316815dbb17b255fa
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 4c66dd0..dba6141 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
@@ -1292,6 +1292,14 @@
*/
public void updateMacVlanTreatment(DeviceId deviceId, MacAddress hostMac,
VlanId hostVlanId, PortNumber port, int nextId) {
+ // Check if we are the king of this device
+ // just one instance should perform this update
+ if (!defaultRoutingHandler.shouldProgram(deviceId)) {
+ log.debug("This instance is not handling the routing towards the "
+ + "device {}", deviceId);
+ return;
+ }
+ // Get the handler and perform the update
DefaultGroupHandler ghdlr = groupHandlerMap.get(deviceId);
if (ghdlr != null) {
ghdlr.updateL3UcastGroupBucket(hostMac, hostVlanId, port, nextId);