Lines Matching refs:ifa
829 struct ifaddr *ifa; in if_attach_internal() local
882 ifasize = sizeof(*ifa) + 2 * socksize; in if_attach_internal()
883 ifa = ifa_alloc(ifasize, M_WAITOK); in if_attach_internal()
884 sdl = (struct sockaddr_dl *)(ifa + 1); in if_attach_internal()
891 ifp->if_addr = ifa; in if_attach_internal()
892 ifa->ifa_ifp = ifp; in if_attach_internal()
893 ifa->ifa_addr = (struct sockaddr *)sdl; in if_attach_internal()
895 ifa->ifa_netmask = (struct sockaddr *)sdl; in if_attach_internal()
899 CK_STAILQ_INSERT_HEAD(&ifp->if_addrhead, ifa, ifa_link); in if_attach_internal()
940 for (ifa = ifp->if_addr; ifa != NULL; in if_attach_internal()
941 ifa = CK_STAILQ_NEXT(ifa, ifa_link)) { in if_attach_internal()
942 if (ifa->ifa_addr->sa_family == AF_LINK) { in if_attach_internal()
943 sdl = (struct sockaddr_dl *)ifa->ifa_addr; in if_attach_internal()
1013 struct ifaddr *ifa; in if_purgeaddrs() local
1029 CK_STAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) { in if_purgeaddrs()
1030 if (ifa->ifa_addr->sa_family != AF_LINK) in if_purgeaddrs()
1035 if (ifa == NULL) in if_purgeaddrs()
1039 if (ifa->ifa_addr->sa_family == AF_INET) { in if_purgeaddrs()
1043 ifr.ifr_addr = *ifa->ifa_addr; in if_purgeaddrs()
1050 if (ifa->ifa_addr->sa_family == AF_INET6) { in if_purgeaddrs()
1051 in6_purgeifaddr((struct in6_ifaddr *)ifa); in if_purgeaddrs()
1057 CK_STAILQ_REMOVE(&ifp->if_addrhead, ifa, ifaddr, ifa_link); in if_purgeaddrs()
1059 ifa_free(ifa); in if_purgeaddrs()
1118 struct ifaddr *ifa; in if_detach_internal() local
1223 ifa = CK_STAILQ_FIRST(&ifp->if_addrhead); in if_detach_internal()
1224 CK_STAILQ_REMOVE(&ifp->if_addrhead, ifa, ifaddr, ifa_link); in if_detach_internal()
1226 ifa_free(ifa); in if_detach_internal()
1721 struct ifaddr *ifa; in ifa_alloc() local
1726 ifa = malloc(size, M_IFADDR, M_ZERO | flags); in ifa_alloc()
1727 if (ifa == NULL) in ifa_alloc()
1730 if ((ifa->ifa_opackets = counter_u64_alloc(flags)) == NULL) in ifa_alloc()
1732 if ((ifa->ifa_ipackets = counter_u64_alloc(flags)) == NULL) in ifa_alloc()
1734 if ((ifa->ifa_obytes = counter_u64_alloc(flags)) == NULL) in ifa_alloc()
1736 if ((ifa->ifa_ibytes = counter_u64_alloc(flags)) == NULL) in ifa_alloc()
1739 refcount_init(&ifa->ifa_refcnt, 1); in ifa_alloc()
1741 return (ifa); in ifa_alloc()
1745 counter_u64_free(ifa->ifa_opackets); in ifa_alloc()
1746 counter_u64_free(ifa->ifa_ipackets); in ifa_alloc()
1747 counter_u64_free(ifa->ifa_obytes); in ifa_alloc()
1748 counter_u64_free(ifa->ifa_ibytes); in ifa_alloc()
1749 free(ifa, M_IFADDR); in ifa_alloc()
1755 ifa_ref(struct ifaddr *ifa) in ifa_ref() argument
1759 old = refcount_acquire(&ifa->ifa_refcnt); in ifa_ref()
1760 KASSERT(old > 0, ("%s: ifa %p has 0 refs", __func__, ifa)); in ifa_ref()
1764 ifa_try_ref(struct ifaddr *ifa) in ifa_try_ref() argument
1768 return (refcount_acquire_if_not_zero(&ifa->ifa_refcnt)); in ifa_try_ref()
1774 struct ifaddr *ifa; in ifa_destroy() local
1776 ifa = __containerof(ctx, struct ifaddr, ifa_epoch_ctx); in ifa_destroy()
1777 counter_u64_free(ifa->ifa_opackets); in ifa_destroy()
1778 counter_u64_free(ifa->ifa_ipackets); in ifa_destroy()
1779 counter_u64_free(ifa->ifa_obytes); in ifa_destroy()
1780 counter_u64_free(ifa->ifa_ibytes); in ifa_destroy()
1781 free(ifa, M_IFADDR); in ifa_destroy()
1785 ifa_free(struct ifaddr *ifa) in ifa_free() argument
1788 if (refcount_release(&ifa->ifa_refcnt)) in ifa_free()
1789 NET_EPOCH_CALL(ifa_destroy, &ifa->ifa_epoch_ctx); in ifa_free()
1816 struct ifaddr *ifa; in ifa_ifwithaddr() local
1821 CK_STAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) { in ifa_ifwithaddr()
1822 if (ifa->ifa_addr->sa_family != addr->sa_family) in ifa_ifwithaddr()
1824 if (sa_equal(addr, ifa->ifa_addr)) { in ifa_ifwithaddr()
1829 ifa->ifa_broadaddr && in ifa_ifwithaddr()
1830 ifa->ifa_broadaddr->sa_len != 0 && in ifa_ifwithaddr()
1831 sa_equal(ifa->ifa_broadaddr, addr)) { in ifa_ifwithaddr()
1836 ifa = NULL; in ifa_ifwithaddr()
1838 return (ifa); in ifa_ifwithaddr()
1861 struct ifaddr *ifa; in ifa_ifwithbroadaddr() local
1867 CK_STAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) { in ifa_ifwithbroadaddr()
1868 if (ifa->ifa_addr->sa_family != addr->sa_family) in ifa_ifwithbroadaddr()
1871 ifa->ifa_broadaddr && in ifa_ifwithbroadaddr()
1872 ifa->ifa_broadaddr->sa_len != 0 && in ifa_ifwithbroadaddr()
1873 sa_equal(ifa->ifa_broadaddr, addr)) { in ifa_ifwithbroadaddr()
1878 ifa = NULL; in ifa_ifwithbroadaddr()
1880 return (ifa); in ifa_ifwithbroadaddr()
1891 struct ifaddr *ifa; in ifa_ifwithdstaddr() local
1899 CK_STAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) { in ifa_ifwithdstaddr()
1900 if (ifa->ifa_addr->sa_family != addr->sa_family) in ifa_ifwithdstaddr()
1902 if (ifa->ifa_dstaddr != NULL && in ifa_ifwithdstaddr()
1903 sa_equal(addr, ifa->ifa_dstaddr)) { in ifa_ifwithdstaddr()
1908 ifa = NULL; in ifa_ifwithdstaddr()
1910 return (ifa); in ifa_ifwithdstaddr()
1921 struct ifaddr *ifa; in ifa_ifwithnet() local
1944 CK_STAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) { in ifa_ifwithnet()
1947 if (ifa->ifa_addr->sa_family != af) in ifa_ifwithnet()
1959 if (ifa->ifa_dstaddr != NULL && in ifa_ifwithnet()
1960 sa_equal(addr, ifa->ifa_dstaddr)) { in ifa_ifwithnet()
1971 if (ifa->ifa_netmask == 0) in ifa_ifwithnet()
1974 cp2 = ifa->ifa_addr->sa_data; in ifa_ifwithnet()
1975 cp3 = ifa->ifa_netmask->sa_data; in ifa_ifwithnet()
1976 cplim = ifa->ifa_netmask->sa_len in ifa_ifwithnet()
1977 + (char *)ifa->ifa_netmask; in ifa_ifwithnet()
1990 ifa_preferred(ifa_maybe, ifa) || in ifa_ifwithnet()
1991 rn_refines((caddr_t)ifa->ifa_netmask, in ifa_ifwithnet()
1993 ifa_maybe = ifa; in ifa_ifwithnet()
1998 ifa = ifa_maybe; in ifa_ifwithnet()
2001 return (ifa); in ifa_ifwithnet()
2011 struct ifaddr *ifa; in ifaof_ifpforaddr() local
2021 CK_STAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) { in ifaof_ifpforaddr()
2022 if (ifa->ifa_addr->sa_family != af) in ifaof_ifpforaddr()
2025 ifa_maybe = ifa; in ifaof_ifpforaddr()
2026 if (ifa->ifa_netmask == 0) { in ifaof_ifpforaddr()
2027 if (sa_equal(addr, ifa->ifa_addr) || in ifaof_ifpforaddr()
2028 (ifa->ifa_dstaddr && in ifaof_ifpforaddr()
2029 sa_equal(addr, ifa->ifa_dstaddr))) in ifaof_ifpforaddr()
2034 if (ifa->ifa_dstaddr && sa_equal(addr, ifa->ifa_dstaddr)) in ifaof_ifpforaddr()
2038 cp2 = ifa->ifa_addr->sa_data; in ifaof_ifpforaddr()
2039 cp3 = ifa->ifa_netmask->sa_data; in ifaof_ifpforaddr()
2040 cplim = ifa->ifa_netmask->sa_len + (char *)ifa->ifa_netmask; in ifaof_ifpforaddr()
2048 ifa = ifa_maybe; in ifaof_ifpforaddr()
2050 return (ifa); in ifaof_ifpforaddr()
3127 struct ifaddr *ifa; in if_rename() local
3155 ifa = ifp->if_addr; in if_rename()
3156 sdl = (struct sockaddr_dl *)ifa->ifa_addr; in if_rename()
3170 sdl = (struct sockaddr_dl *)ifa->ifa_netmask; in if_rename()
3293 struct ifaddr *ifa; in ifconf() local
3334 CK_STAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) { in ifconf()
3335 struct sockaddr *sa = ifa->ifa_addr; in ifconf()
3878 struct ifaddr *ifa; in if_setlladdr() local
3881 ifa = ifp->if_addr; in if_setlladdr()
3882 if (ifa == NULL) in if_setlladdr()
3885 sdl = (struct sockaddr_dl *)ifa->ifa_addr; in if_setlladdr()
4495 struct ifaddr *ifa; in if_lladdr_count() local
4500 CK_STAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) in if_lladdr_count()
4501 if (ifa->ifa_addr->sa_family == AF_LINK) in if_lladdr_count()
4632 struct ifaddr *ifa; in if_foreach_lladdr() local
4639 CK_STAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) { in if_foreach_lladdr()
4640 if (ifa->ifa_addr->sa_family != AF_LINK) in if_foreach_lladdr()
4642 count += (*cb)(cb_arg, (struct sockaddr_dl *)ifa->ifa_addr, in if_foreach_lladdr()
4700 struct ifaddr *ifa; in if_foreach_addr_type() local
4707 CK_STAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) { in if_foreach_addr_type()
4708 if (ifa->ifa_addr->sa_family != type) in if_foreach_addr_type()
4710 count += (*cb)(cb_arg, ifa, count); in if_foreach_addr_type()
4720 struct ifaddr *ifa; in ifa_iter_start() local
4725 ifa = CK_STAILQ_FIRST(&ifp->if_addrhead); in ifa_iter_start()
4726 if (ifa != NULL) in ifa_iter_start()
4727 iter->context[0] = CK_STAILQ_NEXT(ifa, ifa_link); in ifa_iter_start()
4730 return (ifa); in ifa_iter_start()
4736 struct ifaddr *ifa = iter->context[0]; in ifa_iter_next() local
4738 if (ifa != NULL) in ifa_iter_next()
4739 iter->context[0] = CK_STAILQ_NEXT(ifa, ifa_link); in ifa_iter_next()
4740 return (ifa); in ifa_iter_next()