-
Bug
-
Resolution: Done
-
Critical
-
None
-
None
-
None
-
False
-
-
False
-
?
-
rhos-connectivity-nfv
-
None
-
-
-
-
Critical
To Reproduce
This error happens only for nmstate provider.
Load a config like this:
network_config:
- type: sriov_pf
name: nic5
mtu: 9000
numvfs: 5
use_dhcp: false
defroute: false
nm_controlled: true
hotplug: true
drivers_autoprobe: false
- type: ovs_user_bridge
name: br0
use_dhcp: false
use_dhcpv6: false
members:
- type: ovs_dpdk_port
name: dpdk0
members:
- type: sriov_vf
device: nic5
vfid: 0
vlan_id: 137
Notice the error: "Error attaching device '0000:82:0a.0' to DPDK" in the ovs-vsctl output:
[root@compute-0 ~]# ovs-vsctl show
bf9dfa0a-663a-4af5-a860-0e08c8da34ac
Bridge br0
fail_mode: standalone
datapath_type: netdev
Port dpdk0
Interface dpdk0
type: dpdk
options: {dpdk-devargs="0000:82:0a.0"}
error: "Error attaching device '0000:82:0a.0' to DPDK"
Port br0
Interface br0
type: internal
ovs_version: "3.5.2-33.el9fdp"
The appropriate driver vfio-pci doesn't seem to be set:
[root@compute-0 ~]# driverctl list-overrides 0000:82:0a.0 iavf
Expected behavior
ifcfg provider seems to work fine.
No error present in the ovs-vsctl output:
[root@compute-1 ~]# ovs-vsctl show
f5fae7d2-ea5d-4859-af5d-5a05a26a8f1c
Bridge br0
fail_mode: standalone
datapath_type: netdev
Port dpdk0
Interface dpdk0
type: dpdk
options: {dpdk-devargs="0000:82:0a.0"}
Port br0
Interface br0
type: internal
ovs_version: "3.5.2-33.el9fdp"
And vfio-pci driver set:
[root@compute-1 ~]# driverctl list-overrides 0000:82:0a.0 vfio-pci
Bug impact
No SR-IOV VFs properly added as DPDK ports.
Known workaround
The error can be manually fixed with:
[root@compute-0 ~]# systemctl stop openvswitch
[root@compute-0 ~]# driverctl unset-override 0000:82:0a.0
driverctl: failed to bind device 0000:82:0a.0 to driver
[root@compute-0 ~]# driverctl set-override 0000:82:0a.0 vfio-pci
[root@compute-0 ~]# systemctl start openvswitch
[root@compute-0 ~]# ovs-vsctl show
bf9dfa0a-663a-4af5-a860-0e08c8da34ac
Bridge bond0
fail_mode: standalone
datapath_type: netdev
Port dpdk0
Interface dpdk0
type: dpdk
options: {dpdk-devargs="0000:82:0a.0"}
Port bond0
Interface bond0
type: internal
ovs_version: "3.5.2-33.el9fdp"