Lines Matching defs:bif
726 struct bridge_iflist *bif;
730 while ((bif = CK_LIST_FIRST(&sc->sc_iflist)) != NULL)
731 bridge_delete_member(sc, bif, 0);
733 while ((bif = CK_LIST_FIRST(&sc->sc_spanlist)) != NULL) {
734 bridge_delete_span(sc, bif);
835 struct bridge_iflist *bif;
843 while ((bif = CK_LIST_FIRST(&sc->sc_iflist)) != NULL)
844 bridge_delete_member(sc, bif, 0);
846 while ((bif = CK_LIST_FIRST(&sc->sc_spanlist)) != NULL) {
847 bridge_delete_span(sc, bif);
887 struct bridge_iflist *bif;
994 CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) {
995 error = (*bif->bif_ifp->if_ioctl)(bif->bif_ifp,
1001 bif->bif_ifp->if_xname);
1009 CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) {
1010 (*bif->bif_ifp->if_ioctl)(bif->bif_ifp,
1041 struct bridge_iflist *bif;
1049 CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) {
1051 mask &= bif->bif_savedcaps;
1054 CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) {
1055 enabled = bif->bif_ifp->if_capenable;
1060 bridge_set_ifcap(sc, bif, enabled);
1065 bridge_set_ifcap(struct bridge_softc *sc, struct bridge_iflist *bif, int set)
1067 struct ifnet *ifp = bif->bif_ifp;
1097 struct bridge_iflist *bif;
1102 CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) {
1103 ifp = bif->bif_ifp;
1105 return (bif);
1119 struct bridge_iflist *bif;
1123 CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) {
1124 if (bif->bif_ifp == member_ifp)
1125 return (bif);
1134 struct bridge_iflist *bif;
1136 bif = __containerof(ctx, struct bridge_iflist, bif_epoch_ctx);
1138 free(bif, M_DEVBUF);
1147 bridge_delete_member(struct bridge_softc *sc, struct bridge_iflist *bif,
1150 struct ifnet *ifs = bif->bif_ifp;
1156 if (bif->bif_flags & IFBIF_STP)
1157 bstp_disable(&bif->bif_stp);
1160 CK_LIST_REMOVE(bif, bif_next);
1187 KASSERT(bif->bif_addrcnt == 0,
1188 ("%s: %d bridge routes referenced", __func__, bif->bif_addrcnt));
1216 bridge_set_ifcap(sc, bif, bif->bif_savedcaps);
1218 bstp_destroy(&bif->bif_stp); /* prepare to free */
1220 NET_EPOCH_CALL(bridge_delete_member_cb, &bif->bif_epoch_ctx);
1229 bridge_delete_span(struct bridge_softc *sc, struct bridge_iflist *bif)
1233 KASSERT(bif->bif_ifp->if_bridge == NULL,
1236 CK_LIST_REMOVE(bif, bif_next);
1238 NET_EPOCH_CALL(bridge_delete_member_cb, &bif->bif_epoch_ctx);
1245 struct bridge_iflist *bif = NULL;
1256 CK_LIST_FOREACH(bif, &sc->sc_spanlist, bif_next)
1257 if (ifs == bif->bif_ifp)
1294 CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) {
1295 if (in6ifa_llaonifp(bif->bif_ifp)) {
1296 in6_ifdetach(bif->bif_ifp);
1301 bif->bif_ifp->if_xname);
1335 bif = malloc(sizeof(*bif), M_DEVBUF, M_NOWAIT|M_ZERO);
1336 if (bif == NULL)
1339 bif->bif_ifp = ifs;
1340 bif->bif_flags = IFBIF_LEARNING | IFBIF_DISCOVER;
1341 bif->bif_savedcaps = ifs->if_capenable;
1359 bstp_create(&sc->sc_stp, &bif->bif_stp, bif->bif_ifp);
1365 CK_LIST_INSERT_HEAD(&sc->sc_iflist, bif, bif_next);
1380 bridge_delete_member(sc, bif, 0);
1388 struct bridge_iflist *bif;
1390 bif = bridge_lookup_member(sc, req->ifbr_ifsname);
1391 if (bif == NULL)
1394 bridge_delete_member(sc, bif, 0);
1403 struct bridge_iflist *bif;
1406 bif = bridge_lookup_member(sc, req->ifbr_ifsname);
1407 if (bif == NULL)
1410 bp = &bif->bif_stp;
1411 req->ifbr_ifsflags = bif->bif_flags;
1415 req->ifbr_portno = bif->bif_ifp->if_index & 0xfff;
1419 req->ifbr_addrcnt = bif->bif_addrcnt;
1420 req->ifbr_addrmax = bif->bif_addrmax;
1421 req->ifbr_addrexceeded = bif->bif_addrexceeded;
1444 struct bridge_iflist *bif;
1448 bif = bridge_lookup_member(sc, req->ifbr_ifsname);
1449 if (bif == NULL)
1451 bp = &bif->bif_stp;
1460 if ((bif->bif_flags & IFBIF_STP) == 0) {
1461 error = bstp_enable(&bif->bif_stp);
1468 if ((bif->bif_flags & IFBIF_STP) != 0)
1469 bstp_disable(&bif->bif_stp);
1479 bif->bif_flags = req->ifbr_ifsflags & IFBIFMASK;
1511 struct bridge_iflist *bif;
1517 CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next)
1519 CK_LIST_FOREACH(bif, &sc->sc_spanlist, bif_next)
1535 CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) {
1539 strlcpy(breq.ifbr_ifsname, bif->bif_ifp->if_xname,
1550 CK_LIST_FOREACH(bif, &sc->sc_spanlist, bif_next) {
1554 strlcpy(breq.ifbr_ifsname, bif->bif_ifp->if_xname,
1556 breq.ifbr_ifsflags = bif->bif_flags;
1557 breq.ifbr_portno = bif->bif_ifp->if_index & 0xfff;
1625 struct bridge_iflist *bif;
1630 bif = bridge_lookup_member(sc, req->ifba_ifsname);
1631 if (bif == NULL) {
1637 error = bridge_rtupdate(sc, req->ifba_dst, req->ifba_vlan, bif, 1,
1763 struct bridge_iflist *bif;
1765 bif = bridge_lookup_member(sc, req->ifbr_ifsname);
1766 if (bif == NULL)
1769 return (bstp_set_port_priority(&bif->bif_stp, req->ifbr_priority));
1776 struct bridge_iflist *bif;
1778 bif = bridge_lookup_member(sc, req->ifbr_ifsname);
1779 if (bif == NULL)
1782 return (bstp_set_path_cost(&bif->bif_stp, req->ifbr_path_cost));
1789 struct bridge_iflist *bif;
1791 bif = bridge_lookup_member(sc, req->ifbr_ifsname);
1792 if (bif == NULL)
1795 bif->bif_addrmax = req->ifbr_addrmax;
1803 struct bridge_iflist *bif = NULL;
1810 CK_LIST_FOREACH(bif, &sc->sc_spanlist, bif_next)
1811 if (ifs == bif->bif_ifp)
1826 bif = malloc(sizeof(*bif), M_DEVBUF, M_NOWAIT|M_ZERO);
1827 if (bif == NULL)
1830 bif->bif_ifp = ifs;
1831 bif->bif_flags = IFBIF_SPAN;
1833 CK_LIST_INSERT_HEAD(&sc->sc_spanlist, bif, bif_next);
1842 struct bridge_iflist *bif;
1849 CK_LIST_FOREACH(bif, &sc->sc_spanlist, bif_next)
1850 if (ifs == bif->bif_ifp)
1853 if (bif == NULL)
1856 bridge_delete_span(sc, bif);
1904 struct bridge_iflist *bif;
1911 CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) {
1912 if ((bif->bif_flags & IFBIF_STP) != 0)
1930 CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) {
1934 if ((bif->bif_flags & IFBIF_STP) == 0)
1937 bp = &bif->bif_stp;
1938 bpreq.ifbp_portno = bif->bif_ifp->if_index & 0xfff;
1983 struct bridge_iflist *bif;
1998 bif = bridge_lookup_member_if(sc, ifp);
1999 if (bif != NULL)
2000 bridge_delete_member(sc, bif, 1);
2010 CK_LIST_FOREACH(bif, &sc->sc_spanlist, bif_next)
2011 if (ifp == bif->bif_ifp) {
2012 bridge_delete_span(sc, bif);
2218 struct bridge_iflist *bif;
2224 CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) {
2225 dst_if = bif->bif_ifp;
2238 if (dst_if != ifp && (bif->bif_flags & IFBIF_STP) &&
2239 bif->bif_stp.bp_state == BSTP_IFSTATE_DISCARDING)
2242 if (CK_LIST_NEXT(bif, bif_next) == NULL) {
2507 struct bridge_iflist *bif, *bif2;
2556 bif = bridge_lookup_member_if(sc, ifp);
2557 if (bif == NULL) {
2567 bstp_input(&bif->bif_stp, ifp, m); /* consumes mbuf */
2571 if ((bif->bif_flags & IFBIF_STP) &&
2572 bif->bif_stp.bp_state == BSTP_IFSTATE_DISCARDING) {
2587 bridge_forward(sc, bif, mc);
2625 if ((bif->bif_flags & IFBIF_STP) &&
2626 bif->bif_stp.bp_state == BSTP_IFSTATE_DISCARDING) {
2658 if (bif->bif_flags & IFBIF_LEARNING) { \
2660 vlan, bif, 0, IFBAF_DYNAMIC); \
2661 if (error && bif->bif_addrmax) { \
2721 bridge_forward(sc, bif, m);
2845 struct bridge_iflist *bif;
2854 CK_LIST_FOREACH(bif, &sc->sc_spanlist, bif_next) {
2855 dst_if = bif->bif_ifp;
2877 struct bridge_iflist *bif, int setflags, uint8_t flags)
2911 if (bif->bif_addrmax && bif->bif_addrcnt >= bif->bif_addrmax) {
2912 bif->bif_addrexceeded++;
2929 if (bif->bif_flags & IFBIF_STICKY)
2937 brt->brt_dst = bif;
2943 bif->bif_addrcnt++;
2949 (obif = brt->brt_dst) != bif) {
2954 brt->brt_dst = bif;
2966 bif->bif_ifp->if_xname);
3881 struct bridge_iflist *bif;
3886 bif = bridge_lookup_member_if(sc, ifp);
3887 if (bif == NULL) {
3893 bstp_linkstate(&bif->bif_stp);
3901 struct bridge_iflist *bif;
3909 CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) {
3910 if (bif->bif_ifp->if_capabilities & IFCAP_LINKSTATE)
3912 if (bif->bif_ifp->if_link_state == LINK_STATE_UP) {