Lines Matching refs:macinfo
55 #define DLSAPLENGTH(macinfo) \ argument
56 ((macinfo)->gldm_addrlen + ABS((macinfo)->gldm_saplen))
90 gld_init_ether(gld_mac_info_t *macinfo) in gld_init_ether() argument
93 ((gld_mac_pvt_t *)macinfo->gldm_mac_pvt)->kstatp->ks_data; in gld_init_ether()
96 ASSERT(macinfo->gldm_type == DL_ETHER); in gld_init_ether()
97 ASSERT(macinfo->gldm_addrlen == 6); in gld_init_ether()
98 ASSERT(macinfo->gldm_saplen == -2); in gld_init_ether()
119 if (macinfo->gldm_driver_version != GLD_VERSION_200) in gld_init_ether()
139 gld_uninit_ether(gld_mac_info_t *macinfo) in gld_uninit_ether() argument
144 gld_interpret_ether(gld_mac_info_t *macinfo, mblk_t *mp, pktinfo_t *pktinfo, in gld_interpret_ether() argument
148 gld_mac_pvt_t *mac_pvt = (gld_mac_pvt_t *)macinfo->gldm_mac_pvt; in gld_interpret_ether()
168 mac_pvt->curr_macaddr, macinfo->gldm_addrlen); in gld_interpret_ether()
198 if (mac_eq(&mh->ether_dhost, ether_broadcast, macinfo->gldm_addrlen)) in gld_interpret_ether()
212 (macinfo->gldm_send_tagged != NULL)) { in gld_interpret_ether()
250 ASSERT(GLDM_LOCK_HELD(macinfo)); in gld_interpret_ether()
256 mac_copy(&mh->ether_dhost, pktinfo->dhost, macinfo->gldm_addrlen); in gld_interpret_ether()
257 mac_copy(&mh->ether_shost, pktinfo->shost, macinfo->gldm_addrlen); in gld_interpret_ether()
260 mac_pvt->curr_macaddr, macinfo->gldm_addrlen); in gld_interpret_ether()
262 mac_pvt->curr_macaddr, macinfo->gldm_addrlen); in gld_interpret_ether()
336 gld_mac_info_t *macinfo = gld->gld_mac_info; in gld_unitdata_ether() local
347 ASSERT(macinfo); in gld_unitdata_ether()
350 mac_copy(gldp->glda_addr, dhost, macinfo->gldm_addrlen); in gld_unitdata_ether()
353 if (dlp->dl_dest_addr_length >= DLSAPLENGTH(macinfo) && in gld_unitdata_ether()
412 mac_copy(dhost, &mh->ether_dhost, macinfo->gldm_addrlen); in gld_unitdata_ether()
418 mac_copy(((gld_mac_pvt_t *)macinfo->gldm_mac_pvt)->curr_macaddr, in gld_unitdata_ether()
419 &mh->ether_shost, macinfo->gldm_addrlen); in gld_unitdata_ether()
478 gld_mac_info_t *macinfo = gld->gld_mac_info; in gld_fastpath_ether() local
488 ASSERT(macinfo); in gld_fastpath_ether()
491 if (dlp->dl_dest_addr_length >= DLSAPLENGTH(macinfo) && in gld_fastpath_ether()
544 mac_copy(gldp->glda_addr, &mh->ether_dhost, macinfo->gldm_addrlen); in gld_fastpath_ether()
546 GLDM_LOCK(macinfo, RW_WRITER); in gld_fastpath_ether()
547 mac_copy(((gld_mac_pvt_t *)macinfo->gldm_mac_pvt)->curr_macaddr, in gld_fastpath_ether()
548 &mh->ether_shost, macinfo->gldm_addrlen); in gld_fastpath_ether()
549 GLDM_UNLOCK(macinfo); in gld_fastpath_ether()
559 gld_init_ib(gld_mac_info_t *macinfo) in gld_init_ib() argument
567 ASSERT(macinfo->gldm_type == DL_IB); in gld_init_ib()
568 ASSERT(macinfo->gldm_addrlen == IPOIB_ADDRL); in gld_init_ib()
569 ASSERT(macinfo->gldm_saplen == -2); in gld_init_ib()
574 gld_uninit_ib(gld_mac_info_t *macinfo) in gld_uninit_ib() argument
585 gld_interpret_ib(gld_mac_info_t *macinfo, mblk_t *mp, pktinfo_t *pktinfo, in gld_interpret_ib() argument
591 gld_mac_pvt_t *mac_pvt = (gld_mac_pvt_t *)macinfo->gldm_mac_pvt; in gld_interpret_ib()
661 if (mac_eq(&gldp->ipoib_dest, macinfo->gldm_broadcast_addr, in gld_interpret_ib()
664 macinfo->gldm_broadcast_addr, IPOIB_ADDRL)) in gld_interpret_ib()
744 tact = (ipoib_mac_t *)macinfo-> in gld_interpret_ib()
791 ASSERT(GLDM_LOCK_HELD(macinfo)); in gld_interpret_ib()
807 gld_interpret_mdt_ib(gld_mac_info_t *macinfo, mblk_t *mp, pdescinfo_t *pinfo, in gld_interpret_mdt_ib() argument
851 ASSERT(macinfo->gldm_saplen == -2); in gld_interpret_mdt_ib()
864 if (mac_eq(dlap, macinfo->gldm_broadcast_addr, in gld_interpret_mdt_ib()
866 if (mac_eq(dlap, macinfo->gldm_broadcast_addr, in gld_interpret_mdt_ib()
877 mac_pvt = (gld_mac_pvt_t *)macinfo->gldm_mac_pvt; in gld_interpret_mdt_ib()
888 gld_mac_info_t *macinfo = gld->gld_mac_info; in gld_unitdata_ib() local
896 ASSERT(macinfo != NULL); in gld_unitdata_ib()
902 if (dlp->dl_dest_addr_length >= DLSAPLENGTH(macinfo) && in gld_unitdata_ib()
943 gld_mac_info_t *macinfo = gld->gld_mac_info; in gld_fastpath_ib() local
951 ASSERT(macinfo != NULL); in gld_fastpath_ib()
954 if (dlp->dl_dest_addr_length >= DLSAPLENGTH(macinfo) && in gld_fastpath_ib()
983 gld_init_fddi(gld_mac_info_t *macinfo) in gld_init_fddi() argument
986 ((gld_mac_pvt_t *)macinfo->gldm_mac_pvt)->kstatp->ks_data; in gld_init_fddi()
989 ASSERT(macinfo->gldm_type == DL_FDDI); in gld_init_fddi()
990 ASSERT(macinfo->gldm_addrlen == 6); in gld_init_fddi()
991 ASSERT(macinfo->gldm_saplen == -2); in gld_init_fddi()
998 macinfo->gldm_options |= GLDOPT_CANONICAL_ADDR; in gld_init_fddi()
1016 gld_uninit_fddi(gld_mac_info_t *macinfo) in gld_uninit_fddi() argument
1021 gld_interpret_fddi(gld_mac_info_t *macinfo, mblk_t *mp, pktinfo_t *pktinfo, in gld_interpret_fddi() argument
1063 if (mac_eq(mh->fddi_dhost, ether_broadcast, macinfo->gldm_addrlen)) in gld_interpret_fddi()
1071 ASSERT(GLDM_LOCK_HELD(macinfo)); in gld_interpret_fddi()
1078 macinfo->gldm_addrlen, macinfo); in gld_interpret_fddi()
1080 macinfo->gldm_addrlen, macinfo); in gld_interpret_fddi()
1082 mac_pvt = (gld_mac_pvt_t *)macinfo->gldm_mac_pvt; in gld_interpret_fddi()
1084 mac_pvt->curr_macaddr, macinfo->gldm_addrlen); in gld_interpret_fddi()
1086 mac_pvt->curr_macaddr, macinfo->gldm_addrlen); in gld_interpret_fddi()
1141 gld_mac_info_t *macinfo = gld->gld_mac_info; in gld_unitdata_fddi() local
1150 ASSERT(macinfo); in gld_unitdata_fddi()
1153 mac_copy(gldp->glda_addr, dhost, macinfo->gldm_addrlen); in gld_unitdata_fddi()
1156 if (dlp->dl_dest_addr_length >= DLSAPLENGTH(macinfo) && in gld_unitdata_fddi()
1207 cmac_copy(dhost, mh->fddi_dhost, macinfo->gldm_addrlen, macinfo); in gld_unitdata_fddi()
1213 cmac_copy(((gld_mac_pvt_t *)macinfo->gldm_mac_pvt)->curr_macaddr, in gld_unitdata_fddi()
1214 mh->fddi_shost, macinfo->gldm_addrlen, macinfo); in gld_unitdata_fddi()
1221 gld_mac_info_t *macinfo = gld->gld_mac_info; in gld_fastpath_fddi() local
1229 ASSERT(macinfo); in gld_fastpath_fddi()
1232 if (dlp->dl_dest_addr_length >= DLSAPLENGTH(macinfo) && in gld_fastpath_fddi()
1268 macinfo->gldm_addrlen, macinfo); in gld_fastpath_fddi()
1270 GLDM_LOCK(macinfo, RW_WRITER); in gld_fastpath_fddi()
1271 cmac_copy(((gld_mac_pvt_t *)macinfo->gldm_mac_pvt)->curr_macaddr, in gld_fastpath_fddi()
1272 mh->fddi_shost, macinfo->gldm_addrlen, macinfo); in gld_fastpath_fddi()
1273 GLDM_UNLOCK(macinfo); in gld_fastpath_fddi()
1282 #define GLD_SR_VAR(macinfo) \ argument
1283 (((gld_mac_pvt_t *)macinfo->gldm_mac_pvt)->data)
1285 #define GLD_SR_HASH(macinfo) ((struct srtab **)GLD_SR_VAR(macinfo)) argument
1287 #define GLD_SR_MUTEX(macinfo) \ argument
1288 (&((gld_mac_pvt_t *)macinfo->gldm_mac_pvt)->datalock)
1300 gld_init_tr(gld_mac_info_t *macinfo) in gld_init_tr() argument
1303 ((gld_mac_pvt_t *)macinfo->gldm_mac_pvt)->kstatp->ks_data; in gld_init_tr()
1313 ASSERT(macinfo->gldm_type == DL_TPR); in gld_init_tr()
1314 ASSERT(macinfo->gldm_addrlen == 6); in gld_init_tr()
1315 ASSERT(macinfo->gldm_saplen == -2); in gld_init_tr()
1321 mutex_init(GLD_SR_MUTEX(macinfo), NULL, MUTEX_DRIVER, NULL); in gld_init_tr()
1323 GLD_SR_VAR(macinfo) = kmem_zalloc(sizeof (struct srtab *)*SR_HASH_SIZE, in gld_init_tr()
1327 ((gld_mac_pvt_t *)macinfo->gldm_mac_pvt)->rde_enabled = in gld_init_tr()
1328 ddi_getprop(DDI_DEV_T_NONE, macinfo->gldm_devinfo, 0, in gld_init_tr()
1340 ((gld_mac_pvt_t *)macinfo->gldm_mac_pvt)->rde_str_indicator_ste = in gld_init_tr()
1341 ddi_getprop(DDI_DEV_T_NONE, macinfo->gldm_devinfo, 0, in gld_init_tr()
1343 ((gld_mac_pvt_t *)macinfo->gldm_mac_pvt)->rde_enabled); in gld_init_tr()
1347 int t = ddi_getprop(DDI_DEV_T_NONE, macinfo->gldm_devinfo, 0, in gld_init_tr()
1355 ((gld_mac_pvt_t *)macinfo->gldm_mac_pvt)->rde_timeout = t; in gld_init_tr()
1369 if (macinfo->gldm_driver_version != GLD_VERSION_200) in gld_init_tr()
1387 gld_uninit_tr(gld_mac_info_t *macinfo) in gld_uninit_tr() argument
1389 mutex_destroy(GLD_SR_MUTEX(macinfo)); in gld_uninit_tr()
1390 gld_sr_clear(macinfo); in gld_uninit_tr()
1391 kmem_free(GLD_SR_VAR(macinfo), sizeof (struct srtab *) * SR_HASH_SIZE); in gld_uninit_tr()
1395 gld_interpret_tr(gld_mac_info_t *macinfo, mblk_t *mp, pktinfo_t *pktinfo, in gld_interpret_tr() argument
1436 if (mac_eq(mh->tr_dhost, ether_broadcast, macinfo->gldm_addrlen) || in gld_interpret_tr()
1437 mac_eq(mh->tr_dhost, tokenbroadcastaddr2, macinfo->gldm_addrlen)) in gld_interpret_tr()
1445 ASSERT(GLDM_LOCK_HELD(macinfo)); in gld_interpret_tr()
1451 mac_copy(mh->tr_dhost, pktinfo->dhost, macinfo->gldm_addrlen); in gld_interpret_tr()
1452 mac_copy(mh->tr_shost, pktinfo->shost, macinfo->gldm_addrlen); in gld_interpret_tr()
1455 mac_pvt = (gld_mac_pvt_t *)macinfo->gldm_mac_pvt; in gld_interpret_tr()
1457 mac_pvt->curr_macaddr, macinfo->gldm_addrlen); in gld_interpret_tr()
1459 mac_pvt->curr_macaddr, macinfo->gldm_addrlen); in gld_interpret_tr()
1533 gld_rcc_receive(macinfo, pktinfo, rh, in gld_interpret_tr()
1547 gld_mac_info_t *macinfo = gld->gld_mac_info; in gld_unitdata_tr() local
1557 ASSERT(macinfo); in gld_unitdata_tr()
1560 mac_copy(gldp->glda_addr, dhost, macinfo->gldm_addrlen); in gld_unitdata_tr()
1563 if (dlp->dl_dest_addr_length >= DLSAPLENGTH(macinfo) && in gld_unitdata_tr()
1636 mutex_enter(GLD_SR_MUTEX(macinfo)); in gld_unitdata_tr()
1638 gld_rcc_send(macinfo, WR(gld->gld_qptr), dhost, &rh, llcmp->b_rptr); in gld_unitdata_tr()
1647 mutex_exit(GLD_SR_MUTEX(macinfo)); in gld_unitdata_tr()
1660 mac_copy(dhost, mh->tr_dhost, macinfo->gldm_addrlen); in gld_unitdata_tr()
1666 mac_copy(((gld_mac_pvt_t *)macinfo->gldm_mac_pvt)->curr_macaddr, in gld_unitdata_tr()
1667 mh->tr_shost, macinfo->gldm_addrlen); in gld_unitdata_tr()
1688 gld_mac_info_t *macinfo = gld->gld_mac_info; in gld_fastpath_tr() local
1696 ASSERT(macinfo); in gld_fastpath_tr()
1702 if (((gld_mac_pvt_t *)macinfo->gldm_mac_pvt)->rde_enabled) in gld_fastpath_tr()
1706 if (dlp->dl_dest_addr_length >= DLSAPLENGTH(macinfo) && in gld_fastpath_tr()
1714 if (((gld_mac_pvt_t *)macinfo->gldm_mac_pvt)->rde_str_indicator_ste) in gld_fastpath_tr()
1741 if (((gld_mac_pvt_t *)macinfo->gldm_mac_pvt)->rde_str_indicator_ste) { in gld_fastpath_tr()
1754 mac_copy(gldp->glda_addr, mh->tr_dhost, macinfo->gldm_addrlen); in gld_fastpath_tr()
1756 GLDM_LOCK(macinfo, RW_WRITER); in gld_fastpath_tr()
1757 mac_copy(((gld_mac_pvt_t *)macinfo->gldm_mac_pvt)->curr_macaddr, in gld_fastpath_tr()
1758 mh->tr_shost, macinfo->gldm_addrlen); in gld_fastpath_tr()
1759 GLDM_UNLOCK(macinfo); in gld_fastpath_tr()
1761 if (((gld_mac_pvt_t *)macinfo->gldm_mac_pvt)->rde_str_indicator_ste) in gld_fastpath_tr()
1821 gld_rcc_receive(gld_mac_info_t *macinfo, pktinfo_t *pktinfo, struct gld_ri *rh, in gld_rcc_receive() argument
1826 if (!((gld_mac_pvt_t *)macinfo->gldm_mac_pvt)->rde_enabled) in gld_rcc_receive()
1855 gld_send_rqr(macinfo, pktinfo->shost, rh, pdu, pdulen); in gld_rcc_receive()
1859 gld_rde_pdu_ind(macinfo, rh, pdu, pdulen); in gld_rcc_receive()
1876 gld_rif_ind(macinfo, rh, pktinfo->shost, snaphdr->s_lsap, in gld_rcc_receive()
1898 gld_send_rqr(gld_mac_info_t *macinfo, uchar_t *shost, struct gld_ri *rh, in gld_send_rqr() argument
1909 ASSERT(GLDM_LOCK_HELD(macinfo)); in gld_send_rqr()
1927 mac_copy(((gld_mac_pvt_t *)macinfo->gldm_mac_pvt)->curr_macaddr, in gld_send_rqr()
1928 npdu->rde_target_mac, macinfo->gldm_addrlen); in gld_send_rqr()
1962 mac_copy(shost, nmh->tr_dhost, macinfo->gldm_addrlen); in gld_send_rqr()
1963 mac_copy(((gld_mac_pvt_t *)macinfo->gldm_mac_pvt)->curr_macaddr, in gld_send_rqr()
1964 nmh->tr_shost, macinfo->gldm_addrlen); in gld_send_rqr()
1978 if ((vlan = gld_find_vlan(macinfo, VLAN_VID_NONE)) == NULL) { in gld_send_rqr()
2007 gld_rcc_send(gld_mac_info_t *macinfo, queue_t *q, uchar_t *dhost, in gld_rcc_send() argument
2020 ASSERT(mutex_owned(GLD_SR_MUTEX(macinfo))); in gld_rcc_send()
2024 if (!((gld_mac_pvt_t *)macinfo->gldm_mac_pvt)->rde_enabled) { in gld_rcc_send()
2026 if (((gld_mac_pvt_t *)macinfo->gldm_mac_pvt)-> in gld_rcc_send()
2036 gld_reset_route(macinfo, q, in gld_rcc_send()
2039 gld_get_route(macinfo, q, in gld_rcc_send()
2049 if (((gld_mac_pvt_t *)macinfo->gldm_mac_pvt)-> in gld_rcc_send()
2066 gld_rde_pdu_req(gld_mac_info_t *macinfo, queue_t *q, uchar_t *dhost, in gld_rde_pdu_req() argument
2099 mac_copy(((gld_mac_pvt_t *)macinfo->gldm_mac_pvt)->curr_macaddr, in gld_rde_pdu_req()
2122 if (((gld_mac_pvt_t *)macinfo->gldm_mac_pvt)->rde_str_indicator_ste) { in gld_rde_pdu_req()
2138 mac_copy(dhost, nmh->tr_dhost, macinfo->gldm_addrlen); in gld_rde_pdu_req()
2143 mac_copy(((gld_mac_pvt_t *)macinfo->gldm_mac_pvt)->curr_macaddr, in gld_rde_pdu_req()
2144 nmh->tr_shost, macinfo->gldm_addrlen); in gld_rde_pdu_req()
2175 gld_get_route(gld_mac_info_t *macinfo, queue_t *q, uchar_t *dhost, in gld_get_route() argument
2181 ASSERT(mutex_owned(GLD_SR_MUTEX(macinfo))); in gld_get_route()
2183 sr = gld_sr_lookup_entry(macinfo, dhost); in gld_get_route()
2190 sr = gld_sr_create_entry(macinfo, dhost); in gld_get_route()
2191 gld_rde_pdu_req(macinfo, q, dhost, (struct gld_ri *)NULL, in gld_get_route()
2204 ((gld_mac_pvt_t *)macinfo->gldm_mac_pvt)->rde_timeout) { in gld_get_route()
2206 gld_rde_pdu_req(macinfo, q, dhost, in gld_get_route()
2218 ((gld_mac_pvt_t *)macinfo->gldm_mac_pvt)->rde_timeout) { in gld_get_route()
2219 gld_rde_pdu_req(macinfo, q, dhost, in gld_get_route()
2240 gld_reset_route(gld_mac_info_t *macinfo, queue_t *q, in gld_reset_route() argument
2245 ASSERT(mutex_owned(GLD_SR_MUTEX(macinfo))); in gld_reset_route()
2247 sr = gld_sr_create_entry(macinfo, dhost); in gld_reset_route()
2248 gld_rde_pdu_req(macinfo, q, dhost, (struct gld_ri *)NULL, in gld_reset_route()
2265 gld_rde_pdu_ind(gld_mac_info_t *macinfo, struct gld_ri *rh, struct rde_pdu *pdu, in gld_rde_pdu_ind() argument
2309 mutex_enter(GLD_SR_MUTEX(macinfo)); in gld_rde_pdu_ind()
2311 if ((sr = gld_sr_create_entry(macinfo, otherhost)) == NULL) { in gld_rde_pdu_ind()
2312 mutex_exit(GLD_SR_MUTEX(macinfo)); in gld_rde_pdu_ind()
2320 mutex_exit(GLD_SR_MUTEX(macinfo)); in gld_rde_pdu_ind()
2331 mutex_exit(GLD_SR_MUTEX(macinfo)); in gld_rde_pdu_ind()
2340 gld_rif_ind(gld_mac_info_t *macinfo, struct gld_ri *rh, uchar_t *shost, in gld_rif_ind() argument
2351 mutex_enter(GLD_SR_MUTEX(macinfo)); in gld_rif_ind()
2353 if ((sr = gld_sr_create_entry(macinfo, shost)) == NULL) { in gld_rif_ind()
2354 mutex_exit(GLD_SR_MUTEX(macinfo)); in gld_rif_ind()
2364 mutex_exit(GLD_SR_MUTEX(macinfo)); in gld_rif_ind()
2379 gld_sr_lookup_entry(gld_mac_info_t *macinfo, uchar_t *macaddr) in gld_sr_lookup_entry() argument
2383 ASSERT(mutex_owned(GLD_SR_MUTEX(macinfo))); in gld_sr_lookup_entry()
2385 for (sr = *gld_sr_hash(GLD_SR_HASH(macinfo), macaddr, in gld_sr_lookup_entry()
2386 macinfo->gldm_addrlen); sr; sr = sr->sr_next) in gld_sr_lookup_entry()
2387 if (mac_eq(macaddr, sr->sr_mac, macinfo->gldm_addrlen)) in gld_sr_lookup_entry()
2394 gld_sr_create_entry(gld_mac_info_t *macinfo, uchar_t *macaddr) in gld_sr_create_entry() argument
2400 ASSERT(mutex_owned(GLD_SR_MUTEX(macinfo))); in gld_sr_create_entry()
2402 srp = gld_sr_hash(GLD_SR_HASH(macinfo), macaddr, macinfo->gldm_addrlen); in gld_sr_create_entry()
2405 if (mac_eq(macaddr, sr->sr_mac, macinfo->gldm_addrlen)) in gld_sr_create_entry()
2417 bcopy((caddr_t)macaddr, (caddr_t)sr->sr_mac, macinfo->gldm_addrlen); in gld_sr_create_entry()
2425 gld_sr_clear(gld_mac_info_t *macinfo) in gld_sr_clear() argument
2428 struct srtab **sr_hash_tbl = GLD_SR_HASH(macinfo); in gld_sr_clear()
2446 gld_sr_dump(gld_mac_info_t *macinfo) in gld_sr_dump() argument
2452 sr_hash_tbl = GLD_SR_HASH(macinfo); in gld_sr_dump()
2456 mutex_enter(GLD_SR_MUTEX(macinfo)); in gld_sr_dump()
2461 cmn_err(CE_NOTE, "GLD Source Routing Table (0x%p):", (void *)macinfo); in gld_sr_dump()
2480 mutex_exit(GLD_SR_MUTEX(macinfo)); in gld_sr_dump()