Lines Matching refs:ipv6
63 #define DESYNC_FACTOR(ipv6) ((ipv6)->desync_factor) argument
136 static bool ipv6_pe_prefix_already_exists(struct net_if_ipv6 *ipv6, in ipv6_pe_prefix_already_exists() argument
139 ARRAY_FOR_EACH(ipv6->unicast, i) { in ipv6_pe_prefix_already_exists()
140 if (!ipv6->unicast[i].is_used || in ipv6_pe_prefix_already_exists()
141 ipv6->unicast[i].address.family != AF_INET6 || in ipv6_pe_prefix_already_exists()
142 !ipv6->unicast[i].is_temporary || in ipv6_pe_prefix_already_exists()
143 ipv6->unicast[i].addr_state == NET_ADDR_DEPRECATED) { in ipv6_pe_prefix_already_exists()
148 (uint8_t *)&ipv6->unicast[i].address.in6_addr, in ipv6_pe_prefix_already_exists()
158 struct net_if_ipv6 *ipv6, in ipv6_pe_prefix_remove() argument
163 ARRAY_FOR_EACH(ipv6->unicast, i) { in ipv6_pe_prefix_remove()
164 if (ipv6->unicast[i].is_used && in ipv6_pe_prefix_remove()
165 ipv6->unicast[i].address.family == AF_INET6 && in ipv6_pe_prefix_remove()
166 ipv6->unicast[i].is_temporary && in ipv6_pe_prefix_remove()
168 (uint8_t *)&ipv6->unicast[i].address.in6_addr, in ipv6_pe_prefix_remove()
171 &ipv6->unicast[i].address.in6_addr); in ipv6_pe_prefix_remove()
179 static bool ipv6_pe_prefix_update_lifetimes(struct net_if_ipv6 *ipv6, in ipv6_pe_prefix_update_lifetimes() argument
185 ARRAY_FOR_EACH(ipv6->unicast, i) { in ipv6_pe_prefix_update_lifetimes()
186 if (!(ipv6->unicast[i].is_used && in ipv6_pe_prefix_update_lifetimes()
187 ipv6->unicast[i].address.family == AF_INET6 && in ipv6_pe_prefix_update_lifetimes()
188 ipv6->unicast[i].is_temporary && in ipv6_pe_prefix_update_lifetimes()
189 ipv6->unicast[i].addr_state == NET_ADDR_PREFERRED && in ipv6_pe_prefix_update_lifetimes()
191 (uint8_t *)&ipv6->unicast[i].address.in6_addr, in ipv6_pe_prefix_update_lifetimes()
196 addr_age = k_uptime_seconds() - ipv6->unicast[i].addr_create_time; in ipv6_pe_prefix_update_lifetimes()
201 DESYNC_FACTOR(ipv6)))) { in ipv6_pe_prefix_update_lifetimes()
205 net_if_ipv6_addr_update_lifetime(&ipv6->unicast[i], vlifetime); in ipv6_pe_prefix_update_lifetimes()
295 struct net_if_ipv6 *ipv6; in net_ipv6_pe_start() local
305 if (net_if_config_ipv6_get(iface, &ipv6) < 0) { in net_ipv6_pe_start()
310 if (!ipv6) { in net_ipv6_pe_start()
324 if (ipv6_pe_prefix_already_exists(ipv6, prefix)) { in net_ipv6_pe_start()
326 i = ipv6_pe_prefix_remove(iface, ipv6, prefix); in net_ipv6_pe_start()
331 ipv6_pe_prefix_update_lifetimes(ipv6, prefix, vlifetime); in net_ipv6_pe_start()
339 DESYNC_FACTOR(ipv6)); in net_ipv6_pe_start()
341 preferred_lifetime <= REGEN_ADVANCE(ipv6->retrans_timer, 1U)) { in net_ipv6_pe_start()
344 REGEN_ADVANCE(ipv6->retrans_timer, 1U), in net_ipv6_pe_start()
399 DESYNC_FACTOR(ipv6) = sys_rand32_get() % MAX_DESYNC_FACTOR; in net_ipv6_pe_start()
404 DESYNC_FACTOR(ipv6) = MIN(DESYNC_FACTOR(ipv6) + 2U, lifetime); in net_ipv6_pe_start()
408 ifaddr->addr_timeout = ifaddr->addr_preferred_lifetime - DESYNC_FACTOR(ipv6); in net_ipv6_pe_start()
412 lifetime, DESYNC_FACTOR(ipv6), ifaddr->addr_timeout, in net_ipv6_pe_start()
439 struct net_if_ipv6 *ipv6; in iface_cb() local
444 if (net_if_config_ipv6_get(iface, &ipv6) < 0) { in iface_cb()
448 if (!ipv6) { in iface_cb()
452 ARRAY_FOR_EACH(ipv6->unicast, i) { in iface_cb()
453 if (!ipv6->unicast[i].is_used || in iface_cb()
454 ipv6->unicast[i].address.family != AF_INET6 || in iface_cb()
455 !ipv6->unicast[i].is_temporary) { in iface_cb()
460 (uint8_t *)&ipv6->unicast[i].address.in6_addr, in iface_cb()
469 &ipv6->unicast[i].address.in6_addr); in iface_cb()
474 &ipv6->unicast[i].address.in6_addr); in iface_cb()
677 struct net_if_ipv6 *ipv6; in renewal_cb() local
680 if (net_if_config_ipv6_get(iface, &ipv6) < 0) { in renewal_cb()
684 if (!ipv6) { in renewal_cb()
688 ARRAY_FOR_EACH(ipv6->unicast, i) { in renewal_cb()
691 if (!ipv6->unicast[i].is_used || in renewal_cb()
692 ipv6->unicast[i].address.family != AF_INET6 || in renewal_cb()
693 !ipv6->unicast[i].is_temporary || in renewal_cb()
694 ipv6->unicast[i].addr_state == NET_ADDR_DEPRECATED) { in renewal_cb()
701 diff = (int32_t)(ipv6->unicast[i].addr_create_time - k_uptime_seconds()); in renewal_cb()
704 if (diff < (ipv6->unicast[i].addr_preferred_lifetime - in renewal_cb()
705 REGEN_ADVANCE(ipv6->retrans_timer, 1U) - in renewal_cb()
706 DESYNC_FACTOR(ipv6))) { in renewal_cb()
710 net_ipaddr_copy(&prefix, &ipv6->unicast[i].address.in6_addr); in renewal_cb()
714 net_sprint_ipv6_addr(&ipv6->unicast[i].address.in6_addr)); in renewal_cb()
716 ipv6->unicast[i].addr_state = NET_ADDR_DEPRECATED; in renewal_cb()
740 &ipv6->unicast[i].address.in6_addr, in renewal_cb()