免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: lyj496332184
打印 上一主题 下一主题

Linux bridge 对802.1q包的处理 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2011-12-22 18:52 |只看该作者
在vlan_skb_receive中,最后怎么调用到了netif_rx了呢?这个函数会最终进入到硬件中断啊......

论坛徽章:
0
12 [报告]
发表于 2011-12-25 20:43 |只看该作者
d419192480 发表于 2011-10-26 17:15
谢谢回复,可否细说一下
bridge--->vlan ? 这个过程 是在哪里发生的呢?
是在 br_handle_frame_finish 里面 ...

你大概没有注意到这个细节, VLAN eth0.1 和 eth0.2 是建立在eth0之上的,而eth0并没有加到桥当中,因此,在netif_receive_skb中,第一次进入到handle_bridge处理时,直接返回,因为
    if (skb->pkt_type == PACKET_LOOPBACK ||
        (port = rcu_dereference(skb->dev->br_port)) == NULL) //注意,第一次进来时,skb->dev是eth0
        return skb;
该条件成立(2.6.31代码),返回后,在netif_receive_skb中,查找到packet_type 为 0x8100 的 pt_prev->func(), 即调用vlan_skb_recv(), 去掉vlan tag 。。。

论坛徽章:
0
13 [报告]
发表于 2016-08-10 17:38 |只看该作者
不同的vlan之间, 在二层是隔离的, 怎么可能在vlan之间直接bridge ?  
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP