Lines Matching refs:ifa
179 in6_ifloop_request(int cmd, struct ifaddr *ifa)
195 * (probably implicitly) set nd6_rtrequest() to ifa->ifa_rtrequest,
198 e = rtrequest_locked(cmd, ifa->ifa_addr, ifa->ifa_addr,
205 ip6_sprintf(&((struct in6_ifaddr *)ifa)->ia_addr.sin6_addr),
216 if (cmd == RTM_ADD && nrt && ifa != nrt->rt_ifa) {
217 rtsetifa(nrt, ifa);
227 rt_newaddrmsg(cmd, ifa, e, nrt);
245 in6_ifaddloop(struct ifaddr *ifa)
251 rt = rtalloc1_locked(ifa->ifa_addr, 0, 0UL);
254 in6_ifloop_request(RTM_ADD, ifa);
265 in6_ifremloop(struct ifaddr *ifa, int locked)
282 * Delete the entry only if exact one ifa exists. More than one ifa
290 if (IN6_ARE_ADDR_EQUAL(IFA_IN6(ifa), &ia->ia_addr.sin6_addr)) {
309 rt = rtalloc1_locked(ifa->ifa_addr, 0, 0UL);
313 in6_ifloop_request(RTM_DELETE, ifa);
324 struct ifaddr *ifa;
335 TAILQ_FOREACH(ifa, &ifp->if_addrlist, ifa_list)
337 if (ifa->ifa_addr->sa_family != AF_INET6)
339 sin6 = (struct sockaddr_in6 *)ifa->ifa_addr;
402 #define ifa2ia6(ifa) ((struct in6_ifaddr *)(ifa))
1399 struct ifaddr *ifa, int nd6_locked)
1401 struct ifnet *ifp = ifa->ifa_ifp;
1402 struct in6_ifaddr *ia = (struct in6_ifaddr *) ifa;
1405 nd6_dad_stop(ifa);
1574 struct ifaddr *ifa;
1631 ifa = (struct ifaddr *)in6ifa_ifpforlinklocal(ifp, 0);
1632 if (!ifa)
1634 hostaddr = *IFA_IN6(ifa);
1723 TAILQ_FOREACH(ifa, &ifp->if_addrlist, ifa_list)
1725 if (ifa->ifa_addr->sa_family != AF_INET6)
1730 bcopy(IFA_IN6(ifa), &candidate, sizeof(candidate));
1748 if (!ifa)
1750 ia = ifa2ia6(ifa);
1831 struct ifaddr *ifa;
1839 TAILQ_FOREACH(ifa, &ifp->if_addrlist, ifa_list)
1841 if (ifa->ifa_addr == NULL)
1843 if (ifa->ifa_addr->sa_family != AF_INET6)
1995 struct ifaddr *ifa;
1998 TAILQ_FOREACH(ifa, &ifp->if_addrlist, ifa_list)
2000 if (ifa->ifa_addr == NULL)
2002 if (ifa->ifa_addr->sa_family != AF_INET6)
2004 if (IN6_IS_ADDR_LINKLOCAL(IFA_IN6(ifa))) {
2005 if ((((struct in6_ifaddr *)ifa)->ia6_flags &
2013 return((struct in6_ifaddr *)ifa);
2024 struct ifaddr *ifa;
2027 TAILQ_FOREACH(ifa, &ifp->if_addrlist, ifa_list)
2029 if (ifa->ifa_addr == NULL)
2031 if (ifa->ifa_addr->sa_family != AF_INET6)
2033 if (IN6_ARE_ADDR_EQUAL(addr, IFA_IN6(ifa)))
2038 return((struct in6_ifaddr *)ifa);
2252 struct ifaddr *ifa;
2278 TAILQ_FOREACH(ifa, &ifp->if_addrlist, ifa_list)
2282 if (ifa->ifa_addr->sa_family != AF_INET6)
2285 src_scope = in6_addrscope(IFA_IN6(ifa));
2291 if (((struct in6_ifaddr *)ifa)->ia6_flags &
2296 if (((struct in6_ifaddr *)ifa)->ia6_flags &
2300 if (((struct in6_ifaddr *)ifa)->ia6_flags &
2344 if (((struct in6_ifaddr *)ifa)->ia6_flags &
2369 (((struct in6_ifaddr *)ifa)->ia6_flags &
2385 ifat = (struct in6_ifaddr *)ifa;
2436 * interface, and the column "sI" means if the ifa
2472 tlen = in6_matchlen(IFA_IN6(ifa), dst);
2494 ifaref(ifa);
2497 ifa_best = (struct in6_ifaddr *)ifa;
2499 in6_matchlen(IFA_IN6(ifa), dst);
2537 struct ifaddr *ifa;
2550 TAILQ_FOREACH(ifa, &ifp->if_addrlist, ifa_list)
2552 if (ifa->ifa_addr->sa_family != AF_INET6)
2554 if (((struct in6_ifaddr *)ifa)->ia6_flags & IN6_IFF_ANYCAST)
2556 if (((struct in6_ifaddr *)ifa)->ia6_flags & IN6_IFF_NOTREADY)
2558 if (((struct in6_ifaddr *)ifa)->ia6_flags & IN6_IFF_DETACHED)
2560 if (((struct in6_ifaddr *)ifa)->ia6_flags & IN6_IFF_DEPRECATED) {
2562 dep[0] = (struct in6_ifaddr *)ifa;
2566 if (dst_scope == in6_addrscope(IFA_IN6(ifa))) {
2573 tlen = in6_matchlen(IFA_IN6(ifa), dst);
2576 besta = (struct in6_ifaddr *)ifa;
2579 besta = (struct in6_ifaddr *)ifa;
2587 TAILQ_FOREACH(ifa, &ifp->if_addrlist, ifa_list)
2589 if (ifa->ifa_addr->sa_family != AF_INET6)
2591 if (((struct in6_ifaddr *)ifa)->ia6_flags & IN6_IFF_ANYCAST)
2593 if (((struct in6_ifaddr *)ifa)->ia6_flags & IN6_IFF_NOTREADY)
2595 if (((struct in6_ifaddr *)ifa)->ia6_flags & IN6_IFF_DETACHED)
2597 if (((struct in6_ifaddr *)ifa)->ia6_flags & IN6_IFF_DEPRECATED) {
2599 dep[1] = (struct in6_ifaddr *)ifa;
2604 return (struct in6_ifaddr *)ifa;
2625 struct ifaddr *ifa;
2639 TAILQ_FOREACH(ifa, &ifp->if_addrlist, ifa_list)
2641 if (ifa->ifa_addr->sa_family != AF_INET6)
2643 ia = (struct in6_ifaddr *)ifa;
2645 nd6_dad_start(ifa, &dad_delay);
2769 in6_post_msg(struct ifnet *ifp, u_long event_code, struct in6_ifaddr *ifa)
2779 in6_event_data.ia_addr = ifa->ia_addr;
2780 in6_event_data.ia_net = ifa->ia_net;
2781 in6_event_data.ia_dstaddr = ifa->ia_dstaddr;
2782 in6_event_data.ia_prefixmask = ifa->ia_prefixmask;
2783 in6_event_data.ia_plen = ifa->ia_plen;
2784 in6_event_data.ia6_flags = (u_int32_t)ifa->ia6_flags;
2785 in6_event_data.ia_lifetime = ifa->ia6_lifetime;