[GENIUS-5] InterfaceState removed for interfaces on different nodes with same name, e.g., br-int, or eth0 Created: 11/Aug/16  Updated: 09/Jun/18  Resolved: 16/Aug/16

Status: Resolved
Project: genius
Component/s: General
Affects Version/s: (unspecified)
Fix Version/s: None

Type: Bug
Reporter: Josh Hershberg Assignee: Unassigned
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


External issue ID: 6388

 Description   

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.



 Comments   
Comment by Chetan Arakere Gowdru [ 12/Aug/16 ]

Review raised for this fix - https://git.opendaylight.org/gerrit/#/c/43694/

Comment by Chetan Arakere Gowdru [ 16/Aug/16 ]

Code Merged to ODL Boron - https://git.opendaylight.org/gerrit/#/c/43769/

Generated at Wed Feb 07 19:59:40 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.