Lines Matching defs:ifa

565 			 * ifa from changing (e.g. in_ifinit), so it is safe
828 struct ifaddr *ifa = NULL;
856 if (Ifpaddr && (ifa = ifa_ifwithnet_scoped(Ifpaddr, ifscope)) &&
857 (ifp = ifa->ifa_ifp) && (Ifaaddr || Gate)) {
858 IFA_REMREF(ifa);
859 ifa = ifaof_ifpforaddr(Ifaaddr ? Ifaaddr : Gate, ifp);
861 if (ifa) {
862 IFA_REMREF(ifa);
863 ifa = 0;
867 ifa = ifaof_ifpforaddr(Gate, ifp);
870 ifa = TAILQ_FIRST(&ifp->if_addrhead);
871 if (ifa != NULL)
872 IFA_ADDREF(ifa);
876 (ifa = ifa_ifwithaddr_scoped(Ifaaddr, ifscope))) {
877 ifp = ifa->ifa_ifp;
887 if ((ifa = ifa_ifwithroute_scoped_locked(rt->rt_flags,
889 ifp = ifa->ifa_ifp;
893 if (ifa != NULL)
894 IFA_REMREF(ifa);
901 if (ifa) {
903 if (oifa != ifa) {
911 rtsetifa(rt, ifa);
945 IFA_REMREF(ifa);
950 IFA_REMREF(ifa);
1262 rt_newaddrmsg(int cmd, struct ifaddr *ifa, int error, struct rtentry *rt)
1268 struct ifnet *ifp = ifa->ifa_ifp;
1288 IFA_LOCK(ifa);
1289 info.rti_info[RTAX_IFA] = sa = ifa->ifa_addr;
1297 info.rti_info[RTAX_NETMASK] = ifa->ifa_netmask;
1298 info.rti_info[RTAX_BRD] = ifa->ifa_dstaddr;
1300 IFA_UNLOCK(ifa);
1304 IFA_UNLOCK(ifa);
1308 IFA_LOCK_SPIN(ifa);
1309 ifam->ifam_metric = ifa->ifa_metric;
1310 ifam->ifam_flags = ifa->ifa_flags;
1311 IFA_UNLOCK(ifa);
1515 struct ifaddr *ifa;
1535 * changing contents, so no need to hold the ifa lock.
1538 ifa = ifp->if_lladdr;
1539 info.rti_info[RTAX_IFP] = ifa->ifa_addr;
1553 info.rti_info[RTAX_IFP] = ifa->ifa_addr;
1568 while ((ifa = ifa->ifa_link.tqe_next) != 0) {
1569 IFA_LOCK(ifa);
1570 if (af && af != ifa->ifa_addr->sa_family) {
1571 IFA_UNLOCK(ifa);
1574 info.rti_info[RTAX_IFA] = ifa->ifa_addr;
1575 info.rti_info[RTAX_NETMASK] = ifa->ifa_netmask;
1576 info.rti_info[RTAX_BRD] = ifa->ifa_dstaddr;
1584 IFA_UNLOCK(ifa);
1593 ifam->ifam_index = ifa->ifa_ifp->if_index;
1594 ifam->ifam_flags = ifa->ifa_flags;
1595 ifam->ifam_metric = ifa->ifa_metric;
1602 IFA_UNLOCK(ifa);
1644 struct ifaddr *ifa;
1664 * changing contents, so no need to hold the ifa lock.
1667 ifa = ifp->if_lladdr;
1668 info.rti_info[RTAX_IFP] = ifa->ifa_addr;
1682 info.rti_info[RTAX_IFP] = ifa->ifa_addr;
1702 while ((ifa = ifa->ifa_link.tqe_next) != 0) {
1703 IFA_LOCK(ifa);
1704 if (af && af != ifa->ifa_addr->sa_family) {
1705 IFA_UNLOCK(ifa);
1708 info.rti_info[RTAX_IFA] = ifa->ifa_addr;
1709 info.rti_info[RTAX_NETMASK] = ifa->ifa_netmask;
1710 info.rti_info[RTAX_BRD] = ifa->ifa_dstaddr;
1718 IFA_UNLOCK(ifa);
1727 ifam->ifam_index = ifa->ifa_ifp->if_index;
1728 ifam->ifam_flags = ifa->ifa_flags;
1729 ifam->ifam_metric = ifa->ifa_metric;
1736 IFA_UNLOCK(ifa);