Uploaded image for project: 'genius'
  1. genius
  2. GENIUS-5

InterfaceState removed for interfaces on different nodes with same name, e.g., br-int, or eth0

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • None
    • (unspecified)
    • General
    • 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.

            Unassigned Unassigned
            jhershbe Josh Hershberg
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: