SEBA-644 igmpproxy should forward IGMP to BNG on a per pod basis or
a per OLT basis.

- "igmpOnPodBasis" config property added. If true ongoing IGMP
  messages are evaluated on PON basis; they are evaluated
  OLT basis otherwise.

Change-Id: Ic931598deb99f3d09a5bc5d8117de0c56e92a039
diff --git a/src/main/java/org/opencord/igmpproxy/IgmpproxyConfig.java b/src/main/java/org/opencord/igmpproxy/IgmpproxyConfig.java
index 2e36a50..b59c2c1 100644
--- a/src/main/java/org/opencord/igmpproxy/IgmpproxyConfig.java
+++ b/src/main/java/org/opencord/igmpproxy/IgmpproxyConfig.java
@@ -38,6 +38,7 @@
     private static final Boolean DEFAULT_CONNECT_POINT_MODE = true;
     private static final Boolean DEFAULT_PIMSSM_INTERWORKING = false;
     private static final Boolean DEFAULT_IGMP_PROVISIONING_SUPPORT = Boolean.FALSE;
+    private static final Boolean DEFAULT_IGMP_ON_POD_BASIS = Boolean.FALSE;
 
     protected static final String CONNECT_POINT_MODE = "globalConnectPointMode";
     protected static final String CONNECT_POINT = "globalConnectPoint";
@@ -55,7 +56,7 @@
     private static final String PIMSSM_INTERWORKING = "pimSSmInterworking";
     private static final String SOURCE_DEV_PORT = "sourceDeviceAndPort";
     private static final String ENABLE_IGMP_PROVISIONING = "enableIgmpProvisioning";
-
+    private static final String IGMP_ON_POD_BASIS = "igmpOnPodBasis";
 
     /**
      * Gets the value of a string property, protecting for an empty
@@ -205,4 +206,12 @@
         return Boolean.parseBoolean(getStringProperty(ENABLE_IGMP_PROVISIONING,
                                                       DEFAULT_IGMP_PROVISIONING_SUPPORT.toString()));
     }
+
+    public boolean igmpOnPodBasis() {
+        if (object == null || object.path(IGMP_ON_POD_BASIS) == null) {
+            return DEFAULT_IGMP_ON_POD_BASIS;
+        }
+        return Boolean.parseBoolean(getStringProperty(IGMP_ON_POD_BASIS,
+                                                      DEFAULT_IGMP_ON_POD_BASIS.toString()));
+    }
 }