Lines Matching defs:ifma

475 	struct ifmultiaddr *ifma;
477 TAILQ_FOREACH (ifma, &ifp->if_multiaddrs, ifma_link) {
479 LLADDR((struct sockaddr_dl *)ifma->ifma_addr), ETHER_ADDR_LEN) == 0)
480 return ifma;
494 if_freemulti(struct ifmultiaddr *ifma)
497 KASSERT(ifma->ifma_refcount == 0, ("if_freemulti: refcount %d",
498 ifma->ifma_refcount));
499 KASSERT(ifma->ifma_protospec == NULL,
502 if (ifma->ifma_lladdr != NULL)
503 free(ifma->ifma_lladdr);
508 //free(ifma->ifma_addr);
510 free(ifma);
570 if_delmulti_locked(struct ifnet *ifp, struct ifmultiaddr *ifma, int detaching)
574 if (ifp != NULL && ifma->ifma_ifp != NULL) {
575 KASSERT(ifma->ifma_ifp == ifp,
580 ifp = ifma->ifma_ifp;
599 rt_newmaddrmsg(RTM_DELMADDR, ifma);
601 ifma->ifma_ifp = NULL;
605 if (--ifma->ifma_refcount > 0)
610 * If this ifma is a network-layer ifma, a link-layer ifma may
613 ll_ifma = ifma->ifma_llifma;
615 KASSERT(ifma->ifma_lladdr != NULL,
630 TAILQ_REMOVE(&ifp->if_multiaddrs, ifma, ifma_link);
632 if_freemulti(ifma);
649 struct ifmultiaddr *ifma;
653 TAILQ_FOREACH_SAFE(ifma, &ifp->if_multiaddrs, ifma_link, next)
654 if_delmulti_locked(ifp, ifma, 0);
660 if_delete_multiaddr(struct ifnet *ifp, struct ifmultiaddr *ifma)
662 TAILQ_REMOVE(&ifp->if_multiaddrs, ifma, ifma_link);
663 free(ifma);
670 struct ifmultiaddr *ifma;
690 ifma = if_findmulti(ifp, sa);
691 if (ifma != NULL)
692 lastref = if_delmulti_locked(ifp, ifma, 0);
695 if (ifma == NULL)
709 struct ifmultiaddr *ifma;
713 TAILQ_FOREACH_SAFE(ifma, &ifp->if_multiaddrs, ifma_link, next)
714 if_delmulti_locked(ifp, ifma, 1);
1218 struct ifmultiaddr *ifma;
1222 TAILQ_FOREACH(ifma, &((struct ifnet *)ifp)->if_multiaddrs, ifma_link) {
1223 if (ifma->ifma_addr->sa_family != AF_LINK)
1229 bcopy(LLADDR((struct sockaddr_dl *)ifma->ifma_addr),
1252 struct ifmultiaddr *ifma;
1257 TAILQ_FOREACH(ifma, &((struct ifnet *)ifp)->if_multiaddrs, ifma_link) {
1258 if (ifma->ifma_addr->sa_family != AF_LINK)
1271 struct ifmultiaddr *ifma;
1275 TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
1276 if (ifma->ifma_addr->sa_family == AF_LINK)
1286 struct ifmultiaddr *ifma;
1290 TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
1291 if (ifma->ifma_addr->sa_family != AF_LINK)
1293 count += (*cb)(cb_arg, (struct sockaddr_dl *)ifma->ifma_addr,