// 相同子网:
// 掩码相同,网络地址相同
// 为设备配置ip地址
// 函数主要任务:
// 1.合理性检查;
// 1.1 相同子网内该地址没有被添加过
// 1.2 相同子网内的地址scope应该相同
// 2.将ifa插入到in_device->ifa_list中
// 3.通知netlink,inetaddr_chain 新地址的加入
// 注:地址在in_device->ifa_list中的排列:
// 1.主地址:插入的如果为主地址,则按照scope从大到小的顺序排列
// 2.辅地址: 总是插入到列表的最尾端
// 调用路径:inet_rtm_newaddr->inet_insert_ifa
1.1 static int inet_insert_ifa(struct in_ifaddr *ifa)
{
struct in_device *in_dev = ifa->ifa_dev;
struct in_ifaddr *ifa1, **ifap, **last_primary;
//辅地址标志
ifa->ifa_flags &= ~IFA_F_SECONDARY;
//主地址列表
last_primary = &in_dev->ifa_list;
//遍历主地址列表
for (ifap = &in_dev->ifa_list; (ifa1 = *ifap) != NULL;
ifap = &ifa1->ifa_next) {
if (!(ifa1->ifa_flags & IFA_F_SECONDARY) &&//主地址
ifa->ifa_scope <= ifa1->ifa_scope)//ifa的scope小于等于主地址的scope
last_primary =
网络子系统64_设备ip地址配置
最新推荐文章于 2024-06-08 15:06:13 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)