pkt-gen dpdk 不发送任何数据包问题

pkt-gen dpdk not sending any packets issue

我正在尝试使用 pktgen-dpdk 从 dpdk 机器向 DUT 发送 udp 数据包。但我看不到统计数据中发送的任何内容,也看不到 DUT 上收到的任何内容。 这是我正在使用的配置:

dpdk verion: DPDK 20.11.0
pkt-gen version: 20.11.3
ena driver version: 2.4.0
os :amazon linux 2 aws ec2 instance

pkt-gen pkt文件如下:

stop 0
set 0 dst mac 02:EC:BC:CD:C7:D6 # i try both dst mac address for the gateway and for the DUT
set 0 src ip 192.168.2.187/24
set 0 dst ip 192.168.2.197
set 0 sport 22
set 0 dport 22
set 0 type ipv4
set 0 proto tcp
set 0 size 64
start 0

我还尝试了多种不同的协议,甚至通过为端口启用 icmp 并使用 ping4 尝试了一个简单的 icmp,但没有发送任何内容。端口状态如下: port o status

此外,当我尝试使用 testpmd 发送流量时 我明白了:

  ---------------------- Forward statistics for port 0  ----------------------
  RX-packets: 11             RX-dropped: 0             RX-total: 11
  TX-packets: 231819494      TX-dropped: 2029505748    TX-total: 2261325242
  ----------------------------------------------------------------------------

  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
  RX-packets: 11             RX-dropped: 0             RX-total: 11
  TX-packets: 231819494      TX-dropped: 2029505748    TX-total: 2261325242
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

似乎所有传输都被立即丢弃

问题在于 pkt-gen 无法识别 DPDK NIC ENA,因为它是在共享库模式下构建的。解决问题

  1. find / -name "librte_*.so" | grep ena
  2. 确定ENA PMD所在的文件夹
  3. 设置环境路径 export LD_LIBRARY_PATH=[path to pmd folder]
  4. 确保 运行 pktgen 带有参数 -d librte_net_ena.so -l 1-3 -- -P -m "2.0, 3.1"

注意:问题也通过实时调试解决了。