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配置:
安装DPDK依赖:
- DPDK安装依赖项合集 环境合集
- 安装DPDK:Quick Start
$ 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
效果
用网线把两个网卡接口相连,运行
显示包转发速率到了每秒千万级别,已完全达到高速发包的要求
转载于:https://www.cnblogs.com/vancasola/p/9338982.html
DPDK+Pktgen 高速发包测试相关推荐
- dpdk pktgen发包工具使用
(免费订阅,永久学习)学习地址: Dpdk/网络协议栈/vpp/OvS/DDos/NFV/虚拟化/高性能专家-学习视频教程-腾讯课堂 更多DPDK相关学习资料有需要的可以自行报名学习,免费订阅,永久学 ...
- 官宣 加速科技与思特威联合开发高速图像采集测试系统
近日,杭州加速科技有限公司(以下简称"加速科技")将与思特威(上海)电子科技股份有限公司(以下简称"思特威")展开进一步深入合作,共同开发用于超高分辨率和超高帧 ...
- 2019款艾力绅的噪音测试软件,本田艾力绅高速噪音测试
本田艾力绅高速噪音测试结果为70分贝左右,属正常情况.针对艾力绅噪音大的解决方案如下:可先检查轮胎,看是否需要更换.能使发动机声音变大的因素有很多,首先先确定一下是否有别的异响还是跟正常工作的声音一样 ...
- sender通用收发包测试工具
sender工具是通用的发包工具,支持xml文件,在使用sender工具之前需要先把头文件中的结构体转化成xml文件,然后进一步使用sender工具实现发包功能.下面将详细描述此工具的使用: 1获取结 ...
- 基于Python的收发包测试
该测试主要目的是为了做自动发包获取相应服务器数据.数据全部采用HTTP的post方法传输,因此可以作为一个基础练手. 主要分为两大部分,储存用的json文件(用的是D:/Documents/SAVE_ ...
- DPDK l2fwd收发包思维导图
- 简户检测 | 上海可靠性——电子胶带剥离力测试、胶带初粘力试验、胶黏剂剪切强度试验、高速剥离力测试、拉力测试
拉力试验机是用来对材料进行静载.拉伸.压缩.弯曲.剪切.剥离等力学性能试验用的机械加力的试验机,适用于塑料板材.管材.异型材,塑料薄膜及橡胶.电线电缆等材料的各种物理机械性能测试为材料开发,为物性试验 ...
- 虚拟机安装dpdk 惊醒测试吗_基于KVM的SRIOV直通配置及性能测试
SRIOV介绍.VF直通配置,以及包转发率性能测试 小慢哥的原创文章,欢迎转载 目录 ▪ 1. SRIOV介绍 ▪ 2. 环境说明 ▪ 3. 开启SRIOV ▪ 4. 生成VF ▪ 5. VF直通 ▪ ...
- 在单个虚拟机中搭建DPDK测试环境
目前网络上关于如何测试DPDK应用程序的教程很多都需要用到物理硬件,在研究初期的时候显得不是那么方便.因此,我希望通过这篇博客,和大家分享一种纯虚拟的方式,教你如何从0开始,仅使用一台虚拟机搭建出DP ...
最新文章
- c语言的发展8个过程,c语言发展过程.pptx
- vbs之CurrentDirectory
- windows系统内实现端口转发
- SQLLite (一)基本介绍
- 如何在 C# 中使用 FTP 上传文件
- php 一键登录插件,FastAdmin一键管理插件
- 易语言mysql验证_易语言MySql注册登录
- 百度SEO最新强引蜘蛛软件工具
- 【课程】MIT最新深度学习课程集
- 视频云服务的技术现状与发展探讨
- 一张思维导图完成淘宝精细化运营
- centos7 播放网页flash视频
- 新特效火爆抖音!各路神仙齐唱《蚂蚁呀嘿》,网友:短短几秒需一生来治愈
- Apache的Order Allow,Deny 详解
- Java程序设计 多线程 基础知识题
- ChatGPT这是要抢走我的饭碗?我10年硬件设计都有点慌了
- P6770 [USACO05MAR]Checking an Alibi 不在场的证明(spfa)
- Python基础教程—私有化
- synergy一个鼠标控制多个电脑,synergy怎么用?synergy配置教程
- c语言指令文件命名,C语言--在命令行输入文件名字并打印文件内容
热门文章
- django异常日志_【python小随笔】Django+错误日志(配置Django报错文件指定位置)...
- response对象设置返回状态_postman 设置全局变量
- rto初始化和计算_TCP系列13—重传—3、协议中RTO计算和RTO定时器维护
- pccad自定义图框_(PCCAD自定义标题栏详细方法.doc
- php 删除单个文件大小,php删除指定大小的jpg文件
- NYOJ 27 大数阶乘
- Qt异常结束程序无法重新运行
- 从WebRtc学习RTCP协议
- 对于enable_shared_from_this、shared_from_this使用笔记
- C++多线程快速入门(三):生产者消费者模型与条件变量使用