in_device结构和in_ifaddr结构

Posted Alex

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了in_device结构和in_ifaddr结构相关的知识,希望对你有一定的参考价值。

 

 1 /* ip配置块 */
 2 struct in_device {
 3     /* 二层设备 */
 4     struct net_device    *dev;
 5     /* 引用计数 */
 6     atomic_t        refcnt;
 7     /* 是否正在销毁 */
 8     int            dead;
 9     /* ip地址列表 */
10     struct in_ifaddr    *ifa_list;    /* IP ifaddr chain        */
11 
12     /* 组播相关 */
13     struct ip_mc_list __rcu    *mc_list;    /* IP multicast filter chain    */
14     struct ip_mc_list __rcu    * __rcu *mc_hash;
15 
16     int            mc_count;    /* Number of installed mcasts    */
17     spinlock_t        mc_tomb_lock;
18     struct ip_mc_list    *mc_tomb;
19     unsigned long        mr_v1_seen;
20     unsigned long        mr_v2_seen;
21     unsigned long        mr_maxdelay;
22     unsigned char        mr_qrv;
23     unsigned char        mr_gq_running;
24     unsigned char        mr_ifc_count;
25     struct timer_list    mr_gq_timer;    /* general query timer */
26     struct timer_list    mr_ifc_timer;    /* interface change timer */
27 
28     /* arp参数 */
29     struct neigh_parms    *arp_parms;
30     /* 设备接口的一些配置 */
31     struct ipv4_devconf    cnf;
32     struct rcu_head        rcu_head;
33 };

 

 1 /* 地址结构 */
 2 struct in_ifaddr {
 3     struct hlist_node    hash;
 4     /* 下一个地址节点 */
 5     struct in_ifaddr    *ifa_next;
 6     /* 所属ip配置块 */
 7     struct in_device    *ifa_dev;
 8     struct rcu_head        rcu_head;
 9     /*
10         ifa_local和ifa_address都用来存储ip地址
11         但在不同设备接口意义不同
12         (1) 在配置了广播的设备上,都表示本地ip地址
13         (2) 在点对点设备上,ifa_address存储的是对端ip地址,
14         而ifa_local存储的是本地ip地址
15     */
16     __be32            ifa_local;
17     __be32            ifa_address;
18     /* 子网掩码 */
19     __be32            ifa_mask;
20     /* 广播地址 */
21     __be32            ifa_broadcast;
22     /* 
23         地址范围,值越小表示的范围越大
24         RT_SCOPE_UNIVERSE-在任何地方使用
25         RT_SCOPE_SITE-本地封闭系统的内部路由
26         RT_SCOPE_LINK-局域网内使用,如广播地址
27         RT_SCOPE_HOST-主机内部通信,如回环地址
28         RT_SCOPE_NOWHERE-目的地址不存在
29         
30     */
31     unsigned char        ifa_scope;
32     /* 子网掩码长度 */
33     unsigned char        ifa_prefixlen;
34     /* 
35         地址属性标记 
36         IFA_F_SECONDARY-从属ip地址
37         IFA_F_NODAD-禁止重复地址检测,ipv6使用
38         IFA_F_HOMEADDRESS-移动ipv6家乡地址,ipv6使用
39         IFA_F_DEPRECATED-此ip地址不鼓励使用,也不禁止
40         IFA_F_TENTATIVE-尝试阶段的ip地址,仍在进行地址检测工作
41         IFA_F_PERMANENT-永久性地址,无此标识,则会动态配置ip地址
42     */
43     __u32            ifa_flags;
44     /* 地址标签,通常是网络设备名或者网络设备别名 */
45     char            ifa_label[IFNAMSIZ];
46 
47     /* In seconds, relative to tstamp. Expiry is at tstamp + HZ * lft. */
48     /* 生命周期 */
49     __u32            ifa_valid_lft;
50     __u32            ifa_preferred_lft;
51     /* 时间戳 */
52     unsigned long        ifa_cstamp; /* created timestamp */
53     unsigned long        ifa_tstamp; /* updated timestamp */
54 };

 

以上是关于in_device结构和in_ifaddr结构的主要内容,如果未能解决你的问题,请参考以下文章

Python基础-python流程控制之顺序结构和分支结构

结构和样式,行为的分离

css代码结构

web开发 c/s结构 和 b/s结构

Python:树结构和数字代码?

清洁代码,清洁架构和清洁项目布局/项目结构