linux路由实现分析Series---(3)
时间:2010-09-18 来源:mtloveft
fib_info_hash 所有的fib_info结构被插入到这个hash表中,通过fib_find_info接口来查找该表。
fib_info_laddrhash 主要在路由表项有一个首选源地址时,才将fib_info结构插入到这个表中。
这个hash表主要是便于删除由于本地配置IP地址的删除而影响到的路由表项。 在这两个hash表中,都是通过fib_create_info方法将新fib_info实例链接到hash表上 fib_info结构定义如下
struct fib_info { |
struct fib_nh { |
fib_nhs是一个fib_nh类型的数组。在创建fib_info实例时,会多分配出nhs*sizeof(struct fib_nh)
大小的内存。 每个fib_nh表示一个下一跳路由器(next-hop router)。
一个下一跳路由器的信息包括通过哪一个设备作为出接口。因而,
当找到这个下一跳router时就很容易得到出接口设备,