Lines Matching refs:ifa
194 struct ifaddr ifa; /* lladdr ifa */
4251 struct ifaddr *ifa;
4363 ifa = dlil_alloc_lladdr(ifp, ll_addr);
4364 if (ifa == NULL) {
4372 ifnet_addrs[ifp->if_index - 1] = ifa;
4375 IFA_LOCK(ifa);
4377 IFA_ADDREF_LOCKED(ifa);
4379 if_attach_link_ifa(ifp, ifa);
4380 IFA_UNLOCK(ifa);
4634 struct ifaddr *ifa, *oifa;
4653 ifa = ifp->if_lladdr;
4655 (ifa != NULL && ifa != &dl_if->dl_if_lladdr.ifa)) {
4663 if (ifa == NULL || ifa == &dl_if->dl_if_lladdr.ifa) {
4664 int ifasize = sizeof (*ifa) + 2 * SOCK_MAXADDRLEN;
4665 ifa = _MALLOC(ifasize, M_IFADDR, M_WAITOK | M_ZERO);
4666 if (ifa == NULL)
4668 ifa_lock_init(ifa);
4670 ifa->ifa_debug = IFD_LINK;
4672 IFA_LOCK(ifa);
4674 asdl = (struct sockaddr_dl *)(ifa + 1);
4680 VERIFY(ifa == NULL || ifa == &dl_if->dl_if_lladdr.ifa);
4685 if (ifa == NULL) {
4686 ifa = &dl_if->dl_if_lladdr.ifa;
4687 ifa_lock_init(ifa);
4689 ifa->ifa_debug = IFD_LINK;
4691 IFA_LOCK(ifa);
4700 IFA_ADDREF_LOCKED(ifa);
4702 ifp->if_lladdr = ifa;
4704 VERIFY(ifa->ifa_debug == IFD_LINK);
4705 ifa->ifa_ifp = ifp;
4706 ifa->ifa_rtrequest = link_rtrequest;
4707 ifa->ifa_addr = (struct sockaddr *)asdl;
4720 ifa->ifa_netmask = (struct sockaddr*)msdl;
4724 IFA_UNLOCK(ifa);
4729 return (ifa);
4932 struct ifaddr *ifa;
4998 ifa = TAILQ_FIRST(&ifp->if_addrhead);
4999 VERIFY(ifnet_addrs[ifp->if_index - 1] == ifa);
5000 IFA_LOCK(ifa);
5001 if_detach_link_ifa(ifp, ifa);
5002 IFA_UNLOCK(ifa);
5005 IFA_REMREF(ifa);