作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试在 Linux 内核 3.3.2 上编写虚拟网络设备驱动程序。我的驱动程序的某些功能在传输数据包时需要路由信息,因此我使用函数 skb_dst(struct sk_buff *) 来获取 dst_entry 指针。但是无论我做什么,无论我在哪里 ping,每当我尝试时,skb_dst() 总是返回 NULL。我不知道为什么,这个错误让我困惑了一个多星期。谁能帮帮我?
最佳答案
我找到原因了!这是因为在内核中添加了一个标志:IFF_XMIT_DST_RELEASE
,如果分配的虚拟设备的标志设置为0
,内核将在发送时丢弃路由信息>sk_buff
到设备。仍然感谢 Kristof Provost 的回复,很抱歉这么晚才结束这个问题。
关于linux - skb_dst() 返回 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10714459/
我正在尝试在 Linux 内核 3.3.2 上编写虚拟网络设备驱动程序。我的驱动程序的某些功能在传输数据包时需要路由信息,因此我使用函数 skb_dst(struct sk_buff *) 来获取 d
我是一名优秀的程序员,十分优秀!