一、基本数据结构及相互关系
net_bridge 网桥的结构信息
net_bridge_port 接在网桥上的一个port
net_bridge_fdb_entry mac->port 映射对,用于根据目的mac确定发往哪个端口
1)net_bridge紧随bridge的net_device后面
br = netdev_priv(dev);
2)net_bridge中有所有挂接在该bridge上的net_bridge_port的链表
net_bridge中有所有net_bridge_fdb_entry的hash表,hash表按mac地址进行hash
struct net_bridge{
struct list_head port_list;
......
struct hlist_head hash[BR_HASH_SIZE];
}
3) net_bridge_port 指向它关联的net_device及它attach 的net_bridge
struct net_bridge_port{
struct net_bridge *br;
struct net_device *dev;
u16port_no;
...
}
4) net_bridge_fdb_entry 关联了一个mac->port的映射对
struct net_bridge_fdb_entry
{
struct hlist_node hlist;
struct net_bridge_port *dst;
struct rcu_head rcu;
unsigned lon