CORD-2063 Correctly update interface MAC when network config is updated

Note: this is only a temporary fix that still doesn't offer full dynamic interface config capability

Change-Id: Ieb2a9316821d3e8a3ad9257b2980e14ddbafec4d
diff --git a/src/main/java/org/onosproject/segmentrouting/SegmentRoutingManager.java b/src/main/java/org/onosproject/segmentrouting/SegmentRoutingManager.java
index 79bd8d3..9d4cf04 100644
--- a/src/main/java/org/onosproject/segmentrouting/SegmentRoutingManager.java
+++ b/src/main/java/org/onosproject/segmentrouting/SegmentRoutingManager.java
@@ -1398,6 +1398,14 @@
         }
     }
 
+    private void createOrUpdateDeviceConfiguration() {
+        if (deviceConfiguration == null) {
+            deviceConfiguration = new DeviceConfiguration(this);
+        } else {
+            deviceConfiguration.updateConfig();
+        }
+    }
+
     /**
      * Registers the given connect point with the NRS, this is necessary
      * to receive the NDP and ARP packets from the NRS.
@@ -1429,11 +1437,7 @@
          * Reads network config and initializes related data structure accordingly.
          */
         public void configureNetwork() {
-            if (deviceConfiguration == null) {
-                deviceConfiguration = new DeviceConfiguration(srManager);
-            } else {
-                deviceConfiguration.updateConfig();
-            }
+            createOrUpdateDeviceConfiguration();
 
             arpHandler = new ArpHandler(srManager);
             icmpHandler = new IcmpHandler(srManager);
@@ -1466,6 +1470,7 @@
                         break;
                     case CONFIG_UPDATED:
                         log.info("Segment Routing Config updated for {}", event.subject());
+                        createOrUpdateDeviceConfiguration();
                         // TODO support dynamic configuration
                         break;
                     default:
@@ -1479,6 +1484,7 @@
                         break;
                     case CONFIG_UPDATED:
                         log.info("Interface Config updated for {}", event.subject());
+                        createOrUpdateDeviceConfiguration();
                         // TODO support dynamic configuration
                         break;
                     default: