pktgen-dpdk向testpmd发送数据的测试

一、前言

pktgen-dpdk是用于对DPDK进行高速数据包测试的工具,本文将介绍如何编译以及使用pktgen。

转载自https://blog.csdn.net/cloudvtech

二、编译pktgen-dpdk

2.1 版本信息:

OS: CentOS 7.2.1511 
DPDK: dpdk-stable-17.08.1 (https://fast.dpdk.org/rel/dpdk-17.08.1.tar.xz)
PKTGEN: pktgen-3.4.2 (http://dpdk.org/browse/apps/pktgen-dpdk/snapshot/pktgen-3.4.2.tar.gz)
下载

wget http://dpdk.org/browse/apps/pktgen-dpdk/snapshot/pktgen-3.4.2.tar.gz
tar -zxvf pktgen-3.4.2.tar.gz
cd pktgen-3.4.2
编译

export RTE_SDK=/root/dpdk-stable-17.08.1
export RTE_TARGET=x86_64-native-linuxapp-gcc
 
make

可能报错:dpdk-stable-17.08.1/x86_64-native-linuxapp-gcc/.config: No such file or directory

修改报错的Makefile中的路径,调查发现dpdk的.config路径是dpdk-stable-17.08.1/build/.config,可能改动过。
and the binary is at app/x86_64-native-linuxapp-gcc/pktgen
2.2 试运行

VM配置为4个core、4GB内存

# core 0 as master, 1 and 2 as slave
./app/x86_64-native-linuxapp-gcc/pktgen -l 0-2 -n 3 -- -P -m "[1].0, [2].1"

转载自https://blog.csdn.net/cloudvtech

三、pktgen send packet to testpmd, 1 DPDK NIC in promiscuous mode

3.1 测试环境

两个虚拟机VM1和VM2,每个虚拟机两个网卡,一个给DPDK用,一个给管理用。

VM1: pktgen(port 0 send out) -> VM2: testpmd(port 0 rxonly)
3.2 虚拟机VM1上面的配置运行pktgen

IP: 192.168.166.131
DPDK NIC ens34: 00:0c:29:3d:d7:10
运行pktgen

cd dpdk-stable-17.08.1
echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
 
modprobe uio_pci_generic
modprobe uio
modprobe vfio-pci
insmod build/kmod/igb_uio.ko 
 
ifconfig ens34 down 
 
./usertools/dpdk-devbind.py --bind=igb_uio  02:02.0 
# run pktgen
cd ../pktgen-3.4.2
./app/x86_64-native-linuxapp-gcc/pktgen -l 0-1 -n 3 -- -P -m "[1].0"
set 0 dst mac 00:0C:29:D0:46:4C
set 0 count 100000
str
# run pktgen
cd ../pktgen-3.4.2
./app/x86_64-native-linuxapp-gcc/pktgen -l 0-1 -n 3 -- -P -m "[1].0"
set 0 dst mac 00:0C:29:D0:46:4C
set 0 count 100000
str 


# test with 10000000
set 0 dst mac 00:0C:29:D0:46:4C
set 0 count 10000000
str


3.3 虚拟机VM2上面的配置运行testpmd

IP: 192.168.166.131
DPDK NIC ens34: 00:0c:29:d0:46:4c
#setup
cd dpdk-stable-17.08.1
echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
 
modprobe uio_pci_generic
modprobe uio
modprobe vfio-pci
insmod build/kmod/igb_uio.ko 
 
ifconfig ens34 down 
 
./usertools/dpdk-devbind.py --bind=igb_uio  02:02.0 
 
# run testpmd
cd dpdk-stable-17.08.1
./build/app/testpmd -l 0-1 -n 1  -- -i
set fwd rxonly
show port stats all
clear port stats all
start
 
# test with 10000000 


转载自https://blog.csdn.net/cloudvtech
四、pktgen send packet to testpmd, 1 DPDK NIC no promiscuous mode

4.1 测试环境与上一节描述的类似

4.2 VM1上面运行pktgen

IP: 192.168.166.131
DPDK NIC ens34: 00:0c:29:3d:d7:10
 
# setups
1. huge memory
2. uio kernel module
3. bind NIC to DPDK
 
# run pktgen
cd ../pktgen-3.4.2
./app/x86_64-native-linuxapp-gcc/pktgen -l 0-1 -n 3 -- -P -m "[1].0"
set 0 dst mac 00:0C:29:D0:46:4C
set 0 count 1000000
set 0 rate 1
str


4.3 VM2上面的设置

IP: 192.168.166.131
DPDK NIC ens34: 00:0c:29:d0:46:4c
 
# setups
1. huge memory
2. uio kernel module
3. bind NIC to DPDK
 
# run testpmd
cd dpdk-stable-17.08.1
./build/app/testpmd -l 0-1 -n 1  -- -i
select do not enable promiscuous mode 

set fwd rxonly
show port stats all
clear port stats all
start


转载自https://blog.csdn.net/cloudvtech
--------------------- 
作者:cloudvtech 
来源:CSDN 
原文:https://blog.csdn.net/cloudvtech/article/details/80359825 
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值