VOL-3343 In connect point mode, IgmpProxy cannot packet-out to the agg.device in slave mode
Change-Id: I6e4a3304a7ee04e101f611c8ebea1e47935c7a30
diff --git a/app/src/main/java/org/opencord/igmpproxy/impl/IgmpManager.java b/app/src/main/java/org/opencord/igmpproxy/impl/IgmpManager.java
index f70dde2..133ff18 100644
--- a/app/src/main/java/org/opencord/igmpproxy/impl/IgmpManager.java
+++ b/app/src/main/java/org/opencord/igmpproxy/impl/IgmpManager.java
@@ -240,7 +240,7 @@
appId = coreService.registerApplication(APP_NAME);
coreAppId = coreService.registerApplication(CoreService.CORE_APP_NAME);
packetService.addProcessor(processor, PacketProcessor.director(4));
- IgmpSender.init(packetService, igmpLeadershipService, igmpStatisticsManager);
+ IgmpSender.init(packetService, igmpStatisticsManager);
networkConfig.registerConfigFactory(igmpproxySsmConfigFactory);
networkConfig.registerConfigFactory(igmpproxyConfigFactory);
@@ -1051,7 +1051,11 @@
if (vlanConfigChanged || innerVlanConfigChanged) {
log.info("igmpproxy vlan config received. {}", config);
//at least one of the vlan configs has changed. Call leave before setting new values
- groupMemberStore.getAllGroupMembers().forEach(m -> leaveAction(m));
+ groupMemberStore.getAllGroupMembers().forEach(m -> {
+ if (igmpLeadershipService.isLocalLeader(m.getDeviceId())) {
+ leaveAction(m);
+ }
+ });
if (vlanConfigChanged) {
mvlan = config.egressVlan().toShort();
IgmpSender.getInstance().setMvlan(mvlan);