一、RTM 的定位与边界
1.1 RTM 的真实职责
RTM 是一个完整的路由管理中间层,定位如下:
协议层 (OSPF/BGP/RIP/Static/Direct) ↓ (通过 IPC/函数调用推送路由) ┌──────────────────┐ │ RTM 模块 │ │ - 路由仲裁 │ ← 核心职责 │ - 选路决策 │ │ - 下一跳管理 │ │ - 路由重分发 │ └──────────────────┘ ↓ (通过 FPM 下发) ┌──────────────────┐ │ FreeBSD 内核 FIB │ ← rtrequest1_fib() │ (Radix Tree) │ └──────────────────┘ ↓ ┌──────────────────┐ │ HAL / SDK │ ← 硬件抽象层 │ (ASIC 芯片) │ └──────────────────┘关键发现:
- RTM 既维护软件路由表,也驱动 FIB
- RTM 拥有最终裁决权,是多协议结果的仲裁者
- RTM 维护两套数据: