linux内核网络协议栈之桥bridge

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/heyuqian_csdn/article/details/66479386

1、bridge作为一种网络设备,驱动的基本流程一般是:

     首先完成结构体的初始化,主要就是struct net_device以及私有设备struct net_bridge的初始化,然后注册网络设备即register_netdevice()

     命令brctl addbr br0添加一个网络设备,详见图中cmd a执行流程


2、向bridge中添加端口port,命令brctl addif br0,详见cmd b执行流程,调用 netdev_ops->br_netdev_ops->br_dev_ioctl()

      首先生成并初始化struct net_bridge_port,并将其加入到struct net_bridge中的port_list双向链表

      然后生成struct net_bridge_fdb_entry,并将其加入到struct net_bridge中hlist_head hash指向的hash表中

     

3、网路数据包的收发


猜你喜欢

转载自blog.csdn.net/heyuqian_csdn/article/details/66479386