Lines Matching defs:macinfo

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