alshabib

make sure only one instance pushes default rules

Change-Id: I0953c4db36ab48d7aeec88b940712c2cbe35e415
...@@ -30,6 +30,7 @@ import org.onosproject.cfg.ComponentConfigService; ...@@ -30,6 +30,7 @@ import org.onosproject.cfg.ComponentConfigService;
30 import org.onosproject.core.ApplicationId; 30 import org.onosproject.core.ApplicationId;
31 import org.onosproject.core.CoreService; 31 import org.onosproject.core.CoreService;
32 import org.onosproject.event.AbstractListenerManager; 32 import org.onosproject.event.AbstractListenerManager;
33 +import org.onosproject.mastership.MastershipService;
33 import org.onosproject.net.ConnectPoint; 34 import org.onosproject.net.ConnectPoint;
34 import org.onosproject.net.DeviceId; 35 import org.onosproject.net.DeviceId;
35 import org.onosproject.net.Port; 36 import org.onosproject.net.Port;
...@@ -99,6 +100,9 @@ public class Olt ...@@ -99,6 +100,9 @@ public class Olt
99 protected FlowObjectiveService flowObjectiveService; 100 protected FlowObjectiveService flowObjectiveService;
100 101
101 @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) 102 @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
103 + protected MastershipService mastershipService;
104 +
105 + @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
102 protected DeviceService deviceService; 106 protected DeviceService deviceService;
103 107
104 @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) 108 @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
...@@ -420,6 +424,9 @@ public class Olt ...@@ -420,6 +424,9 @@ public class Olt
420 } 424 }
421 425
422 private void processFilteringObjectives(DeviceId devId, PortNumber port, boolean install) { 426 private void processFilteringObjectives(DeviceId devId, PortNumber port, boolean install) {
427 + if (!mastershipService.isLocalMaster(devId)) {
428 + return;
429 + }
423 DefaultFilteringObjective.Builder builder = DefaultFilteringObjective.builder(); 430 DefaultFilteringObjective.Builder builder = DefaultFilteringObjective.builder();
424 431
425 FilteringObjective eapol = (install ? builder.permit() : builder.deny()) 432 FilteringObjective eapol = (install ? builder.permit() : builder.deny())
...@@ -550,6 +557,9 @@ public class Olt ...@@ -550,6 +557,9 @@ public class Olt
550 } 557 }
551 558
552 private void provisionDefaultFlows(DeviceId deviceId) { 559 private void provisionDefaultFlows(DeviceId deviceId) {
560 + if (!mastershipService.isLocalMaster(deviceId)) {
561 + return;
562 + }
553 List<Port> ports = deviceService.getPorts(deviceId); 563 List<Port> ports = deviceService.getPorts(deviceId);
554 564
555 ports.stream() 565 ports.stream()
......