Lines Matching defs:bif
477 struct bridge_iflist *bif;
484 bif = PSLIST_WRITER_FIRST(&sc->sc_iflist_psref.bip_iflist, struct bridge_iflist,
486 if (bif == NULL)
488 bridge_delete_member(sc, bif);
657 struct bridge_iflist *bif;
663 BRIDGE_IFLIST_READER_FOREACH(bif, sc) {
664 ifp = bif->bif_ifp;
668 if (bif != NULL)
669 bridge_acquire_member(sc, bif, psref);
673 return bif;
685 struct bridge_iflist *bif;
690 bif = member_ifp->if_bridgeif;
691 if (bif != NULL) {
692 psref_acquire(psref, &bif->bif_psref,
698 return bif;
702 bridge_acquire_member(struct bridge_softc *sc, struct bridge_iflist *bif,
706 psref_acquire(psref, &bif->bif_psref, bridge_psref_class);
715 bridge_release_member(struct bridge_softc *sc, struct bridge_iflist *bif,
719 psref_release(psref, &bif->bif_psref, bridge_psref_class);
728 bridge_delete_member(struct bridge_softc *sc, struct bridge_iflist *bif)
730 struct ifnet *ifs = bif->bif_ifp;
738 PSLIST_WRITER_REMOVE(bif, bif_next);
742 bif->bif_linkstate_hook, BRIDGE_LOCK_OBJ(sc));
744 bif->bif_ifdetach_hook, BRIDGE_LOCK_OBJ(sc));
767 psref_target_destroy(&bif->bif_psref, bridge_psref_class);
769 PSLIST_ENTRY_DESTROY(bif, bif_next);
770 kmem_free(bif, sizeof(*bif));
783 struct bridge_iflist *bif;
789 BRIDGE_IFLIST_READER_FOREACH(bif, sc) {
790 ifs = bif->bif_ifp;
808 struct bridge_iflist *bif;
813 BRIDGE_IFLIST_READER_FOREACH(bif, sc) {
814 ifs = bif->bif_ifp;
830 struct bridge_iflist *bif = NULL;
860 bif = kmem_alloc(sizeof(*bif), KM_SLEEP);
894 bif->bif_ifp = ifs;
895 bif->bif_flags = IFBIF_LEARNING | IFBIF_DISCOVER;
896 bif->bif_priority = BSTP_DEFAULT_PORT_PRIORITY;
897 bif->bif_path_cost = BSTP_DEFAULT_PATH_COST;
898 bif->bif_linkstate_hook = if_linkstate_change_establish(ifs,
900 PSLIST_ENTRY_INIT(bif, bif_next);
901 psref_target_init(&bif->bif_psref, bridge_psref_class);
906 ifs->if_bridgeif = bif;
907 PSLIST_WRITER_INSERT_HEAD(&sc->sc_iflist_psref.bip_iflist, bif, bif_next);
912 bif->bif_ifdetach_hook = ether_ifdetachhook_establish(ifs,
926 if (bif != NULL)
927 kmem_free(bif, sizeof(*bif));
937 struct bridge_iflist *bif;
946 BRIDGE_IFLIST_WRITER_FOREACH(bif, sc) {
947 ifs = bif->bif_ifp;
952 if (bif == NULL) {
957 bridge_delete_member(sc, bif);
975 struct bridge_iflist *bif;
978 bif = bridge_lookup_member(sc, req->ifbr_ifsname, &psref);
979 if (bif == NULL)
982 req->ifbr_ifsflags = bif->bif_flags;
983 req->ifbr_state = bif->bif_state;
984 req->ifbr_priority = bif->bif_priority;
985 req->ifbr_path_cost = bif->bif_path_cost;
986 req->ifbr_portno = bif->bif_ifp->if_index & 0xff;
988 bridge_release_member(sc, bif, &psref);
997 struct bridge_iflist *bif;
1000 bif = bridge_lookup_member(sc, req->ifbr_ifsname, &psref);
1001 if (bif == NULL)
1005 switch (bif->bif_ifp->if_type) {
1013 bridge_release_member(sc, bif, &psref);
1018 if (bif->bif_flags & IFBIF_PROTECTED) {
1021 sc->sc_if.if_xname, bif->bif_ifp->if_xname);
1026 sc->sc_if.if_xname, bif->bif_ifp->if_xname);
1030 bif->bif_flags = req->ifbr_ifsflags;
1032 bridge_release_member(sc, bif, &psref);
1065 struct bridge_iflist *bif;
1072 BRIDGE_IFLIST_WRITER_FOREACH(bif, sc)
1092 BRIDGE_IFLIST_WRITER_FOREACH(bif, sc)
1105 BRIDGE_IFLIST_WRITER_FOREACH(bif, sc) {
1109 strlcpy(breq->ifbr_ifsname, bif->bif_ifp->if_xname,
1111 breq->ifbr_ifsflags = bif->bif_flags;
1112 breq->ifbr_state = bif->bif_state;
1113 breq->ifbr_priority = bif->bif_priority;
1114 breq->ifbr_path_cost = bif->bif_path_cost;
1115 breq->ifbr_portno = bif->bif_ifp->if_index & 0xff;
1183 struct bridge_iflist *bif;
1187 bif = bridge_lookup_member(sc, req->ifba_ifsname, &psref);
1188 if (bif == NULL)
1191 error = bridge_rtupdate(sc, req->ifba_dst, bif->bif_ifp, 1,
1194 bif, &psref);
1339 struct bridge_iflist *bif;
1342 bif = bridge_lookup_member(sc, req->ifbr_ifsname, &psref);
1343 if (bif == NULL)
1346 bif->bif_priority = req->ifbr_priority;
1351 bridge_release_member(sc, bif, &psref);
1396 struct bridge_iflist *bif;
1399 bif = bridge_lookup_member(sc, req->ifbr_ifsname, &psref);
1400 if (bif == NULL)
1403 bif->bif_path_cost = req->ifbr_path_cost;
1408 bridge_release_member(sc, bif, &psref);
1686 struct bridge_iflist *bif;
1693 BRIDGE_IFLIST_READER_FOREACH(bif, sc) {
1696 bridge_acquire_member(sc, bif, &psref);
1699 dst_if = bif->bif_ifp;
1710 (bif->bif_flags & IFBIF_STP) != 0) {
1711 switch (bif->bif_state) {
1719 if (PSLIST_READER_NEXT(bif, struct bridge_iflist,
1739 if (PSLIST_READER_NEXT(bif,
1765 bridge_release_member(sc, bif, &psref);
1816 struct bridge_iflist *bif;
1835 bif = bridge_lookup_member_if(sc, src_if, &psref);
1836 if (bif == NULL) {
1841 if (bif->bif_flags & IFBIF_STP) {
1842 switch (bif->bif_state) {
1846 bridge_release_member(sc, bif, &psref);
1858 if ((bif->bif_flags & IFBIF_LEARNING) != 0 &&
1870 if ((bif->bif_flags & IFBIF_STP) != 0 &&
1871 bif->bif_state == BSTP_IFSTATE_LEARNING) {
1872 bridge_release_member(sc, bif, &psref);
1876 src_if_protected = ((bif->bif_flags & IFBIF_PROTECTED) != 0);
1878 bridge_release_member(sc, bif, &psref);
1919 bif = bridge_lookup_member_if(sc, dst_if, &psref);
1920 if (bif == NULL) {
1925 if (bif->bif_flags & IFBIF_STP) {
1926 switch (bif->bif_state) {
1929 bridge_release_member(sc, bif, &psref);
1934 if ((bif->bif_flags & IFBIF_PROTECTED) && src_if_protected) {
1935 bridge_release_member(sc, bif, &psref);
1939 bridge_release_member(sc, bif, &psref);
1962 bstp_state_before_learning(struct bridge_iflist *bif)
1964 if (bif->bif_flags & IFBIF_STP) {
1965 switch (bif->bif_state) {
1976 bridge_ourether(struct bridge_iflist *bif
1980 if (memcmp(CLLADDR(bif->bif_ifp->if_sadl), ether, ETHER_ADDR_LEN) == 0
1982 || (bif->bif_ifp->if_carp &&
1983 carp_ourether(bif->bif_ifp->if_carp, eh, IFT_ETHER, src) != NULL)
2001 struct bridge_iflist *bif;
2018 bif = bridge_lookup_member_if(sc, ifp, &psref);
2019 if (bif == NULL) {
2042 !bstp_state_before_learning(bif)) {
2071 bridge_release_member(sc, bif, &psref);
2085 if (bif->bif_flags & IFBIF_STP &&
2087 bstp_input(sc, bif, m);
2088 bridge_release_member(sc, bif, &psref);
2097 if (bstp_state_before_learning(bif)) {
2098 bridge_release_member(sc, bif, &psref);
2106 bridge_release_member(sc, bif, &psref);
2124 struct bridge_iflist *bif;
2134 BRIDGE_IFLIST_READER_FOREACH(bif, sc) {
2137 bridge_acquire_member(sc, bif, &psref);
2140 dst_if = bif->bif_ifp;
2142 if (bif->bif_flags & IFBIF_STP) {
2143 switch (bif->bif_state) {
2150 if ((bif->bif_flags & IFBIF_DISCOVER) == 0 && !bmcast)
2157 if ((bif->bif_flags & IFBIF_PROTECTED) &&
2201 bridge_release_member(sc, bif, &psref);