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)
