diff --git a/core/api/src/main/java/org/onosproject/net/config/basics/BasicDeviceConfig.java b/core/api/src/main/java/org/onosproject/net/config/basics/BasicDeviceConfig.java
index add8cf3..ea40829 100644
--- a/core/api/src/main/java/org/onosproject/net/config/basics/BasicDeviceConfig.java
+++ b/core/api/src/main/java/org/onosproject/net/config/basics/BasicDeviceConfig.java
@@ -58,7 +58,7 @@
      * @return driver name of null if not set
      */
     public String driver() {
-        return get(DRIVER, subject.toString());
+        return get(DRIVER, null);
     }
 
     /**
diff --git a/core/net/src/main/java/org/onosproject/net/device/impl/DeviceManager.java b/core/net/src/main/java/org/onosproject/net/device/impl/DeviceManager.java
index 4ee9a00..686cc7d 100644
--- a/core/net/src/main/java/org/onosproject/net/device/impl/DeviceManager.java
+++ b/core/net/src/main/java/org/onosproject/net/device/impl/DeviceManager.java
@@ -741,7 +741,7 @@
         public void event(NetworkConfigEvent event) {
             DeviceEvent de = null;
             if (event.configClass().equals(BasicDeviceConfig.class)) {
-                log.info("Detected Device network config event {}", event.type());
+                log.debug("Detected device network config event {}", event.type());
                 DeviceId did = (DeviceId) event.subject();
                 BasicDeviceConfig cfg = networkConfigService.getConfig(did, BasicDeviceConfig.class);
 
diff --git a/core/net/src/main/java/org/onosproject/net/host/impl/HostManager.java b/core/net/src/main/java/org/onosproject/net/host/impl/HostManager.java
index f48b836..ea6417d 100644
--- a/core/net/src/main/java/org/onosproject/net/host/impl/HostManager.java
+++ b/core/net/src/main/java/org/onosproject/net/host/impl/HostManager.java
@@ -252,7 +252,7 @@
             if ((event.type() == NetworkConfigEvent.Type.CONFIG_ADDED ||
                     event.type() == NetworkConfigEvent.Type.CONFIG_UPDATED) &&
                     event.configClass().equals(BasicHostConfig.class)) {
-                log.info("Detected Host network config event {}", event.type());
+                log.debug("Detected host network config event {}", event.type());
                 kickOutBadHost(((HostId) event.subject()));
             }
         }
diff --git a/core/net/src/main/java/org/onosproject/net/link/impl/LinkManager.java b/core/net/src/main/java/org/onosproject/net/link/impl/LinkManager.java
index d6f72fd..e41781a 100644
--- a/core/net/src/main/java/org/onosproject/net/link/impl/LinkManager.java
+++ b/core/net/src/main/java/org/onosproject/net/link/impl/LinkManager.java
@@ -337,6 +337,8 @@
             LinkKey lk = (LinkKey) event.subject();
             BasicLinkConfig cfg = networkConfigService.getConfig(lk, BasicLinkConfig.class);
 
+            log.debug("Detected link network config event {}", event.type());
+
             if (!isAllowed(cfg)) {
                 log.info("Kicking out links between {} and {}", lk.src(), lk.dst());
                 removeLink(lk.src(), lk.dst());
diff --git a/tools/test/cells/tom b/tools/test/cells/tom
index 28d3172..4ea48eb 100644
--- a/tools/test/cells/tom
+++ b/tools/test/cells/tom
@@ -1,7 +1,7 @@
 # Thomas' VirtualBox-based 3 ONOS instances & ONOS mininet box
 
 export ONOS_NIC=192.168.56.*
-export OC1="192.168.56.11"
+export OC1="192.168.56.14"
 export OC2="192.168.56.12"
 export OC3="192.168.56.13"
-export OCN="192.168.56.7"
+export OCN="192.168.56.11"
