dpdk跑ip fragment和ip reassembly在l2fwd和l3fwd的操作情况
操作dpdk安装编译好之后,加载内核驱动
modprobe igb_uio
modprobe uio
绑定网卡
./dpdk-devbind.py --bind=igb_uio 0000:02:05.0
./dpdk-devbind.py --status
启动l2fwd转发的测试用例(根据二层进行转发)
./dpdk-l2fwd -c 0x3 -n 4 -- -q 1 -p 0x3
./build/l2fwd [EAL options] -- -p PORTMASK [-q NQ -T t]
DPDK EAL的默认参数,必须参数为-c COREMASK -n NUM
COREMASK:一个十六进制位掩码表示分配的逻辑内核数量
或者-l 1,2,3 这个也是表示使用的逻辑内核的数量·················································
NUM:一个十进制整数表示内存通道数量
-p PORTMASK
PORTMASK:一个十六进制位掩码表示分配的端口数量
-q NQ
NQ:表示分配给每个逻辑内核的收发队列数量
-T t
t: 表示打印统计数据到屏幕上的时间间隔,默认为10秒
启动l3fwd转发的测试用例(根据三层进行转发)
./l3fwd -c1 -n4 -- -pf0 -L --config="(4,0,0),(5,0,0)" --parse-ptype
--config="(0,0,1),(1,0,2)"
./build/l3fwd-vf [EAL options] -- -p PORTMASK --config(port,queue,lcore)[,(port,queue,lcore)]
./dpdk-l3fwd -c 0x1 -n 2 -- -p 0xf --config="(0,0,0)" --parse-ptype l3fwd能跑起来的参数
这里的-p是决定加载多少的Ipv4 Ipv6的转发lpm
./dpdk-l3fwd -l 0 -n 4 -- -p 0xf --config="(0,0,0),(1,0,0) " --parse-ptype 参数也能跑起来 就是第一个指定的核数因为是e1000网卡必须是1
./dpdk-l3fwd -l 0 -n 4 -- -p 0xf --config="(0,0,0),(1,0,0) " --eth-dest=0,00:0c:29:bd:cb:82 --eth-dest=1,00:0c:29:54:3b:c5 --parse-ptype
抓包测试结果见test文件,两个测试route环境截图test