Problem using SR-IOV interfaces (no hosts from PciPassthroughFilter)
Hello,
I'm trying to setup SRIOV interfaces in OpenStack following this guide: https://docs.openstack.org/neutron/rocky/admin/config-sriov.html#configure-nova-scheduler-controller (https://docs.openstack.org/neutron/ro...). I've been unable to deploy instances with SR-IOV ports neither with a flavor alias (as explainer here: https://docs.openstack.org/nova/rocky/admin/pci-passthrough.html (https://docs.openstack.org/nova/rocky...) , but for a VF) or via a SR-IOV port. I couldn't find anything in the other questions that helped fix my problem.
Here's what I've done and the configuration and information from logs. Please, if any additional information would help, let me know.
SR-IOV and VT-d
Enabled in BIOS
Grub
Edited /etc/default/grub (it's also configured for EPA), then ran update-grub and rebooted
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_iommu=on iommu=pt isolcpus=32-63 default_hugepagesz=1G hugepagesz=1G hugepages=24"
Output from lspci -nn | grep -i Virtual
and ip link show
5e:02.0 Ethernet controller [0200]: Intel Corporation XL710/X710 Virtual Function [8086:154c] (rev 01)
5e:02.1 Ethernet controller [0200]: Intel Corporation XL710/X710 Virtual Function [8086:154c] (rev 01)
5e:02.2 Ethernet controller [0200]: Intel Corporation XL710/X710 Virtual Function [8086:154c] (rev 01)
5e:02.3 Ethernet controller [0200]: Intel Corporation XL710/X710 Virtual Function [8086:154c] (rev 01)
5e:02.4 Ethernet controller [0200]: Intel Corporation XL710/X710 Virtual Function [8086:154c] (rev 01)
5e:02.5 Ethernet controller [0200]: Intel Corporation XL710/X710 Virtual Function [8086:154c] (rev 01)
5e:02.6 Ethernet controller [0200]: Intel Corporation XL710/X710 Virtual Function [8086:154c] (rev 01)
154: enp94s0f0: <broadcast,multicast,up,lower_up> mtu 1500 qdisc mq portid 3cfdfebe8110 state UP mode DEFAULT group default qlen 1000
link/ether 3c:fd:fe:be:81:10 brd ff:ff:ff:ff:ff:ff
vf 0 MAC 00:00:00:00:00:00, spoof checking on, link-state auto
vf 1 MAC 00:00:00:00:00:00, spoof checking on, link-state auto
vf 2 MAC 00:00:00:00:00:00, spoof checking on, link-state auto
vf 3 MAC 00:00:00:00:00:00, spoof checking on, link-state auto
vf 4 MAC 00:00:00:00:00:00, spoof checking on, link-state auto
vf 5 MAC 00:00:00:00:00:00, spoof checking on, link-state auto
vf 6 MAC 00:00:00:00:00:00, spoof checking on, link-state auto
nova.conf (compute nodes)
alias = { "vendor_id":"8086", "product_id":"154c", "device_type":"type-VF", "name":"a1" }
passthrough_whitelist = [{"address":"*:5e:00.0","product_id":"1572","vendor_id":"8086"},{"product_id":"154c","vendor_id":"8086"}]
Other
I also added PciPassthroughFilter to the available filters and configured the ml2_conf.ini file in the controller appropriately as shown in the guide. I tried both with and without enabling the neutron sriov-agents in the nodes. Without the agents, I added the sriov configuration to the ml2_conf.ini file, as show below. It didn't work either way.
[ml2_sriov]
agent_required = False
supported_pci_vendor_devs = 8086:154c
[sriov_nic]
physical_device_mappings = sn4i:enp94s0f0
The neutron process appears ...