pktgen-dpdk !PANIC!: *** 没有找到任何要使用的端口 ***

pktgen-dpdk !PANIC!: *** Did not find any ports to use ***

我正在尝试启动 pktgen,但它似乎没有看到我绑定的接口,因为它给了我

!PANIC!: *** Did not find any ports to use ***

设置信息:我在 ubuntu 20.4 和 redhat 8.3

上遇到了这个问题
dpdk version= DPDK 20.11.0
ena verison =2.1.0K
pktgen-20.11.3

我使用这些配置启动:

pktgen -l 0-3 -n 3 -- -P -m "[1:2].0, [2:3].1"

注意:我有 4 个内核,不使用 0,所以我通过内核 1 发送并通过内核 2 接收端口 o,我通过内核 2 发送并通过端口 1 上的内核 3 接收。配置错误?

这里的接口是我绑定的两个接口的状态:

Network devices using DPDK-compatible driver
============================================
0000:00:06.0 'Elastic Network Adapter (ENA) ec20' drv=vfio-pci unused=ena
0000:00:07.0 'Elastic Network Adapter (ENA) ec20' drv=vfio-pci unused=ena

Network devices using kernel driver
===================================
0000:00:05.0 'Elastic Network Adapter (ENA) ec20' if=eth0 drv=ena unused=vfio-pci *Active*

No 'Baseband' devices detected
==============================

No 'Crypto' devices detected
============================

No 'Eventdev' devices detected
==============================

No 'Mempool' devices detected
=============================

No 'Compress' devices detected
==============================

No 'Misc (rawdev)' devices detected
===================================

No 'Regex' devices detected
===========================

所以我想我确实正确绑定了接口。那我错过了什么??任何帮助

与 meson 或 ninja 一起使用构建 DPDK 时,它会生成静态库和共享库。但是 pkg-config --cflags --libs libdpdk.pc returns 用于链接的共享库。

因此,当使用共享库模式为任何 DPDK 应用程序构建时,一个

  1. either 修改 Makefile 以显式启用与 PMD (librte_pmd_ena.so) 的链接,以便构造函数正常工作
  2. or 提及所需的库作为 DPDK 参数 -d librte_pmd_ena.so

根据评论更新,您似乎正在使用共享库构建。由于您没有通过选项 -d 传递,因此 PMD 构造函数不会为 ENA PMD 调用 probe。因此,请通过在 pktgen cmdline 中传递 -d librte_pmd_ena.so 来解决此问题。