Lines Matching refs:ifa

592 	struct mibifa *ifa;  in mib_first_ififa()  local
594 TAILQ_FOREACH(ifa, &mibifa_list, link) in mib_first_ififa()
595 if (ifp->index == ifa->ifindex) in mib_first_ififa()
596 return (ifa); in mib_first_ififa()
603 struct mibifa *ifa; in mib_next_ififa() local
605 ifa = ifa0; in mib_next_ififa()
606 while ((ifa = TAILQ_NEXT(ifa, link)) != NULL) in mib_next_ififa()
607 if (ifa->ifindex == ifa0->ifindex) in mib_next_ififa()
608 return (ifa); in mib_next_ififa()
618 struct mibifa *ifa; in alloc_ifa() local
621 if ((ifa = malloc(sizeof(struct mibifa))) == NULL) { in alloc_ifa()
625 ifa->inaddr = addr; in alloc_ifa()
626 ifa->ifindex = ifindex; in alloc_ifa()
628 ha = ntohl(ifa->inaddr.s_addr); in alloc_ifa()
629 ifa->index.len = 4; in alloc_ifa()
630 ifa->index.subs[0] = (ha >> 24) & 0xff; in alloc_ifa()
631 ifa->index.subs[1] = (ha >> 16) & 0xff; in alloc_ifa()
632 ifa->index.subs[2] = (ha >> 8) & 0xff; in alloc_ifa()
633 ifa->index.subs[3] = (ha >> 0) & 0xff; in alloc_ifa()
635 ifa->flags = 0; in alloc_ifa()
636 ifa->inbcast.s_addr = 0; in alloc_ifa()
637 ifa->inmask.s_addr = 0xffffffff; in alloc_ifa()
639 INSERT_OBJECT_OID(ifa, &mibifa_list); in alloc_ifa()
641 return (ifa); in alloc_ifa()
648 destroy_ifa(struct mibifa *ifa) in destroy_ifa() argument
650 TAILQ_REMOVE(&mibifa_list, ifa, link); in destroy_ifa()
651 free(ifa); in destroy_ifa()
741 struct mibifa *ifa, *ifa1; in mibif_free() local
781 ifa = TAILQ_FIRST(&mibifa_list); in mibif_free()
782 while (ifa != NULL) { in mibif_free()
783 ifa1 = TAILQ_NEXT(ifa, link); in mibif_free()
784 if (ifa->ifindex == ifp->index) in mibif_free()
785 destroy_ifa(ifa); in mibif_free()
786 ifa = ifa1; in mibif_free()
993 struct mibifa *ifa; in mib_find_ifa() local
995 TAILQ_FOREACH(ifa, &mibifa_list, link) in mib_find_ifa()
996 if (ifa->inaddr.s_addr == addr.s_addr) in mib_find_ifa()
997 return (ifa); in mib_find_ifa()
1045 struct mibifa *ifa; in handle_rtmsg() local
1064 if ((ifa = mib_find_ifa(sa->sin_addr)) == NULL) { in handle_rtmsg()
1071 if ((ifa = alloc_ifa(ifp->index, sa->sin_addr)) == NULL) in handle_rtmsg()
1075 ifa->inmask = sa->sin_addr; in handle_rtmsg()
1079 ifa->inbcast = sa->sin_addr; in handle_rtmsg()
1081 ifa->flags |= MIBIFA_FOUND; in handle_rtmsg()
1092 if ((ifa = mib_find_ifa(sa->sin_addr)) != NULL) { in handle_rtmsg()
1093 ifa->flags |= MIBIFA_FOUND; in handle_rtmsg()
1094 if (!(ifa->flags & MIBIFA_DESTROYED)) in handle_rtmsg()
1095 destroy_ifa(ifa); in handle_rtmsg()
1308 struct mibifa *ifa, *ifa1; in update_ifa_info() local
1319 TAILQ_FOREACH(ifa, &mibifa_list, link) in update_ifa_info()
1320 ifa->flags &= ~MIBIFA_FOUND; in update_ifa_info()
1343 ifa = TAILQ_FIRST(&mibifa_list); in update_ifa_info()
1344 while (ifa != NULL) { in update_ifa_info()
1345 ifa1 = TAILQ_NEXT(ifa, link); in update_ifa_info()
1346 if (!(ifa->flags & MIBIFA_FOUND)) in update_ifa_info()
1347 destroy_ifa(ifa); in update_ifa_info()
1348 ifa = ifa1; in update_ifa_info()
1481 verify_ifa(const char *name, struct mibifa *ifa) in verify_ifa() argument
1491 sa->sin_addr = ifa->inaddr; in verify_ifa()
1495 if (ifa->inaddr.s_addr != sa->sin_addr.s_addr) { in verify_ifa()
1502 if (ifa->inmask.s_addr != sa->sin_addr.s_addr) { in verify_ifa()
1514 mib_undestroy_ifa(struct mibifa *ifa) in mib_undestroy_ifa() argument
1518 if ((ifp = mib_find_if(ifa->ifindex)) == NULL) in mib_undestroy_ifa()
1522 if (siocaifaddr(ifp->name, ifa->inaddr, ifa->inmask, ifa->inbcast)) in mib_undestroy_ifa()
1526 ifa->flags &= ~MIBIFA_DESTROYED; in mib_undestroy_ifa()
1533 mib_destroy_ifa(struct mibifa *ifa) in mib_destroy_ifa() argument
1537 if ((ifp = mib_find_if(ifa->ifindex)) == NULL) { in mib_destroy_ifa()
1542 if (siocdifaddr(ifp->name, ifa->inaddr)) { in mib_destroy_ifa()
1548 ifa->flags |= MIBIFA_DESTROYED; in mib_destroy_ifa()
1557 mib_unmodify_ifa(struct mibifa *ifa) in mib_unmodify_ifa() argument
1561 if ((ifp = mib_find_if(ifa->ifindex)) == NULL) { in mib_unmodify_ifa()
1567 if (siocaifaddr(ifp->name, ifa->inaddr, ifa->inmask, ifa->inbcast)) { in mib_unmodify_ifa()
1578 mib_modify_ifa(struct mibifa *ifa) in mib_modify_ifa() argument
1582 if ((ifp = mib_find_if(ifa->ifindex)) == NULL) { in mib_modify_ifa()
1588 if (siocaifaddr(ifp->name, ifa->inaddr, ifa->inmask, ifa->inbcast)) { in mib_modify_ifa()
1594 if (verify_ifa(ifp->name, ifa)) { in mib_modify_ifa()
1608 mib_uncreate_ifa(struct mibifa *ifa) in mib_uncreate_ifa() argument
1612 if ((ifp = mib_find_if(ifa->ifindex)) == NULL) { in mib_uncreate_ifa()
1617 if (siocdifaddr(ifp->name, ifa->inaddr)) { in mib_uncreate_ifa()
1623 destroy_ifa(ifa); in mib_uncreate_ifa()
1634 struct mibifa *ifa; in mib_create_ifa() local
1638 if ((ifa = alloc_ifa(ifindex, addr)) == NULL) in mib_create_ifa()
1640 ifa->inmask = mask; in mib_create_ifa()
1641 ifa->inbcast = bcast; in mib_create_ifa()
1643 if (siocaifaddr(ifp->name, ifa->inaddr, ifa->inmask, ifa->inbcast)) { in mib_create_ifa()
1645 destroy_ifa(ifa); in mib_create_ifa()
1648 if (verify_ifa(ifp->name, ifa)) { in mib_create_ifa()
1649 destroy_ifa(ifa); in mib_create_ifa()
1652 return (ifa); in mib_create_ifa()
1693 struct mibifa *ifa; in mibII_idle() local
1696 TAILQ_FOREACH(ifa, &mibifa_list, link) in mibII_idle()
1697 ifa->flags &= ~MIBIFA_DESTROYED; in mibII_idle()