• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10.1/xnu-2782.1.97/bsd/net/

Lines Matching refs:ifa

1271 rtsetifa(struct rtentry *rt, struct ifaddr *ifa)
1277 if (rt->rt_ifa == ifa)
1283 /* Release the old ifa */
1288 rt->rt_ifa = ifa;
1290 /* Take a reference to the ifa */
1310 struct ifaddr *ifa = NULL;
1335 if ((ifa = ifa_ifwithnet_scoped(gateway, ifscope)) == NULL) {
1350 * possibility of rt_ifa/ifa's ifa_addr from changing (e.g.
1355 ifa->ifa_addr))) {
1358 IFA_REMREF(ifa);
1359 if ((ifa = ifa_ifwithaddr(gateway))) {
1360 IFA_REMREF(ifa);
1361 ifa = NULL;
1366 if (ifa) {
1367 IFA_REMREF(ifa);
1368 ifa = NULL;
1470 struct ifaddr *ifa;
1473 ifa = ifa_ifwithroute_locked(flags, dst, gateway);
1476 return (ifa);
1503 struct ifaddr *ifa = NULL;
1541 ifa = ifa_ifwithdstaddr(dst);
1543 if (ifa == NULL)
1544 ifa = ifa_ifwithaddr_scoped(gw, ifscope);
1551 ifa = ifa_ifwithdstaddr(gw);
1553 if (ifa == NULL)
1554 ifa = ifa_ifwithnet_scoped(gw, ifscope);
1555 if (ifa == NULL) {
1561 ifa = rt->rt_ifa;
1562 if (ifa != NULL) {
1565 IFA_ADDREF(ifa);
1573 * Holding rnh_lock here prevents the possibility of ifa from
1577 if (ifa != NULL && ifa->ifa_addr->sa_family != dst->sa_family) {
1580 newifa = ifaof_ifpforaddr(dst, ifa->ifa_ifp);
1582 IFA_REMREF(ifa);
1583 ifa = newifa;
1592 * on new entries from rtinit, hence (ifa->ifa_addr != gw).
1594 if ((ifa == NULL ||
1595 !equal(ifa->ifa_addr, (struct sockaddr *)(size_t)gw)) &&
1598 if (ifa != NULL)
1599 IFA_REMREF(ifa);
1601 ifa = rt->rt_ifa;
1602 if (ifa != NULL) {
1605 IFA_ADDREF(ifa);
1616 ifa != NULL && ifa->ifa_ifp->if_index != ifscope) {
1617 IFA_REMREF(ifa);
1618 ifa = NULL;
1621 return (ifa);
1678 struct ifaddr *ifa = NULL;
1812 if ((ifa = rt->rt_ifa) != NULL) {
1813 IFA_LOCK_SPIN(ifa);
1814 ifa_rtrequest = ifa->ifa_rtrequest;
1815 IFA_UNLOCK(ifa);
1819 ifa = NULL;
1898 ifa = rt->rt_ifa;
1899 IFA_ADDREF(ifa);
1965 ifa = ifa_ifwithroute_scoped_locked(flags, dst0,
1968 ifa = ifa_ifwithroute_locked(flags, dst0, gateway);
1970 if (ifa == NULL)
2026 * Note that we now have a reference to the ifa.
2028 * examine the ifa and ifa->ifa_ifp if it so desires.
2030 rtsetifa(rt, ifa);
2120 IFA_LOCK_SPIN(ifa);
2121 ifa_rtrequest = ifa->ifa_rtrequest;
2122 IFA_UNLOCK(ifa);
2125 IFA_REMREF(ifa);
2126 ifa = NULL;
2179 if (ifa)
2180 IFA_REMREF(ifa);
2976 rtinit(struct ifaddr *ifa, int cmd, int flags)
2983 error = rtinit_locked(ifa, cmd, flags);
2990 rtinit_locked(struct ifaddr *ifa, int cmd, int flags)
3002 * Holding rnh_lock here prevents the possibility of ifa from
3009 dst = ifa->ifa_dstaddr;
3012 dst = ifa->ifa_addr;
3013 netmask = ifa->ifa_netmask;
3047 * interface or we might scrub a route to another ifa which would
3077 if (rt->rt_ifa != ifa) {
3089 "ifa 0x%llx\n", __func__, dbuf,
3095 (uint64_t)VM_KERNEL_ADDRPERM(ifa));
3138 if ((error = rtrequest_locked(cmd, dst, ifa->ifa_addr, netmask,
3139 flags | ifa->ifa_flags, &rt)) != 0)
3154 rt_newaddrmsg(cmd, ifa, error, rt);
3173 if (rt->rt_ifa != ifa) {
3181 "ifa 0x%llx\n", __func__, rtm2str(cmd),
3186 (uint64_t)VM_KERNEL_ADDRPERM(ifa));
3197 (uint64_t)VM_KERNEL_ADDRPERM(ifa));
3209 * Set the route's ifa.
3211 rtsetifa(rt, ifa);
3213 if (rt->rt_ifp != ifa->ifa_ifp) {
3223 rt->rt_if_ref_fn(ifa->ifa_ifp, 1);
3232 rt->rt_ifp = ifa->ifa_ifp;
3244 ifa_rtrequest = ifa->ifa_rtrequest;
3259 rt_newaddrmsg(cmd, ifa, error, rt);