Add ConnectX-6 Lx switchdev port to OVS-DPDK failed

Hello NVIDIA experts or Network Experts

OVS 3.1.0
DPDK 22.11.5
Network Card: Mellanox Technologies MT2894 Family [ConnectX-6 Lx]
Debian 12.5
Kernel: 6.1.0-25-amd64

ethtool -i enp1s0f0np0
driver: mlx5_core
version: 24.07-0.6.1
firmware-version: 26.42.1000 (MT_0000000532)
expansion-rom-version:
bus-info: 0000:01:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: yes

ovs-vsctl get Open_vSwitch . other_config
{dpdk-alloc-mem=“4096”, dpdk-init=“true”, dpdk-lcore-mask=“30000”, hw-offload=“true”}

In legacy mode, add pf port to ovs with type dpdk is no problem.

But after changed to switchdev mode, failed.

ovs-vswitchd[1213]: ovs|00132|dpdk|ERR|mlx5_common: Failed to query event queue number.
ovs-vswitchd[1213]: ovs|00133|dpdk|ERR|mlx5_net: Port 0 Tx queue 0 CQ creation failure.
ovs-vswitchd[1213]: ovs|00134|dpdk|ERR|mlx5_net: port 0 Tx queue allocation failed: Input/output error
ovs-vswitchd[1213]: ovs|00135|netdev_dpdk|ERR|Interface pf0 start error: Input/output error
ovs-vswitchd[1213]: ovs|00136|dpif_netdev|ERR|Failed to set interface pf0 new configuration

If I add legacy port to ovs first, then change to switchdev mode:
ovs|00146|dpdk|ERR|mlx5_common: Failed to query devx q counter set - rc 5

Could you please help me solve it?

Hi,

Thanks for your question.
In switchdev mode OVS commands should look like in the below example.
If it doesn’t work for some reason, we will suggest you to open a support case in Nvidia portal, and then we can perform a deeper investigation of the issue:
ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-extra=“-a 0000:03:00.0,representor=pf0vf[0,1,2]”
ovs-vsctl --no-wait set open_vswitch . other_config:dpdk-init=true
systemctl restart openvswitch-switch
ovs-vsctl add-br ovsbr0 – set bridge ovsbr0 datapath_type=netdev
ovs-vsctl add-port ovsbr0 pf – set Interface pf type=dpdk options:dpdk-devargs=“0000:03:00.0”

Best Regards,
Anatoly