DPDK发包处理流程
(1)CPU读取发送侧描述符tx_ring队列,检查DD标志是否为1,为1则说明发送完毕
(2)针对发送完毕的描述符需要释放该描述符里对应的缓冲区
(3)CPU将准备发送的缓冲区mbuf的虚拟地址填充到描述符sw_ring
(4)CPU通过将准备发送的缓冲区mbuf的虚拟地址转换得到该mbuf里data数据部分的物理地址填充到发送测描述符tx_ring队列 中,并将DD标志清0
(5)DMA控制器读取base寄存器,获取发送侧描述符,根据发送测描述符获取tx_ring队列地址,读取head指针里的元素,判断DD标志释放为0则从描述符中获取数据缓存区地址,通过PCIE总线将数据拷贝到网卡硬件Tx_FIFO缓存中往外发送数据
(6)DMA控制器回写该描述符中队列里DD的标志置1,通知CPU该缓存中数据已成功发送
(7)至此,应用发送数据包完毕
注意:这里有两个非常关键的队列tx_ring、sw_ring,tx_ring描述符里存放的是mbuf里data区的起始物理地址供DMA控制器读取报文(硬件DMA直接操作物理地址,不需要cpu参与);sw_ring描述符里存放的是mbuf的起始虚拟地址供应用写入数据包
代码实现
DPDK发包处理流程相关推荐
- dpdk报文收发流程--理解dma控制器、UIO驱动、描述符空间、mbuf空间、KNI
1. dpdk报文收发流程 1.1 报文接收流程 传统方式接收报文时,当网卡接收到报文后会产生硬件中断,进而报文会通过协议栈,最后到达应用层,这个过程需要内核协议栈的处理. 和传统报文接收不同,当应用 ...
- Linux Kernel TCP/IP Stack — 协议栈发包处理流程
目录 文章目录 目录 协议栈发包处理流程 参考文档 协议栈发包处理流程 以 UDP 数据报为例: 应用层:可以通过 System Call 接口层或文件操作来调用内核函数,BSD socket 层的 ...
- DPDK 交叉编译基本流程
以 arm64为例.下面的内容大部份摘自 DPDK官方文档: http://doc.dpdk.org/guides/linux_gsg/cross_build_dpdk_for_arm64.html ...
- DPDK 报文收发流程(二十五)
一.报文的接收流程 传统方式接收报文时,当网卡接收到报文后会产生硬件中断,进而报文会通过协议栈,最后到达应用层,这个过程需要内核协议栈的处理. 和传统报文接收不同,当应用层想要接收来自网卡的报文时, ...
- DPDK网卡驱动流程总结
本文基于DPDK-16.07.2.Linux 4.4.2分析总结 1 简介 1.1 什么是UIO技术 UIO(Userspace I/O)是运行在用户空间的I/O技术,Linux系统中一般的驱动设备都 ...
- DPDK — 网卡初始化流程(Intel 82599 ixgbe 网卡驱动示例)
目录 文章目录 目录 总览 rte_eth_dev/rte_eth_dev_data 数据结构 rte_eth_dev_count 函数 rte_eth_dev_configure 函数 ixgbe_ ...
- dpdk eal初始化流程梳理
for dpdk-18.11 这里把dpdk的eal初始化流程简单汇总,尽量把每个函数功能介绍详细,持续更新中 rte_eal_init │ ├──rte_cpu_is_supported:检查cpu ...
- DPDK 网卡收包流程
Table of Contents 1.Linux网络收发包流程 1.1 网卡与liuux驱动交互 1.2 linux驱动与内核协议栈交互 题外1: 中断处理逻辑 题外2:中断的弊端 2.linux ...
- linux 内核vxlan收发包流程
1.vxlan口收包处理流程 前面几章详细介绍了vxlan接口的使用,而且已经知道vxlan是 MAC IN UDP中的封装,因此,在解封装之前,一切按照原有流程走,在此复习一下内核收发包流程(驱动层 ...
最新文章
- 用 rpm-ostree 数据库检查更新信息和更新日志的方法
- 用记事本解决js中文乱码问题
- winForm调用HTTP短信接口
- 推荐一款免费的数据库管理工具,比 Navicat 还要好用,功能还很强大
- PPT 下载 | 龙创悦动游臣隽:数据在游戏行业的落地应用实践
- docker容器中安装vim 、telnet、ifconfig, ping命令
- mysql选择索引逻辑_Mysql索引选择逻辑
- 关于21年电赛,这些一定要熟悉!
- aws lambda_四处奔走:初学者遇到AWS Lambda
- Python3 爬虫学习笔记 C14【验证码对抗系列 — 点触验证码】
- 统计分析与R软件-chapter2-5
- Web应用与HTTP协议
- Gym 101206L	Daylight Saving Time 根据年月日计算星期
- hadoop上传文件报错
- 2021年电工(初级)考试试卷及电工(初级)考试平台
- DTU服务器接收软件
- 当代计算机网络技术带来的影响,浅析当代网络技术
- 装了linux的u盘格式化,u盘格式化容量变小了u盘安装linuxcentos
- 通过iis启动服务,会产生C:/inetpub/logs/logsFile产生大量的日志,定期清理
- JavaScript的深浅拷贝