Lines Matching refs:cfg
1075 ipv6_add_addr(struct inet6_dev *idev, struct ifa6_config *cfg, in ipv6_add_addr() argument
1079 int addr_type = ipv6_addr_type(cfg->pfx); in ipv6_add_addr()
1087 !(cfg->ifa_flags & IFA_F_MCAUTOJOIN)) || in ipv6_add_addr()
1108 .i6vi_addr = *cfg->pfx, in ipv6_add_addr()
1125 f6i = addrconf_f6i_alloc(net, idev, cfg->pfx, false, gfp_flags); in ipv6_add_addr()
1134 ifa->addr = *cfg->pfx; in ipv6_add_addr()
1135 if (cfg->peer_pfx) in ipv6_add_addr()
1136 ifa->peer_addr = *cfg->peer_pfx; in ipv6_add_addr()
1141 ifa->scope = cfg->scope; in ipv6_add_addr()
1142 ifa->prefix_len = cfg->plen; in ipv6_add_addr()
1143 ifa->rt_priority = cfg->rt_priority; in ipv6_add_addr()
1144 ifa->flags = cfg->ifa_flags; in ipv6_add_addr()
1146 if (!(cfg->ifa_flags & IFA_F_NODAD)) in ipv6_add_addr()
1148 ifa->valid_lft = cfg->valid_lft; in ipv6_add_addr()
1149 ifa->prefered_lft = cfg->preferred_lft; in ipv6_add_addr()
1349 struct ifa6_config cfg; in ipv6_create_tempaddr() local
1404 memset(&cfg, 0, sizeof(cfg)); in ipv6_create_tempaddr()
1405 cfg.valid_lft = min_t(__u32, ifp->valid_lft, in ipv6_create_tempaddr()
1407 cfg.preferred_lft = cnf_temp_preferred_lft + age - idev->desync_factor; in ipv6_create_tempaddr()
1408 cfg.preferred_lft = min_t(__u32, ifp->prefered_lft, cfg.preferred_lft); in ipv6_create_tempaddr()
1410 cfg.plen = ifp->prefix_len; in ipv6_create_tempaddr()
1424 if (cfg.preferred_lft <= regen_advance + age) { in ipv6_create_tempaddr()
1431 cfg.ifa_flags = IFA_F_TEMPORARY; in ipv6_create_tempaddr()
1434 cfg.ifa_flags |= IFA_F_OPTIMISTIC; in ipv6_create_tempaddr()
1436 cfg.pfx = &addr; in ipv6_create_tempaddr()
1437 cfg.scope = ipv6_addr_scope(cfg.pfx); in ipv6_create_tempaddr()
1439 ift = ipv6_add_addr(idev, &cfg, block, NULL); in ipv6_create_tempaddr()
2138 struct ifa6_config cfg = { in addrconf_dad_failure() local
2168 ifp2 = ipv6_add_addr(idev, &cfg, false, NULL); in addrconf_dad_failure()
2444 struct fib6_config cfg = { in addrconf_prefix_route() local
2456 cfg.fc_dst = *pfx; in addrconf_prefix_route()
2464 cfg.fc_flags |= RTF_NONEXTHOP; in addrconf_prefix_route()
2467 ip6_route_add(&cfg, gfp_flags, NULL); in addrconf_prefix_route()
2518 struct fib6_config cfg = { in addrconf_add_mroute() local
2529 ipv6_addr_set(&cfg.fc_dst, htonl(0xFF000000), 0, 0, 0); in addrconf_add_mroute()
2531 ip6_route_add(&cfg, GFP_KERNEL, NULL); in addrconf_add_mroute()
2645 struct ifa6_config cfg = { in addrconf_prefix_rcv_add_addr() local
2658 cfg.ifa_flags |= IFA_F_OPTIMISTIC; in addrconf_prefix_rcv_add_addr()
2666 ifp = ipv6_add_addr(in6_dev, &cfg, false, NULL); in addrconf_prefix_rcv_add_addr()
2961 struct ifa6_config *cfg, in inet6_addr_add() argument
2973 if (cfg->plen > 128) in inet6_addr_add()
2977 if (!cfg->valid_lft || cfg->preferred_lft > cfg->valid_lft) in inet6_addr_add()
2980 if (cfg->ifa_flags & IFA_F_MANAGETEMPADDR && cfg->plen != 64) in inet6_addr_add()
2991 if (cfg->ifa_flags & IFA_F_MCAUTOJOIN) { in inet6_addr_add()
2993 true, cfg->pfx, ifindex); in inet6_addr_add()
2999 cfg->scope = ipv6_addr_scope(cfg->pfx); in inet6_addr_add()
3001 timeout = addrconf_timeout_fixup(cfg->valid_lft, HZ); in inet6_addr_add()
3004 cfg->valid_lft = timeout; in inet6_addr_add()
3009 cfg->ifa_flags |= IFA_F_PERMANENT; in inet6_addr_add()
3012 timeout = addrconf_timeout_fixup(cfg->preferred_lft, HZ); in inet6_addr_add()
3015 cfg->ifa_flags |= IFA_F_DEPRECATED; in inet6_addr_add()
3016 cfg->preferred_lft = timeout; in inet6_addr_add()
3019 ifp = ipv6_add_addr(idev, cfg, true, extack); in inet6_addr_add()
3021 if (!(cfg->ifa_flags & IFA_F_NOPREFIXROUTE)) { in inet6_addr_add()
3038 if (cfg->ifa_flags & IFA_F_MANAGETEMPADDR) in inet6_addr_add()
3039 manage_tempaddrs(idev, ifp, cfg->valid_lft, in inet6_addr_add()
3040 cfg->preferred_lft, true, jiffies); in inet6_addr_add()
3044 } else if (cfg->ifa_flags & IFA_F_MCAUTOJOIN) { in inet6_addr_add()
3046 cfg->pfx, ifindex); in inet6_addr_add()
3097 struct ifa6_config cfg = { in addrconf_add_ifaddr() local
3111 cfg.pfx = &ireq.ifr6_addr; in addrconf_add_ifaddr()
3112 cfg.plen = ireq.ifr6_prefixlen; in addrconf_add_ifaddr()
3115 err = inet6_addr_add(net, ireq.ifr6_ifindex, &cfg, NULL); in addrconf_add_ifaddr()
3142 struct ifa6_config cfg = { in add_addr() local
3151 ifp = ipv6_add_addr(idev, &cfg, true, NULL); in add_addr()
3245 struct ifa6_config cfg = { in addrconf_add_linklocal() local
3259 cfg.ifa_flags |= IFA_F_OPTIMISTIC; in addrconf_add_linklocal()
3262 ifp = ipv6_add_addr(idev, &cfg, true, NULL); in addrconf_add_linklocal()
4780 static int inet6_addr_modify(struct inet6_ifaddr *ifp, struct ifa6_config *cfg) in inet6_addr_modify() argument
4791 if (!cfg->valid_lft || cfg->preferred_lft > cfg->valid_lft) in inet6_addr_modify()
4794 if (cfg->ifa_flags & IFA_F_MANAGETEMPADDR && in inet6_addr_modify()
4799 cfg->ifa_flags &= ~IFA_F_OPTIMISTIC; in inet6_addr_modify()
4801 timeout = addrconf_timeout_fixup(cfg->valid_lft, HZ); in inet6_addr_modify()
4804 cfg->valid_lft = timeout; in inet6_addr_modify()
4809 cfg->ifa_flags |= IFA_F_PERMANENT; in inet6_addr_modify()
4812 timeout = addrconf_timeout_fixup(cfg->preferred_lft, HZ); in inet6_addr_modify()
4815 cfg->ifa_flags |= IFA_F_DEPRECATED; in inet6_addr_modify()
4816 cfg->preferred_lft = timeout; in inet6_addr_modify()
4819 if (cfg->peer_pfx && in inet6_addr_modify()
4820 memcmp(&ifp->peer_addr, cfg->peer_pfx, sizeof(struct in6_addr))) { in inet6_addr_modify()
4833 ifp->flags |= cfg->ifa_flags; in inet6_addr_modify()
4835 ifp->valid_lft = cfg->valid_lft; in inet6_addr_modify()
4836 ifp->prefered_lft = cfg->preferred_lft; in inet6_addr_modify()
4838 if (cfg->rt_priority && cfg->rt_priority != ifp->rt_priority) in inet6_addr_modify()
4839 ifp->rt_priority = cfg->rt_priority; in inet6_addr_modify()
4842 ifp->peer_addr = *cfg->peer_pfx; in inet6_addr_modify()
4848 if (!(cfg->ifa_flags & IFA_F_NOPREFIXROUTE)) { in inet6_addr_modify()
4886 cfg->valid_lft = 0; in inet6_addr_modify()
4887 cfg->preferred_lft = 0; in inet6_addr_modify()
4889 manage_tempaddrs(ifp->idev, ifp, cfg->valid_lft, in inet6_addr_modify()
4890 cfg->preferred_lft, !was_managetempaddr, in inet6_addr_modify()
4910 struct ifa6_config cfg; in inet6_rtm_newaddr() local
4918 memset(&cfg, 0, sizeof(cfg)); in inet6_rtm_newaddr()
4921 cfg.pfx = extract_addr(tb[IFA_ADDRESS], tb[IFA_LOCAL], &peer_pfx); in inet6_rtm_newaddr()
4922 if (!cfg.pfx) in inet6_rtm_newaddr()
4925 cfg.peer_pfx = peer_pfx; in inet6_rtm_newaddr()
4926 cfg.plen = ifm->ifa_prefixlen; in inet6_rtm_newaddr()
4928 cfg.rt_priority = nla_get_u32(tb[IFA_RT_PRIORITY]); in inet6_rtm_newaddr()
4930 cfg.valid_lft = INFINITY_LIFE_TIME; in inet6_rtm_newaddr()
4931 cfg.preferred_lft = INFINITY_LIFE_TIME; in inet6_rtm_newaddr()
4937 cfg.valid_lft = ci->ifa_valid; in inet6_rtm_newaddr()
4938 cfg.preferred_lft = ci->ifa_prefered; in inet6_rtm_newaddr()
4946 cfg.ifa_flags = nla_get_u32(tb[IFA_FLAGS]); in inet6_rtm_newaddr()
4948 cfg.ifa_flags = ifm->ifa_flags; in inet6_rtm_newaddr()
4951 cfg.ifa_flags &= IFA_F_NODAD | IFA_F_HOMEADDRESS | in inet6_rtm_newaddr()
4960 cfg.ifa_flags &= ~IFA_F_OPTIMISTIC; in inet6_rtm_newaddr()
4962 if (cfg.ifa_flags & IFA_F_NODAD && in inet6_rtm_newaddr()
4963 cfg.ifa_flags & IFA_F_OPTIMISTIC) { in inet6_rtm_newaddr()
4968 ifa = ipv6_get_ifaddr(net, cfg.pfx, dev, 1); in inet6_rtm_newaddr()
4974 return inet6_addr_add(net, ifm->ifa_index, &cfg, extack); in inet6_rtm_newaddr()
4981 err = inet6_addr_modify(ifa, &cfg); in inet6_rtm_newaddr()