diff --git a/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImpl.java b/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImpl.java index 2945e83afb3dc1095eab63d3a92730af9733f4f3..a0128a154554e373ec048eb8085a215d45ab4583 100755 --- a/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImpl.java +++ b/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImpl.java @@ -697,6 +697,20 @@ public class DeviceManagerImpl implements IDeviceManagerService, IOFMessageListe public Update(UpdateType type) { this.updateType = type; } + + @Override + public String toString() { + String updateString = null; + + switch (updateType) { + case ADDRESS_ADDED: + case ADDRESS_REMOVED: + updateString = address.toString(); + break; + } + return "Update: device " + device.getDlAddrString() + + " Type " + updateType + " " + updateString; + } } protected class PendingAttachmentPoint { @@ -825,6 +839,7 @@ public class DeviceManagerImpl implements IDeviceManagerService, IOFMessageListe */ while (topoChanged) { try { + log.debug("Waiting for completion of topoChange"); this.devMgrMaps.wait(); } catch (InterruptedException e) { log.error ("DeviceManagerImpl: Interrupt exception: {}", e); @@ -1591,6 +1606,7 @@ public class DeviceManagerImpl implements IDeviceManagerService, IOFMessageListe public void topologyChanged() { // Halt packetIn processing to handle topoChange event. topoChanged = true; + log.debug("Set topoChanged flag to true. Stop packetIn processing"); deviceUpdateTask.reschedule(1, TimeUnit.MILLISECONDS); } @@ -2166,6 +2182,7 @@ public class DeviceManagerImpl implements IDeviceManagerService, IOFMessageListe } devMgrMaps.notify(); topoChanged = false; + log.debug("Done topoChange"); } }