Enhance SR-IOV agent to handle duplicate MAC addresses

Bug #1792251 reported by William Konitzer
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mirantis OpenStack
New
Undecided
Unassigned

Bug Description

There are scenarios where a VNF wishes to to have the same MAC address in different VLANs or different provider_network types.

Tested so far:

1. Same MAC address used between 2 different VLAN networks ----> Success
2. Same MAC address used between 2 different SR-IOV networks ----> Success
3. Same MAC address used between 2 different VXLAN networks ----> Success
4. Same MAC address used between SR-IOV and VXLAN networks
a)created sriov port first then vxlan port -----> Success
b)created vxlan port first then sriov port ----> this scenario sometimes works and sometimes fails. It seems to be dependent on order of values returned from ports table

Examining the code, the SR-IOV agent requests device info by MAC address which calls into the function "get_port_from_device_mac" (https://github.com/openstack/neutron/blob/87223c10cbad33a3b75f22c20725ef9e01728b57/neutron/plugins/ml2/db.py#L146). This function just returns the last item in the list with the implicit assumption that the MAC address will always be unique and hence there's only one value.

Enhancement is requested to allow SR-IOV agent to request device info by MAC address but filtered on host_id as it knows which host is making the request.

There is still an edge case where this won't work if ports are on the same host - in which case an informative error should be returned.

Raised upstream as https://bugs.launchpad.net/neutron/+bug/1791159

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.