Linux桥mac地址表(Hash表)结构

struct net_bridge
struct hlist_head hash[BR_HASH_SIZE];

struct net_bridge_fdb_entry
struct hlist_node hlist;
struct net_bridge_port *dst;
mac_addr addr;

Linux桥mac地址表(Hash表)结构

进行地址学习时调用
br_fdb_update(br, p, eth_hdr(skb)->h_source, vid);
将源mac地址传入,更新转发表。

查找转发表时调用
const unsigned char *dest = eth_hdr(skb)->h_dest
dst = __br_fdb_get(br, dest, vid)
判断目的mac地址表项是否存在。