Rx Desc Register是与接收描述符环有关的有4个寄存器:

RDBA存放描述符缓冲的首地址,作为基地址共64位包括各32位的高低地址, 

RDH和RDT是头尾指针,存放相对基址的偏移量,RDH的值由硬件增加,表示指向下一次DMA将用的描述符
RDT由软件增加 表示下一次要处理并送交协议栈的有关描述
RDLEN:为缓冲区分配的总空间的大小
上述寄存器的初始化在
e1000_open->e1000_configure->e1000_configure_rx函数中设置

Rx Desc Table是Rx描述符环形队列

在e1000_open->e1000e_setup_rx_resources->e1000_alloc_ring_dma函数中申请,这个队列是物理地址连续的存放的是rx_desc,desc中存放报文DMA的目的地址,即skb->data,由于网卡DMA操作需要的地址是物理地址,所以desc存放的是skb->data DMA映射后的地址,经过dma_map_single映射

skb缓存:存放报文的缓存

skb缓存初次申请流程e1000_open->e1000_configure->e1000_alloc_rx_buffers->__netdev_alloc_skb_ip_align

收包过程中e1000_clean_rx_irq->e1000_alloc_rx_buffers->__netdev_alloc_skb_ip_align

参考:http://www.cnblogs.com/gogly/archive/2012/06/10/2541573.html

https://titenwang.github.io/2017/04/16/intel-82599-receive-packet/

e1000驱动收包描述符和skb相关推荐

  1. 【无线】【流程】QCA无线驱动收包流程分析

    概述: 无线驱动的收包过程是基于中断的处理方式.在准备接收数据之前,驱动需要先进行初始化接收数据使用到的相关结构( sc_rxbuf和rxfifo ).当数据包到达时,硬件会首先进行 DMA,完成以后 ...

  2. UVC摄像头(2)驱动层——UVC描述符参数设置

    接着上一篇UVC摄像头(1) composite_gadget_bind(cdev); 我们绑定它的函数是这个 webcam_bind(struct usb_composite_dev *cdev) ...

  3. MTK eCos系统的有线驱动收包流程

    驱动设备注册 如下,注册了ra305x_eth_netdev1,关联ra305x_eth_sc1方法,ra305x_eth_sc1定义时关联了eth_drv_funs.if_ra305x_init将在 ...

  4. DPDK 网卡收包流程

    Table of Contents 1.Linux网络收发包流程 1.1 网卡与liuux驱动交互 1.2  linux驱动与内核协议栈交互 题外1: 中断处理逻辑 题外2:中断的弊端 2.linux ...

  5. dpdk 收发包问题案例:使用不匹配的收发包函数触发的不收包问题定位

    问题现象 业务程序使用 x710 网卡,收发一万多个巨帧包后就无法正常收包,查看网卡收发包统计发现 imissed 字段一直增加,问题必现. 环境信息 dpdk 版本 dpdk-16.04 网卡 pc ...

  6. Linux网络协议栈:网卡收包分析

    Table of Contents 网卡收包 一,框架 二,初始化 三,驱动收包 四,内核处理 参考文章 推荐阅读 网卡收包 内核网络模块如何初始化? 内核如何通过网卡驱动收发数据包? 驱动收到的数据 ...

  7. ixgbe网卡驱动 Ⅳ----收发包流程详解

    目录 1 网卡队列收包流程概述 2 ixgbe_ring 结构 3 ixgbe 驱动收包流程 3.1 硬件中断入口 ixgbe_msix_clean_rings/ixgbe_intr 3.2 软中断入 ...

  8. 网络收包流程-收包函数__netif_receive_skb的核心函数__netif_receive_skb_core(三)

    调用关系:netif_receive_skb-->netif_receive_skb-->netif_receive_skb_internal(->__netif_receive_s ...

  9. dpdk报文收发流程--理解dma控制器、UIO驱动、描述符空间、mbuf空间、KNI

    1. dpdk报文收发流程 1.1 报文接收流程 传统方式接收报文时,当网卡接收到报文后会产生硬件中断,进而报文会通过协议栈,最后到达应用层,这个过程需要内核协议栈的处理. 和传统报文接收不同,当应用 ...

最新文章

  1. 麦肯锡AI应用报告:深度学习是蓝海还是深坑?
  2. 关于matlab中的梯度使用
  3. LCA+差分【p4427】[BJOI2018]求和
  4. python做自动化测试的优点_乐搏讲自动化测试-python语言特点及优缺点(5)
  5. 编程求一个后缀表达式的值
  6. rpc wmi 服务不可用_golang 基础(5) RPC
  7. 爱奇艺数据中台负责人马金韬:数据中台建设与应用
  8. c++ dll返回容器_Windows x86 Shellcode开发:寻找Kernel32.dll地址
  9. speech开源框架_微软SAPI(The Microsoft Speech API):让你的软件能说会道
  10. centos 安装 Pip 的方法总结
  11. office2013打开出现配置进度
  12. ERP员工入职登记(五)
  13. aspcms用mysql_aspcms增加手机版支持与电脑公用一个后台
  14. 【Mysql】留存率指标计算
  15. mysql 重做日志原理_MySQL-重做日志 redo log -原理
  16. Android电池信息的获取
  17. 电子邮件营销与MailChimp。它是适合你
  18. Web开发者的实用网址
  19. C++Primer阅读笔记
  20. 读书笔记 | 张五常 经济解释 (卷一) 科学说需求

热门文章

  1. Live_2014/12/21
  2. UI设计/GUI开发-入门界面设计
  3. 复旦大学计算机首席科学家,复旦大学研究生导师介绍:汤其群-中公研招网
  4. 计算机应用能力考试是指,2019年计算机应用能力考试报考指南:考试介绍
  5. 2022年PMP报考指南
  6. poi实现多个word文档合并,加超简单分页教程
  7. 计算机中级审计职称考试试题,历年中级审计师考题
  8. Sigma-Delta数模转换器的设计与实现
  9. 奥迪专业诊断维修服务器断网,常见奥迪MMI系统故障解决方法
  10. mysql自愈_云数据库时代的 Db2 自愈系统