dpdk-22.07.0-testpmd测试进程响应icmp请求

本文详细介绍了如何编译DPDK并进行环境搭建,包括网卡绑定、内核模块加载和测试应用dpdk-testpmd的运行。在运行过程中,展示了ICMP回显请求的转发流程,解析了相关代码片段,用于处理ICMP请求并构建回显回复。

编译dpdk

meson build
ninja -C build

mkdir -p /dev/hugepages
mountpoint -q /dev/hugepages || mount -t hugetlbfs nodev /dev/hugepages
echo 64 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages

ninja app/dpdk-testpmd

环境搭建

1.先通过./usertools/dpdk-devbind.py -s获取网卡的总线地址
2.用ifconfig ens34 down 命令将eth接口down掉
3.modprobe uio.ko
4.下载dpdk-kmods源码,并进入目录编译生成igb_uio.ko模块
5.insmod igb_uio.ko
6.dpdk-devbind.py --bind=igb_uio xxxx:xx:xx.x 绑定网卡总线地址
7.运行./app/dpdk-testpmd – -i --forward-mode=icmpecho
8.set verbose 2

testpmd> show port info all

********************* Infos for port 0  *********************
MAC address: 00:0C:29:A8:09:8A
Device name: 0000:02:06.0
Driver name: net_e1000_em
Firmware-version: not available
Connect to socket: 0
memory allocation on the socket: 0
Link status: up
Link speed: 1 Gbps
Link duplex: full-duplex
Autoneg status: On
MTU: 1500
Promiscuous mode: enabled
Allmulticast mode: disabled
Maximum number of MAC addresses: 15
Maximum number of MAC addresses of hash filtering: 0
VLAN offload:
  strip off, filter off, extend off, qinq strip off
No RSS offload flow type is supported.
Minimum size of RX buffer: 256
Maximum configurable length of RX packet: 16128
Maximum configurable size of LRO aggregated packet: 0
Current number of RX queues: 1
Max possible RX queues: 1
Max possible number of RXDs per queue: 4096
Min possible number of RXDs per queue: 32
RXDs number alignment: 8
Current number of TX queues: 1
Max possible TX queues: 1
Max possible number of TXDs per queue: 4096
Min possible number of TXDs per queue: 32
TXDs number alignment: 8
Max segment number per packet: 255
Max segment number per MTU/TSO: 255
Device capabilities: 0x0( )

8.获取MAC地址调用命令绑定arp表 arp -s 192.168.139.133 00:0C:29:A8:09:8A 并ping 192.168.139.133地址

9.打印信息

testpmd> start
icmpecho packet forwarding - ports=1 - cores=1 - streams=1 - NUMA support enabled, MP allocation mode: native
Logical Core 1 (socket 0) forwards packets on 1 streams:
  RX P=0/Q=0 (socket 0) -> TX P=0/Q=0 (socket 0) peer=02:00:00:00:00:00

  icmpecho packet forwarding packets/burst=32
  nb forwarding cores=1 - nb forwarding ports=1
  port 0: RX queue number: 1 Tx queue number: 1
    Rx offloads=0x0 Tx offloads=0x0
    RX queue: 0
      RX desc=256 - RX free threshold=0
      RX threshold registers: pthresh=0 hthresh=0  wthresh=0
      RX Offloads=0x0
    TX queue: 0
      TX desc=256 - TX free threshold=32
      TX threshold registers: pthresh=0 hthresh=0  wthresh=0
      TX offloads=0x0 - TX RS bit threshold=32
testpmd>
tanjun hello world   Port 0 pkt-len=247 nb-segs=1
  ETH:  src=00:0C:29:A8:09:94 dst=FF:FF:FF:FF:FF:FF type=0x0800
  IPV4: src=192.168.139.131 dst=192.168.139.255 proto=17 (UDP)

tanjun hello world   Port 0 pkt-len=247 nb-segs=1
  ETH:  src=00:0C:29:A8:09:94 dst=FF:FF:FF:FF:FF:FF type=0x0800
  IPV4: src=192.168.139.131 dst=192.168.139.255 proto=17 (UDP)

tanjun hello world   Port 0 pkt-len=247 nb-segs=1
  ETH:  src=00:0C:29:A8:09:94 dst=FF:FF:FF:FF:FF:FF type=0x0800
  IPV4: src=192.168.139.131 dst=192.168.139.255 proto=17 (UDP)

代码解析

reply_to_icmp_echo_rqsts(struct fwd_stream<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值