pktgen+dpdk官方指导文档: Getting Started with Pktgen — Pktgen 3.2.4 documentation
pktgen源码:pktgen-dpdk - Traffic generator powered by DPDK
dpdk源码:DPDK
文件:dpdk-19.08.2 pktgen-19.12.0
安装:
1、编译DPDK库
cd /usr/src/dpdk
export RTE_SDK=/usr/src/dpdk
export RTE_TARGET=x86_64-native-linuxapp-gcc
export EXTRA_CFLAGS='-O0 -g'
make install T=x86_64-native-linuxapp-gcc
2、编译pktgen
cd /usr/src//pktgen
make
安装pktgen make报错:
解决:pktgen.conf 文件里是dpdk lib库路径
export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig
ldconfig
安装pktgen make报错:
解决:下载https://www.lua.org/ftp/lua-5.3.6.tar.gz
tar xvf lua-5.3.6.tar.gz
cd lua-5.3.6
make linux
make install
lua make linux报错:
解决:yum -y install libtermcap-devel ncurses-devel libevent-devel readline-devel
安装pktgen make报错:
解决:yum -y install libpcap libpcap-devel
3、安装vfio_pci
modprobe vfio_pci
4、绑定网卡eth0( 0000:1a:00.1)
/usr/src/dpdk/usertools/dpdk-devbind.py -b vfio-pci 0000:1a:00.1
5、启动pktgen
/usr/src//pktgen/app/x86_64-native-linuxapp-gcc/app/pktgen -c 0x3 -n 3 --proc-type auto --socket-mem 512 -- -P -T -m '[1:1].0'
启动参数参考:Running Pktgen — Pktgen 3.2.4 documentation
6、基本命令
输入help可以打印帮助信息,0是port的编号
Pktgen command line directory format — Pktgen 3.2.4 documentation
page main 操作(单ip 单vlan 单mac操作),默认进入page main
start 0 | 0 port发包,收包是默认动作 |
stop 0 | 0 port停止发包 |
set 0 dst mac 00:32:50:91:33:20 | 设置dst mac |
set 0 dst ip 192.168.10.1 | 设置目的ip |
set 0 src ip 192.168.10.3/24 | 设置源 ip |
enable 0 vlan | 开启vlan |
set 0 vlan 1001 | 设置vlan id |
set 0 size 512 | 设置包大小 |
set 0 rate 20 | 设置最大发送速率的百分比(全速是1400万pps) |
page range操作(多ip 多vlan 多mac操作), page range 进入此页面
enable all range 或者enable <port> range | 开启range后,才能发送变化流 |
range <portlist> src|dst mac <SMMI> <etheraddr> - Set destination/source MAC address e.g: range 0 src mac start 00:00:00:00:00:00 range 0 dst mac max 00:12:34:56:78:90 or range 0 src mac 00:00:00:00:00:00 00:00:00:00:00:00 00:12:34:56:78:90 00:00:00:01:01:01 | 设置mac范围 |
range <portlist> src|dst ip <SMMI> <ipaddr> - Set source IP start address e.g: range 0 dst ip start 0.0.0.0 range 0 dst ip min 0.0.0.0 range 0 dst ip max 1.2.3.4 range 0 dst ip inc 0.0.1.0 or range 0 dst ip 0.0.0.0 0.0.0.0 1.2.3.4 0.0.1.0 | 设置ip范围 |
range <portlist> proto tcp|udp - Set the IP protocol type | 设置协议 |
range <portlist> src|dst port <SMMI> <value> - Set UDP/TCP source/dest port number or range <portlist> src|dst port <start> <min> <max> <inc> | 设置端口范围 |
range <portlist> vlan <SMMI> <value> - Set vlan id start address or range <portlist> vlan <start> <min> <max> <inc> | 设置vlan范围 |
range <portlist> size <SMMI> <value> - Set pkt size start address or range <portlist> size <start> <min> <max> <inc> | 设置pkt size范围 |