Pktgen-DPDK使用说明

Pktgen-DPDK使用说明

安装配置

获取源码

# cd
# 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=/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_SDKRTE_TARGET两个环境变量的值(同dpdk配置)存在有效。

# cd examples/pktgen

# make

 

2.      配置脚本

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

# 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的收包状态

你可能感兴趣的:(工具安装)