linux释放缓存,linux路由内核实现分析(四)---路由缓存机制(1)

 2023-09-25 阅读 18 评论 0

摘要:------------------------------------------------------------------------------------------ 以下是我根据 linux-2.6.23.9版本内核源代码所做阅读笔记,属个人兴趣而为,希望找到有共同兴趣 的朋友一起讨论和研究,有谬误之处,笔者水平有限&#x

------------------------------------------------------------------------------------------

以下是我根据 linux-2.6.23.9版本内核源代码所做阅读笔记,属个人兴趣而为,希望找到有共同兴趣

的朋友一起讨论和研究,有谬误之处,笔者水平有限,欢迎大家拍砖:)

------------------------------------------------------------------------------------------

路由缓存机制

 

rtable结构

 

struct rtable

{

       union

       {

              struct dst_entry      dst;

       } u;

       struct flowi            fl;

       struct in_device      *idev;

       unsigned         rt_flags;

       __u16                   rt_type;

 

       __be32                  rt_dst;    

       __be32                  rt_src;    

       int                  rt_iif;

       __be32                  rt_gateway;

       __be32                  rt_spec_dst;

       struct inet_peer      *peer;

};

 

unsigned         rt_flags;//一些结构性的标志,例如,RTF_UP表示这条路由可用

__u16            rt_type;//表明了目标地址的类型,例如RTN_LOCAL,RTN_MULTICAST

__be 32 rt_dst       用来存放目标的IP地址

__be32 rt_src        路由路径的起点ip地址

__be32                  rt_gateway;//该成员存放了网关信息

struct flowi               fl;//存放的是查找该路由节点的哈希值,该哈希值用源IP,目的地址,TOS一起确定

 

struct in_device              *idev;// 该指针指向egress设备的IP配置块。注意对送往本地的ingress报文的路由,设置的egress设备为loopback设备

 

struct inet_peer             *peer; //用于long-living ip peer,虽然普通的IP报文没有状态,但是内核会记录IP报文的一些信息以提高效率,主要是记录IP报文的packet-id以检查是否收到了重复的报文,还需要检查packet-id的增量。linux释放缓存。

 

 

rt_cache_bucket结构

 

struct rt_hash_bucket {

       struct rtable    *chain;

};

 

// struct rtable           *chain; //是一个struct rtable类型的指针,struct rtable用于描述         一条完整的路由缓存项

 

在2.4版内核中,还有一个spin_lock成员用于哈希链的读写锁,2.6内核专门创建了一个spin_lock表来进行替代。

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/94605.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息