一个进程使用选路域(routing domain)中的一个插口来发送和接收选路报文,socket系统调用需要制定一个PF_ROUTE
的族类型和一个SOCK_RAW的插口类型。该进程可以向内核发送以下五种选路报文:
1.RTM_ADD:增加一条新路由。
2.RTM_DELETE:删除一条已经存在的路由。
3.RTM_GET:取得有关一条路由的所有信息。
4.RTM_CHANGE:改变一条已经存在路由的网关、接口或者度量。
5.RTM_LOCK:说明内核不应该修改哪个变量。
本章简介选路域、为每个选路插口创建的选路控制块、处理进程产生的报文的函数(route_output)、发送选路报文给一个
或多个进程的函数(raw_input)、以及不同的支持一个选路插口上所有插口操作的函数。
1.routedomain和protosw结构
下图列出了称为routedomain的PF_ROUTE域的domain结构。
与支持多个协议(TCP、UDP和ICMP等)的Internet域不一样,在选路域中只支持SOCK_RAW类型的一种协议。下图列出
了PF_ROUTE域的协议转换项。