1.add a flag that allow igmp join/leave with out ssm translate; 2.catch the exception while configured an invalid igmp global connect point
Change-Id: Ie60e9e61f638982fc90bdef818fcd7d9bf36e082
diff --git a/src/main/java/org/opencord/igmpproxy/IgmpManager.java b/src/main/java/org/opencord/igmpproxy/IgmpManager.java
index 1b4285b..6063b96 100644
--- a/src/main/java/org/opencord/igmpproxy/IgmpManager.java
+++ b/src/main/java/org/opencord/igmpproxy/IgmpManager.java
@@ -111,6 +111,8 @@
public static boolean connectPointMode = true;
public static ConnectPoint connectPoint = null;
+ private static boolean pimSSmInterworking = false;
+ private static final String DEFAULT_PIMSSM_HOST = "127.0.0.1";
private final ScheduledExecutorService scheduledExecutorService =
Executors.newScheduledThreadPool(1);
@Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
@@ -296,10 +298,15 @@
join = true;
}
} else {
- IpAddress src = ssmTranslateRoute(groupIp);
- if (src == null) {
- log.info("no ssm translate for group " + groupIp.toString());
- return;
+ IpAddress src = null;
+ if (pimSSmInterworking) {
+ src = ssmTranslateRoute(groupIp);
+ if (src == null) {
+ log.info("no ssm translate for group " + groupIp.toString());
+ return;
+ }
+ } else {
+ src = IpAddress.valueOf(DEFAULT_PIMSSM_HOST);
}
sourceList.add(src.getIp4Address());
if (recordType == IGMPMembership.CHANGE_TO_EXCLUDE_MODE ||
@@ -672,7 +679,7 @@
igmpCos = newCfg.igmpCos();
periodicQuery = newCfg.periodicQuery();
fastLeave = newCfg.fastLeave();
-
+ pimSSmInterworking = newCfg.pimSsmInterworking();
connectPoint = newCfg.connectPoint();
if (connectPointMode != newCfg.connectPointMode()) {
connectPointMode = newCfg.connectPointMode();