pktgen-dpdk 使用筆記

pktgen-dpdk 使用筆記

安裝

yum install gcc libpcap-devel kernel-devel kernel-headers
TOPDIR=/devel
mkdir -p $TOPDIR
cd $TOPDIR
git clone http://dpdk.org/git/dpdk
git clone http://dpdk.org/git/apps/pktgen-dpdk

export RTE_SDK=$TOPDIR/dpdk
export RTE_TARGET=x86_64-native-linuxapp-gcc

$ cd $RTE_SDK
$ make install T=x86_64-native-linuxapp-gcc


$ cd $TOPDIR/pktgen-dpdk
$ make

示例:
綁定igb_uio(mlx4/mlx5無需綁定)後

./pktgen  -c 0xffff --socket-mem=5120,5120 -w 03:00.0 -w 03:00.1 -n 2 -r 2 -- --crc-strip -P -m [1:2-15].0 -T -N

注意事項
1. pktgen 支持單一、範圍、隨機、序列多重數據流發送模式,每種模式都擁有自己的packet buffer。所以爲每種模式啓用不同的配置,並啓用模式(enable port-id mode),默認啓用爲單一數據流放方式;
2. pktgen 最小要求2個CPU纔可以運行,0核用於處理命令行&計時器屏幕刷新,其他核用於發送&接收數據報文;
3. pktgen一定要在與pktgen.lua文件同一目錄下運行,即pktgen的文件夾中運行;

single - 單一地址流模式

set 0 dst mac 11:22:33:44:55:66
set 0 dst ip 192.168.11.1
set 0 src ip 192.168.10.1/24
str

range - 指定地址範圍多流模式

enable 0 rang
page rage
set 0 dst ip 192.168.20.3
range 0 dst ip 192.168.20.3 192.168.20.3 192.168.20.50 0.0.0.1
set 0 src ip 192.168.30.3/24
range 0 src ip 192.168.30.3 192.168.30.3 192.168.30.50 0.0.0.1
range 0 size 64 64 64 0
str
page stats

sequence - 序列多重數據流模式

sequence <seq#> <portlist> dst <Mac> src <Mac> dst <IP> src <IP> sport <val> dport <val> ipv4|ipv6 udp|tcp|icmp vlan <val> pktsize <val> [teid <val>]
sequence <seq#> <portlist> <dst-Mac> <src-Mac> <dst-IP> <src-IP> <sport> <dport> ipv4|ipv6 udp|tcp|icmp <vlanid> <pktsize> [<teid>]
- Set the sequence packet information, make sure the src-IP has the netmask value eg 1.2.3.4/24
page seq
seq 0 all 0000:4455:6677 0000:1234:5678 10.11.0.1 10.10.0.1/16 5 6 ipv4 udp 1 128 0
seq 1 all 0000:4455:6677 0000:1234:5678 10.11.0.1 10.10.2.1/16 5 6 ipv4 udp 1 128 3
set all seqCnt 2
str
page stats

random - 隨機流模式

set port-id rnd idx offset bitmask

發送隨機流, 隨機源地址(offset 26) + 隨機源端口(offset 34);

page rnd
enable 0 random
set 0 rnd 0 26 ........XXXXXXXXXXXXXXXXXXXXXXXX
set 0 rnd 1 34 XXXXXXXXXXXXXXXX................
str
page stats
page rnd
enable all random
set all rnd 0 26 ........XXXXXXXXXXXXXXXXXXXXXXXX
set all rnd 1 34 XXXXXXXXXXXXXXXX................
page main
str

參考

pktgen-dpdk Doc

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章