http://blog.csdn.net/appletreesujie/article/details/6663649 -------- 这是老的linux版本的流程。
新版本,在__netif_receive_skb_core中, rx_handler = rcu_dereference(skb->dev->rx_handler); 如果报文已经经过此bridge转发出去,则不再继续处理,直接返回RX_HANDLER_CONSUMED。
br_add_if将接口添加到bridge中,在bridge中:
- 每个接口用struct net_bridge_port标识;
- 整个bridge用struct net_bridge标识,其中struct list_head port_list串联所有的接口struct net_bridge_port。
br_dev_xmit:
如果需要发送给所有其他的接口,则使用br_flood函数,会遍历所有的port进行发送;