Lines Matching refs:ifac

94 	TAILQ_HEAD(, ifac) ifc_ifac_head;	/* list of AF_INET6 addrs */
100 struct ifac { /* Address associated to an interface */ struct
101 TAILQ_ENTRY(ifac) ifac_next;
246 static struct ifac *ifa_match(const struct ifc *, const struct in6_addr *, int);
1591 struct ifac *ifac; in ifconfig1() local
1605 if ((ifac = ifa_match(ifcp, &sin6->sin6_addr, plen)) != NULL) { in ifconfig1()
1614 if ((ifac = MALLOC(struct ifac)) == NULL) { in ifconfig1()
1618 memset(ifac, 0, sizeof(*ifac)); in ifconfig1()
1620 ifac->ifac_ifc = ifcp; in ifconfig1()
1621 ifac->ifac_addr = sin6->sin6_addr; in ifconfig1()
1622 ifac->ifac_plen = plen; in ifconfig1()
1623 ifac->ifac_scope_id = sin6->sin6_scope_id; in ifconfig1()
1630 ifac->ifac_raddr = ifr.ifr_dstaddr.sin6_addr; in ifconfig1()
1631 inet_ntop(AF_INET6, (void *)&ifac->ifac_raddr, buf, in ifconfig1()
1634 inet6_n2p(&ifac->ifac_addr), ifac->ifac_plen, buf); in ifconfig1()
1637 inet6_n2p(&ifac->ifac_addr), ifac->ifac_plen); in ifconfig1()
1639 if (ifcp->ifc_index < 0 && IN6_IS_ADDR_LINKLOCAL(&ifac->ifac_addr)) { in ifconfig1()
1640 ifcp->ifc_mylladdr = ifac->ifac_addr; in ifconfig1()
1641 ifcp->ifc_index = ifac->ifac_scope_id; in ifconfig1()
1658 TAILQ_INSERT_HEAD(&ifcp->ifc_ifac_head, ifac, ifac_next); in ifconfig1()
2055 struct ifac *ifac = NULL; in rt_deladdr() local
2070 ifac = ifa_match(ifcp, addr, prefix); in rt_deladdr()
2071 if (!ifac) { in rt_deladdr()
2076 if (ifac->ifac_ifc != ifcp) { in rt_deladdr()
2079 ifcp->ifc_name, ifac->ifac_ifc->ifc_name); in rt_deladdr()
2082 TAILQ_REMOVE(&ifcp->ifc_ifac_head, ifac, ifac_next); in rt_deladdr()
2086 ni6.rip6_dest = ifac->ifac_addr; in rt_deladdr()
2087 ni6.rip6_plen = ifac->ifac_plen; in rt_deladdr()
2114 ni6.rip6_dest = ifac->ifac_raddr; in rt_deladdr()
2123 &ifac->ifac_addr)) { in rt_deladdr()
2140 free(ifac); in rt_deladdr()
2152 struct ifac *ifac; in ifrt() local
2168 TAILQ_FOREACH(ifac, &ifcp->ifc_ifac_head, ifac_next) { in ifrt()
2169 if (IN6_IS_ADDR_LINKLOCAL(&ifac->ifac_addr)) { in ifrt()
2173 inet6_n2p(&ifac->ifac_addr), ifcp->ifc_name); in ifrt()
2177 if (IN6_IS_ADDR_UNSPECIFIED(&ifac->ifac_addr)) { in ifrt()
2184 if (IN6_IS_ADDR_LOOPBACK(&ifac->ifac_addr)) { in ifrt()
2198 rrt->rrt_info.rip6_dest = ifac->ifac_addr; in ifrt()
2201 rrt->rrt_info.rip6_plen = ifac->ifac_plen; in ifrt()
2204 applyplen(&rrt->rrt_info.rip6_dest, ifac->ifac_plen); in ifrt()
2206 rrt->rrt_gw = ifac->ifac_addr; in ifrt()
2265 struct ifac *ifac; in ifrt_p2p() local
2278 TAILQ_FOREACH(ifac, &ifcp->ifc_ifac_head, ifac_next) { in ifrt_p2p()
2279 addr = ifac->ifac_addr; in ifrt_p2p()
2280 dest = ifac->ifac_raddr; in ifrt_p2p()
2281 applyplen(&addr, ifac->ifac_plen); in ifrt_p2p()
2282 applyplen(&dest, ifac->ifac_plen); in ifrt_p2p()
2327 if (!IN6_IS_ADDR_UNSPECIFIED(&ifac->ifac_raddr)) { in ifrt_p2p()
2353 rrt->rrt_info.rip6_dest = ifac->ifac_addr; in ifrt_p2p()
2354 rrt->rrt_info.rip6_plen = ifac->ifac_plen; in ifrt_p2p()
2356 ifac->ifac_plen); in ifrt_p2p()
2360 rrt->rrt_info.rip6_dest = ifac->ifac_addr; in ifrt_p2p()
2366 rrt->rrt_info.rip6_dest = ifac->ifac_raddr; in ifrt_p2p()
2368 rrt->rrt_gw = ifac->ifac_addr; in ifrt_p2p()
3059 struct ifac *ifac; in ifdump0() local
3069 TAILQ_FOREACH(ifac, &ifcp->ifc_ifac_head, ifac_next) { in ifdump0()
3071 inet_ntop(AF_INET6, (void *)&ifac->ifac_raddr, in ifdump0()
3074 inet6_n2p(&ifac->ifac_addr), in ifdump0()
3075 ifac->ifac_plen, buf); in ifdump0()
3078 inet6_n2p(&ifac->ifac_addr), in ifdump0()
3079 ifac->ifac_plen); in ifdump0()
3292 static struct ifac *
3297 struct ifac *ifac; in ifa_match() local
3299 TAILQ_FOREACH(ifac, &ifcp->ifc_ifac_head, ifac_next) { in ifa_match()
3300 if (IN6_ARE_ADDR_EQUAL(&ifac->ifac_addr, ia) && in ifa_match()
3301 ifac->ifac_plen == plen) in ifa_match()
3305 return (ifac); in ifa_match()