dpdk-pktgen 安装和基本使用

        快速记录一下 dpdk-pktgen 的安装和基本使用过程。

        前置工作:

        dpdk-pktgen 有独立的 git 仓库,并且可以基于 meson 和 ninja 进行构建,因此安装过程很简单。
        安装过程如下:

$ git clone git://dpdk.org/apps/pktgen-dpdk
$ cd pktgen-dpdk
$ git checkout master
$ meson build
$ cd build
$ ninja
$ ls -l app/pktgen  //编译出来的可执行程序
-rwxr-xr-x 1 root root 477672 10月 19 12:59 app/pktgen

        基本使用方法:

Usage: ./app/pktgen [EAL options] -- [-h] [-v] [-P] [-G] [-T] [-f cmd_file] [-l log_file] [-s P:PCAP_file] [-m <string>] 

        pktgen 支持的命令行参数挺多的,可以通过 pktgen --help 来详细查看。不过它像大多数基于 dpdk 的测试程序一样,命令行参数主要有两部分组成:

  • EAL options
  • pktgen 自有参数

        其中,EAL options 参数部分可以参看 DPDK EAL parameters,最重要的一个参数就是 -l 参数,用它来指定使用的核列表,比如:-l 1,2 或者 -l 1-2,表示使用核 1 和核 2。值得注意的是,pktgen 至少要指定两个核,因为 pktgen 需要一个核与用户进行交互,比如响应测试过程中用户的输入。
        pktgen 自有参数部分最重要的是 -m 参数,用它来指定网口与核之间的对应关系,比如:-m 2.0,表示让核 2 来处理网口 0。值得注意的是,若要指定多个对应关系,则需多次使用 -m 参数。如果要收包,最好也指定一下 -P 参数,表示让所有网口进入混杂模式,以便接收到所有数据包。

        运行效果:

$ ./build/app/pktgen -l 1-3 -- -P -m 2.0 -m 3.1

dpdk-pktgen 安装和基本使用

        可以在上面提供的 "Pktgen:/> " 命令交互行中进行各种设置,pktgen 支持很名命令,具体可以使用 "help" 命令进行查看,下面介绍几个常用的命令:

Pktgen:/> set 0 size 64 // 将网口 0 发包的帧大小设置 64 字节
Pktgen:/> set 0 src ip 192.168.0.1/32 // 将网口 0 发包的源 IP 设置为 192.168.0.1
Pktgen:/> set 0 dst ip 192.168.0.2 // 将网口 0 发包的目的 IP 设置为 192.168.0.2
Pktgen:/> start 0 // 启动网口 0 的发包过程
Pktgen:/> stop 0 // 停止网口 0 的发包过程
Pktgen:/> quit // 退出 pktgen 程序

上一篇:android studio can‘t resolve the symbol R.id.xxxxxxxx,R.layout.xxxxxxxx,报红,但是能编译通过的解决方法


下一篇:使用婚庆公司模拟Runner接口静态代理