Lines Matching refs:blp

154 #define	KLINCR(vn)	KLPINCR(blp, vn)
257 link_sdu_fail(bridge_link_t *blp, boolean_t failed, mblk_t **mlist) in link_sdu_fail() argument
266 if (blp->bl_flags & BLF_SDUFAIL) in link_sdu_fail()
268 blp->bl_flags |= BLF_SDUFAIL; in link_sdu_fail()
270 if (!(blp->bl_flags & BLF_SDUFAIL)) in link_sdu_fail()
272 blp->bl_flags &= ~BLF_SDUFAIL; in link_sdu_fail()
280 bip = blp->bl_inst; in link_sdu_fail()
282 if (blp->bl_linkstate != LINK_STATE_DOWN) { in link_sdu_fail()
285 if (blp != blcmp && in link_sdu_fail()
304 if (bmp->bm_linkstate != blp->bl_linkstate) in link_sdu_fail()
305 mac_link_redo(blp->bl_mh, blp->bl_linkstate); in link_sdu_fail()
307 mac_link_redo(blp->bl_mh, bmp->bm_linkstate); in link_sdu_fail()
311 if ((mp = blp->bl_lfailmp) == NULL && in link_sdu_fail()
316 blp->bl_lfailmp = allocb(sizeof (bridge_ctl_t), BPRI_MED); in link_sdu_fail()
319 if (blp->bl_lfailmp == NULL && !failed) { in link_sdu_fail()
320 blp->bl_lfailmp = mp; in link_sdu_fail()
326 bcp->bc_linkid = blp->bl_linkid; in link_sdu_fail()
448 bridge_link_t *blp; in bridge_m_setprop() local
468 for (blp = list_head(&bip->bi_links); blp != NULL; in bridge_m_setprop()
469 blp = list_next(&bip->bi_links, blp)) { in bridge_m_setprop()
470 if (blp->bl_flags & BLF_DELETED) in bridge_m_setprop()
472 if (blp->bl_maxsdu == maxsdu) in bridge_m_setprop()
473 link_sdu_fail(blp, B_FALSE, &mlist); in bridge_m_setprop()
474 else if (blp->bl_maxsdu == bmp->bm_maxsdu) in bridge_m_setprop()
475 link_sdu_fail(blp, B_TRUE, &mlist); in bridge_m_setprop()
860 link_free(bridge_link_t *blp) in link_free() argument
862 bridge_inst_t *bip = blp->bl_inst; in link_free()
864 ASSERT(!(blp->bl_flags & BLF_FREED)); in link_free()
865 blp->bl_flags |= BLF_FREED; in link_free()
866 if (blp->bl_ksp != NULL) in link_free()
867 kstat_delete(blp->bl_ksp); in link_free()
868 if (blp->bl_lfailmp != NULL) in link_free()
869 freeb(blp->bl_lfailmp); in link_free()
870 cv_destroy(&blp->bl_trillwait); in link_free()
871 mutex_destroy(&blp->bl_trilllock); in link_free()
872 kmem_free(blp, sizeof (*blp)); in link_free()
878 link_unref(bridge_link_t *blp) in link_unref() argument
880 if (atomic_dec_uint_nv(&blp->bl_refs) == 0) { in link_unref()
881 bridge_inst_t *bip = blp->bl_inst; in link_unref()
883 ASSERT(blp->bl_flags & BLF_DELETED); in link_unref()
885 if (blp->bl_flags & BLF_LINK_ADDED) in link_unref()
886 list_remove(&bip->bi_links, blp); in link_unref()
890 link_free(blp); in link_unref()
1006 fwd_update_local(bridge_link_t *blp, const uint8_t *oldaddr, in fwd_update_local() argument
1009 bridge_inst_t *bip = blp->bl_inst; in fwd_update_local()
1033 if (bfp->bf_links[i] == blp) { in fwd_update_local()
1096 bfnew->bf_links[bfnew->bf_nlinks++] = blp; in fwd_update_local()
1100 atomic_inc_uint(&blp->bl_refs); /* bf_links entry */ in fwd_update_local()
1122 link_unref(blp); in fwd_update_local()
1126 bridge_new_unicst(bridge_link_t *blp) in bridge_new_unicst() argument
1130 mac_unicast_primary_get(blp->bl_mh, new_mac); in bridge_new_unicst()
1131 fwd_update_local(blp, blp->bl_local_mac, new_mac); in bridge_new_unicst()
1132 bcopy(new_mac, blp->bl_local_mac, ETHERADDRL); in bridge_new_unicst()
1144 bridge_link_t *blp = arg; in link_shutdown() local
1145 mac_handle_t mh = blp->bl_mh; in link_shutdown()
1156 if (blp->bl_trilldata != NULL) in link_shutdown()
1157 trill_lndstr_fn(blp->bl_trilldata, blp); in link_shutdown()
1159 if (blp->bl_flags & BLF_PROM_ADDED) in link_shutdown()
1160 (void) mac_promisc_remove(blp->bl_mphp); in link_shutdown()
1162 if (blp->bl_flags & BLF_SET_BRIDGE) in link_shutdown()
1163 mac_bridge_clear(mh, (mac_handle_t)blp); in link_shutdown()
1165 if (blp->bl_flags & BLF_MARGIN_ADDED) { in link_shutdown()
1166 (void) mac_notify_remove(blp->bl_mnh, B_TRUE); in link_shutdown()
1167 (void) mac_margin_remove(mh, blp->bl_margin); in link_shutdown()
1171 mac_link_redo(blp->bl_mh, in link_shutdown()
1172 mac_stat_get(blp->bl_mh, MAC_STAT_LOWLINK_STATE)); in link_shutdown()
1177 bip = blp->bl_inst; in link_shutdown()
1183 if (bfp->bf_links[i] == blp) in link_shutdown()
1190 link_unref(blp); in link_shutdown()
1210 if (blp->bl_flags & BLF_CLIENT_OPEN) in link_shutdown()
1211 mac_client_close(blp->bl_mch, 0); in link_shutdown()
1219 link_unref(blp); in link_shutdown()
1225 bridge_link_t *blp, *blnext; in shutdown_inst() local
1247 while ((blp = blnext) != NULL) { in shutdown_inst()
1248 blnext = list_next(&bip->bi_links, blp); in shutdown_inst()
1249 if (!(blp->bl_flags & BLF_DELETED)) { in shutdown_inst()
1250 blp->bl_flags |= BLF_DELETED; in shutdown_inst()
1252 blp, DDI_SLEEP); in shutdown_inst()
1295 bridge_link_t *blp; in bridge_trill_register_cb() local
1302 for (blp = list_head(&bip->bi_links); blp != NULL; in bridge_trill_register_cb()
1303 blp = list_next(&bip->bi_links, blp)) { in bridge_trill_register_cb()
1304 ASSERT(blp->bl_trilldata == NULL); in bridge_trill_register_cb()
1357 bridge_link_t *blp; in bridge_trill_lnref() local
1361 for (blp = list_head(&bip->bi_links); blp != NULL; in bridge_trill_lnref()
1362 blp = list_next(&bip->bi_links, blp)) { in bridge_trill_lnref()
1363 if (!(blp->bl_flags & BLF_DELETED) && in bridge_trill_lnref()
1364 blp->bl_linkid == linkid && blp->bl_trilldata == NULL) { in bridge_trill_lnref()
1365 blp->bl_trilldata = ptr; in bridge_trill_lnref()
1366 blp->bl_flags &= ~BLF_TRILLACTIVE; in bridge_trill_lnref()
1367 (void) memset(blp->bl_afs, 0, sizeof (blp->bl_afs)); in bridge_trill_lnref()
1368 atomic_inc_uint(&blp->bl_refs); in bridge_trill_lnref()
1373 return (blp); in bridge_trill_lnref()
1377 bridge_trill_lnunref(bridge_link_t *blp) in bridge_trill_lnunref() argument
1379 mutex_enter(&blp->bl_trilllock); in bridge_trill_lnunref()
1380 ASSERT(blp->bl_trilldata != NULL); in bridge_trill_lnunref()
1381 blp->bl_trilldata = NULL; in bridge_trill_lnunref()
1382 blp->bl_flags &= ~BLF_TRILLACTIVE; in bridge_trill_lnunref()
1383 while (blp->bl_trillthreads > 0) in bridge_trill_lnunref()
1384 cv_wait(&blp->bl_trillwait, &blp->bl_trilllock); in bridge_trill_lnunref()
1385 mutex_exit(&blp->bl_trilllock); in bridge_trill_lnunref()
1386 (void) memset(blp->bl_afs, 0xff, sizeof (blp->bl_afs)); in bridge_trill_lnunref()
1387 link_unref(blp); in bridge_trill_lnunref()
1406 bridge_link_t *blp; in bridge_timer() local
1442 for (blp = list_head(&bip->bi_links); blp != NULL; in bridge_timer()
1443 blp = list_next(&bip->bi_links, blp)) { in bridge_timer()
1444 ldecay = mac_get_ldecay(blp->bl_mh); in bridge_timer()
1445 if (ldecay >= blp->bl_learns) in bridge_timer()
1446 blp->bl_learns = 0; in bridge_timer()
1448 atomic_add_int(&blp->bl_learns, -(int)ldecay); in bridge_timer()
1569 bridge_learn(bridge_link_t *blp, const uint8_t *saddr, uint16_t ingress_nick, in bridge_learn() argument
1572 bridge_inst_t *bip = blp->bl_inst; in bridge_learn()
1606 if (bfp->bf_links[i] == blp) { in bridge_learn()
1624 if (blp->bl_learns >= mac_get_llimit(blp->bl_mh)) { in bridge_learn()
1633 atomic_inc_uint(&blp->bl_learns); in bridge_learn()
1654 atomic_inc_uint(&blp->bl_learns); in bridge_learn()
1666 bfpnew->bf_links[0] = blp; in bridge_learn()
1668 atomic_inc_uint(&blp->bl_refs); /* bf_links entry */ in bridge_learn()
1841 bridge_can_send(bridge_link_t *blp, uint16_t vlanid) in bridge_can_send() argument
1844 if (blp->bl_flags & BLF_DELETED) in bridge_can_send()
1846 if (blp->bl_trilldata == NULL && blp->bl_state != BLS_FORWARDING) in bridge_can_send()
1848 return (BRIDGE_VLAN_ISSET(blp, vlanid) && BRIDGE_AF_ISSET(blp, vlanid)); in bridge_can_send()
1861 bridge_forward(bridge_link_t *blp, mac_header_info_t *hdr_info, mblk_t *mp, in bridge_forward() argument
1865 bridge_inst_t *bip = blp->bl_inst; in bridge_forward()
1903 mutex_enter(&blp->bl_trilllock); in bridge_forward()
1904 if ((tdp = blp->bl_trilldata) != NULL) { in bridge_forward()
1905 blp->bl_trillthreads++; in bridge_forward()
1906 mutex_exit(&blp->bl_trilllock); in bridge_forward()
1917 trill_encap_fn(tdp, blp, hdr_info, mp, in bridge_forward()
1919 mutex_enter(&blp->bl_trilllock); in bridge_forward()
1920 if (--blp->bl_trillthreads == 0 && in bridge_forward()
1921 blp->bl_trilldata == NULL) in bridge_forward()
1922 cv_broadcast(&blp->bl_trillwait); in bridge_forward()
1924 mutex_exit(&blp->bl_trilllock); in bridge_forward()
1938 if (blpsend == blp) in bridge_forward()
1948 if (blpnext == blp) in bridge_forward()
1992 mac_rx_common(blp->bl_mh, NULL, mp); in bridge_forward()
2007 if (!from_trill && blp->bl_trilldata != NULL) { in bridge_forward()
2008 mutex_enter(&blp->bl_trilllock); in bridge_forward()
2009 if ((tdp = blp->bl_trilldata) != NULL) { in bridge_forward()
2010 blp->bl_trillthreads++; in bridge_forward()
2011 mutex_exit(&blp->bl_trilllock); in bridge_forward()
2024 trill_encap_fn(tdp, blp, in bridge_forward()
2029 mutex_enter(&blp->bl_trilllock); in bridge_forward()
2030 if (--blp->bl_trillthreads == 0 && in bridge_forward()
2031 blp->bl_trilldata == NULL) in bridge_forward()
2032 cv_broadcast(&blp->bl_trillwait); in bridge_forward()
2034 mutex_exit(&blp->bl_trilllock); in bridge_forward()
2043 if (blpnext == blp) in bridge_forward()
2056 if (blpnext == blp) in bridge_forward()
2109 bridge_get_vlan(bridge_link_t *blp, mac_header_info_t *hdr_info, mblk_t *mp, in bridge_get_vlan() argument
2148 if (vlanid == VLAN_ID_NONE || vlanid == blp->bl_pvid) in bridge_get_vlan()
2150 if (!BRIDGE_VLAN_ISSET(blp, vlanid)) in bridge_get_vlan()
2159 if ((vlanid = blp->bl_pvid) == VLAN_ID_NONE) in bridge_get_vlan()
2174 bridge_link_t *blp = arg; in bridge_notify_cb() local
2178 bridge_new_unicst(blp); in bridge_notify_cb()
2183 bridge_inst_t *bip = blp->bl_inst; in bridge_notify_cb()
2188 mac_sdu_get(blp->bl_mh, NULL, &maxsdu); in bridge_notify_cb()
2190 if (list_prev(&bip->bi_links, blp) == NULL && in bridge_notify_cb()
2191 list_next(&bip->bi_links, blp) == NULL) { in bridge_notify_cb()
2195 blp->bl_maxsdu = maxsdu; in bridge_notify_cb()
2197 link_sdu_fail(blp, B_TRUE, &mlist); in bridge_notify_cb()
2216 bridge_link_t *blp = (bridge_link_t *)mh; in bridge_recv_cb() local
2217 bridge_inst_t *bip = blp->bl_inst; in bridge_recv_cb()
2230 if (blp->bl_trilldata != NULL) { in bridge_recv_cb()
2235 mutex_enter(&blp->bl_trilllock); in bridge_recv_cb()
2236 if ((tdp = blp->bl_trilldata) != NULL) { in bridge_recv_cb()
2237 blp->bl_trillthreads++; in bridge_recv_cb()
2238 mutex_exit(&blp->bl_trilllock); in bridge_recv_cb()
2250 if (mac_header_info(blp->bl_mh, mp, in bridge_recv_cb()
2298 mac_trill_snoop(blp->bl_mh, mp); in bridge_recv_cb()
2320 trill_recv_fn(tdp, blp, rsrc, mp, &hdr_info); in bridge_recv_cb()
2323 mutex_enter(&blp->bl_trilllock); in bridge_recv_cb()
2324 if (--blp->bl_trillthreads == 0 && in bridge_recv_cb()
2325 blp->bl_trilldata == NULL) in bridge_recv_cb()
2326 cv_broadcast(&blp->bl_trillwait); in bridge_recv_cb()
2328 mutex_exit(&blp->bl_trilllock); in bridge_recv_cb()
2338 if (!(blp->bl_flags & BLF_TRILLACTIVE) || in bridge_recv_cb()
2339 (blp->bl_flags & BLF_SDUFAIL)) { in bridge_recv_cb()
2340 mac_rx_common(blp->bl_mh, rsrc, mpnext); in bridge_recv_cb()
2349 if (blp->bl_state == BLS_BLOCKLISTEN) { in bridge_recv_cb()
2350 mac_rx_common(blp->bl_mh, rsrc, mpnext); in bridge_recv_cb()
2360 if (!trillmode && blp->bl_state == BLS_FORWARDING && in bridge_recv_cb()
2381 if (mac_header_info(blp->bl_mh, mp, &hdr_info) != 0 || in bridge_recv_cb()
2385 mac_rx_common(blp->bl_mh, rsrc, mp); in bridge_recv_cb()
2392 if (!bridge_get_vlan(blp, &hdr_info, mp, &vlanid, &tci) || in bridge_recv_cb()
2393 !BRIDGE_AF_ISSET(blp, vlanid)) { in bridge_recv_cb()
2394 mac_rx_common(blp->bl_mh, rsrc, mp); in bridge_recv_cb()
2405 mac_rx_common(blp->bl_mh, rsrc, mp); in bridge_recv_cb()
2424 bridge_learn(blp, hdr_info.mhi_saddr, RBRIDGE_NICKNAME_NONE, in bridge_recv_cb()
2431 if (trillmode || blp->bl_state == BLS_FORWARDING) { in bridge_recv_cb()
2432 mp = bridge_forward(blp, &hdr_info, mp, vlanid, tci, in bridge_recv_cb()
2436 mac_rx_common(blp->bl_mh, rsrc, mp); in bridge_recv_cb()
2445 bridge_link_t *blp = (bridge_link_t *)mh; in bridge_xmit_cb() local
2446 bridge_inst_t *bip = blp->bl_inst; in bridge_xmit_cb()
2453 trillmode = blp->bl_trilldata != NULL; in bridge_xmit_cb()
2460 if ((!trillmode && blp->bl_state == BLS_BLOCKLISTEN) || in bridge_xmit_cb()
2462 (!(blp->bl_flags & BLF_TRILLACTIVE) || in bridge_xmit_cb()
2463 (blp->bl_flags & BLF_SDUFAIL)))) { in bridge_xmit_cb()
2466 MAC_RING_TX(blp->bl_mh, rh, mpnext, mp); in bridge_xmit_cb()
2474 if (!trillmode && blp->bl_state == BLS_FORWARDING && in bridge_xmit_cb()
2484 if (mac_header_info(blp->bl_mh, mp, &hdr_info) != 0) { in bridge_xmit_cb()
2492 if (!bridge_get_vlan(blp, &hdr_info, mp, &vlanid, &tci) || in bridge_xmit_cb()
2493 !BRIDGE_AF_ISSET(blp, vlanid)) { in bridge_xmit_cb()
2515 bridge_learn(blp, hdr_info.mhi_saddr, RBRIDGE_NICKNAME_NONE, in bridge_xmit_cb()
2519 if (trillmode || blp->bl_state == BLS_FORWARDING) { in bridge_xmit_cb()
2520 mp = bridge_forward(blp, &hdr_info, mp, vlanid, tci, in bridge_xmit_cb()
2524 MAC_RING_TX(blp->bl_mh, rh, mp, mp); in bridge_xmit_cb()
2552 bridge_trill_decaps(bridge_link_t *blp, mblk_t *mp, uint16_t ingress_nick) in bridge_trill_decaps() argument
2556 bridge_inst_t *bip = blp->bl_inst; /* used by macros */ in bridge_trill_decaps()
2559 if (mac_header_info(blp->bl_mh, mp, &hdr_info) != 0) { in bridge_trill_decaps()
2575 blp, mblk_t *, mp, uint16_t, ingress_nick); in bridge_trill_decaps()
2581 bridge_learn(blp, hdr_info.mhi_saddr, ingress_nick, vlanid); in bridge_trill_decaps()
2584 mp = bridge_forward(blp, &hdr_info, mp, vlanid, tci, B_TRUE, B_TRUE); in bridge_trill_decaps()
2586 if (bridge_can_send(blp, vlanid)) { in bridge_trill_decaps()
2589 mac_rx_common(blp->bl_mh, NULL, mpcopy); in bridge_trill_decaps()
2590 MAC_RING_TX(blp->bl_mh, NULL, mp, mp); in bridge_trill_decaps()
2606 bridge_trill_output(bridge_link_t *blp, mblk_t *mp) in bridge_trill_output() argument
2608 bridge_inst_t *bip = blp->bl_inst; /* used by macros */ in bridge_trill_output()
2610 mac_trill_snoop(blp->bl_mh, mp); in bridge_trill_output()
2611 MAC_RING_TX(blp->bl_mh, NULL, mp, mp); in bridge_trill_output()
2625 bridge_trill_setvlans(bridge_link_t *blp, const uint8_t *arr) in bridge_trill_setvlans() argument
2631 if ((blp->bl_afs[i] = arr[i]) != 0) in bridge_trill_setvlans()
2634 blp->bl_flags = (blp->bl_flags & ~BLF_TRILLACTIVE) | newflags; in bridge_trill_setvlans()
2638 bridge_trill_flush(bridge_link_t *blp, uint16_t vlan, boolean_t dotrill) in bridge_trill_flush() argument
2640 bridge_inst_t *bip = blp->bl_inst; in bridge_trill_flush()
2663 if (bfp->bf_links[i] == blp) in bridge_trill_flush()
2692 bridge_link_t *blp = (bridge_link_t *)mh; in bridge_ref_cb() local
2695 atomic_inc_uint(&blp->bl_refs); in bridge_ref_cb()
2697 link_unref(blp); in bridge_ref_cb()
2712 bridge_link_t *blp = (bridge_link_t *)mh; in bridge_ls_cb() local
2717 if (newls != LINK_STATE_DOWN && blp->bl_linkstate != LINK_STATE_DOWN || in bridge_ls_cb()
2718 (blp->bl_flags & (BLF_DELETED|BLF_SDUFAIL))) { in bridge_ls_cb()
2719 blp->bl_linkstate = newls; in bridge_ls_cb()
2728 bip = blp->bl_inst; in bridge_ls_cb()
2732 if (blcmp != blp && in bridge_ls_cb()
2744 blp->bl_linkstate = newls; in bridge_ls_cb()
2746 } else if (blp->bl_linkstate != newls) { in bridge_ls_cb()
2752 blp->bl_linkstate = newls; in bridge_ls_cb()
2755 if (blcmp != blp && !(blcmp->bl_flags & BLF_DELETED)) in bridge_ls_cb()
2778 bridge_link_t *blp = NULL, *blpt; in bridge_add_link() local
2854 if ((blp = kmem_zalloc(sizeof (*blp), KM_NOSLEEP)) == NULL) { in bridge_add_link()
2858 blp->bl_lfailmp = allocb(sizeof (bridge_ctl_t), BPRI_MED); in bridge_add_link()
2859 if (blp->bl_lfailmp == NULL) { in bridge_add_link()
2860 kmem_free(blp, sizeof (*blp)); in bridge_add_link()
2861 blp = NULL; in bridge_add_link()
2866 blp->bl_refs = 1; in bridge_add_link()
2868 blp->bl_inst = bip; in bridge_add_link()
2869 blp->bl_mh = mh; in bridge_add_link()
2870 blp->bl_linkid = linkid; in bridge_add_link()
2871 blp->bl_maxsdu = maxsdu; in bridge_add_link()
2872 cv_init(&blp->bl_trillwait, NULL, CV_DRIVER, NULL); in bridge_add_link()
2873 mutex_init(&blp->bl_trilllock, NULL, MUTEX_DRIVER, NULL); in bridge_add_link()
2874 (void) memset(blp->bl_afs, 0xff, sizeof (blp->bl_afs)); in bridge_add_link()
2876 err = mac_client_open(mh, &blp->bl_mch, kstatname, 0); in bridge_add_link()
2879 blp->bl_flags |= BLF_CLIENT_OPEN; in bridge_add_link()
2881 err = mac_margin_add(mh, &blp->bl_margin, B_TRUE); in bridge_add_link()
2884 blp->bl_flags |= BLF_MARGIN_ADDED; in bridge_add_link()
2886 blp->bl_mnh = mac_notify_add(mh, bridge_notify_cb, blp); in bridge_add_link()
2889 err = mac_bridge_set(mh, (mac_handle_t)blp); in bridge_add_link()
2892 blp->bl_flags |= BLF_SET_BRIDGE; in bridge_add_link()
2894 err = mac_promisc_add(blp->bl_mch, MAC_CLIENT_PROMISC_ALL, NULL, in bridge_add_link()
2895 blp, &blp->bl_mphp, MAC_PROMISC_FLAGS_NO_TX_LOOP); in bridge_add_link()
2898 blp->bl_flags |= BLF_PROM_ADDED; in bridge_add_link()
2900 bridge_new_unicst(blp); in bridge_add_link()
2902 blp->bl_ksp = kstat_setup((kstat_named_t *)&blp->bl_kstats, in bridge_add_link()
2914 list_insert_tail(&bip->bi_links, blp); in bridge_add_link()
2915 blp->bl_flags |= BLF_LINK_ADDED; in bridge_add_link()
2923 link_sdu_fail(blp, B_TRUE, &mlist); in bridge_add_link()
2933 blp->bl_linkstate = LINK_STATE_DOWN; in bridge_add_link()
2945 if (blp == NULL) { in bridge_add_link()
2949 link_shutdown(blp); in bridge_add_link()
2963 bridge_link_t *blp, *blsave; in bridge_rem_link() local
2979 for (blp = list_head(&bip->bi_links); blp != NULL; in bridge_rem_link()
2980 blp = list_next(&bip->bi_links, blp)) { in bridge_rem_link()
2981 if (blp->bl_linkid == linkid && in bridge_rem_link()
2982 !(blp->bl_flags & BLF_DELETED)) { in bridge_rem_link()
2983 blp->bl_flags |= BLF_DELETED; in bridge_rem_link()
2985 blp, DDI_SLEEP); in bridge_rem_link()
2995 if (blp != NULL && blp->bl_linkstate != LINK_STATE_DOWN) { in bridge_rem_link()
2996 for (blp = list_head(&bip->bi_links); blp != NULL; in bridge_rem_link()
2997 blp = list_next(&bip->bi_links, blp)) { in bridge_rem_link()
2998 if (blp->bl_linkstate != LINK_STATE_DOWN && in bridge_rem_link()
2999 !(blp->bl_flags & (BLF_DELETED|BLF_SDUFAIL))) in bridge_rem_link()
3002 if (blp == NULL) { in bridge_rem_link()
3003 for (blp = list_head(&bip->bi_links); blp != NULL; in bridge_rem_link()
3004 blp = list_next(&bip->bi_links, blp)) { in bridge_rem_link()
3005 if (!(blp->bl_flags & BLF_DELETED)) in bridge_rem_link()
3006 mac_link_redo(blp->bl_mh, in bridge_rem_link()
3020 for (blp = list_head(&bip->bi_links); blp != NULL; in bridge_rem_link()
3021 blp = list_next(&bip->bi_links, blp)) { in bridge_rem_link()
3022 if (!(blp->bl_flags & BLF_DELETED)) { in bridge_rem_link()
3024 blsave = blp; in bridge_rem_link()
3031 if (blsave != NULL && blp == NULL && in bridge_rem_link()
3054 bridge_link_t *blp; in enter_link() local
3057 for (blp = list_head(&bip->bi_links); blp != NULL; in enter_link()
3058 blp = list_next(&bip->bi_links, blp)) { in enter_link()
3059 if (blp->bl_linkid == linkid && !(blp->bl_flags & BLF_DELETED)) in enter_link()
3062 return (blp); in enter_link()
3073 bridge_link_t *blp; in bridge_ioctl() local
3156 if ((blp = enter_link(bip, bss->bss_linkid)) == NULL) { in bridge_ioctl()
3160 blp->bl_state = bss->bss_state; in bridge_ioctl()
3176 if ((blp = enter_link(bip, bsv->bsv_linkid)) == NULL) { in bridge_ioctl()
3178 } else if (blp->bl_pvid == bsv->bsv_vlan) { in bridge_ioctl()
3182 BRIDGE_VLAN_CLR(blp, blp->bl_pvid); in bridge_ioctl()
3183 blp->bl_pvid = bsv->bsv_vlan; in bridge_ioctl()
3184 if (blp->bl_pvid != 0) in bridge_ioctl()
3185 BRIDGE_VLAN_SET(blp, blp->bl_pvid); in bridge_ioctl()
3201 if ((blp = enter_link(bip, bve->bve_linkid)) == NULL) { in bridge_ioctl()
3207 (void) memset(blp->bl_vlans, in bridge_ioctl()
3209 sizeof (blp->bl_vlans)); in bridge_ioctl()
3210 BRIDGE_VLAN_CLR(blp, 0); in bridge_ioctl()
3211 if (blp->bl_pvid != 0) in bridge_ioctl()
3212 BRIDGE_VLAN_SET(blp, blp->bl_pvid); in bridge_ioctl()
3213 } else if (bve->bve_vlan == blp->bl_pvid) { in bridge_ioctl()
3216 BRIDGE_VLAN_SET(blp, bve->bve_vlan); in bridge_ioctl()
3218 BRIDGE_VLAN_CLR(blp, bve->bve_vlan); in bridge_ioctl()
3239 blp = NULL; in bridge_ioctl()
3241 for (blp = list_head(&bip->bi_links); blp != NULL; in bridge_ioctl()
3242 blp = list_next(&bip->bi_links, blp)) { in bridge_ioctl()
3243 if (blp->bl_linkid == bff->bff_linkid && in bridge_ioctl()
3244 !(blp->bl_flags & BLF_DELETED)) in bridge_ioctl()
3247 if (blp == NULL) { in bridge_ioctl()
3260 if (blp != NULL) { in bridge_ioctl()
3262 if (bfp->bf_links[i] == blp) in bridge_ioctl()