嗨,我正在尝试在 rhel 9.2 中使用 dpdk 设置打开的 Vswitch,当我尝试将端口添加到网桥时遇到以下问题

问题描述 投票:0回答:1

我正在尝试在 rhel 9.2 中使用 dpdk 设置开放的 Vswitch,当我尝试将端口添加到网桥时遇到以下问题

我已成功将该接口绑定到 vfio_pci 驱动程序,如下所示,

[root@localhost ~]# dpdk-devbind.py -s

Network devices using DPDK-compatible driver
============================================
0000:02:03.0 'VMXNET3 Ethernet Controller 07b0' drv=vfio-pci unused=vmxnet3
0000:02:04.0 'VMXNET3 Ethernet Controller 07b0' drv=vfio-pci unused=vmxnet3
0000:02:05.0 'VMXNET3 Ethernet Controller 07b0' drv=vfio-pci unused=vmxnet3
 

我从源代码安装了开放的 Vswitch 和 dpdk,

[root@localhost ~]# ovs-vswitchd --version

ovs-vswitchd (Open vSwitch) 3.1.2

DPDK 22.11.4

[root@localhost ~]# ovs-vsctl get Open_vSwitch . dpdk_version

"DPDK 22.11.4"

[root@localhost ~]# ovs-vsctl get Open_vSwitch . dpdk_initialized

true

现在我正在尝试创建一个桥并向其添加绑定接口并面临以下错误,

[root@localhost ~]# ovs-vsctl add-br ovs-br1 -- set bridge ovs-br1 datapath_type=netdev
[root@localhost ~]# ovs-vsctl add-port ovs-br1 dpdk-p1 -- set Interface dpdk-p1 type=dpdk options:dpdk-devargs=0000:02:03.0 

ovs-vsctl: Error detected while setting up 'dpdk-p1': could not add network device dpdk-p1 to ofproto (Invalid argument). See ovs-vswitchd log for details.

ovs-vsctl: The default log directory is "/usr/local/var/log/openvswitch".

when I check the logs are as below

300 2024-03-11T05:30:43.615Z|00292|dpif_netdev|INFO|PMD thread on numa_id: 0, core id: 21 created.
2301 2024-03-11T05:30:43.615Z|00001|dpdk(pmd-c21/id:496)|INFO|PMD thread uses DPDK lcore 1.
2302 2024-03-11T05:30:43.620Z|00293|dpif_netdev|INFO|PMD thread on numa_id: 1, core id: 78 created.
2303 2024-03-11T05:30:43.620Z|00294|dpif_netdev|INFO|There are 1 pmd threads on numa node 1
2304 2024-03-11T05:30:43.620Z|00295|dpif_netdev|INFO|There are 1 pmd threads on numa node 0
2305 2024-03-11T05:30:43.620Z|00296|dpdk|INFO|Device with port_id=0 already stopped
2306 2024-03-11T05:30:43.620Z|00297|netdev_dpdk|WARN|Rx checksum offload is not supported on port 0
2307 2024-03-11T05:30:43.620Z|00001|dpdk(pmd-c78/id:497)|INFO|PMD thread uses DPDK lcore 2.
2308 2024-03-11T05:30:43.622Z|00298|dpdk|ERR|vmxnet3_dev_start(): Device activation: UNSUCCESSFUL
2309 2024-03-11T05:30:43.622Z|00299|netdev_dpdk|ERR|Interface dpdk-p1 start error: Invalid argument
2310 2024-03-11T05:30:43.622Z|00300|dpif_netdev|ERR|Failed to set interface dpdk-p1 new configuration
2311 2024-03-11T05:30:43.622Z|00301|dpif|WARN|netdev@ovs-netdev: failed to add dpdk-p1 as port: Invalid argument
2312 2024-03-11T05:30:43.622Z|00302|bridge|WARN|could not add network device dpdk-p1 to ofproto (Invalid argument)
2313 2024-03-11T05:30:43.622Z|00303|dpdk|INFO|Device with port_id=0 already stopped

我尝试重新启动 open Vswitch 并检查权限,即使 open Vswitch 仅以 root 用户身份运行。我试图理解为什么 dpdk 中出现此错误 - 还没有任何线索。

如果有人能帮忙解决这个问题,那就真的很有帮助了。谢谢!

rhel openvswitch rhel9 ovs-dpdk
1个回答
0
投票

由于我尝试在 ESXi8 中的 rhel 9.2 VM 上执行此操作,vmxnet3 尝试使用一个 rxq 在端口上配置 rss,并最终出现如下错误,

if (VMXNET3_VERSION_GE_4(hw)) {
    /* Check for additional RSS  */
    ret = vmxnet3_v4_rss_configure(dev);
    if (ret != VMXNET3_SUCCESS) {
        PMD_INIT_LOG(ERR, "Failed to configure v4 RSS");
        return ret;
    }
}

要修复此问题,对于 rxq=1 的端口,请在 openVswitch 代码中设置如下标志,

conf.rxmode.mq_mode = RTE_ETH_MQ_RX_NONE
© www.soinside.com 2019 - 2024. All rights reserved.