• 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表示地址结构,其成员包含了地址,掩码,范围等信息,多个地址连接成链表,主地址在前,从地址在后;

  • 相关阅读:
    静态链表的C语言实现
    struct和typedef struct彻底明白了
    线性表的链式存储结构的C语言实现
    线性表的顺序存储结构C语言的实现
    算法基础知识
    数据结构基础认识
    Storm入门学习随记
    【坑】执行Consumer的时候发生java.net.UnknownHostException错误
    Kafka入门学习随记(二)
    Maven学习随记
  • 原文地址:https://www.cnblogs.com/wanpengcoder/p/7536381.html
Copyright © 2020-2023  润新知