diff --git a/src/test/apps/aaa-3.0-SNAPSHOT.oar b/src/test/apps/aaa-3.0-SNAPSHOT.oar
index 62edc34..631aff9 100644
--- a/src/test/apps/aaa-3.0-SNAPSHOT.oar
+++ b/src/test/apps/aaa-3.0-SNAPSHOT.oar
Binary files differ
diff --git a/src/test/apps/cord-config-3.0-SNAPSHOT.oar b/src/test/apps/cord-config-3.0-SNAPSHOT.oar
index 2dd671e..12cf795 100644
--- a/src/test/apps/cord-config-3.0-SNAPSHOT.oar
+++ b/src/test/apps/cord-config-3.0-SNAPSHOT.oar
Binary files differ
diff --git a/src/test/apps/dhcpl2relay-1.0.0.oar b/src/test/apps/dhcpl2relay-1.0.0.oar
index 7de11dc..4af0cd2 100644
--- a/src/test/apps/dhcpl2relay-1.0.0.oar
+++ b/src/test/apps/dhcpl2relay-1.0.0.oar
Binary files differ
diff --git a/src/test/apps/olt-app-3.0-SNAPSHOT.oar b/src/test/apps/olt-app-3.0-SNAPSHOT.oar
index 1b5606b..ecb272e 100644
--- a/src/test/apps/olt-app-3.0-SNAPSHOT.oar
+++ b/src/test/apps/olt-app-3.0-SNAPSHOT.oar
Binary files differ
diff --git a/src/test/apps/sadis-app-3.0-SNAPSHOT.oar b/src/test/apps/sadis-app-3.0-SNAPSHOT.oar
index 1b4acd7..ec62abd 100644
--- a/src/test/apps/sadis-app-3.0-SNAPSHOT.oar
+++ b/src/test/apps/sadis-app-3.0-SNAPSHOT.oar
Binary files differ
diff --git a/src/test/utils/CordContainer.py b/src/test/utils/CordContainer.py
index 97a3c87..98a8a7a 100644
--- a/src/test/utils/CordContainer.py
+++ b/src/test/utils/CordContainer.py
@@ -1042,6 +1042,8 @@
             print('ONOS app %s, version %s %s' %(app, version, 'installed' if ok else 'failed to install'))
             time.sleep(2)
 
+        OnosCtrl.config_olt_component(controller = onos_ip)
+
     @classmethod
     def activate_apps(cls, apps, onos_ip = None, deactivate = False):
         for app in apps:
diff --git a/src/test/utils/OnosCtrl.py b/src/test/utils/OnosCtrl.py
index 64a2ea6..457c05b 100644
--- a/src/test/utils/OnosCtrl.py
+++ b/src/test/utils/OnosCtrl.py
@@ -451,3 +451,13 @@
                                                                        defaultVlan = defaultVlan)
 
         cls.config(device_config, controller = controller)
+
+    @classmethod
+    def config_olt_component(cls, controller = None, enableDhcpIgmpOnProvisioning = True, defaultVlan = 0):
+        if controller is None:
+            controller = cls.controller
+        olt_property_url = 'configuration/org.opencord.olt.impl.Olt'
+        property_url = 'http://{}:8181/onos/v1/{}'.format(controller, olt_property_url)
+        cfg = dict(enableDhcpIgmpOnProvisioning = enableDhcpIgmpOnProvisioning, defaultVlan = defaultVlan)
+        resp = requests.post(property_url, auth = cls.auth, data = json.dumps(cfg))
+        return resp.ok, resp.status_code
diff --git a/src/test/utils/VolthaCtrl.py b/src/test/utils/VolthaCtrl.py
index 08e02b8..91969c6 100644
--- a/src/test/utils/VolthaCtrl.py
+++ b/src/test/utils/VolthaCtrl.py
@@ -476,6 +476,7 @@
         OnosCtrl.install_app(olt_app)
         olt_installed = True
         time.sleep(5)
+        OnosCtrl.config_olt_component()
         return voltha, device_id, switch_map, driver_configured
     except:
         voltha.disable_device(device_id)
