深入理解 IPv4 路由子系统
1. FIB 下一跳异常
FIB 下一跳异常是在 3.6 内核版本中引入的,用于处理路由条目因非用户空间操作而改变的情况,例如收到 ICMPv4 重定向消息或进行路径 MTU 发现时。其哈希键是目的地址,基于一个 2048 条目的哈希表,当链深度达到 5 时开始回收(释放哈希条目)。每个下一跳对象(fib_nh)都有一个 FIB 下一跳异常哈希表 nh_exceptions(fnhe_hash_bucket 结构的实例)。
下面是 fib_nh_exception 结构的定义:
struct fib_nh_exception {
struct fib_nh_exception __rcu *fnhe_next;
__be32 fnhe_daddr;
u32 fnhe_pmtu;
__be32 fnhe_gw;
unsigned long fnhe_expires;
struct rtable __rcu *fnhe_rth;
unsigned long fnhe_stamp;
};
该对象由 update_or_create_fnhe() 方法创建。
FIB 下
订阅专栏 解锁全文
66

被折叠的 条评论
为什么被折叠?



