When a node is going down, remove edges in both directions associated with the node. 23/623/1
authorJason Ye <yisye@cisco.com>
Mon, 22 Jul 2013 22:11:59 +0000 (15:11 -0700)
committerJason Ye <yisye@cisco.com>
Mon, 22 Jul 2013 22:11:59 +0000 (15:11 -0700)
Signed-off-by: Jason Ye <yisye@cisco.com>
opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/DiscoveryService.java

index b3cfde9c146983b4ac44f115178d5af16da606a6..ee712030e95573a807239dc6283f4291bb5f01d0 100644 (file)
@@ -571,7 +571,16 @@ public class DiscoveryService implements IInventoryShimExternalListener, IDataPa
         }
         for (NodeConnector nodeConnector : c) {
             if (node.equals(nodeConnector.getNode())) {
         }
         for (NodeConnector nodeConnector : c) {
             if (node.equals(nodeConnector.getNode())) {
-                removeSet.add(nodeConnector);
+                Edge edge1 = edgeMap.get(nodeConnector);
+                if (edge1 != null) {
+                    removeSet.add(nodeConnector);
+
+                    // check reverse direction
+                    Edge edge2 = edgeMap.get(edge1.getTailNodeConnector());
+                    if ((edge2 != null) && node.equals(edge2.getTailNodeConnector().getNode())) {
+                        removeSet.add(edge2.getHeadNodeConnector());
+                    }
+                }
             }
         }
         return removeSet;
             }
         }
         return removeSet;