DPDK2.2.0开发杂记一—— 网口抓包分片禁止及MTU配置
1. 禁止网口抓包分片
DPDK收发包是基础核心模块,网卡需要应用进程进行配置并启动,测试过程中发现DPDK驱动igb_uio抓包可能会出现mbuf串。当网络包比较大时,DPDK驱动会把包进行分片放到一组Mbuf中并进行链接成串,应用进程从接收队列中取出的可能就是Mbuf串,如果要进行深层解析需要应用进程自己进行重组,给应用进程造成负担。在实际应用中我们可以增大Mbuf大小禁止掉DPDK的驱动功能,以简化应用进程处理逻辑并减轻其运行压力。
禁止该功能需要设置参数enable_scatter = 0。
2. 设置MTU
和libpcap抓包一样,我们可以设置支持最大抓包长度(MTU)。DPDK默认MTU值为1500,即使Mbuf size再大,如果包长大于MTU,该包都将会被丢弃并被计数。 增大这个值需要设置参数jumbo_frame = 1以支持大数据包,同时设置max_rx_pkt_len = MBUF_SIZE - 128。注意max_rx_pkt_len不能设置成与Mbuf size一样,否则在初始化接口eth_igb_rx_init()里面会判断并自动打开抓包分片,我们一般设置为比Mbuf size小128字节。
附配置参数如下:
struct rte_eth_conf st_port_conf = {
/**该参数设置网口连接速率, 可以设置为ETH_LINK_SPEED_10[0|00|000], 或者 ETH_LINK_SPEED_AUTONEG 作为自适应模式 */ .link_speed = ETH_LINK_SPEED_AUTONEG;
.rxmode = {
/**该参数设置收包分发模式RSS,配合rss_conf 可以实现上下行对称分发 */
.mq_mode = ETH_MQ_RX_RSS,
.max_rx_pkt_len = MBUF_SIZE - 128,
.split_hdr_size = 0,
.split_hdr_size = 0,
.header_split = 0, /**< Header Split disabled */
.hw_ip_checksum = 1, /**< IP checksum offload enabled */
.hw_vlan_filter = 0, /**< VLAN filtering disabled */
.jumbo_frame = 1, /**< Jumbo Frame Support disabled */
.hw_strip_crc = 0, /**< CRC stripped by hardware */
.enable_scatter = 0, /**< Disable scatter packets rx handler */
},
.rx_adv_conf = {
.rss_conf = {
.rss_key = rss_intel_key,
.rss_hf = ETH_RSS_IP,
},
},
.txmode = {
.mq_mode = ETH_MQ_TX_NONE,
}
};
static U8 rss_intel_key[40] = {
0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A,
0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A,
0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A,
0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A,
0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A, 0x6D, 0x5A,
};
版权声明:本文为博主原创文章,承蒙转载请注明作者和出处https://blog.csdn.net/zangchang/article/details/80079400
DPDK2.2.0开发杂记一—— 网口抓包分片禁止及MTU配置相关推荐
- 关于fi dd ler 手机抓包 网卡地址地址_[问题]Android 7.0+使用VirtualXposed+Charles进行抓包
Android 7.0+使用VirtualXposed+Charles进行抓包(下面以android10为例) 来源: Android 7.0+使用VirtualXposed+Charles进行抓包 ...
- 【Fiddler 问题】解决关于Fiddler 抓包中,手机网络配置代理后,无法上网
[Fiddler 问题]解决关于Fiddler 抓包中,手机网络配置代理后,无法上网 一.在注册表添加文件 二.配置 FiddlerScript rule 一.在注册表添加文件 1.使用 window ...
- 一步步教你为网站开发Android客户端---HttpWatch抓包,HttpClient模拟POST请求,Jsoup解析HTML代码,动态更新ListView...
本文面向Android初级开发者,有一定的Java和Android知识即可. 文章覆盖知识点:HttpWatch抓包,HttpClient模拟POST请求,Jsoup解析HTML代码,动态更新List ...
- 网络抓包工具的开发和实现C++抓包嗅探器
0.说在前面的话 1) 本文将以一个初学者的角度,一步一步几乎是从0开始讲述如何完成一个基于winpcap+MFC的sniffer(嗅探器)当然我指的"0"并不是指连编程都不会,如 ...
- 关于Linux LOOPBACK网口抓包的一个细节
这个问题其实是我几个月前碰到,只是那时好像还在回忆着什么,心系上海,还没有完全适应这个新环境,加上这个问题也不是什么太深奥的问题,觉得太简单了,就搁置了.今天周末闲来无事就顺便写来来了.加上深圳经常下 ...
- 移动端H5开发不了解一下抓包嘛?
在PC项目开发中,一般会使用Chrome的开发者工具进行调试,亦或是其他浏览器的开发工具进行调试. 在平常开发中,我一般会使用Chrome或者是Safari进行调试. Chrome的功能非常强大,它的 ...
- 做游戏开发必须会的抓包方法
最近加入了一家比较大型的手游开发公司,php是用来写接口的,经常调试需要用到抓包,电脑本地抓包,很多人都会,但是手机抓包呢?现在给大家介绍下手机抓包的方式 首先 先下载Fiddler,自己可以去goo ...
- 安卓/Android9.0以上版本使用Charles抓包操作流程
准备环境: 1.安卓手机(已root) 2.Charles 步骤一 将手机和Charles连接并下载证书: 1.将手机和电脑连接至同一WiFi 2.打开Charles–help–Local IP Ad ...
- ios开发防止App被抓包
ZXRequestBlock 实现iOS应用底层所有网络请求拦截(如ajax请求拦截),包含http-dns解决方法,有效防止DNS劫持,用于分析http,https请求,禁用/允许代理,防抓包 用到 ...
最新文章
- Win10年度更新开发必备:VS2015 Update 3正式版下载汇总
- 编译安装mysql带boost_编译安装mysql时报缺少boost1.59后,编译安装boost1.59
- mysql中pager命令妙用
- Node.js做的代理转发服务器
- SBO中的manager用户已锁定
- 富爸爸系列 -- 《财务自由》学习笔记之三
- 1000道Python题库系列分享22(40个填空题)
- Elasticsearch--进阶-term_keyword查询---全文检索引擎ElasticSearch工作笔记015
- 不良事件总结怎么写_护理不良事件总结分析.doc
- python自学网站-自学Python网站推荐 从入门到精通
- LINUX内核的进程调度策略
- c语言标识符的语法规定,C语言语法规则.doc
- GetTickCount 和getTickCount
- VS2015下载地址和安装教程(图解)
- Java解析魔兽争霸3录像W3G文件(四):解析游戏进行时的信息
- 电力系统的常用仿真模块MATLAB/SIMULINK(1)
- 关键路径例题图表_计算题专题:关键路径法(CPM)
- 自旋锁学习系列(2):TAS锁
- 基于Springboot外卖系统01:技术构成+功能模块介绍
- php模拟登陆青果教务系统
热门文章
- 整理Python lxml读写xml文件详细教程
- Oracle 10g 更新操作
- 聊聊「无我编程」的十条戒律
- 主流区块链共识算法大全
- java this 多线程_Java多线程编程的常见陷阱
- [WPF源代码]QQ空间相册下载工具
- Win11老是提示资源管理器已停止工作怎么解决
- 2019年更多优质小程序将有「冒泡」机会
- 1355. 杨辉三角
- 针对报错 ValueError: When using data tensors as input to a model, you should specify the `steps_per_epoc