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配置相关推荐

  1. 关于fi dd ler 手机抓包 网卡地址地址_[问题]Android 7.0+使用VirtualXposed+Charles进行抓包

    Android 7.0+使用VirtualXposed+Charles进行抓包(下面以android10为例) 来源: Android 7.0+使用VirtualXposed+Charles进行抓包​ ...

  2. 【Fiddler 问题】解决关于Fiddler 抓包中,手机网络配置代理后,无法上网

    [Fiddler 问题]解决关于Fiddler 抓包中,手机网络配置代理后,无法上网 一.在注册表添加文件 二.配置 FiddlerScript rule 一.在注册表添加文件 1.使用 window ...

  3. 一步步教你为网站开发Android客户端---HttpWatch抓包,HttpClient模拟POST请求,Jsoup解析HTML代码,动态更新ListView...

    本文面向Android初级开发者,有一定的Java和Android知识即可. 文章覆盖知识点:HttpWatch抓包,HttpClient模拟POST请求,Jsoup解析HTML代码,动态更新List ...

  4. 网络抓包工具的开发和实现C++抓包嗅探器

    0.说在前面的话 1) 本文将以一个初学者的角度,一步一步几乎是从0开始讲述如何完成一个基于winpcap+MFC的sniffer(嗅探器)当然我指的"0"并不是指连编程都不会,如 ...

  5. 关于Linux LOOPBACK网口抓包的一个细节

    这个问题其实是我几个月前碰到,只是那时好像还在回忆着什么,心系上海,还没有完全适应这个新环境,加上这个问题也不是什么太深奥的问题,觉得太简单了,就搁置了.今天周末闲来无事就顺便写来来了.加上深圳经常下 ...

  6. 移动端H5开发不了解一下抓包嘛?

    在PC项目开发中,一般会使用Chrome的开发者工具进行调试,亦或是其他浏览器的开发工具进行调试. 在平常开发中,我一般会使用Chrome或者是Safari进行调试. Chrome的功能非常强大,它的 ...

  7. 做游戏开发必须会的抓包方法

    最近加入了一家比较大型的手游开发公司,php是用来写接口的,经常调试需要用到抓包,电脑本地抓包,很多人都会,但是手机抓包呢?现在给大家介绍下手机抓包的方式 首先 先下载Fiddler,自己可以去goo ...

  8. 安卓/Android9.0以上版本使用Charles抓包操作流程

    准备环境: 1.安卓手机(已root) 2.Charles 步骤一 将手机和Charles连接并下载证书: 1.将手机和电脑连接至同一WiFi 2.打开Charles–help–Local IP Ad ...

  9. ios开发防止App被抓包

    ZXRequestBlock 实现iOS应用底层所有网络请求拦截(如ajax请求拦截),包含http-dns解决方法,有效防止DNS劫持,用于分析http,https请求,禁用/允许代理,防抓包 用到 ...

最新文章

  1. Win10年度更新开发必备:VS2015 Update 3正式版下载汇总
  2. 编译安装mysql带boost_编译安装mysql时报缺少boost1.59后,编译安装boost1.59
  3. mysql中pager命令妙用
  4. Node.js做的代理转发服务器
  5. SBO中的manager用户已锁定
  6. 富爸爸系列 -- 《财务自由》学习笔记之三
  7. 1000道Python题库系列分享22(40个填空题)
  8. Elasticsearch--进阶-term_keyword查询---全文检索引擎ElasticSearch工作笔记015
  9. 不良事件总结怎么写_护理不良事件总结分析.doc
  10. python自学网站-自学Python网站推荐 从入门到精通
  11. LINUX内核的进程调度策略
  12. c语言标识符的语法规定,C语言语法规则.doc
  13. GetTickCount 和getTickCount
  14. VS2015下载地址和安装教程(图解)
  15. Java解析魔兽争霸3录像W3G文件(四):解析游戏进行时的信息
  16. 电力系统的常用仿真模块MATLAB/SIMULINK(1)
  17. 关键路径例题图表_计算题专题:关键路径法(CPM)
  18. 自旋锁学习系列(2):TAS锁
  19. 基于Springboot外卖系统01:技术构成+功能模块介绍
  20. php模拟登陆青果教务系统

热门文章

  1. 整理Python lxml读写xml文件详细教程
  2. Oracle 10g 更新操作
  3. 聊聊「无我编程」的十条戒律
  4. 主流区块链共识算法大全
  5. java this 多线程_Java多线程编程的常见陷阱
  6. [WPF源代码]QQ空间相册下载工具
  7. Win11老是提示资源管理器已停止工作怎么解决
  8. 2019年更多优质小程序将有「冒泡」机会
  9. 1355. 杨辉三角
  10. 针对报错 ValueError: When using data tensors as input to a model, you should specify the `steps_per_epoc