转自 https://www.cnblogs.com/zzqcn/p/4902373.html
所有dpdk应用程序都运行在EAL之上,而EAL提供了 -vdev 选项,可能通过它来指定使用libpcap pmd。格式如下:
可以配置多个伪设备(pseudo-ethernet device),每个设备的名称必须以net_pcap开头,然后跟数字或字母。每个设备都可以配置多个流选项(stream options),流选项之前使用逗号隔开,不能有空格符。
2.2.1 流选项
流选项包括:
由上可见,libpcap pmd不仅支持将pcap文件模拟为Rx/Tx的功能,也支持Linux驱动的普通网卡。在使用中我们可以随意组合,比如Rx设为eth0,而Tx设为tx.pcap,或者两者都是eth0或pcap文件。
2.2.2 命令举例
Testpmd:
据之前的官方文档中说,testpmd在开始报文转发前会从每个Rx口收512个报文并丢弃,而使用libpcap pmd时,可以通过—no-flush-rx选项来禁用这个特性。另外,据我试用,--nb-ports=2将port数设为2,否则多个port之间会有影响,不利于测试。
运行后,net_pcap1的Tx对应文件将保存net_pcap0的Rx对应文件中的报文,net_pcap0的Tx对应文件将保存net_pcap1的Rx对应文件中的报文。Rx对应的文件都只会读取一轮。
L2fwd:
再强调一下:--vdev的值字符串,即单引号括起来的内容中,不能有空格,否则会出错。
https://www.cnblogs.com/zzqcn/p/4902373.html
这一步之前,DPDK环境已塔好,pktgen已编译成功,网卡已绑定成功等一系列初始化工作已完成。
命令行参数:-P 和 -m 这两个参数是必要的!
./app/build/pktgen [EAL options] -- \
[-h] [-P] [-G] [-T] [-f cmd_file] \
[-l log_file] [-s P:PCAP_file] [-m ]
-s P: file PCAP packet stream file, 'P' is the port number -f filename Command file (.pkt) to execute or a Lua script (.lua) file
-l filename Write log to filename 写日志
-P Enable PROMISCUOUS mode on all ports 开启混杂模式,必须要的参数
-g address Optional IP address and port number default is (localhost:0x5606)
If -g is used that enable socket support as a server application
-G Enable socket support using default server values localhost:0x5606
-N Enable NUMA support
-T Enable the color output 输出颜色
--crc-strip Strip CRC on all ports
-h Display the help information
参数中,最复杂的是 -m <string>
-m <string>配置端口到逻辑核的映射关系,使用类似BNF类语法.映射的逻辑核要与 [EAL options]中的逻辑核要一致。
如下,也可以用 {} 来代替 [].
[EAL options]里的参数与DPDK基本一样,主要是配置逻辑核掩码和内存通道数。这里不详解。以上是命令行参数,下面介绍运行时参数。
详细可参考官网中的资料: pktgen运行时参数
Pktgen:/>help #有帮助提示
这里只介绍最常用的命令,最常用的配置就是MAC,IPv4|IPv6|ARP,TCP|UDP|ICMP,SPORT|DPORT,PROTO,SEQ等
这些配置可以用 set命令来完成。
除了set命令,常用的还有显示主页面,page 0 | page main
加载和保存 .lua脚本的配置信息 load | save <path-to-file>
启动/结束发包:start | stop <portlist>.
其实不用刻意去记命令怎么使用,按两次Tab键会有命令使用的提示。我现在用的是版本是3.1.2,最新版已到了3.5.0,所以一些配置命令会有些不一样,比如配置ip时,<portlist>的顺序就不一样。以上配置是基于最新版来的,如果在实际中发现按上面的命令不对,请先确认是否为最新版.其实只要大致记住一些命令就行,实际使用时可以按两次Tab键就会有提示,也可以把配置保存成.lua文件,下一次运行时候,直接加载就不用再配置了。由于对lua脚本不太熟,关于lua脚本的使用,等使用熟悉了再来深入讨论一些功能。最后,放一张运行时候的图来压压惊。。。
运行命令:./app/app/x86_64-native-linuxapp-gcc/pktgen -l 1-4 -n 4 -- -P -T -m "[1:2].0,[3:4].1"
祝大家生活愉快。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)