免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4472 | 回复: 14
打印 上一主题 下一主题

[网络子系统] dst_entry求教 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-05-21 15:34 |只看该作者 |倒序浏览
虚拟网卡驱动Snull相信不少人都试过吧,现在我有一个疑问想请教各位。

我在2.6.22内核上跑snull,在snull_tx()函数里面加了一句:printk("%lu\n", skb->dst);ping的时候,打印出来是一个长整型地址,很正常。
而在3.3.2内核上跑,同样在snull_tx()函数里面加一句:printk("%lu\n", skb_dst(skb));ping的时候,打印出来是0,对此我深表不解

不知道哪位能解释一下为什么?在下深表感谢。。。


论坛徽章:
0
2 [报告]
发表于 2012-05-21 17:47 |只看该作者
回复 1# jinrong9056


    啊?为啥?你在别的网卡上试试呢?

论坛徽章:
0
3 [报告]
发表于 2012-05-21 18:02 |只看该作者
回复 2# 灌水菜鸟

最近在做一个项目,用的3.3.2的内核。网卡驱动的发送函数里面需要用到sk_buff的dst_entry的内容,却发现skb_dst(skb)总是NULL,不知道为什么。。。

真实的网卡我不知道怎么才能看到内核给网卡的sk_buff数据,请问你有什么建议么?

谢谢你的回复


   

论坛徽章:
0
4 [报告]
发表于 2012-05-21 22:13 |只看该作者
先找到相应的驱动,然后找到它发送数据包的函数接口,现在已经改名字了,具体叫啥记不清了,好像是有start xmit之类的,具体你找一找吧,你查一下net_device_ops的定义就很容易找到他的名字了。然后输入的skb就可以用来printk了。

论坛徽章:
2
申猴
日期:2013-12-26 22:11:31天秤座
日期:2014-12-23 10:23:19
5 [报告]
发表于 2012-05-22 09:05 |只看该作者
看看是不是skb_dst_drop了?
或者是从一开始skb_dst就是0UL?

你不要只在驱动上打日志,整个调用过程都跟踪一下,
这样才能看出来到底是哪一步把__skb_refdst清掉了,或者是根本就没有设置。

论坛徽章:
0
6 [报告]
发表于 2012-05-22 09:11 |只看该作者
回复 5# goter
恩恩,谢谢你的提示。我确实想整个过程跟踪一下,但是怎么做比较方便呢?怎么能比较方便的知道内核在发送一个数据包时sk_buff的变化过程?还望进一步指教。

   

论坛徽章:
0
7 [报告]
发表于 2012-05-22 09:15 |只看该作者
回复 4# 灌水菜鸟
恩,但是eth驱动是不是已经在内核里了?纯新手,不知道怎么能看到内核给eth的skb数据,还望多多指教。。。谢谢了

   

论坛徽章:
0
8 [报告]
发表于 2012-05-22 09:40 |只看该作者
回复 7# jinrong9056


    是网卡的驱动,比如E1000,rtl8139...之类的。在里面加上你的printk调试信息,重编内核或者驱动模块,然后再跑跑看看。

论坛徽章:
0
9 [报告]
发表于 2012-05-23 13:29 |只看该作者
回复 8# 灌水菜鸟
我试了,我从broadcom官网上下了eth网卡的驱动tg3,在发送函数里面加上了printk("%lu\n", skb_dst(skb)),重新编译加载了驱动模块,发现依然是0。。。不知道为什么。。。

   

论坛徽章:
0
10 [报告]
发表于 2012-05-23 17:01 |只看该作者
alloc_etherdev -> alloc_etherdev_mq -> alloc_netdev_mqs
will set flag: dev->priv_flags = IFF_XMIT_DST_RELEASE

And in dev_hard_start_xmit
  1. if (dev->priv_flags & IFF_XMIT_DST_RELEASE)
  2.                         skb_dst_drop(skb);
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP