网络子系统29_桥接转发数据库

//	转发数据库
//		1.容量
//			net_bridge->hash[BR_HASH_SIZE],其中BR_HASH_SIZE为(1<<8),有256个bucket
//		2.老化机制,
//			2.1 gc函数,到期时会顺序遍历age_list上的转发项,修改gc函数下一次到期时间为age_list中第一个没有过期的转发项的剩余时间。
//			2.2 age_list链表,保存除本机l2地址以外的所有转发项,按照到期时间进行排序,新添加或更新的转发项保存在age_list尾部。


//	网桥转发数据库初始化
//	调用路径:br_init->br_fdb_init
1.1 void __init br_fdb_init(void)
{
	//创建转发项的SLAB cache
	br_fdb_cache = kmem_cache_create("bridge_fdb_cache",
					 sizeof(struct net_bridge_fdb_entry),
					 0,
					 SLAB_HWCACHE_ALIGN, NULL, NULL);
}


//	查询转发项
//		__br_fdb_xxx不会递增net_bridge_fdb_entry的引用计数,br_fdb_xxx会递增net_bridge_fdb_entry的引用计数		
//	参数:
//		addr,目的l2地址
//	函数主要任务:
//		hash l2地址到正确的bucket,遍历bucket查找具有相同l2地址的转发项
2.1 struct net_bridge_fdb_entry *__br_fdb_get(struct net_bridge *br,
					  const unsigned char *addr)
{
	struct hlist_node *h;
	struct net_bridge_fdb_entry *fdb;
	//ne
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值