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

 /* ip配置块 */
struct in_device {
/* 二层设备 */
struct net_device *dev;
/* 引用计数 */
atomic_t refcnt;
/* 是否正在销毁 */
int dead;
/* ip地址列表 */
struct in_ifaddr *ifa_list; /* IP ifaddr chain */ /* 组播相关 */
struct ip_mc_list __rcu *mc_list; /* IP multicast filter chain */
struct ip_mc_list __rcu * __rcu *mc_hash; int mc_count; /* Number of installed mcasts */
spinlock_t mc_tomb_lock;
struct ip_mc_list *mc_tomb;
unsigned long mr_v1_seen;
unsigned long mr_v2_seen;
unsigned long mr_maxdelay;
unsigned char mr_qrv;
unsigned char mr_gq_running;
unsigned char mr_ifc_count;
struct timer_list mr_gq_timer; /* general query timer */
struct timer_list mr_ifc_timer; /* interface change timer */ /* arp参数 */
struct neigh_parms *arp_parms;
/* 设备接口的一些配置 */
struct ipv4_devconf cnf;
struct rcu_head rcu_head;
};

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

 /* 地址结构 */
struct in_ifaddr {
struct hlist_node hash;
/* 下一个地址节点 */
struct in_ifaddr *ifa_next;
/* 所属ip配置块 */
struct in_device *ifa_dev;
struct rcu_head rcu_head;
/*
ifa_local和ifa_address都用来存储ip地址
但在不同设备接口意义不同
(1) 在配置了广播的设备上,都表示本地ip地址
(2) 在点对点设备上,ifa_address存储的是对端ip地址,
而ifa_local存储的是本地ip地址
*/
__be32 ifa_local;
__be32 ifa_address;
/* 子网掩码 */
__be32 ifa_mask;
/* 广播地址 */
__be32 ifa_broadcast;
/*
地址范围,值越小表示的范围越大
RT_SCOPE_UNIVERSE-在任何地方使用
RT_SCOPE_SITE-本地封闭系统的内部路由
RT_SCOPE_LINK-局域网内使用,如广播地址
RT_SCOPE_HOST-主机内部通信,如回环地址
RT_SCOPE_NOWHERE-目的地址不存在 */
unsigned char ifa_scope;
/* 子网掩码长度 */
unsigned char ifa_prefixlen;
/*
地址属性标记
IFA_F_SECONDARY-从属ip地址
IFA_F_NODAD-禁止重复地址检测,ipv6使用
IFA_F_HOMEADDRESS-移动ipv6家乡地址,ipv6使用
IFA_F_DEPRECATED-此ip地址不鼓励使用,也不禁止
IFA_F_TENTATIVE-尝试阶段的ip地址,仍在进行地址检测工作
IFA_F_PERMANENT-永久性地址,无此标识,则会动态配置ip地址
*/
__u32 ifa_flags;
/* 地址标签,通常是网络设备名或者网络设备别名 */
char ifa_label[IFNAMSIZ]; /* In seconds, relative to tstamp. Expiry is at tstamp + HZ * lft. */
/* 生命周期 */
__u32 ifa_valid_lft;
__u32 ifa_preferred_lft;
/* 时间戳 */
unsigned long ifa_cstamp; /* created timestamp */
unsigned long ifa_tstamp; /* updated timestamp */
};

