免费注册 查看新帖 |

Chinaunix

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

[内核入门] netif_receive_skb是在input钩子之前吗? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-08-02 09:42 |只看该作者 |倒序浏览
  我的linux版本是2.6.30.
  在NF_BR_PRE_ROUTING 和 NF_BR_LOCAL_IN 两个位置设置了钩子,抓某种特殊协议类型的包。
  但是。。。。。由于楼主程序的业务要求,我在netif_receive_skb里发现收到这种包后,会在handle_bridge函数里直接返回skb,也就是说,不经过桥接的处理,直接调用一下该协议类型的处理函数。

  最后的现象就是:
  1、netif_receive_skb里能发现收到这种类型的包。
  2、NF_BR_PRE_ROUTING 和 NF_BR_LOCAL_IN 两个钩子函数也进去了(为了调试,这两个钩子函数只要一进去,就会打印一句话)
  3、这两个钩子函数都没有进入处理这种特殊协议类型的处理流程。

  我的结论是:
     1、钩子函数被调用,是因为其它的无关包通过,而导致的,只能说明钩子函数起作用了。
     2、钩子函数没有进入特殊协议类型处理流程,说明包还没到这两个hook点,就处理结束了。

    那么,推导出的结论是,netif_receive_skb函数的处理,在NF_BR_PRE_ROUTING 和 NF_BR_LOCAL_IN 两个hook点之前?
  请各位大侠们看一下,我这个推断是否正确?

  还有,象 NF_BR_LOCAL_IN 这种hook点,具体是在数据包进来后处理的哪个函数位置?
  多谢!

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
2 [报告]
发表于 2012-08-02 09:52 |只看该作者
回复 1# jiahehao01

这个就比较早,不仅在 NF 之前,还在 ip_rcv 之前

   

论坛徽章:
0
3 [报告]
发表于 2012-08-02 10:00 |只看该作者
Godbach 兄,多谢指教。我现在改为抓普通UDP包试试了。
关于此函数在NF之前的说法,在什么资料,或者什么书上能看到?

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
4 [报告]
发表于 2012-08-02 15:51 |只看该作者
回复 3# jiahehao01
关于此函数在NF之前的说法,在什么资料,或者什么书上能看到?


netif_receive_skb可以认为是从驱动到内核的第一个函数。 直接看代码就可以了。
   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP