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

Details

    • Bug
    • Status: Resolved
    • Resolution: Done
    • (unspecified)
    • None
    • General
    • None
    • Operating System: All
      Platform: All

    • 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.

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

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

            Dates

              Created:
              Updated:
              Resolved: