From abb2ff0e1ad82f23e48e8a412bce8ff014422181 Mon Sep 17 00:00:00 2001
From: Srinivasan Ramasubramanian <srini@bigswitch.com>
Date: Thu, 9 Aug 2012 21:52:30 -0700
Subject: [PATCH] Always recompute topology upon link updates.

---
 .../topology/TopologyManager.java             | 19 +++++--------------
 1 file changed, 5 insertions(+), 14 deletions(-)

diff --git a/src/main/java/net/floodlightcontroller/topology/TopologyManager.java b/src/main/java/net/floodlightcontroller/topology/TopologyManager.java
index c261a23a3..aa46c60d4 100644
--- a/src/main/java/net/floodlightcontroller/topology/TopologyManager.java
+++ b/src/main/java/net/floodlightcontroller/topology/TopologyManager.java
@@ -106,11 +106,8 @@ public class TopologyManager implements
         @Override 
         public void run() {
             try {
-                boolean recomputeFlag = false;
-                recomputeFlag = applyUpdates();
-                if (recomputeFlag) {
-                    createNewInstance();
-                }
+                applyUpdates();
+                createNewInstance();
                 lastUpdateTime = new Date();
                 informListeners();
             }
@@ -798,9 +795,8 @@ public class TopologyManager implements
     }
 
 
-    public boolean applyUpdates() {
+    public void applyUpdates() {
 
-        boolean topologyRecomputeRequired = false;
         appliedUpdates.clear();
         LDUpdate update = null;
         while (ldUpdates.peek() != null) {
@@ -816,23 +812,18 @@ public class TopologyManager implements
                 addOrUpdateLink(update.getSrc(), update.getSrcPort(),
                                 update.getDst(), update.getDstPort(),
                                 update.getType());
-                topologyRecomputeRequired = true;
             } else if (update.getOperation() == UpdateOperation.LINK_REMOVED){
                 removeLink(update.getSrc(), update.getSrcPort(), 
                            update.getDst(), update.getDstPort());
-                topologyRecomputeRequired = true;
             } else if (update.getOperation() == UpdateOperation.SWITCH_REMOVED) {
-                topologyRecomputeRequired = removeSwitch(update.getSrc());
+                removeSwitch(update.getSrc());
             } else if (update.getOperation() == UpdateOperation.PORT_DOWN) {
-                topologyRecomputeRequired = removeSwitchPort(update.getSrc(),
-                                                             update.getSrcPort());
+                removeSwitchPort(update.getSrc(), update.getSrcPort());
             }
 
             // Add to the list of applied updates.
             appliedUpdates.add(update);
         }
-
-        return topologyRecomputeRequired;
     }
 
     /**
-- 
GitLab