pktgen(收发包工具)
本博文主要介绍DPDK测试过程中常用pktgen工具的使用教程和常用命令
打开pktgen
[root@localhost ~]# cd /root/DPDK/dpdk_src/pktgen-3.7.2/
[root@localhost pktgen-3.7.2]# ls
app dnet-echo lib meson_options.txt Pktgen.lua test
cfg docs LICENSE mk_meson README.md themes
changelog.txt gui Makefile pcap scripts tools
CONTRIBUTING.TXT INSTALL.md meson.build PktgenGUI.lua style
运行pktgen
[root@localhost pktgen-3.7.2]# ./tools/pktgen-run.sh
执行界面
./app/x86_64-native-linuxapp-gcc/pktgen -l 1,2-29 -n 4 --proc-type auto --log-level 7 --socket-mem 2048,2048,2048 --file-prefix pg -b 0000:83:00.1 -b 0000:83:00.0 -b 0000:41:00.0 -b 0000:41:00.1 -- -T -P --crc-strip -m [3:4].0 -m [5:6].1 -f themes/black-yellow.theme
Copyright (c) <2010-2019>, Intel Corporation. All rights reserved. Powered by DPDK
EAL: Detected 80 lcore(s)
EAL: Detected 4 NUMA nodes
EAL: Auto-detected process type: PRIMARY
EAL: Multi-process socket /var/run/dpdk/pg/mp_socket
EAL: No free hugepages reported in hugepages-1048576kB
EAL: Probing VFIO support...
EAL: PCI device 0000:01:00.0 on NUMA socket 0
EAL: probe driver: 8086:1521 net_e1000_igb
EAL: PCI device 0000:01:00.1 on NUMA socket 0
EAL: probe driver: 8086:1521 net_e1000_igb
EAL: PCI device 0000:04:00.0 on NUMA socket 0
EAL: probe driver: 15b3:1017 net_mlx5
EAL: PCI device 0000:04:00.1 on NUMA socket 0
EAL: probe driver: 15b3:1017 net_mlx5
EAL: PCI device 0000:41:00.0 on NUMA socket 1
EAL: Device is blacklisted, not initializing
EAL: PCI device 0000:41:00.1 on NUMA socket 1
EAL: Device is blacklisted, not initializing
EAL: PCI device 0000:83:00.0 on NUMA socket 2
EAL: Device is blacklisted, not initializing
EAL: PCI device 0000:83:00.1 on NUMA socket 2
EAL: Device is blacklisted, not initializing
Lua 5.3.5 Copyright (C) 1994-2018 Lua.org, PUC-Rio
>>> Strip CRC in hardware is the default
*** Copyright (c) <2010-2019>, Intel Corporation. All rights reserved.
*** Pktgen created by: Keith Wiles -- >>> Powered by DPDK <<<
Port: Name IfIndex Alias NUMA PCI
0: net_mlx5 4 0 15b3:1017/04:00.0
1: net_mlx5 5 0 15b3:1017/04:00.1
Initialize Port 0 -- TxQ 1, RxQ 1, Src MAC b8:59:9f:3a:c9:7e
Initialize Port 1 -- TxQ 1, RxQ 1, Src MAC b8:59:9f:3a:c9:7f
Port 0: Link Up - speed 100000 Mbps - full-duplex <Enable promiscuous mode>
Port 1: Link Up - speed 100000 Mbps - full-duplex <Enable promiscuous mode>
WARNING: Nothing to do on lcore 2: exiting
WARNING: Nothing to do on lcore 7: exiting
WARNING: Nothing to do on lcore 8: exiting
WARNING: Nothing to do on lcore 9: exiting
WARNING: Nothing to do on lcore 11: exiting
WARNING: Nothing to do on lcore 12: exiting
WARNING: Nothing to do on lcore 13: exiting
WARNING: Nothing to do on lcore 10: exiting
WARNING: Nothing to do on lcore 15: exiting
WARNING: Nothing to do on lcore 16: exiting
WARNING: Nothing to do on lcore 17: exiting
WARNING: Nothing to do on lcore 14: exiting
WARNING: Nothing to do on lcore 20: exiting
WARNING: Nothing to do on lcore 19: exiting
WARNING: Nothing to do on lcore 21: exiting
WARNING: Nothing to do on lcore 18: exiting
WARNING: Nothing to do on lcore 24: exiting
WARNING: Nothing to do on lcore 23: exiting
WARNING: Nothing to do on lcore 25: exiting
WARNING: Nothing to do on lcore 26: exiting
WARNING: Nothing to do on lcore 27: exiting
WARNING: Nothing to do on lcore 29: exiting
WARNING: Nothing to do on lcore 28: exiting
WARNING: Nothing to do on lcore 22: exiting
RX processing lcore: 3 rx: 1 tx: 0
TX processing lcore: 4 rx: 0 tx: 1
RX processing lcore: 5 rx: 1 tx: 0
TX processing lcore: 6 rx: 0 tx: 1
** Version: DPDK 18.11.2, Command Line Interface without timers
Pktgen:/> theme default white white off
Pktgen:/> theme top.spinner cyan none bold
Pktgen:/> theme top.ports green none bold
Pktgen:/> theme top.page white none bold
Pktgen:/> theme top.copyright yellow none off
Pktgen:/> theme top.poweredby blue none bold
Pktgen:/> theme sep.dash blue none off
Pktgen:/> theme sep.text white none off
Pktgen:/> theme stats.port.label blue none bold
Pktgen:/> theme stats.port.flags blue none bold
Pktgen:/> theme stats.port.data blue none off
Pktgen:/> theme stats.port.status green none off
Pktgen:/> theme stats.port.linklbl green none bold
Pktgen:/> theme stats.port.link green none off
Pktgen:/> theme stats.port.ratelbl white none bold
Pktgen:/> theme stats.port.rate white none off
Pktgen:/> theme stats.port.sizelbl cyan none bold
Pktgen:/> theme stats.port.sizes cyan none off
Pktgen:/> theme stats.port.errlbl red none bold
Pktgen:/> theme stats.port.errors red none off
Pktgen:/> theme stats.port.totlbl blue none bold
Pktgen:/> theme stats.port.totals blue none off
Pktgen:/> theme stats.dyn.label blue none bold
Pktgen:/> theme stats.dyn.values green none off
Pktgen:/> theme stats.stat.label magenta none off
Pktgen:/> theme stats.stat.values white none off
Pktgen:/> theme stats.total.label red none bold
Pktgen:/> theme stats.total.data blue none bold
Pktgen:/> theme stats.colon blue none bold
Pktgen:/> theme stats.rate.count blue none bold
Pktgen:/> theme stats.bdf blue none off
Pktgen:/> theme stats.mac green none off
Pktgen:/> theme stats.ip cyan none off
Pktgen:/> theme pktgen.prompt green none off
Pktgen:/> cls
pktgen显示界面
常用设置命令
- 设置所有端口协议数据包协议:set all proto udp
- 为特定端口设置src/dst mac:set 0 dst mac 00:30:64:58:8B:3A
- 为特定端口设置src/dst mac:set 1 src mac 00:30:64:58:8B:3A
- 设置所有端口发包速率(40Gbps):set all rate 40
- 启动特定端口发包:start 0
- 关闭端口发包:stp
- 清屏:clr
range设置
-
设置range所有端口数据包协议:range all proto udp
-
设置range所有端口数据包大小:range all size 1326 1326 1326 0
-
设置特定端口的srcip地址range:range 0 src ip 192.168.0.1 192.168.0.1 192.168.0.3 0.0.0.1
-
启动range:enable all range
-
退出pktgen:quit
欢迎学习交流,如有疑问请指出!