Lines Matching defs:bif

682 	struct bridge_iflist *bif;
686 while ((bif = CK_LIST_FIRST(&sc->sc_iflist)) != NULL)
687 bridge_delete_member(sc, bif, 0);
689 while ((bif = CK_LIST_FIRST(&sc->sc_spanlist)) != NULL) {
690 bridge_delete_span(sc, bif);
812 struct bridge_iflist *bif;
820 while ((bif = CK_LIST_FIRST(&sc->sc_iflist)) != NULL)
821 bridge_delete_member(sc, bif, 0);
823 while ((bif = CK_LIST_FIRST(&sc->sc_spanlist)) != NULL) {
824 bridge_delete_span(sc, bif);
859 struct bridge_iflist *bif;
969 CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) {
970 if (bif->bif_ifp->if_mtu != ifr->ifr_mtu) {
973 bif->bif_ifp->if_mtu,
974 bif->bif_ifp->if_xname, ifr->ifr_mtu);
1006 struct bridge_iflist *bif;
1014 CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) {
1016 mask &= bif->bif_savedcaps;
1019 CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) {
1020 enabled = bif->bif_ifp->if_capenable;
1025 bridge_set_ifcap(sc, bif, enabled);
1030 bridge_set_ifcap(struct bridge_softc *sc, struct bridge_iflist *bif, int set)
1032 struct ifnet *ifp = bif->bif_ifp;
1062 struct bridge_iflist *bif;
1067 CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) {
1068 ifp = bif->bif_ifp;
1070 return (bif);
1084 struct bridge_iflist *bif;
1088 CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) {
1089 if (bif->bif_ifp == member_ifp)
1090 return (bif);
1099 struct bridge_iflist *bif;
1101 bif = __containerof(ctx, struct bridge_iflist, bif_epoch_ctx);
1103 free(bif, M_DEVBUF);
1112 bridge_delete_member(struct bridge_softc *sc, struct bridge_iflist *bif,
1115 struct ifnet *ifs = bif->bif_ifp;
1121 if (bif->bif_flags & IFBIF_STP)
1122 bstp_disable(&bif->bif_stp);
1125 CK_LIST_REMOVE(bif, bif_next);
1152 KASSERT(bif->bif_addrcnt == 0,
1153 ("%s: %d bridge routes referenced", __func__, bif->bif_addrcnt));
1181 bridge_set_ifcap(sc, bif, bif->bif_savedcaps);
1183 bstp_destroy(&bif->bif_stp); /* prepare to free */
1185 epoch_call(net_epoch_preempt, &bif->bif_epoch_ctx,
1195 bridge_delete_span(struct bridge_softc *sc, struct bridge_iflist *bif)
1199 KASSERT(bif->bif_ifp->if_bridge == NULL,
1202 CK_LIST_REMOVE(bif, bif_next);
1204 epoch_call(net_epoch_preempt, &bif->bif_epoch_ctx,
1212 struct bridge_iflist *bif = NULL;
1223 CK_LIST_FOREACH(bif, &sc->sc_spanlist, bif_next)
1224 if (ifs == bif->bif_ifp)
1261 CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) {
1262 if (in6ifa_llaonifp(bif->bif_ifp)) {
1263 in6_ifdetach(bif->bif_ifp);
1268 bif->bif_ifp->if_xname);
1290 bif = malloc(sizeof(*bif), M_DEVBUF, M_NOWAIT|M_ZERO);
1291 if (bif == NULL)
1294 bif->bif_ifp = ifs;
1295 bif->bif_flags = IFBIF_LEARNING | IFBIF_DISCOVER;
1296 bif->bif_savedcaps = ifs->if_capenable;
1314 bstp_create(&sc->sc_stp, &bif->bif_stp, bif->bif_ifp);
1320 CK_LIST_INSERT_HEAD(&sc->sc_iflist, bif, bif_next);
1335 bridge_delete_member(sc, bif, 0);
1343 struct bridge_iflist *bif;
1345 bif = bridge_lookup_member(sc, req->ifbr_ifsname);
1346 if (bif == NULL)
1349 bridge_delete_member(sc, bif, 0);
1358 struct bridge_iflist *bif;
1361 bif = bridge_lookup_member(sc, req->ifbr_ifsname);
1362 if (bif == NULL)
1365 bp = &bif->bif_stp;
1366 req->ifbr_ifsflags = bif->bif_flags;
1370 req->ifbr_portno = bif->bif_ifp->if_index & 0xfff;
1374 req->ifbr_addrcnt = bif->bif_addrcnt;
1375 req->ifbr_addrmax = bif->bif_addrmax;
1376 req->ifbr_addrexceeded = bif->bif_addrexceeded;
1398 struct bridge_iflist *bif;
1402 bif = bridge_lookup_member(sc, req->ifbr_ifsname);
1403 if (bif == NULL)
1405 bp = &bif->bif_stp;
1414 if ((bif->bif_flags & IFBIF_STP) == 0) {
1415 error = bstp_enable(&bif->bif_stp);
1422 if ((bif->bif_flags & IFBIF_STP) != 0)
1423 bstp_disable(&bif->bif_stp);
1433 bif->bif_flags = req->ifbr_ifsflags & IFBIFMASK;
1465 struct bridge_iflist *bif;
1471 CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next)
1473 CK_LIST_FOREACH(bif, &sc->sc_spanlist, bif_next)
1489 CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) {
1493 strlcpy(breq.ifbr_ifsname, bif->bif_ifp->if_xname,
1504 CK_LIST_FOREACH(bif, &sc->sc_spanlist, bif_next) {
1508 strlcpy(breq.ifbr_ifsname, bif->bif_ifp->if_xname,
1510 breq.ifbr_ifsflags = bif->bif_flags;
1511 breq.ifbr_portno = bif->bif_ifp->if_index & 0xfff;
1579 struct bridge_iflist *bif;
1585 bif = bridge_lookup_member(sc, req->ifba_ifsname);
1586 if (bif == NULL) {
1592 error = bridge_rtupdate(sc, req->ifba_dst, req->ifba_vlan, bif, 1,
1713 struct bridge_iflist *bif;
1715 bif = bridge_lookup_member(sc, req->ifbr_ifsname);
1716 if (bif == NULL)
1719 return (bstp_set_port_priority(&bif->bif_stp, req->ifbr_priority));
1726 struct bridge_iflist *bif;
1728 bif = bridge_lookup_member(sc, req->ifbr_ifsname);
1729 if (bif == NULL)
1732 return (bstp_set_path_cost(&bif->bif_stp, req->ifbr_path_cost));
1739 struct bridge_iflist *bif;
1741 bif = bridge_lookup_member(sc, req->ifbr_ifsname);
1742 if (bif == NULL)
1745 bif->bif_addrmax = req->ifbr_addrmax;
1753 struct bridge_iflist *bif = NULL;
1760 CK_LIST_FOREACH(bif, &sc->sc_spanlist, bif_next)
1761 if (ifs == bif->bif_ifp)
1776 bif = malloc(sizeof(*bif), M_DEVBUF, M_NOWAIT|M_ZERO);
1777 if (bif == NULL)
1780 bif->bif_ifp = ifs;
1781 bif->bif_flags = IFBIF_SPAN;
1783 CK_LIST_INSERT_HEAD(&sc->sc_spanlist, bif, bif_next);
1792 struct bridge_iflist *bif;
1799 CK_LIST_FOREACH(bif, &sc->sc_spanlist, bif_next)
1800 if (ifs == bif->bif_ifp)
1803 if (bif == NULL)
1806 bridge_delete_span(sc, bif);
1854 struct bridge_iflist *bif;
1861 CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) {
1862 if ((bif->bif_flags & IFBIF_STP) != 0)
1880 CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) {
1884 if ((bif->bif_flags & IFBIF_STP) == 0)
1887 bp = &bif->bif_stp;
1888 bpreq.ifbp_portno = bif->bif_ifp->if_index & 0xfff;
1933 struct bridge_iflist *bif;
1948 bif = bridge_lookup_member_if(sc, ifp);
1949 if (bif != NULL)
1950 bridge_delete_member(sc, bif, 1);
1960 CK_LIST_FOREACH(bif, &sc->sc_spanlist, bif_next)
1961 if (ifp == bif->bif_ifp) {
1962 bridge_delete_span(sc, bif);
2165 struct bridge_iflist *bif;
2171 CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) {
2172 dst_if = bif->bif_ifp;
2185 if (dst_if != ifp && (bif->bif_flags & IFBIF_STP) &&
2186 bif->bif_stp.bp_state == BSTP_IFSTATE_DISCARDING)
2189 if (CK_LIST_NEXT(bif, bif_next) == NULL) {
2425 struct bridge_iflist *bif, *bif2;
2457 bif = bridge_lookup_member_if(sc, ifp);
2458 if (bif == NULL) {
2471 bstp_input(&bif->bif_stp, ifp, m); /* consumes mbuf */
2476 if ((bif->bif_flags & IFBIF_STP) &&
2477 bif->bif_stp.bp_state == BSTP_IFSTATE_DISCARDING) {
2494 bridge_forward(sc, bif, mc);
2520 if ((bif->bif_flags & IFBIF_STP) &&
2521 bif->bif_stp.bp_state == BSTP_IFSTATE_DISCARDING) {
2568 if (bif->bif_flags & IFBIF_LEARNING) { \
2570 vlan, bif, 0, IFBAF_DYNAMIC); \
2571 if (error && bif->bif_addrmax) { \
2616 bridge_forward(sc, bif, m);
2727 struct bridge_iflist *bif;
2736 CK_LIST_FOREACH(bif, &sc->sc_spanlist, bif_next) {
2737 dst_if = bif->bif_ifp;
2759 struct bridge_iflist *bif, int setflags, uint8_t flags)
2796 if (bif->bif_addrmax && bif->bif_addrcnt >= bif->bif_addrmax) {
2797 bif->bif_addrexceeded++;
2814 if (bif->bif_flags & IFBIF_STICKY)
2827 brt->brt_dst = bif;
2828 bif->bif_addrcnt++;
2834 brt->brt_dst != bif) {
2837 brt->brt_dst = bif;
3739 struct bridge_iflist *bif;
3744 bif = bridge_lookup_member_if(sc, ifp);
3745 if (bif == NULL) {
3751 bstp_linkstate(&bif->bif_stp);
3759 struct bridge_iflist *bif;
3767 CK_LIST_FOREACH(bif, &sc->sc_iflist, bif_next) {
3768 if (bif->bif_ifp->if_capabilities & IFCAP_LINKSTATE)
3770 if (bif->bif_ifp->if_link_state == LINK_STATE_UP) {