From 2b9544c03b77aa1833e319426d01db9d5b4e9f87 Mon Sep 17 00:00:00 2001
From: Kanzhe Jiang <kanzhe.jiang@bigswitch.com>
Date: Wed, 11 Apr 2012 19:58:21 -0700
Subject: [PATCH] Revert "stop packet processing when updating deviceMgr with
 new topo"

This reverts commit 51ca40a374f888d4dcd77c17f10e6f1a6e06434d.

Conflicts:

	src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImpl.java
---
 .../internal/DeviceManagerImpl.java           | 23 +------------------
 1 file changed, 1 insertion(+), 22 deletions(-)

diff --git a/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImpl.java b/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImpl.java
index a0128a154..10f98df2a 100755
--- a/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImpl.java
+++ b/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImpl.java
@@ -623,7 +623,6 @@ public class DeviceManagerImpl implements IDeviceManagerService, IOFMessageListe
     protected static Logger log = 
             LoggerFactory.getLogger(DeviceManagerImpl.class);
 
-    protected boolean topoChanged = false;
     protected Set<IDeviceManagerAware> deviceManagerAware;
     protected LinkedList<Update> updates;
     protected ReentrantReadWriteLock lock;
@@ -832,20 +831,6 @@ public class DeviceManagerImpl implements IDeviceManagerService, IOFMessageListe
     public Command processPacketInMessage(IOFSwitch sw, OFPacketIn pi, 
                                           FloodlightContext cntx) {
 
-        /**
-         * DeviceManager's internal structure needs to be cleaned up upon
-         * topology change.
-         * Make sure it is done before processing more packetIns.
-         */
-        while (topoChanged) {
-            try {
-                log.debug("Waiting for completion of topoChange");
-                this.devMgrMaps.wait();
-            } catch (InterruptedException e) {
-                log.error ("DeviceManagerImpl: Interrupt exception: {}", e);
-            }
-        }
-
         Ethernet eth = IFloodlightProviderService.bcStore.get(
                     cntx, IFloodlightProviderService.CONTEXT_PI_PAYLOAD);
         /** If a broadcast or multicast packetIn comes from a port that's not allowed by higher
@@ -1604,10 +1589,7 @@ public class DeviceManagerImpl implements IDeviceManagerService, IOFMessageListe
      */
     @Override
     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);
+        deviceUpdateTask.reschedule(10, TimeUnit.MILLISECONDS);
     }
 
     protected boolean isNewer(DeviceAttachmentPoint dap1,
@@ -2180,9 +2162,6 @@ public class DeviceManagerImpl implements IDeviceManagerService, IOFMessageListe
                         "Floodlight exiting");
                 System.exit(1);
             }
-            devMgrMaps.notify();
-            topoChanged = false;
-            log.debug("Done topoChange");
         }
     }
 
-- 
GitLab