struct dst_entry 成员意义
时间: 2023-07-22 20:47:09 浏览: 121
`struct dst_entry`是Linux内核网络子系统中的一个数据结构,用于表示网络层和数据链路层之间的转发表项,包含了下面的成员:
1. `struct dst_entry *child`: 指向子路由项的链表。
2. `struct dst_entry *next`: 指向相同哈希桶中的下一个路由项。
3. `struct dst_entry *path`: 指向从源到目的地的路径,用于实现反向路由缓存。
4. `struct net_device *dev`: 指向出接口设备的结构体。
5. `short error`: 表示路由项的状态,比如是否可达、是否需要重新计算等。
6. `short obsolete`: 表示路由项是否过期,如果过期则需要重新计算。
7. `unsigned long last_use`: 表示路由项最近一次被使用的时间。
8. `unsigned long expires`: 表示路由项的过期时间。
9. `unsigned long __pad`: 用于补齐字节对齐。
10. `unsigned long metrics[RTAX_MAX]`: 表示路由项的度量值,比如距离、带宽等。
11. `unsigned int flags`: 表示路由项的属性,比如是否是多路径路由、是否需要源路由等。
12. `int (*output)(struct sk_buff *)`: 指向路由项的输出函数,用于将数据包发送到对应的设备。
13. `int (*input)(struct sk_buff *)`: 指向路由项的输入函数,用于接收数据包并进行处理。
14. `struct flowi fl`: 表示路由项的具体信息,包括源IP地址、目的IP地址、协议类型等。
15. `struct xfrm_state *xfrm`: 指向传输层安全性协议(IPSec)的状态。
总之,`struct dst_entry`包含了许多重要的信息,用于实现路由选择和数据包的转发。
阅读全文