Skip to content
Snippets Groups Projects
Commit 17e13a7e authored by Srinivasan Ramasubramanian's avatar Srinivasan Ramasubramanian
Browse files

Merge pull request #257 from sriniram/master

Always recompute topology upon link updates.	
parents e73130ef abb2ff0e
No related branches found
No related tags found
No related merge requests found
...@@ -106,11 +106,8 @@ public class TopologyManager implements ...@@ -106,11 +106,8 @@ public class TopologyManager implements
@Override @Override
public void run() { public void run() {
try { try {
boolean recomputeFlag = false; applyUpdates();
recomputeFlag = applyUpdates(); createNewInstance();
if (recomputeFlag) {
createNewInstance();
}
lastUpdateTime = new Date(); lastUpdateTime = new Date();
informListeners(); informListeners();
} }
...@@ -802,9 +799,8 @@ public class TopologyManager implements ...@@ -802,9 +799,8 @@ public class TopologyManager implements
} }
public boolean applyUpdates() { public void applyUpdates() {
boolean topologyRecomputeRequired = false;
appliedUpdates.clear(); appliedUpdates.clear();
LDUpdate update = null; LDUpdate update = null;
while (ldUpdates.peek() != null) { while (ldUpdates.peek() != null) {
...@@ -820,23 +816,18 @@ public class TopologyManager implements ...@@ -820,23 +816,18 @@ public class TopologyManager implements
addOrUpdateLink(update.getSrc(), update.getSrcPort(), addOrUpdateLink(update.getSrc(), update.getSrcPort(),
update.getDst(), update.getDstPort(), update.getDst(), update.getDstPort(),
update.getType()); update.getType());
topologyRecomputeRequired = true;
} else if (update.getOperation() == UpdateOperation.LINK_REMOVED){ } else if (update.getOperation() == UpdateOperation.LINK_REMOVED){
removeLink(update.getSrc(), update.getSrcPort(), removeLink(update.getSrc(), update.getSrcPort(),
update.getDst(), update.getDstPort()); update.getDst(), update.getDstPort());
topologyRecomputeRequired = true;
} else if (update.getOperation() == UpdateOperation.SWITCH_REMOVED) { } else if (update.getOperation() == UpdateOperation.SWITCH_REMOVED) {
topologyRecomputeRequired = removeSwitch(update.getSrc()); removeSwitch(update.getSrc());
} else if (update.getOperation() == UpdateOperation.PORT_DOWN) { } else if (update.getOperation() == UpdateOperation.PORT_DOWN) {
topologyRecomputeRequired = removeSwitchPort(update.getSrc(), removeSwitchPort(update.getSrc(), update.getSrcPort());
update.getSrcPort());
} }
// Add to the list of applied updates. // Add to the list of applied updates.
appliedUpdates.add(update); appliedUpdates.add(update);
} }
return topologyRecomputeRequired;
} }
/** /**
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment