-
Bug
-
Resolution: Done
-
None
-
(unspecified)
-
None
-
Operating System: All
Platform: All
-
6388
When two nodes connect and those two nodes have interfaces with the same name (They all do, br-int), each time one of those interfaces gets added to the InterfaceState, it will erase the previous one. This occurs in InterfaceInventoryStateListener#add and is apparently designed to handle VM migration.
Here's the offending code:
//VM Migration: Delete existing interface entry for older DPN
Interface ifState = InterfaceManagerCommonUtils.getInterfaceStateFromDS(portName);
NodeConnectorId nodeConnectorIdOld = IfmUtil.getNodeConnectorIdFromInterface(ifState);
if (nodeConnectorIdOld != null && !nodeConnectorId.equals(nodeConnectorIdOld)) {
LOG.debug("Triggering NodeConnector Remove Event for the interface: {}, {}, {}", portName, nodeConnectorId, nodeConnectorIdOld);
remove(nodeConnectorId, nodeConnectorIdOld, fcNodeConnectorNew, portName, ifState);
}
The problem is that the method InterfaceManagerCommonUtils.getInterfaceStateFromDS uses the portName and nothing else to get a match.
This bug corrupts the InterfaceState which is turn breaks all kinds of other basic features such as provider VLAN flows.