在构建应用程序时如何解决dpdk-18.02中的“无有效端口”问题?

时间:2019-02-11 18:02:36

标签: c linux ethernet nic dpdk

使用dpdk-v18.02构建应用程序,并显示“无有效端口”错误。

我尝试了dpdk-v19.02,它给出了相同的错误。

这是错误:

EAL: Detected 40 lcore(s)
EAL: Multi-process socket /var/run/.rte_unix
EAL: Probing VFIO support...
EAL: PCI device 0000:04:00.0 on NUMA socket 0
EAL:   probe driver: 10ee:9038 xnic
EAL: Requested device 0000:04:00.0 cannot be used
EAL: Error - exiting with code: 1
  Cause: Error: no valid ports

该端口已绑定到驱动程序:

dpdk/usertools/# python dpdk-devbind.py --bind=igb_uio 04:00.0
0000:04:00.0 already bound to driver igb_uio, skipping 

检查端口绑定为python dpdk-devbind.py --status

Network devices using DPDK-compatible driver
============================================
0000:04:00.0 'Device 9038' drv=igb_uio unused=

2 个答案:

答案 0 :(得分:0)

此日志消息引用的是PMD(用户空间“轮询模式驱动程序”)查找,而不是内核驱动程序(如igb_uio)。如果DPDK支持此设备,则将有一些PMD(drivers/net/目录)声明支持给定的供应商ID(例如10ee)和设备ID(例如{{1 }})。在DPDK源代码树中搜索供应商ID 9038不会产生任何结果。也就是说,显然,您要探查的设备没有DPDK驱动程序。遗憾的是,只有实现了功能强大的PMD并将其添加到源代码树后,您才能将该设备与DPDK一起使用。

答案 1 :(得分:0)

这里是 DPDK 下带有 PMD 的 nics supported 列表。看起来 Device 9038 不在列表中。

对于不支持的 DPDK 网卡,请使用 PCAP PMD 接口到 DPDK 应用程序。入门步骤

  1. 在启用 PCAP PMD 的情况下构建适当的 DPDK 版本
  2. 向 DPDK 应用程序添加额外的参数作为 --no-pci --vdev=net_pcap0,iface=[name of nic interface]