Lines Matching refs:blp
157 #define KLINCR(vn) KLPINCR(blp, vn)
260 link_sdu_fail(bridge_link_t *blp, boolean_t failed, mblk_t **mlist) in link_sdu_fail() argument
269 if (blp->bl_flags & BLF_SDUFAIL) in link_sdu_fail()
271 blp->bl_flags |= BLF_SDUFAIL; in link_sdu_fail()
273 if (!(blp->bl_flags & BLF_SDUFAIL)) in link_sdu_fail()
275 blp->bl_flags &= ~BLF_SDUFAIL; in link_sdu_fail()
283 bip = blp->bl_inst; in link_sdu_fail()
285 if (blp->bl_linkstate != LINK_STATE_DOWN) { in link_sdu_fail()
288 if (blp != blcmp && in link_sdu_fail()
307 if (bmp->bm_linkstate != blp->bl_linkstate) in link_sdu_fail()
308 mac_link_redo(blp->bl_mh, blp->bl_linkstate); in link_sdu_fail()
310 mac_link_redo(blp->bl_mh, bmp->bm_linkstate); in link_sdu_fail()
314 if ((mp = blp->bl_lfailmp) == NULL && in link_sdu_fail()
319 blp->bl_lfailmp = allocb(sizeof (bridge_ctl_t), BPRI_MED); in link_sdu_fail()
322 if (blp->bl_lfailmp == NULL && !failed) { in link_sdu_fail()
323 blp->bl_lfailmp = mp; in link_sdu_fail()
329 bcp->bc_linkid = blp->bl_linkid; in link_sdu_fail()
451 bridge_link_t *blp; in bridge_m_setprop() local
471 for (blp = list_head(&bip->bi_links); blp != NULL; in bridge_m_setprop()
472 blp = list_next(&bip->bi_links, blp)) { in bridge_m_setprop()
473 if (blp->bl_flags & BLF_DELETED) in bridge_m_setprop()
475 if (blp->bl_maxsdu == maxsdu) in bridge_m_setprop()
476 link_sdu_fail(blp, B_FALSE, &mlist); in bridge_m_setprop()
477 else if (blp->bl_maxsdu == bmp->bm_maxsdu) in bridge_m_setprop()
478 link_sdu_fail(blp, B_TRUE, &mlist); in bridge_m_setprop()
863 link_free(bridge_link_t *blp) in link_free() argument
865 bridge_inst_t *bip = blp->bl_inst; in link_free()
867 ASSERT(!(blp->bl_flags & BLF_FREED)); in link_free()
868 blp->bl_flags |= BLF_FREED; in link_free()
869 if (blp->bl_ksp != NULL) in link_free()
870 kstat_delete(blp->bl_ksp); in link_free()
871 if (blp->bl_lfailmp != NULL) in link_free()
872 freeb(blp->bl_lfailmp); in link_free()
873 cv_destroy(&blp->bl_trillwait); in link_free()
874 mutex_destroy(&blp->bl_trilllock); in link_free()
875 kmem_free(blp, sizeof (*blp)); in link_free()
881 link_unref(bridge_link_t *blp) in link_unref() argument
883 if (atomic_dec_uint_nv(&blp->bl_refs) == 0) { in link_unref()
884 bridge_inst_t *bip = blp->bl_inst; in link_unref()
886 ASSERT(blp->bl_flags & BLF_DELETED); in link_unref()
888 if (blp->bl_flags & BLF_LINK_ADDED) in link_unref()
889 list_remove(&bip->bi_links, blp); in link_unref()
893 link_free(blp); in link_unref()
1009 fwd_update_local(bridge_link_t *blp, const uint8_t *oldaddr, in fwd_update_local() argument
1012 bridge_inst_t *bip = blp->bl_inst; in fwd_update_local()
1036 if (bfp->bf_links[i] == blp) { in fwd_update_local()
1099 bfnew->bf_links[bfnew->bf_nlinks++] = blp; in fwd_update_local()
1103 atomic_inc_uint(&blp->bl_refs); /* bf_links entry */ in fwd_update_local()
1125 link_unref(blp); in fwd_update_local()
1129 bridge_new_unicst(bridge_link_t *blp) in bridge_new_unicst() argument
1133 mac_unicast_primary_get(blp->bl_mh, new_mac); in bridge_new_unicst()
1134 fwd_update_local(blp, blp->bl_local_mac, new_mac); in bridge_new_unicst()
1135 bcopy(new_mac, blp->bl_local_mac, ETHERADDRL); in bridge_new_unicst()
1147 bridge_link_t *blp = arg; in link_shutdown() local
1148 mac_handle_t mh = blp->bl_mh; in link_shutdown()
1159 if (blp->bl_trilldata != NULL) in link_shutdown()
1160 trill_lndstr_fn(blp->bl_trilldata, blp); in link_shutdown()
1162 if (blp->bl_flags & BLF_PROM_ADDED) in link_shutdown()
1163 (void) mac_promisc_remove(blp->bl_mphp); in link_shutdown()
1165 if (blp->bl_flags & BLF_SET_BRIDGE) in link_shutdown()
1166 mac_bridge_clear(mh, (mac_handle_t)blp); in link_shutdown()
1168 if (blp->bl_flags & BLF_MARGIN_ADDED) { in link_shutdown()
1169 (void) mac_notify_remove(blp->bl_mnh, B_TRUE); in link_shutdown()
1170 (void) mac_margin_remove(mh, blp->bl_margin); in link_shutdown()
1174 mac_link_redo(blp->bl_mh, in link_shutdown()
1175 mac_stat_get(blp->bl_mh, MAC_STAT_LOWLINK_STATE)); in link_shutdown()
1180 bip = blp->bl_inst; in link_shutdown()
1186 if (bfp->bf_links[i] == blp) in link_shutdown()
1193 link_unref(blp); in link_shutdown()
1213 if (blp->bl_flags & BLF_CLIENT_OPEN) in link_shutdown()
1214 mac_client_close(blp->bl_mch, 0); in link_shutdown()
1222 link_unref(blp); in link_shutdown()
1228 bridge_link_t *blp, *blnext; in shutdown_inst() local
1250 while ((blp = blnext) != NULL) { in shutdown_inst()
1251 blnext = list_next(&bip->bi_links, blp); in shutdown_inst()
1252 if (!(blp->bl_flags & BLF_DELETED)) { in shutdown_inst()
1253 blp->bl_flags |= BLF_DELETED; in shutdown_inst()
1255 blp, DDI_SLEEP); in shutdown_inst()
1298 bridge_link_t *blp; in bridge_trill_register_cb() local
1305 for (blp = list_head(&bip->bi_links); blp != NULL; in bridge_trill_register_cb()
1306 blp = list_next(&bip->bi_links, blp)) { in bridge_trill_register_cb()
1307 ASSERT(blp->bl_trilldata == NULL); in bridge_trill_register_cb()
1360 bridge_link_t *blp; in bridge_trill_lnref() local
1364 for (blp = list_head(&bip->bi_links); blp != NULL; in bridge_trill_lnref()
1365 blp = list_next(&bip->bi_links, blp)) { in bridge_trill_lnref()
1366 if (!(blp->bl_flags & BLF_DELETED) && in bridge_trill_lnref()
1367 blp->bl_linkid == linkid && blp->bl_trilldata == NULL) { in bridge_trill_lnref()
1368 blp->bl_trilldata = ptr; in bridge_trill_lnref()
1369 blp->bl_flags &= ~BLF_TRILLACTIVE; in bridge_trill_lnref()
1370 (void) memset(blp->bl_afs, 0, sizeof (blp->bl_afs)); in bridge_trill_lnref()
1371 atomic_inc_uint(&blp->bl_refs); in bridge_trill_lnref()
1376 return (blp); in bridge_trill_lnref()
1380 bridge_trill_lnunref(bridge_link_t *blp) in bridge_trill_lnunref() argument
1382 mutex_enter(&blp->bl_trilllock); in bridge_trill_lnunref()
1383 ASSERT(blp->bl_trilldata != NULL); in bridge_trill_lnunref()
1384 blp->bl_trilldata = NULL; in bridge_trill_lnunref()
1385 blp->bl_flags &= ~BLF_TRILLACTIVE; in bridge_trill_lnunref()
1386 while (blp->bl_trillthreads > 0) in bridge_trill_lnunref()
1387 cv_wait(&blp->bl_trillwait, &blp->bl_trilllock); in bridge_trill_lnunref()
1388 mutex_exit(&blp->bl_trilllock); in bridge_trill_lnunref()
1389 (void) memset(blp->bl_afs, 0xff, sizeof (blp->bl_afs)); in bridge_trill_lnunref()
1390 link_unref(blp); in bridge_trill_lnunref()
1409 bridge_link_t *blp; in bridge_timer() local
1445 for (blp = list_head(&bip->bi_links); blp != NULL; in bridge_timer()
1446 blp = list_next(&bip->bi_links, blp)) { in bridge_timer()
1447 ldecay = mac_get_ldecay(blp->bl_mh); in bridge_timer()
1448 if (ldecay >= blp->bl_learns) in bridge_timer()
1449 blp->bl_learns = 0; in bridge_timer()
1451 atomic_add_int(&blp->bl_learns, -(int)ldecay); in bridge_timer()
1573 bridge_learn(bridge_link_t *blp, const uint8_t *saddr, uint16_t ingress_nick, in bridge_learn() argument
1576 bridge_inst_t *bip = blp->bl_inst; in bridge_learn()
1610 if (bfp->bf_links[i] == blp) { in bridge_learn()
1628 if (blp->bl_learns >= mac_get_llimit(blp->bl_mh)) { in bridge_learn()
1637 atomic_inc_uint(&blp->bl_learns); in bridge_learn()
1658 atomic_inc_uint(&blp->bl_learns); in bridge_learn()
1670 bfpnew->bf_links[0] = blp; in bridge_learn()
1672 atomic_inc_uint(&blp->bl_refs); /* bf_links entry */ in bridge_learn()
1850 bridge_can_send(bridge_link_t *blp, uint16_t vlanid) in bridge_can_send() argument
1853 if (blp->bl_flags & BLF_DELETED) in bridge_can_send()
1855 if (blp->bl_trilldata == NULL && blp->bl_state != BLS_FORWARDING) in bridge_can_send()
1857 return (BRIDGE_VLAN_ISSET(blp, vlanid) && BRIDGE_AF_ISSET(blp, vlanid)); in bridge_can_send()
1870 bridge_forward(bridge_link_t *blp, mac_header_info_t *hdr_info, mblk_t *mp, in bridge_forward() argument
1874 bridge_inst_t *bip = blp->bl_inst; in bridge_forward()
1912 mutex_enter(&blp->bl_trilllock); in bridge_forward()
1913 if ((tdp = blp->bl_trilldata) != NULL) { in bridge_forward()
1914 blp->bl_trillthreads++; in bridge_forward()
1915 mutex_exit(&blp->bl_trilllock); in bridge_forward()
1929 trill_encap_fn(tdp, blp, hdr_info, mp, in bridge_forward()
1933 mutex_enter(&blp->bl_trilllock); in bridge_forward()
1934 if (--blp->bl_trillthreads == 0 && in bridge_forward()
1935 blp->bl_trilldata == NULL) in bridge_forward()
1936 cv_broadcast(&blp->bl_trillwait); in bridge_forward()
1938 mutex_exit(&blp->bl_trilllock); in bridge_forward()
1952 if (blpsend == blp) in bridge_forward()
1962 if (blpnext == blp) in bridge_forward()
2006 mac_rx_common(blp->bl_mh, NULL, mp); in bridge_forward()
2021 if (!from_trill && blp->bl_trilldata != NULL) { in bridge_forward()
2022 mutex_enter(&blp->bl_trilllock); in bridge_forward()
2023 if ((tdp = blp->bl_trilldata) != NULL) { in bridge_forward()
2024 blp->bl_trillthreads++; in bridge_forward()
2025 mutex_exit(&blp->bl_trilllock); in bridge_forward()
2038 trill_encap_fn(tdp, blp, in bridge_forward()
2043 mutex_enter(&blp->bl_trilllock); in bridge_forward()
2044 if (--blp->bl_trillthreads == 0 && in bridge_forward()
2045 blp->bl_trilldata == NULL) in bridge_forward()
2046 cv_broadcast(&blp->bl_trillwait); in bridge_forward()
2048 mutex_exit(&blp->bl_trilllock); in bridge_forward()
2057 if (blpnext == blp) in bridge_forward()
2070 if (blpnext == blp) in bridge_forward()
2124 bridge_get_vlan(bridge_link_t *blp, mac_header_info_t *hdr_info, mblk_t *mp, in bridge_get_vlan() argument
2163 if (vlanid == VLAN_ID_NONE || vlanid == blp->bl_pvid) in bridge_get_vlan()
2165 if (!BRIDGE_VLAN_ISSET(blp, vlanid)) in bridge_get_vlan()
2174 if ((vlanid = blp->bl_pvid) == VLAN_ID_NONE) in bridge_get_vlan()
2189 bridge_link_t *blp = arg; in bridge_notify_cb() local
2193 bridge_new_unicst(blp); in bridge_notify_cb()
2198 bridge_inst_t *bip = blp->bl_inst; in bridge_notify_cb()
2203 mac_sdu_get(blp->bl_mh, NULL, &maxsdu); in bridge_notify_cb()
2205 if (list_prev(&bip->bi_links, blp) == NULL && in bridge_notify_cb()
2206 list_next(&bip->bi_links, blp) == NULL) { in bridge_notify_cb()
2210 blp->bl_maxsdu = maxsdu; in bridge_notify_cb()
2212 link_sdu_fail(blp, B_TRUE, &mlist); in bridge_notify_cb()
2231 bridge_link_t *blp = (bridge_link_t *)mh; in bridge_recv_cb() local
2232 bridge_inst_t *bip = blp->bl_inst; in bridge_recv_cb()
2245 if (blp->bl_trilldata != NULL) { in bridge_recv_cb()
2250 mutex_enter(&blp->bl_trilllock); in bridge_recv_cb()
2251 if ((tdp = blp->bl_trilldata) != NULL) { in bridge_recv_cb()
2252 blp->bl_trillthreads++; in bridge_recv_cb()
2253 mutex_exit(&blp->bl_trilllock); in bridge_recv_cb()
2265 if (mac_header_info(blp->bl_mh, mp, in bridge_recv_cb()
2313 mac_trill_snoop(blp->bl_mh, mp); in bridge_recv_cb()
2335 trill_recv_fn(tdp, blp, rsrc, mp, &hdr_info); in bridge_recv_cb()
2338 mutex_enter(&blp->bl_trilllock); in bridge_recv_cb()
2339 if (--blp->bl_trillthreads == 0 && in bridge_recv_cb()
2340 blp->bl_trilldata == NULL) in bridge_recv_cb()
2341 cv_broadcast(&blp->bl_trillwait); in bridge_recv_cb()
2343 mutex_exit(&blp->bl_trilllock); in bridge_recv_cb()
2353 if (!(blp->bl_flags & BLF_TRILLACTIVE) || in bridge_recv_cb()
2354 (blp->bl_flags & BLF_SDUFAIL)) { in bridge_recv_cb()
2355 mac_rx_common(blp->bl_mh, rsrc, mpnext); in bridge_recv_cb()
2364 if (blp->bl_state == BLS_BLOCKLISTEN) { in bridge_recv_cb()
2365 mac_rx_common(blp->bl_mh, rsrc, mpnext); in bridge_recv_cb()
2375 if (!trillmode && blp->bl_state == BLS_FORWARDING && in bridge_recv_cb()
2396 if (mac_header_info(blp->bl_mh, mp, &hdr_info) != 0 || in bridge_recv_cb()
2400 mac_rx_common(blp->bl_mh, rsrc, mp); in bridge_recv_cb()
2407 if (!bridge_get_vlan(blp, &hdr_info, mp, &vlanid, &tci) || in bridge_recv_cb()
2408 !BRIDGE_AF_ISSET(blp, vlanid)) { in bridge_recv_cb()
2409 mac_rx_common(blp->bl_mh, rsrc, mp); in bridge_recv_cb()
2420 mac_rx_common(blp->bl_mh, rsrc, mp); in bridge_recv_cb()
2439 bridge_learn(blp, hdr_info.mhi_saddr, RBRIDGE_NICKNAME_NONE, in bridge_recv_cb()
2446 if (trillmode || blp->bl_state == BLS_FORWARDING) { in bridge_recv_cb()
2447 mp = bridge_forward(blp, &hdr_info, mp, vlanid, tci, in bridge_recv_cb()
2451 mac_rx_common(blp->bl_mh, rsrc, mp); in bridge_recv_cb()
2460 bridge_link_t *blp = (bridge_link_t *)mh; in bridge_xmit_cb() local
2461 bridge_inst_t *bip = blp->bl_inst; in bridge_xmit_cb()
2468 trillmode = blp->bl_trilldata != NULL; in bridge_xmit_cb()
2475 if ((!trillmode && blp->bl_state == BLS_BLOCKLISTEN) || in bridge_xmit_cb()
2477 (!(blp->bl_flags & BLF_TRILLACTIVE) || in bridge_xmit_cb()
2478 (blp->bl_flags & BLF_SDUFAIL)))) { in bridge_xmit_cb()
2481 mp = mac_ring_tx(blp->bl_mh, rh, mpnext); in bridge_xmit_cb()
2489 if (!trillmode && blp->bl_state == BLS_FORWARDING && in bridge_xmit_cb()
2499 if (mac_header_info(blp->bl_mh, mp, &hdr_info) != 0) { in bridge_xmit_cb()
2507 if (!bridge_get_vlan(blp, &hdr_info, mp, &vlanid, &tci) || in bridge_xmit_cb()
2508 !BRIDGE_AF_ISSET(blp, vlanid)) { in bridge_xmit_cb()
2530 bridge_learn(blp, hdr_info.mhi_saddr, RBRIDGE_NICKNAME_NONE, in bridge_xmit_cb()
2534 if (trillmode || blp->bl_state == BLS_FORWARDING) { in bridge_xmit_cb()
2535 mp = bridge_forward(blp, &hdr_info, mp, vlanid, tci, in bridge_xmit_cb()
2539 mp = mac_ring_tx(blp->bl_mh, rh, mp); in bridge_xmit_cb()
2567 bridge_trill_decaps(bridge_link_t *blp, mblk_t *mp, uint16_t ingress_nick) in bridge_trill_decaps() argument
2571 bridge_inst_t *bip = blp->bl_inst; /* used by macros */ in bridge_trill_decaps()
2574 if (mac_header_info(blp->bl_mh, mp, &hdr_info) != 0) { in bridge_trill_decaps()
2590 blp, mblk_t *, mp, uint16_t, ingress_nick); in bridge_trill_decaps()
2596 bridge_learn(blp, hdr_info.mhi_saddr, ingress_nick, vlanid); in bridge_trill_decaps()
2599 mp = bridge_forward(blp, &hdr_info, mp, vlanid, tci, B_TRUE, B_TRUE); in bridge_trill_decaps()
2601 if (bridge_can_send(blp, vlanid)) { in bridge_trill_decaps()
2604 mac_rx_common(blp->bl_mh, NULL, mpcopy); in bridge_trill_decaps()
2605 mp = mac_ring_tx(blp->bl_mh, NULL, mp); in bridge_trill_decaps()
2621 bridge_trill_output(bridge_link_t *blp, mblk_t *mp) in bridge_trill_output() argument
2623 bridge_inst_t *bip = blp->bl_inst; /* used by macros */ in bridge_trill_output()
2625 mac_trill_snoop(blp->bl_mh, mp); in bridge_trill_output()
2626 mp = mac_ring_tx(blp->bl_mh, NULL, mp); in bridge_trill_output()
2640 bridge_trill_setvlans(bridge_link_t *blp, const uint8_t *arr) in bridge_trill_setvlans() argument
2646 if ((blp->bl_afs[i] = arr[i]) != 0) in bridge_trill_setvlans()
2649 blp->bl_flags = (blp->bl_flags & ~BLF_TRILLACTIVE) | newflags; in bridge_trill_setvlans()
2653 bridge_trill_flush(bridge_link_t *blp, uint16_t vlan, boolean_t dotrill) in bridge_trill_flush() argument
2655 bridge_inst_t *bip = blp->bl_inst; in bridge_trill_flush()
2678 if (bfp->bf_links[i] == blp) in bridge_trill_flush()
2707 bridge_link_t *blp = (bridge_link_t *)mh; in bridge_ref_cb() local
2710 atomic_inc_uint(&blp->bl_refs); in bridge_ref_cb()
2712 link_unref(blp); in bridge_ref_cb()
2727 bridge_link_t *blp = (bridge_link_t *)mh; in bridge_ls_cb() local
2732 if (newls != LINK_STATE_DOWN && blp->bl_linkstate != LINK_STATE_DOWN || in bridge_ls_cb()
2733 (blp->bl_flags & (BLF_DELETED|BLF_SDUFAIL))) { in bridge_ls_cb()
2734 blp->bl_linkstate = newls; in bridge_ls_cb()
2743 bip = blp->bl_inst; in bridge_ls_cb()
2747 if (blcmp != blp && in bridge_ls_cb()
2759 blp->bl_linkstate = newls; in bridge_ls_cb()
2761 } else if (blp->bl_linkstate != newls) { in bridge_ls_cb()
2767 blp->bl_linkstate = newls; in bridge_ls_cb()
2770 if (blcmp != blp && !(blcmp->bl_flags & BLF_DELETED)) in bridge_ls_cb()
2793 bridge_link_t *blp = NULL, *blpt; in bridge_add_link() local
2869 if ((blp = kmem_zalloc(sizeof (*blp), KM_NOSLEEP)) == NULL) { in bridge_add_link()
2873 blp->bl_lfailmp = allocb(sizeof (bridge_ctl_t), BPRI_MED); in bridge_add_link()
2874 if (blp->bl_lfailmp == NULL) { in bridge_add_link()
2875 kmem_free(blp, sizeof (*blp)); in bridge_add_link()
2876 blp = NULL; in bridge_add_link()
2881 blp->bl_refs = 1; in bridge_add_link()
2883 blp->bl_inst = bip; in bridge_add_link()
2884 blp->bl_mh = mh; in bridge_add_link()
2885 blp->bl_linkid = linkid; in bridge_add_link()
2886 blp->bl_maxsdu = maxsdu; in bridge_add_link()
2887 cv_init(&blp->bl_trillwait, NULL, CV_DRIVER, NULL); in bridge_add_link()
2888 mutex_init(&blp->bl_trilllock, NULL, MUTEX_DRIVER, NULL); in bridge_add_link()
2889 (void) memset(blp->bl_afs, 0xff, sizeof (blp->bl_afs)); in bridge_add_link()
2891 err = mac_client_open(mh, &blp->bl_mch, kstatname, 0); in bridge_add_link()
2894 blp->bl_flags |= BLF_CLIENT_OPEN; in bridge_add_link()
2896 err = mac_margin_add(mh, &blp->bl_margin, B_TRUE); in bridge_add_link()
2899 blp->bl_flags |= BLF_MARGIN_ADDED; in bridge_add_link()
2901 blp->bl_mnh = mac_notify_add(mh, bridge_notify_cb, blp); in bridge_add_link()
2904 err = mac_bridge_set(mh, (mac_handle_t)blp); in bridge_add_link()
2907 blp->bl_flags |= BLF_SET_BRIDGE; in bridge_add_link()
2909 err = mac_promisc_add(blp->bl_mch, MAC_CLIENT_PROMISC_ALL, NULL, in bridge_add_link()
2910 blp, &blp->bl_mphp, MAC_PROMISC_FLAGS_NO_TX_LOOP); in bridge_add_link()
2913 blp->bl_flags |= BLF_PROM_ADDED; in bridge_add_link()
2915 bridge_new_unicst(blp); in bridge_add_link()
2917 blp->bl_ksp = kstat_setup((kstat_named_t *)&blp->bl_kstats, in bridge_add_link()
2929 list_insert_tail(&bip->bi_links, blp); in bridge_add_link()
2930 blp->bl_flags |= BLF_LINK_ADDED; in bridge_add_link()
2938 link_sdu_fail(blp, B_TRUE, &mlist); in bridge_add_link()
2948 blp->bl_linkstate = LINK_STATE_DOWN; in bridge_add_link()
2960 if (blp == NULL) { in bridge_add_link()
2964 link_shutdown(blp); in bridge_add_link()
2978 bridge_link_t *blp, *blsave; in bridge_rem_link() local
2994 for (blp = list_head(&bip->bi_links); blp != NULL; in bridge_rem_link()
2995 blp = list_next(&bip->bi_links, blp)) { in bridge_rem_link()
2996 if (blp->bl_linkid == linkid && in bridge_rem_link()
2997 !(blp->bl_flags & BLF_DELETED)) { in bridge_rem_link()
2998 blp->bl_flags |= BLF_DELETED; in bridge_rem_link()
3000 blp, DDI_SLEEP); in bridge_rem_link()
3010 if (blp != NULL && blp->bl_linkstate != LINK_STATE_DOWN) { in bridge_rem_link()
3011 for (blp = list_head(&bip->bi_links); blp != NULL; in bridge_rem_link()
3012 blp = list_next(&bip->bi_links, blp)) { in bridge_rem_link()
3013 if (blp->bl_linkstate != LINK_STATE_DOWN && in bridge_rem_link()
3014 !(blp->bl_flags & (BLF_DELETED|BLF_SDUFAIL))) in bridge_rem_link()
3017 if (blp == NULL) { in bridge_rem_link()
3018 for (blp = list_head(&bip->bi_links); blp != NULL; in bridge_rem_link()
3019 blp = list_next(&bip->bi_links, blp)) { in bridge_rem_link()
3020 if (!(blp->bl_flags & BLF_DELETED)) in bridge_rem_link()
3021 mac_link_redo(blp->bl_mh, in bridge_rem_link()
3035 for (blp = list_head(&bip->bi_links); blp != NULL; in bridge_rem_link()
3036 blp = list_next(&bip->bi_links, blp)) { in bridge_rem_link()
3037 if (!(blp->bl_flags & BLF_DELETED)) { in bridge_rem_link()
3039 blsave = blp; in bridge_rem_link()
3046 if (blsave != NULL && blp == NULL && in bridge_rem_link()
3069 bridge_link_t *blp; in enter_link() local
3072 for (blp = list_head(&bip->bi_links); blp != NULL; in enter_link()
3073 blp = list_next(&bip->bi_links, blp)) { in enter_link()
3074 if (blp->bl_linkid == linkid && !(blp->bl_flags & BLF_DELETED)) in enter_link()
3077 return (blp); in enter_link()
3088 bridge_link_t *blp; in bridge_ioctl() local
3171 if ((blp = enter_link(bip, bss->bss_linkid)) == NULL) { in bridge_ioctl()
3175 blp->bl_state = bss->bss_state; in bridge_ioctl()
3191 if ((blp = enter_link(bip, bsv->bsv_linkid)) == NULL) { in bridge_ioctl()
3193 } else if (blp->bl_pvid == bsv->bsv_vlan) { in bridge_ioctl()
3197 BRIDGE_VLAN_CLR(blp, blp->bl_pvid); in bridge_ioctl()
3198 blp->bl_pvid = bsv->bsv_vlan; in bridge_ioctl()
3199 if (blp->bl_pvid != 0) in bridge_ioctl()
3200 BRIDGE_VLAN_SET(blp, blp->bl_pvid); in bridge_ioctl()
3216 if ((blp = enter_link(bip, bve->bve_linkid)) == NULL) { in bridge_ioctl()
3222 (void) memset(blp->bl_vlans, in bridge_ioctl()
3224 sizeof (blp->bl_vlans)); in bridge_ioctl()
3225 BRIDGE_VLAN_CLR(blp, 0); in bridge_ioctl()
3226 if (blp->bl_pvid != 0) in bridge_ioctl()
3227 BRIDGE_VLAN_SET(blp, blp->bl_pvid); in bridge_ioctl()
3228 } else if (bve->bve_vlan == blp->bl_pvid) { in bridge_ioctl()
3231 BRIDGE_VLAN_SET(blp, bve->bve_vlan); in bridge_ioctl()
3233 BRIDGE_VLAN_CLR(blp, bve->bve_vlan); in bridge_ioctl()
3254 blp = NULL; in bridge_ioctl()
3256 for (blp = list_head(&bip->bi_links); blp != NULL; in bridge_ioctl()
3257 blp = list_next(&bip->bi_links, blp)) { in bridge_ioctl()
3258 if (blp->bl_linkid == bff->bff_linkid && in bridge_ioctl()
3259 !(blp->bl_flags & BLF_DELETED)) in bridge_ioctl()
3262 if (blp == NULL) { in bridge_ioctl()
3275 if (blp != NULL) { in bridge_ioctl()
3277 if (bfp->bf_links[i] == blp) in bridge_ioctl()