内核阅读之浅析Linux2.6.34内核桥接数据转发(二)

按照内核阅读之浅析Linux2.6.34内核桥接数据转发(一)中的总体框架,依次浅析各个主要关键函数,看看里面具体实现了什么。

首先是int netif_receive_skb()函数,所有从硬件那边上来的数据包都首先要经过这个函数,当然也有例外,目前绝大多数网络芯片厂商都会有硬件加速模块,纯CPU已经无法迎合市场需求了。但是不管怎么说,任何网络数据的第一个包都是要经过netif_receive_skb()函数的。

该函数在Linux2.6.34\net\core\Dev.c



netif_receive_skb()是介于L2和L3之间的函数,将网卡驱动读取到的数据进行接收,并且分发给需要此数据包的协议。主要是遍历两条链表、桥接数据转发和MACVLAN数据组播转发,这里我主要关心的是桥接数据转发过程。数据包是由handle_bridge()函数来引入桥接控制的。而上面遍历的两条链表,这某些应用场景还是大有作为的。

本人初涉Linux内核网络数据模块部分,以上内容如有错误之处,欢迎指正学习。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值