From 520380870ddc6fa0db46dff4b22d2b6352348469 Mon Sep 17 00:00:00 2001 From: Chi-Vien Ly Date: Mon, 1 Jul 2013 10:51:44 -0700 Subject: [PATCH] SwitchManager incorrectly treats all ports as span ports and adds them in the spanNodeConnectors. Change-Id: I49c2a9c4d583b3aa86f8de8d567f390c721d65ff Signed-off-by: Chi-Vien Ly --- .../internal/SwitchManagerImpl.java | 33 +++++++++++-------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/opendaylight/switchmanager/implementation/src/main/java/org/opendaylight/controller/switchmanager/internal/SwitchManagerImpl.java b/opendaylight/switchmanager/implementation/src/main/java/org/opendaylight/controller/switchmanager/internal/SwitchManagerImpl.java index 443c7a42ab..ab31496103 100644 --- a/opendaylight/switchmanager/implementation/src/main/java/org/opendaylight/controller/switchmanager/internal/SwitchManagerImpl.java +++ b/opendaylight/switchmanager/implementation/src/main/java/org/opendaylight/controller/switchmanager/internal/SwitchManagerImpl.java @@ -863,7 +863,6 @@ CommandProvider { addNodeProps(node, null); } - // check if span is configed addSpanPort(nodeConnector); break; case REMOVED: @@ -1670,10 +1669,10 @@ CommandProvider { /* * Add span configuration to local cache and notify clients */ - private void addSpanPorts(Node node, List nodeConncetors) { + private void addSpanPorts(Node node, List nodeConnectors) { List ncLists = new ArrayList(); - for (NodeConnector nodeConnector : nodeConncetors) { + for (NodeConnector nodeConnector : nodeConnectors) { if (!spanNodeConnectors.contains(nodeConnector)) { ncLists.add(nodeConnector); } @@ -1691,19 +1690,25 @@ CommandProvider { } } - private void addSpanPort(NodeConnector nodeConncetor) { - List ncLists = new ArrayList(); - ncLists.add(nodeConncetor); - addSpanPorts(nodeConncetor.getNode(), ncLists); + private void addSpanPort(NodeConnector nodeConnector) { + // only add if span is configured on this nodeConnector + for (SpanConfig conf : getSpanConfigList(nodeConnector.getNode())) { + if (conf.getPortArrayList().contains(nodeConnector)) { + List ncLists = new ArrayList(); + ncLists.add(nodeConnector); + addSpanPorts(nodeConnector.getNode(), ncLists); + return; + } + } } /* * Remove span configuration to local cache and notify clients */ - private void removeSpanPorts(Node node, List nodeConncetors) { + private void removeSpanPorts(Node node, List nodeConnectors) { List ncLists = new ArrayList(); - for (NodeConnector nodeConnector : nodeConncetors) { + for (NodeConnector nodeConnector : nodeConnectors) { if (spanNodeConnectors.contains(nodeConnector)) { ncLists.add(nodeConnector); } @@ -1721,10 +1726,12 @@ CommandProvider { } } - private void removeSpanPort(NodeConnector nodeConncetor) { - List ncLists = new ArrayList(); - ncLists.add(nodeConncetor); - removeSpanPorts(nodeConncetor.getNode(), ncLists); + private void removeSpanPort(NodeConnector nodeConnector) { + if (spanNodeConnectors.contains(nodeConnector)) { + List ncLists = new ArrayList(); + ncLists.add(nodeConnector); + removeSpanPorts(nodeConnector.getNode(), ncLists); + } } private void addNodeProps(Node node, Map propMap) { -- 2.36.6