Lines Matching refs:bif

725 	struct bridge_iflist *bif;
732 while ((bif = LIST_FIRST(&sc->sc_iflist)) != NULL)
733 bridge_delete_member(sc, bif, 0);
735 while ((bif = LIST_FIRST(&sc->sc_spanlist)) != NULL) {
736 bridge_delete_span(sc, bif);
768 struct bridge_iflist *bif;
867 LIST_FOREACH(bif, &sc->sc_iflist, bif_next) {
868 if (bif->bif_ifp->if_mtu != ifr->ifr_mtu) {
871 bif->bif_ifp->if_mtu,
872 bif->bif_ifp->if_xname, ifr->ifr_mtu);
901 struct bridge_iflist *bif;
907 LIST_FOREACH(bif, &sc->sc_iflist, bif_next) {
909 mask &= bif->bif_savedcaps;
913 LIST_FOREACH(bif, &sc->sc_iflist, bif_next) {
914 enabled = bif->bif_ifp->if_capenable;
920 bridge_set_ifcap(sc, bif, enabled);
928 bridge_set_ifcap(struct bridge_softc *sc, struct bridge_iflist *bif, int set)
930 struct ifnet *ifp = bif->bif_ifp;
962 struct bridge_iflist *bif;
967 LIST_FOREACH(bif, &sc->sc_iflist, bif_next) {
968 ifp = bif->bif_ifp;
970 return (bif);
984 struct bridge_iflist *bif;
988 LIST_FOREACH(bif, &sc->sc_iflist, bif_next) {
989 if (bif->bif_ifp == member_ifp)
990 return (bif);
1002 bridge_delete_member(struct bridge_softc *sc, struct bridge_iflist *bif,
1005 struct ifnet *ifs = bif->bif_ifp;
1010 if (bif->bif_flags & IFBIF_STP)
1011 bstp_disable(&bif->bif_stp);
1015 LIST_REMOVE(bif, bif_next);
1040 KASSERT(bif->bif_addrcnt == 0,
1041 ("%s: %d bridge routes referenced", __func__, bif->bif_addrcnt));
1067 bridge_set_ifcap(sc, bif, bif->bif_savedcaps);
1069 bstp_destroy(&bif->bif_stp); /* prepare to free */
1071 free(bif, M_DEVBUF);
1080 bridge_delete_span(struct bridge_softc *sc, struct bridge_iflist *bif)
1084 KASSERT(bif->bif_ifp->if_bridge == NULL,
1087 LIST_REMOVE(bif, bif_next);
1088 free(bif, M_DEVBUF);
1095 struct bridge_iflist *bif = NULL;
1106 LIST_FOREACH(bif, &sc->sc_spanlist, bif_next)
1107 if (ifs == bif->bif_ifp)
1145 LIST_FOREACH(bif, &sc->sc_iflist, bif_next) {
1146 if (in6ifa_llaonifp(bif->bif_ifp)) {
1148 in6_ifdetach(bif->bif_ifp);
1154 bif->bif_ifp->if_xname);
1179 bif = malloc(sizeof(*bif), M_DEVBUF, M_NOWAIT|M_ZERO);
1180 if (bif == NULL)
1183 bif->bif_ifp = ifs;
1184 bif->bif_flags = IFBIF_LEARNING | IFBIF_DISCOVER;
1185 bif->bif_savedcaps = ifs->if_capenable;
1200 bstp_create(&sc->sc_stp, &bif->bif_stp, bif->bif_ifp);
1206 LIST_INSERT_HEAD(&sc->sc_iflist, bif, bif_next);
1223 bridge_delete_member(sc, bif, 0);
1231 struct bridge_iflist *bif;
1233 bif = bridge_lookup_member(sc, req->ifbr_ifsname);
1234 if (bif == NULL)
1237 bridge_delete_member(sc, bif, 0);
1246 struct bridge_iflist *bif;
1249 bif = bridge_lookup_member(sc, req->ifbr_ifsname);
1250 if (bif == NULL)
1253 bp = &bif->bif_stp;
1254 req->ifbr_ifsflags = bif->bif_flags;
1258 req->ifbr_portno = bif->bif_ifp->if_index & 0xfff;
1262 req->ifbr_addrcnt = bif->bif_addrcnt;
1263 req->ifbr_addrmax = bif->bif_addrmax;
1264 req->ifbr_addrexceeded = bif->bif_addrexceeded;
1286 struct bridge_iflist *bif;
1290 bif = bridge_lookup_member(sc, req->ifbr_ifsname);
1291 if (bif == NULL)
1293 bp = &bif->bif_stp;
1300 if ((bif->bif_flags & IFBIF_STP) == 0) {
1301 error = bstp_enable(&bif->bif_stp);
1306 if ((bif->bif_flags & IFBIF_STP) != 0)
1307 bstp_disable(&bif->bif_stp);
1317 bif->bif_flags = req->ifbr_ifsflags & IFBIFMASK;
1347 struct bridge_iflist *bif;
1353 LIST_FOREACH(bif, &sc->sc_iflist, bif_next)
1355 LIST_FOREACH(bif, &sc->sc_spanlist, bif_next)
1371 LIST_FOREACH(bif, &sc->sc_iflist, bif_next) {
1375 strlcpy(breq.ifbr_ifsname, bif->bif_ifp->if_xname,
1386 LIST_FOREACH(bif, &sc->sc_spanlist, bif_next) {
1390 strlcpy(breq.ifbr_ifsname, bif->bif_ifp->if_xname,
1392 breq.ifbr_ifsflags = bif->bif_flags;
1393 breq.ifbr_portno = bif->bif_ifp->if_index & 0xfff;
1465 struct bridge_iflist *bif;
1468 bif = bridge_lookup_member(sc, req->ifba_ifsname);
1469 if (bif == NULL)
1472 error = bridge_rtupdate(sc, req->ifba_dst, req->ifba_vlan, bif, 1,
1589 struct bridge_iflist *bif;
1591 bif = bridge_lookup_member(sc, req->ifbr_ifsname);
1592 if (bif == NULL)
1595 return (bstp_set_port_priority(&bif->bif_stp, req->ifbr_priority));
1602 struct bridge_iflist *bif;
1604 bif = bridge_lookup_member(sc, req->ifbr_ifsname);
1605 if (bif == NULL)
1608 return (bstp_set_path_cost(&bif->bif_stp, req->ifbr_path_cost));
1615 struct bridge_iflist *bif;
1617 bif = bridge_lookup_member(sc, req->ifbr_ifsname);
1618 if (bif == NULL)
1621 bif->bif_addrmax = req->ifbr_addrmax;
1629 struct bridge_iflist *bif = NULL;
1636 LIST_FOREACH(bif, &sc->sc_spanlist, bif_next)
1637 if (ifs == bif->bif_ifp)
1652 bif = malloc(sizeof(*bif), M_DEVBUF, M_NOWAIT|M_ZERO);
1653 if (bif == NULL)
1656 bif->bif_ifp = ifs;
1657 bif->bif_flags = IFBIF_SPAN;
1659 LIST_INSERT_HEAD(&sc->sc_spanlist, bif, bif_next);
1668 struct bridge_iflist *bif;
1675 LIST_FOREACH(bif, &sc->sc_spanlist, bif_next)
1676 if (ifs == bif->bif_ifp)
1679 if (bif == NULL)
1682 bridge_delete_span(sc, bif);
1730 struct bridge_iflist *bif;
1737 LIST_FOREACH(bif, &sc->sc_iflist, bif_next) {
1738 if ((bif->bif_flags & IFBIF_STP) != 0)
1756 LIST_FOREACH(bif, &sc->sc_iflist, bif_next) {
1760 if ((bif->bif_flags & IFBIF_STP) == 0)
1763 bp = &bif->bif_stp;
1764 bpreq.ifbp_portno = bif->bif_ifp->if_index & 0xfff;
1811 struct bridge_iflist *bif;
1826 bif = bridge_lookup_member_if(sc, ifp);
1827 if (bif != NULL)
1828 bridge_delete_member(sc, bif, 1);
1838 LIST_FOREACH(bif, &sc->sc_spanlist, bif_next)
1839 if (ifp == bif->bif_ifp) {
1840 bridge_delete_span(sc, bif);
2037 struct bridge_iflist *bif;
2049 LIST_FOREACH(bif, &sc->sc_iflist, bif_next) {
2050 dst_if = bif->bif_ifp;
2063 if (dst_if != ifp && (bif->bif_flags & IFBIF_STP) &&
2064 bif->bif_stp.bp_state == BSTP_IFSTATE_DISCARDING)
2067 if (LIST_NEXT(bif, bif_next) == NULL) {
2302 struct bridge_iflist *bif, *bif2;
2330 bif = bridge_lookup_member_if(sc, ifp);
2331 if (bif == NULL) {
2344 bstp_input(&bif->bif_stp, ifp, m); /* consumes mbuf */
2349 if ((bif->bif_flags & IFBIF_STP) &&
2350 bif->bif_stp.bp_state == BSTP_IFSTATE_DISCARDING) {
2367 bridge_forward(sc, bif, mc);
2392 if ((bif->bif_flags & IFBIF_STP) &&
2393 bif->bif_stp.bp_state == BSTP_IFSTATE_DISCARDING) {
2440 if (bif->bif_flags & IFBIF_LEARNING) { \
2442 vlan, bif, 0, IFBAF_DYNAMIC); \
2443 if (error && bif->bif_addrmax) { \
2488 bridge_forward(sc, bif, m);
2605 struct bridge_iflist *bif;
2612 LIST_FOREACH(bif, &sc->sc_spanlist, bif_next) {
2613 dst_if = bif->bif_ifp;
2635 struct bridge_iflist *bif, int setflags, uint8_t flags)
2662 if (bif->bif_addrmax && bif->bif_addrcnt >= bif->bif_addrmax) {
2663 bif->bif_addrexceeded++;
2676 if (bif->bif_flags & IFBIF_STICKY)
2688 brt->brt_dst = bif;
2689 bif->bif_addrcnt++;
2693 brt->brt_dst != bif) {
2695 brt->brt_dst = bif;
3578 struct bridge_iflist *bif;
3581 bif = bridge_lookup_member_if(sc, ifp);
3582 if (bif == NULL) {
3589 bstp_linkstate(&bif->bif_stp);
3595 struct bridge_iflist *bif;
3602 LIST_FOREACH(bif, &sc->sc_iflist, bif_next) {
3603 if (bif->bif_ifp->if_capabilities & IFCAP_LINKSTATE)
3605 if (bif->bif_ifp->if_link_state == LINK_STATE_UP) {