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 应用程序构建时,一个
either
修改 Makefile 以显式启用与 PMD (librte_pmd_ena.so) 的链接,以便构造函数正常工作
or
提及所需的库作为 DPDK 参数 -d librte_pmd_ena.so
根据评论更新,您似乎正在使用共享库构建。由于您没有通过选项 -d
传递,因此 PMD 构造函数不会为 ENA PMD
调用 probe
。因此,请通过在 pktgen cmdline 中传递 -d librte_pmd_ena.so
来解决此问题。
我正在尝试启动 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 应用程序构建时,一个
either
修改 Makefile 以显式启用与 PMD (librte_pmd_ena.so) 的链接,以便构造函数正常工作or
提及所需的库作为 DPDK 参数-d librte_pmd_ena.so
根据评论更新,您似乎正在使用共享库构建。由于您没有通过选项 -d
传递,因此 PMD 构造函数不会为 ENA PMD
调用 probe
。因此,请通过在 pktgen cmdline 中传递 -d librte_pmd_ena.so
来解决此问题。