IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> Generic XDP Hook -> 正文阅读

[网络协议]Generic XDP Hook

上一篇文章讲过bpf_prog_run_xdp是XDP 程序的最终调用函数,想要跟踪Generic XDP的代码可以从该函数入手。很显然你不应该从driver/,而是已改在net/目录下检索。

jensonqiu@Bing$ grep -rn "bpf_prog_run_xdp" net
net/core/dev.c:4349:	act = bpf_prog_run_xdp(xdp_prog, xdp);

稍微过滤一下真相就呼之欲出了,函数的调用关系如下:

bpf_prog_run_xdp
netif_receive_generic_xdp
do_xdp_generic
netif_rx_internal/netif_receive_skb_internal/netif_receive_skb_list_internal
netif_receive_skb
ixgb_clean_rx_irq //Send received data up the network stack

从调用关系上很容易推导出 Generic XDP的Hook点是在网卡中断的下半部。也即是在网卡软中断的收包流程中,软中断收到报文后直接传递给网络协议栈。

网卡的两种工作模式

网卡有两种工作模式:

1) 软中断收包模式,该机制的特点是直接在软中断函数将报文传递到网络协议栈。

2)软中断唤醒触发轮询模式(NAPI),该机制的特点是在软中断函数中唤醒网卡驱动注册的poll函数,通过poll函数轮询收包。

API 是一种新技术,目前不是所有网卡驱动都支持这种能力,你如果想确定网卡是不是支持NAPI,有很多方式,其中一种就是查一下网卡驱动是否有实现xxxx_poll函数,比如ixgbe的驱动实现了ixgbe_poll函数。

这两种模式分别对应了XDP的 Generic XDP 和 Native XDP模式。

两种模式的代码汇总点其实都在软中断函数中,Generic XDP是在网卡不支持Native XDP模式时候,通过在ixgb_clean_rx_irq函数中调用netif_receive_skb实现,如果支持Native XDP模式则是通过调用网卡实现的xxxx_poll函数实现。

讲到这里,你肯定已经清楚Generic XDP、Native XDP的挂载点差异性了,如果还有不懂的地方可以连续我,我们单独交流。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-02-24 15:41:42  更:2022-02-24 15:42:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年10日历 -2024/10/5 13:21:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码