IP结构与操作之in_device结构和in_ifaddr结构

in_device为ip配置块,关联了二层设备,包含ip地址列表,组播配置,arp参数,接口配置等;

 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 };

 

in_ifaddr表示地址结构,其成员包含了地址,掩码,范围等信息,多个地址连接成链表,主地址在前,从地址在后;

posted @ 2017-09-17 17:29  AlexAlex  阅读(2223)  评论(0编辑  收藏  举报