in_device结构和in_ifaddr结构的更多相关文章

  1. C语言中的循环结构与选择结构

    1. 为什么使用循环? 重复执行某段代码 2. while(条件){ 循环体: } 当条件成立的时候就执行循环体,条件不成立,就退出循环,继续执行while后面的语句 3. for ( 初始表达式 : ...

  2. Chrome弹窗的简单应用(选择结构与循环结构)

    ★选择结构★ ★JS实现弹窗显示随机数 示例代码效果图   ★ 弹窗实现对随机数的进一步判断 示例代码效果图 ★综合应用   比较大小 ★ 判断成绩等级 ): : : : : alert(" ...

  3. Linux程序存储结构与进程结构堆和栈的区别【转】

    转自:http://www.hongkevip.com/caozuoxitong/Unix_Linux/24581.html 红客VIP(http://www.hongkevip.com):Linux ...

  4. C语言中的结构体,结构体数组

    C语言中的结构体是一个小难点,下面我们详细来讲一下:至于什么是结构体,结构体为什么会产生,我就不说了,原因很简单,但是要注意到是结构体也是连续存储的,但要注意的是结构体里面类型各异,所以必然会产生内存 ...

  5. 黑马程序员——JAVA基础之程序控制流结构之循环结构,循环嵌套

    ------- android培训.java培训.期待与您交流! ---------- 循环结构: 代表语句:while ,do while ,for while语句格式 : while(条件表达式) ...

  6. 黑马程序员——JAVA基础之程序控制流结构之判断结构,选择结构

    ------- android培训.java培训.期待与您交流! ---------- 程序控制流结构:顺序结构:判断结构:选择结构:循环结构. 判断结构:条件表达式无论写成什么样子,只看最终的结构是 ...

  7. C#学习笔记11:C#中的顺序结构、分支结构、循环结构

    顺序结构: 代码从Main()函数开始运行,从上到下,一行一行的执行,不漏掉代码. Int a=6; int b=5; int c=a+b; Console.Write(c); 分支结构: 代码有可能 ...

  8. LabVIEW设计模式系列——case结构模拟事件结构

    标准:1.所有按钮的机械动作必须都用释放时触发或者单击时触发,这是为了保证仅仅触发一次动作. 标准:1.使用简单的case结构模拟事件结构.

  9. 【转】linux tree命令以树形结构显示文件目录结构 ---- 不错

    原文网址:http://jingyan.baidu.com/article/acf728fd19c7eff8e510a3eb.html 今天小编来给分享Linux 系统下一个非常有用的命令的使用:tr ...

随机推荐

  1. 进程&线程间通信方式总结

    一.进程间的通信方式 # 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用.进程的亲缘关系通常是指父子进程关系. # 有名管道 (namedpip ...

  2. JavaScript 垃圾回收总结

    JavaScript 是一门具有自动垃圾收集机制的编程语言,开发人员不必关心内存分配和回收的问题. 以下是对JavaScript的垃圾收集历程总结: 离开作用域的值将被自动标记为可以回收,因此将在垃圾 ...

  3. Stax解析XML示例代码

    package org.itat.stax; import java.io.IOException; import java.io.InputStream; import javax.xml.pars ...

  4. RT-thread finsh组件工作流程

    finsh是RT-Thread的命令行外壳(shell),提供一套供用户在命令行的操作接口,主要用于调试.查看系统信息.在大部分嵌入式系统中,一般开发调试都使用硬件调试器和printf日志打印,在有些 ...

  5. 【题解】Atcoder ARC#94 F-Normalization

    再次膜拜此强题!神级性质之不可能发现系列收藏++:首先,对于长度<=3的情况,我们采取爆搜答案(代码当中是打表).对于长度>=4的情况,则有如下几条玄妙的性质: 首先我们将 a, b, c ...

  6. [洛谷P4111][HEOI2015]小Z的房间

    题目大意:有一个$n\times m$的房间,一些位置是房间,另一些位置是柱子,相邻两个房间之间有墙,问有多少种方案可以打通一些墙把所有房间连成一棵树,柱子不可以打通 题解:矩阵树定理,把房间当点,墙 ...

  7. POJ3498:March of the Penguins——题解

    最近的题解的故事背景割. 题目: 描述 在靠近南极的某处,一些企鹅站在许多漂浮的冰块上.由于企鹅是群居动物,所以它们想要聚集到一起,在同一个冰块上.企鹅们不想把自己的身体弄湿,所以它们在冰块之间跳跃, ...

  8. SPOJ8222/NSUBSTR:Substrings——题解

    https://www.luogu.org/problemnew/show/SP8222#sub http://www.spoj.com/problems/NSUBSTR/ 翻译来自洛谷. 你得到一个 ...

  9. STL之一:字符串用法详解

    转载于:http://blog.csdn.net/longshengguoji/article/details/8539471 字符串是程序设计中最复杂的变成内容之一.STL string类提供了强大 ...

  10. Magic FZU - 2280 无脑HASH暴力

    Kim is a magician, he can use n kinds of magic, number from 1 to n. We use string Si to describe mag ...