pktgen使用说明(转发)

Pktgen-DPDK使用说明
安装配置
获取源码
# cd<InstallDir>
# exporthttps_proxy=https://proxy.austin.hp.com:8080
# gitclone https://github.com/pktgen/Pktgen-DPDK.git
Ubuntu14.04,pktgen2.7.7 ,DPDK1.7.1
注:Pktgen-DPDK/dpdk/example目录中包含有pktgen源码

编译安装
Build DPDK
1.      设置运行时环境

# sudo apt-get install libpcap-dev
# export RTE_SDK=<installDir>/Pktgen-DPDK/dpdk
# export RTE_TARGET=x86_64-pktgen-linuxapp-gcc
2.      编译安装

# cd $RTE_SDK
# ./tools/setup.sh
选择安装x86_64-pktgen-linuxapp-gcc,然后配置hugepagemappings for non-NUMA systems。安装成功后在dpdk目录下会出现x86_64-pktgen-linuxapp-gcc文件夹。

Build pktgen
1.      编译安装

构建pktgen时确保RTE_SDK、RTE_TARGET两个环境变量的值(同dpdk配置)存在有效。

# cd examples/pktgen

# make

2.      配置脚本

在pktgen目录下,setup.sh和doit.sh两个脚本文件需要根据自身系统来配置。

扫描二维码关注公众号,回复: 10627336 查看本文章

# lspci | grep Ethernet //
查看以太网端口信息
# name=`uname -n`       //
获取主机名
setup.sh脚本主要用来a.检查环境变量和hugepages的设置; b.加载uio、igb_uio和rte_kni三个模块;c.绑定绑定网卡。在环境变量设置正确的情况下b会正确执行。需要手动配置的是c,绑定网卡。如node3上的配置:

name=`uname -n`
if [ $name == "node3" ]; then
$sdk/tools/dpdk_nic_bind.py -b igb_uio 01:00.0 06:00.0
fi
doit.sh脚本是设置pktgen运行参数并启动

name=`uname -n`
if [ $name == "node3" ]; then
./app/build/pktgen -c f -n 3 --proc-type auto --socket-mem 256,256 --file-prefix pg -b 0000:00:19.0  -- -T -P -m "[1:3].0, [2:4].1" -f test/set_seq.lua
fi
注:

-c                是指选择的core的掩码,f等于1111也就是选择  1 、 2 、3 core; 

--proc-type        选择的auto  ,如果是当前系统第一执行的dpdk相关的程序,选择primary模式,如果是第二是secondary 模式;

--file-prefix  pg    设置/mnt/huge/内存分配模块的文件名前缀;

-p 0x14          0x14等于    00010100  , 选择你当前系统的其中2块intel相关网卡端口;

-P               使能网络混装模式,

-m "2.0, 3.1"       是指一个矩阵模型,2.0是指,在2号lcore上绑定的端口0 , 3.1是指在lcore3上绑定端口1

-f test/set_seq.lua  导入pktgen的执行配置文件;在执行pktgen时,利用配置产生数据包;

安装指导:https://github.com/Pktgen/Pktgen-DPDK/

测试举例
 +-----------+          +-----------+

   |node0    |          | node3     |

   |       eth1 +--------+ eth2      |

   |            |          |            |

   |            |          |            |

   +-----------+          +-----------+

Eth1与Eth2网线直连,node0和node3编译安装dpdk和pktgen。在dpdk/example/pktgen/目录下先后执行setup.sh和doIt.sh.

Pktgen参数选择及运行时命令文档:http://pktgen.readthedocs.org/en/latest/commands.html

执行./setup.sh输出如下:

执行./doit.sh输出如下

在node3一端执行

Pktgen>start 0   //
端口
0
开始发包
通过当前窗口可以监控发包状态

Node0一端可以查看端口2的收包状态
————————————————
版权声明:本文为CSDN博主「jhxifeng」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/jhxifeng/article/details/45101805

猜你喜欢

转载自www.cnblogs.com/gaosq/p/12666678.html