DPDK+Pktgen 高速發包測試

參考博客

Pktgen概述

  • Pktgen,(Packet Gen-erator)是一個基於DPDK的軟件框架,發包速率可達線速。
  • 提供運行時管理,端口實時測量。
  • 能夠控制 UDP, TCP, ARP, ICMP, GRE, MPLS and Queue-in-Queue等包。
  • 能夠經過TCP進行遠程控制。

Pktgen官網html

安裝使用過程

  • 版本:Ubuntu 16.04
  • DPDKL 18.02
  • cpu配置:

安裝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 的命令行參數linux

  • 修改Pktgen的命令行參數git

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.htmlapp

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

效果

  • 用網線把兩個網卡接口相連,運行 socket

  • 顯示包轉發速率到了每秒千萬級別,已徹底達到高速發包的要求ui

相關文章
相關標籤/搜索