SRIOV VF port attachment timed out when there is a port which has the same MAC address
Issue
-
Create a SRIOV VF port with a specific MAC address.
$ openstack port create --network net1 --vnic-type direct --mac-address aa:aa:aa:aa:aa:aa sriov_port
Creating an instance with the SRIOV VF port fails with
Failed to allocate the network(s), not rescheduling
error:$ openstack server create --port sriov_port test-instance ...... $ openstack server show test-instance +------------------------+----------------------- | Field | Value +------------------------+----------------------- : | OS-EXT-STS:power_state | NOSTATE | OS-EXT-STS:task_state | None | OS-EXT-STS:vm_state | error : | fault | {'code': 500, 'created': '2023-01-01T01:01:01Z' ...... nova.exception.BuildAbortException: Build of instance xxxxxxxxxxxxxxx aborted: Failed to allocate the network(s), not rescheduling.\n'} : | status | ERROR : +------------------------+----------------------
-
nova-compute.log
on a compute node where the instance creation was attempted shows the following error message:<nova-compute.log> WARNING nova.virt.libvirt.driver [......] [instance: xxxxxxxxxxxxxxx] Timeout waiting for [('network-vif-plugged', 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa')] for instance with vm_state building and task_state spawning.: eventlet.timeout.Timeout: 300 seconds
-
Neutron side doesn't show any ERROR messages, but the following INFO message is shown in
/var/log/containers/neutron/sriov-nic-agent.log
on the compute:INFO neutron.plugins.ml2.drivers.mech_sriov.agent.sriov_nic_agent [req-xxxxxxxxxx - - - - -] Device with MAC aa:aa:aa:aa:aa:aa has no active binding in host
-
There is another port which has the same MAC address as the SRIOV VF port's one:
$ openstack port list --long | aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa | SRIOV-VF-port | aa:aa:aa:aa:aa:aa | ip_address='10.0.0.1', subnet_id='bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb' | DOWN | None | | | ==> SRIOV VF port which was attached to the instance | cccccccc-cccc-cccc-cccc-cccccccccccc | another-port | aa:aa:aa:aa:aa:aa | | ACTIVE | None | compute:compute | | ==> another port which has the same MAC address
Environment
- Red Hat OpenStack Platform 13
- Red Hat OpenStack Platform 16
- Red Hat OpenStack Platform 17
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.