inet_addr_onlink】的更多相关文章

/* 根据指定设备的ip配置块,判断地址a,b是否在同一子网 */ /* --邻居项要求,在同一子网中的两个设备, 至少有一个接口有相同的子网配置, --也就是说对端的in_dev->ifa_list中也能找到一个与当前 in_dev->ifa_list中相同的ifa_mask --如果有这样一个ifa_mask使得两个地址与其计算后 网络部分相同,则在同一子网 */ int inet_addr_onlink(struct in_device *in_dev, __be32 a, __be32…
以下代码取自 kernel . [数据结构] 该结构被基于路由表的classifier使用,用于跟踪与一个标签(tag)相关联的路由流量的统计信息,该统计信息中包含字节数和报文数两类信息. 这个结构包含一个counters数组,每个处理器有256个元素.*大小为256是因为路由标签的取值范围为0到255.IPv4中是由ip_rt_init接 口为该向量分配空间,IPv6中没有为该向量分配空间.ip_rt_acct结构中的四个字段是在ip_rcv_finish接口中更新. struct ip_rt…
ARP 实现 现在我们介绍一下arp的实现,内核版本2.6.24. [数据结构] 协议栈通过ARP协议获取到的网络上邻居主机的IP地址与MAC地址的对应关 系都会保存在这个表中,以备下次与邻居通讯时使用, 同时,ARP模块自身也会提供一套相应的机制来更新和维护这个邻居表. struct neigh_table { struct neigh_table *next; //下一个邻居表 int family; //协议簇 int entry_size;//入口长度,也就是一个邻居结构的大小,初始化为…
IP地址 /include/linux/inetdevice.h,定义IPV4专用的网络设备相关的结构.宏等 /net/ipv4/devinet.c.支持IPV4特性的设备操作接口 数据组织 net_device结构中包括了驱动相关的全部信息.先按分类把同一类型的信息组织到其它结构中.然后嵌套到net_device结构中. 比如,与ipv4相关的配置存放在in_device结构中,IP地址.子网掩码.广播地址等信息存放到in_ifaddr结构中等 相关函数 inetdev_init()    …
概述 arp_solicit用来发送ARP请求,首先会根据ARP_ANNOUNCE参数来选取源地址,然后判断是否达到内核发送次数上限,未达到则调用内核arp_send_dst函数发送,如果达到上限,则继续判断是否达到应用程序请求发送次数上限,未达到则通知应用程序发送ARP请求: 源码分析 /* 发送arp请求 ARP请求的目的邻居项 缓存在该邻居项中的待发送报文,来获取该skb的源IP地址 */ static void arp_solicit(struct neighbour *neigh, s…
转:http://blog.csdn.net/hsly_support/article/details/8797976 来吧,路由 路由是网络的核心,是linux网络协议栈的核心,我们找个入口进去看看 还记得在笔记5-IP层的处理1中ip_rcv_finish走到过一个岔口 ->ip_rcv_finish()      ->ip_route_input()  查找路由信息      ->if (iph->ihl > 5 && ip_rcv_options(sk…