From: Alessandro Boch Date: Wed, 24 Jul 2013 00:19:33 +0000 (+0000) Subject: Merge "When a node is going down, remove edges in both directions associated with... X-Git-Tag: releasepom-0.1.0~265 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=fa52e9399f9687c7290ed98b22b00cdce4a6aacd;hp=a21ad10dca48977b9c4ea885bc728563f920371b Merge "When a node is going down, remove edges in both directions associated with the node." --- diff --git a/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/DiscoveryService.java b/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/DiscoveryService.java index b3cfde9c14..ee712030e9 100644 --- a/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/DiscoveryService.java +++ b/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/DiscoveryService.java @@ -571,7 +571,16 @@ public class DiscoveryService implements IInventoryShimExternalListener, IDataPa } 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;