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 bridge_release_member(sc, 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);
1678 struct bridge_iflist *bif;
1685 BRIDGE_IFLIST_READER_FOREACH(bif, sc) {
1688 bridge_acquire_member(sc, bif, &psref);
1691 dst_if = bif->bif_ifp;
1702 (bif->bif_flags & IFBIF_STP) != 0) {
1703 switch (bif->bif_state) {
1711 if (PSLIST_READER_NEXT(bif, struct bridge_iflist,
1731 if (PSLIST_READER_NEXT(bif,
1757 bridge_release_member(sc, bif, &psref);
1808 struct bridge_iflist *bif;
1827 bif = bridge_lookup_member_if(sc, src_if, &psref);
1828 if (bif == NULL) {
1833 if (bif->bif_flags & IFBIF_STP) {
1834 switch (bif->bif_state) {
1838 bridge_release_member(sc, bif, &psref);
1850 if ((bif->bif_flags & IFBIF_LEARNING) != 0 &&
1862 if ((bif->bif_flags & IFBIF_STP) != 0 &&
1863 bif->bif_state == BSTP_IFSTATE_LEARNING) {
1864 bridge_release_member(sc, bif, &psref);
1868 src_if_protected = ((bif->bif_flags & IFBIF_PROTECTED) != 0);
1870 bridge_release_member(sc, bif, &psref);
1911 bif = bridge_lookup_member_if(sc, dst_if, &psref);
1912 if (bif == NULL) {
1917 if (bif->bif_flags & IFBIF_STP) {
1918 switch (bif->bif_state) {
1921 bridge_release_member(sc, bif, &psref);
1926 if ((bif->bif_flags & IFBIF_PROTECTED) && src_if_protected) {
1927 bridge_release_member(sc, bif, &psref);
1931 bridge_release_member(sc, bif, &psref);
1954 bstp_state_before_learning(struct bridge_iflist *bif)
1956 if (bif->bif_flags & IFBIF_STP) {
1957 switch (bif->bif_state) {
1968 bridge_ourether(struct bridge_iflist *bif, struct ether_header *eh, int src)
1972 if (memcmp(CLLADDR(bif->bif_ifp->if_sadl), ether, ETHER_ADDR_LEN) == 0
1974 || (bif->bif_ifp->if_carp &&
1975 carp_ourether(bif->bif_ifp->if_carp, eh, IFT_ETHER, src) != NULL)
1993 struct bridge_iflist *bif;
2010 bif = bridge_lookup_member_if(sc, ifp, &psref);
2011 if (bif == NULL) {
2034 !bstp_state_before_learning(bif)) {
2063 bridge_release_member(sc, bif, &psref);
2077 if (bif->bif_flags & IFBIF_STP &&
2079 bstp_input(sc, bif, m);
2080 bridge_release_member(sc, bif, &psref);
2089 if (bstp_state_before_learning(bif)) {
2090 bridge_release_member(sc, bif, &psref);
2098 bridge_release_member(sc, bif, &psref);
2116 struct bridge_iflist *bif;
2126 BRIDGE_IFLIST_READER_FOREACH(bif, sc) {
2129 bridge_acquire_member(sc, bif, &psref);
2132 dst_if = bif->bif_ifp;
2134 if (bif->bif_flags & IFBIF_STP) {
2135 switch (bif->bif_state) {
2142 if ((bif->bif_flags & IFBIF_DISCOVER) == 0 && !bmcast)
2149 if ((bif->bif_flags & IFBIF_PROTECTED) &&
2193 bridge_release_member(sc, bif, &psref);