DPDK+Pktgen 高速发包测试

参考博客

Pktgen概述

  • Pktgen,(Packet Gen-erator)是一个基于DPDK的软件框架,发包速率可达线速。
  • 提供运行时管理,端口实时测量。
  • 可以控制 UDP, TCP, ARP, ICMP, GRE, MPLS and Queue-in-Queue等包。
  • 可以通过TCP进行远程控制。

Pktgen官网

安装使用过程

  • 版本:Ubuntu 16.04
  • DPDKL 18.02
  • cpu配置:
  • 1092889-20180719225635229-1779612315.png

1092889-20180719225722965-2029477125.png

安装DPDK依赖:

$ git clone git://dpdk.org/dpdk or:git clone http://dpdk.org/git/dpdk
$ git clone git://dpdk.org/apps/pktgen-dpdk or:
$ git clone http://dpdk.org/git/apps/pktgen-dpdk

设置DPDK的环境变量:

$ export RTE_SDK=<DPDKInstallDir>//DPDK的安装目录
$ export RTE_TARGET=x86_64-native-linuxapp-gcc
$ cd $RTE_SDK
$ make install T=x86_64-native-linuxapp-gcc

安装pktgen

$ cd <PktgenInstallDir>//进入pktgen的安装目录
$ make

修改cfg/default

  • 修改网卡的设备号,可在dpdk配置脚本中查询:
# cd dpdk/usertools
# ./dpdk-setup.sh
  • 修改DPDK EAL 的命令行参数

  • 修改Pktgen的命令行参数

description = 'A Pktgen default simple configuration'

# Setup configuration
setup = {
    'exec': (
        'sudo',
        '-E'
        ),

    'devices': (
        '01:00.0 01:00.1' //修改网卡设备PCI号,本机绑定了两张10G网卡
        ),
        
    'opts': (
        '-b igb_uio'
        )
    }

# Run command and options
run = {
    'exec': (
        'sudo',
        '-E'
        ),

    # Application name and use app_path to help locate the app
    'app_name': 'pktgen',

    # using (sdk) or (target) for specific variables
    # add (app_name) of the application
    # Each path is tested for the application
    'app_path': (
        './app/%(target)s/%(app_name)s',
        '%(sdk)s/%(target)s/app/%(app_name)s',
        ),

    'dpdk': (
        '-l 0-2',//使用了三个逻辑核
        '-n 2',//内存通道数为2
        '--proc-type auto',
        '--log-level 7',
        '--socket-mem 1024',//大页为1024
        '--file-prefix pg'
        ),
    
    'blacklist': (
        #'-b 81:00.0 -b 81:00.1 -b 81:00.2 -b 81:00.3',
        #'-b 85:00.0 -b 85:00.1 -b 85:00.2 -b 85:00.3',
        '-b 81:00.0 -b 81:00.1',
        '-b 85:00.0 -b 85:00.1',
        '-b 83:00.0'
        ),
        
    'app': (
        '-T',
        '-P',
        '--crc-strip',
        '-m [1].0',//逻辑核对1应端口号0,逻辑核0号作为主核不可绑定
        '-m [2].1'//逻辑核对1应端口号0,逻辑核0号作为主核不可绑定
        #'-m [19:20].2',
        #'-m [21:22].3'
        ),
    
    'misc': (
        '-f', 'themes/black-yellow.theme'
        )
    }
$ cd <PktgenInstallDir>/tools
$ ./run.py -s default  # setup system using the cfg/default.cfg file
$ cd <PktgenInstallDir>/tools
$ run.py default

若没有出现正确的配置选项,可参照博客:
http://www.cnblogs.com/ZCplayground/p/9328735.html

https://mails.dpdk.org/archives/users/2018-July/003269.html

效果

  • 用网线把两个网卡接口相连,运行
    1092889-20180719225755821-1124565300.png

  • 显示包转发速率到了每秒千万级别,已完全达到高速发包的要求

转载于:https://www.cnblogs.com/vancasola/p/9338982.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值