码迷,mamicode.com
首页 > 其他好文 > 详细

in_device结构和in_ifaddr结构

时间:2017-09-17 19:05:16      阅读:344      评论:0      收藏:0      [点我收藏+]

标签:next   ati   ip地址   设备   delay   amp   res   scope   local   

 

 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结构

标签:next   ati   ip地址   设备   delay   amp   res   scope   local   

原文地址:http://www.cnblogs.com/wanpengcoder/p/7536381.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!