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 b)
{
rcu_read_lock(); /* 遍历主地址 */
for_primary_ifa(in_dev) {
/* a与ifa在同一网段 */
if (inet_ifa_match(a, ifa)) {
/* b不存在,或者b与ifa在同一网段 */
if (!b || inet_ifa_match(b, ifa)) {
rcu_read_unlock(); /* ab在同一子网 */
return ;
}
}
} endfor_ifa(in_dev);
rcu_read_unlock();
return ;
}
inet_addr_onlink的更多相关文章
- Linux IP 路由实现
		
以下代码取自 kernel . [数据结构] 该结构被基于路由表的classifier使用,用于跟踪与一个标签(tag)相关联的路由流量的统计信息,该统计信息中包含字节数和报文数两类信息. 这个结构包 ...
 - ARP 实现
		
ARP 实现 现在我们介绍一下arp的实现,内核版本2.6.24. [数据结构] 协议栈通过ARP协议获取到的网络上邻居主机的IP地址与MAC地址的对应关 系都会保存在这个表中,以备下次与邻居通讯时使 ...
 - IP编址
		
IP地址 /include/linux/inetdevice.h,定义IPV4专用的网络设备相关的结构.宏等 /net/ipv4/devinet.c.支持IPV4特性的设备操作接口 数据组织 net_ ...
 - ARP 之 发送请求arp_solicit
		
概述 arp_solicit用来发送ARP请求,首先会根据ARP_ANNOUNCE参数来选取源地址,然后判断是否达到内核发送次数上限,未达到则调用内核arp_send_dst函数发送,如果达到上限,则 ...
 - linux网络协议栈--路由流程分析
		
转:http://blog.csdn.net/hsly_support/article/details/8797976 来吧,路由 路由是网络的核心,是linux网络协议栈的核心,我们找个入口进去看看 ...
 
随机推荐
- jenkins 配置git  学习
			
由于Jenkins没有默认安装Git插件,需要Git库同步时候,需要手动选择安装git插件 在“系统管理”->“管理插件”中找到,“可选插件”选项卡.“过滤“(一个名为过滤的搜素窗口)中可以用键 ...
 - USB硬件接口相关
			
1.USB 设备端的D+为何要拉一个1.5K电阻到3.3v上?(USB是5v供电,但通信的电平是3.3v,所以上拉电平为3.3v:若要上拉到5v,则上拉电阻为10k) usb有主从设备之分,主设备有: ...
 - 【bzoj4487】[Jsoi2015]染色问题  容斥原理
			
题目描述 棋盘是一个n×m的矩形,分成n行m列共n*m个小方格.现在萌萌和南南有C种不同颜色的颜料,他们希望把棋盘用这些颜料染色,并满足以下规定: 1. 棋盘的每一个小方格既可以染色(染成C种颜色中 ...
 - CRM 建设方案(01):CRM基础
			
CRM 客户关系管理系统基础 客户关系管理简称CRM(Customer Relationship Management).CRM概念引入中国已有数年,其字面意思是客户关系管理,但其深层的内涵却有着许多 ...
 - 【Mybatis】<foreach>标签在mybatis中的使用
			
mapper.xml如下: <select id="selectCkspcb" parameterType="java.util.Map" resultT ...
 - Django获取多个数据及文件上传
			
1. 选择性别: 1)更新login.html模板 2)views.py中获取客户端提交的数据 3)当选择性别为“男”后,后台得到了gender=1. 2.选择爱好,可以多选,所以后台会获得多个数据. ...
 - Docker学习笔记二:Docker常用命令及提升拉取镜像的速度
			
一.Docker命令: 1.docker images //命令用来查看docker中所包含的镜像信息 2.docker ps -a //命令用来查看docker中所包含所有容器信息(运行状 ...
 - 【EF】EntityFramework DBFirst的使用
			
一.前言 久闻EF大名,之前做C/S产品用的是Dapper对SqlLite进行ORM.然后接触公司授权系统后发现用的是EntityFramework对SQLSever进行ORM.授权系统 ...
 - 【arc076E】Connected?
			
Portal -->arc076E Description 给你一个\(R*C\)的矩形,矩形中某些格子的端点上填了\(1\sim n\)这\(n\)个数字,每个数字出现了恰好两遍,现在要将每一 ...
 - 【CF962E】Byteland, Berland and Disputed Cities
			
Portal! ---> 几句话题意 数轴上面有三种点(B点,R点,P点),现在要将其中的某些点连起来,满足将所有B点去掉之后,所有P点和R点都连通&将所有R点去掉之后,所有B点和P点都 ...