Lines Matching refs:macinfo

69 static mblk_t *llc1_form_udata(llc1_t *lld, llc_mac_info_t *macinfo,
71 static mblk_t *llc1_xid_reply(llc_mac_info_t *macinfo, mblk_t *mp, int sap);
72 static mblk_t *llc1_xid_ind_con(llc1_t *lld, llc_mac_info_t *macinfo,
74 static mblk_t *llc1_test_reply(llc_mac_info_t *macinfo, mblk_t *mp, int sap);
75 static mblk_t *llc1_test_ind_con(llc1_t *lld, llc_mac_info_t *macinfo,
79 static void llc1_recv(llc_mac_info_t *macinfo, mblk_t *mp);
80 static void llc1_req_raw(llc_mac_info_t *macinfo);
81 static void llc1_find_waiting(llc_mac_info_t *macinfo, mblk_t *mp, long prim);
90 static void llc1_init_kstat(llc_mac_info_t *macinfo);
91 static void llc1_uninit_kstat(llc_mac_info_t *macinfo);
93 static int llc1_broadcast(struct ether_addr *addr, llc_mac_info_t *macinfo);
99 static void llc1_send_bindreq(llc_mac_info_t *macinfo);
103 static int llc1_getppa(llc_mac_info_t *macinfo, struct ll_snioc *snioc);
110 static int llc1_local(struct ether_addr *addr, llc_mac_info_t *macinfo);
538 llc_mac_info_t *macinfo = (llc_mac_info_t *)q->q_ptr; in llc1_lrsrv() local
545 printf("llc1_lrsrv: q=%x macinfo=%x", q, macinfo); in llc1_lrsrv()
546 if (macinfo == NULL) { in llc1_lrsrv()
567 if (macinfo->llcp_flags & LLC1_LINKED) { in llc1_lrsrv()
573 macinfo->llcp_flags &= ~LLC1_LINKED; in llc1_lrsrv()
574 macinfo->llcp_flags |= LLC1_AVAILABLE; in llc1_lrsrv()
575 macinfo->llcp_maxpkt = in llc1_lrsrv()
577 macinfo->llcp_minpkt = in llc1_lrsrv()
579 macinfo->llcp_type = in llc1_lrsrv()
581 if (macinfo->llcp_type == DL_ETHER) { in llc1_lrsrv()
582 macinfo->llcp_type = DL_CSMACD; in llc1_lrsrv()
587 macinfo->llcp_maxpkt -= 8; in llc1_lrsrv()
589 macinfo->llcp_addrlen = in llc1_lrsrv()
595 macinfo->llcp_macaddr, in llc1_lrsrv()
596 macinfo->llcp_addrlen); in llc1_lrsrv()
600 macinfo->llcp_broadcast, in llc1_lrsrv()
606 llc1_send_bindreq(macinfo); in llc1_lrsrv()
613 switch (macinfo->llcp_type) { in llc1_lrsrv()
621 llc1_req_raw(macinfo); in llc1_lrsrv()
636 macinfo->llcp_macaddr, in llc1_lrsrv()
637 macinfo->llcp_addrlen); in llc1_lrsrv()
651 (void) llc1_recv(macinfo, mp); in llc1_lrsrv()
658 if (macinfo->llcp_flags & LLC1_BINDING) in llc1_lrsrv()
659 llc1_send_bindreq(macinfo); in llc1_lrsrv()
661 llc1_find_waiting(macinfo, mp, in llc1_lrsrv()
665 llc1_find_waiting(macinfo, mp, in llc1_lrsrv()
671 macinfo->llcp_flags &= ~LLC1_BINDING; in llc1_lrsrv()
681 if ((macinfo->llcp_flags & LLC1_RAW_WAIT) && in llc1_lrsrv()
682 macinfo->llcp_iocid == iocp->ioc_id) { in llc1_lrsrv()
683 macinfo->llcp_flags &= ~LLC1_RAW_WAIT; in llc1_lrsrv()
685 macinfo->llcp_flags |= LLC1_USING_RAW; in llc1_lrsrv()
694 if ((macinfo->llcp_flags & LLC1_RAW_WAIT) && in llc1_lrsrv()
695 macinfo->llcp_iocid == iocp->ioc_id) { in llc1_lrsrv()
696 macinfo->llcp_flags &= ~LLC1_RAW_WAIT; in llc1_lrsrv()
704 llc1_recv(macinfo, mp); in llc1_lrsrv()
815 llc_mac_info_t *macinfo; in llc1_ioctl() local
836 macinfo = (llc_mac_info_t *)tmp->b_rptr; in llc1_ioctl()
837 macinfo->llcp_mb = tmp; in llc1_ioctl()
838 macinfo->llcp_next = macinfo->llcp_prev = macinfo; in llc1_ioctl()
839 macinfo->llcp_queue = link->l_qbot; in llc1_ioctl()
840 macinfo->llcp_lindex = link->l_index; in llc1_ioctl()
842 macinfo->llcp_ppa = --llc1_device_list.llc1_nextppa; in llc1_ioctl()
844 macinfo->llcp_flags |= LLC1_LINKED | LLC1_DEF_PPA; in llc1_ioctl()
845 macinfo->llcp_lqtop = q; in llc1_ioctl()
846 macinfo->llcp_data = NULL; in llc1_ioctl()
851 llc1insque(macinfo, llc1_device_list.llc1_mac_prev); in llc1_ioctl()
852 macinfo->llcp_queue->q_ptr = RD(macinfo->llcp_queue)->q_ptr = in llc1_ioctl()
853 (caddr_t)macinfo; in llc1_ioctl()
854 llc1_init_kstat(macinfo); in llc1_ioctl()
858 (void) llc1_req_info(macinfo->llcp_queue); in llc1_ioctl()
867 for (macinfo = llc1_device_list.llc1_mac_next; in llc1_ioctl()
868 macinfo != NULL && in llc1_ioctl()
869 macinfo != in llc1_ioctl()
871 macinfo = macinfo->llcp_next) { in llc1_ioctl()
872 if (macinfo->llcp_lindex == link->l_index && in llc1_ioctl()
873 macinfo->llcp_queue == link->l_qbot) { in llc1_ioctl()
876 ASSERT(macinfo->llcp_next); in llc1_ioctl()
880 llc1remque(macinfo); in llc1_ioctl()
883 if (macinfo->llcp_mcast != NULL) { in llc1_ioctl()
884 kmem_free(macinfo->llcp_mcast, in llc1_ioctl()
887 macinfo->llcp_mcast = NULL; in llc1_ioctl()
891 if (macinfo->llcp_kstatp != NULL) in llc1_ioctl()
892 llc1_uninit_kstat(macinfo); in llc1_ioctl()
893 if (macinfo->llcp_mb != NULL) in llc1_ioctl()
894 freeb(macinfo->llcp_mb); in llc1_ioctl()
968 llc_mac_info_t *macinfo; in llc1_setppa() local
970 for (macinfo = llc1_device_list.llc1_mac_next; in llc1_setppa()
971 macinfo != (llc_mac_info_t *)&llc1_device_list.llc1_mac_next; in llc1_setppa()
972 macinfo = macinfo->llcp_next) in llc1_setppa()
973 if (macinfo->llcp_lindex == snioc->lli_index && in llc1_setppa()
974 (macinfo->llcp_flags & LLC1_DEF_PPA)) { in llc1_setppa()
975 macinfo->llcp_flags &= ~LLC1_DEF_PPA; in llc1_setppa()
976 macinfo->llcp_ppa = snioc->lli_ppa; in llc1_setppa()
986 llc1_getppa(llc_mac_info_t *macinfo, struct ll_snioc *snioc) in llc1_getppa() argument
988 if (macinfo == NULL) in llc1_getppa()
990 snioc->lli_ppa = macinfo->llcp_ppa; in llc1_getppa()
991 snioc->lli_index = macinfo->llcp_lindex; in llc1_getppa()
1004 llc_mac_info_t *macinfo = llc->llc_mac_info; in llc1_cmds() local
1077 if (llc->llc_state != DL_UNATTACHED && macinfo) { in llc1_cmds()
1079 putnext(WR(macinfo->llcp_queue), mp); in llc1_cmds()
1323 llc_mac_info_t *macinfo; in llc1_unitdata() local
1331 if ((macinfo = lld->llc_mac_info) == NULL) in llc1_unitdata()
1346 if (macinfo->llcp_flags & LLC1_USING_RAW) { in llc1_unitdata()
1352 nmp = allocb(macinfo->llcp_addrlen * 2 + 2 + 8, BPRI_MED); in llc1_unitdata()
1364 bcopy(macinfo->llcp_macaddr, in llc1_unitdata()
1399 macinfo->llcp_broadcast, ETHERADDRL) == 0) in llc1_unitdata()
1438 macinfo->llcp_broadcast, ETHERADDRL) == 0) in llc1_unitdata()
1444 if (canput(macinfo->llcp_queue)) { in llc1_unitdata()
1449 macinfo->llcp_stats.llcs_multixmt++; in llc1_unitdata()
1452 macinfo->llcp_stats.llcs_brdcstxmt++; in llc1_unitdata()
1456 putnext(macinfo->llcp_queue, mp); in llc1_unitdata()
1473 llc1_recv(llc_mac_info_t *macinfo, mblk_t *mp) in llc1_recv() argument
1484 printf("llc1_recv(%x, %x)\n", mp, macinfo); in llc1_recv()
1497 if (macinfo->llcp_type == DL_CSMACD) { in llc1_recv()
1528 if (llc1_broadcast(addr, macinfo)) { in llc1_recv()
1532 valid = llc1_local(addr, macinfo); in llc1_recv()
1544 mp = llc1_xid_reply(macinfo, mp, 0); in llc1_recv()
1546 mp = llc1_test_reply(macinfo, mp, 0); in llc1_recv()
1558 lld->llc_mac_info != macinfo) { in llc1_recv()
1604 nmp = llc1_form_udata(lld, macinfo, mp); in llc1_recv()
1614 nmp = llc1_form_udata(lld, macinfo, mp); in llc1_recv()
1629 nmp = llc1_xid_reply(macinfo, in llc1_recv()
1642 macinfo, mp); in llc1_recv()
1644 macinfo->llcp_stats.llcs_xidrcv++; in llc1_recv()
1660 nmp = llc1_test_reply(macinfo, in llc1_recv()
1675 macinfo, mp); in llc1_recv()
1677 macinfo->llcp_stats.llcs_testrcv++; in llc1_recv()
1691 macinfo->llcp_stats.llcs_multircv++; in llc1_recv()
1693 macinfo->llcp_stats.llcs_brdcstrcv++; in llc1_recv()
1696 macinfo->llcp_stats.llcs_bytercv += statcnt_normal; in llc1_recv()
1697 macinfo->llcp_stats.llcs_pktrcv++; in llc1_recv()
1706 llc1_local(struct ether_addr *addr, llc_mac_info_t *macinfo) in llc1_local() argument
1708 return (bcmp(addr->ether_addr_octet, macinfo->llcp_macaddr, in llc1_local()
1709 macinfo->llcp_addrlen) == 0); in llc1_local()
1717 llc1_broadcast(struct ether_addr *addr, llc_mac_info_t *macinfo) in llc1_broadcast() argument
1719 return (bcmp(addr->ether_addr_octet, macinfo->llcp_broadcast, in llc1_broadcast()
1720 macinfo->llcp_addrlen) == 0); in llc1_broadcast()
1845 llc_mac_info_t *macinfo; in llc1_enable_multi() local
1863 macinfo = llc->llc_mac_info; in llc1_enable_multi()
1877 multi->dl_addr_length == macinfo->llcp_addrlen && in llc1_enable_multi()
1903 if (macinfo->llcp_mcast == NULL) { in llc1_enable_multi()
1904 macinfo->llcp_mcast = in llc1_enable_multi()
1907 if (macinfo->llcp_mcast == NULL) in llc1_enable_multi()
1912 if (macinfo->llcp_mcast[i].llcm_refcnt && in llc1_enable_multi()
1913 bcmp(macinfo->llcp_mcast[i].llcm_addr, in llc1_enable_multi()
1915 mcast = &macinfo->llcp_mcast[i]; in llc1_enable_multi()
1926 putnext(WR(macinfo->llcp_queue), nmp); in llc1_enable_multi()
1929 for (mcast = macinfo->llcp_mcast, i = 0; in llc1_enable_multi()
1961 llc_mac_info_t *macinfo; in llc1_disable_multi() local
1978 macinfo = llc->llc_mac_info; in llc1_disable_multi()
1992 llc1_send_disable_multi(macinfo, in llc1_disable_multi()
2010 llc1_send_disable_multi(llc_mac_info_t *macinfo, llc_mcast_t *mcast) in llc1_send_disable_multi() argument
2018 if (macinfo == NULL || macinfo->llcp_queue == NULL) { in llc1_send_disable_multi()
2035 putnext(WR(macinfo->llcp_queue), mp); in llc1_send_disable_multi()
2093 llc1_req_raw(llc_mac_info_t *macinfo) in llc1_req_raw() argument
2101 macinfo->llcp_iocid = ((struct iocblk *)mp->b_rptr)->ioc_id; in llc1_req_raw()
2103 putnext(macinfo->llcp_queue, mp); in llc1_req_raw()
2104 macinfo->llcp_flags |= LLC1_RAW_WAIT; in llc1_req_raw()
2112 llc1_send_bindreq(llc_mac_info_t *macinfo) in llc1_send_bindreq() argument
2117 if (macinfo->llcp_sap >= 0xFF) { in llc1_send_bindreq()
2119 macinfo->llcp_sap &= ~(LLC1_BINDING|LLC1_AVAILABLE); in llc1_send_bindreq()
2131 bind->dl_sap = macinfo->llcp_sap += 2; /* starts at 2, inc by 2 */ in llc1_send_bindreq()
2132 macinfo->llcp_flags |= LLC1_BINDING; in llc1_send_bindreq()
2137 putnext(macinfo->llcp_queue, mp); in llc1_send_bindreq()
2145 llc1_form_udata(llc1_t *lld, llc_mac_info_t *macinfo, mblk_t *mp) in llc1_form_udata() argument
2153 if (macinfo->llcp_flags & LLC1_USING_RAW) { in llc1_form_udata()
2159 2 * (macinfo->llcp_addrlen + 5), BPRI_MED); in llc1_form_udata()
2188 macinfo->llcp_addrlen); in llc1_form_udata()
2191 udata->dl_dest_addr_length = macinfo->llcp_addrlen + 2; in llc1_form_udata()
2195 udata->dl_dest_addr_length = macinfo->llcp_addrlen + 1; in llc1_form_udata()
2204 macinfo->llcp_addrlen); in llc1_form_udata()
2206 udata->dl_src_addr_length = macinfo->llcp_addrlen + 2; in llc1_form_udata()
2210 udata->dl_src_addr_length = macinfo->llcp_addrlen + 1; in llc1_form_udata()
2231 udmp->b_wptr, macinfo->llcp_addrlen); in llc1_form_udata()
2233 ud2->dl_dest_addr_length = macinfo->llcp_addrlen + 1; in llc1_form_udata()
2236 udmp->b_wptr, macinfo->llcp_addrlen); in llc1_form_udata()
2267 llc1_xid_reply(llc_mac_info_t *macinfo, mblk_t *mp, int sap) in llc1_xid_reply() argument
2301 macinfo->llcp_addrlen); in llc1_xid_reply()
2302 bcopy(macinfo->llcp_macaddr, in llc1_xid_reply()
2304 macinfo->llcp_addrlen); in llc1_xid_reply()
2314 macinfo->llcp_addrlen + 5, BPRI_MED); in llc1_xid_reply()
2323 ud->dl_dest_addr_length = macinfo->llcp_addrlen + 1; in llc1_xid_reply()
2328 macinfo->llcp_addrlen); in llc1_xid_reply()
2350 macinfo->llcp_stats.llcs_xidxmt++; in llc1_xid_reply()
2351 putnext(WR(macinfo->llcp_queue), rmp); in llc1_xid_reply()
2361 llc1_xid_ind_con(llc1_t *lld, llc_mac_info_t *macinfo, mblk_t *mp) in llc1_xid_ind_con() argument
2369 nmp = allocb(sizeof (dl_xid_ind_t) + 2 * (macinfo->llcp_addrlen + 1), in llc1_xid_ind_con()
2386 xid->dl_dest_addr_length = macinfo->llcp_addrlen + 1; in llc1_xid_ind_con()
2459 llc_mac_info_t *macinfo; in llc1_xid_req_res() local
2473 macinfo = llc->llc_mac_info; in llc1_xid_req_res()
2485 if (macinfo->llcp_flags & LLC1_USING_RAW) { in llc1_xid_req_res()
2489 bcopy(macinfo->llcp_macaddr, in llc1_xid_req_res()
2499 (macinfo->llcp_addrlen + 2), BPRI_MED); in llc1_xid_req_res()
2529 macinfo->llcp_stats.llcs_xidxmt++; in llc1_xid_req_res()
2530 putnext(WR(macinfo->llcp_queue), rmp); in llc1_xid_req_res()
2539 llc1_test_reply(llc_mac_info_t *macinfo, mblk_t *mp, int sap) in llc1_test_reply() argument
2587 macinfo->llcp_addrlen); in llc1_test_reply()
2588 bcopy(macinfo->llcp_macaddr, in llc1_test_reply()
2590 macinfo->llcp_addrlen); in llc1_test_reply()
2600 macinfo->llcp_stats.llcs_testxmt++; in llc1_test_reply()
2601 putnext(WR(macinfo->llcp_queue), nmp); in llc1_test_reply()
2611 llc1_test_ind_con(llc1_t *lld, llc_mac_info_t *macinfo, mblk_t *mp) in llc1_test_ind_con() argument
2635 test->dl_dest_addr_length = macinfo->llcp_addrlen + 1; in llc1_test_ind_con()
2708 llc_mac_info_t *macinfo; in llc1_test_req_res() local
2722 macinfo = llc->llc_mac_info; in llc1_test_req_res()
2735 if (macinfo->llcp_flags & LLC1_USING_RAW) { in llc1_test_req_res()
2739 bcopy(macinfo->llcp_macaddr, in llc1_test_req_res()
2750 (macinfo->llcp_addrlen + 2), BPRI_MED); in llc1_test_req_res()
2781 macinfo->llcp_stats.llcs_testxmt++; in llc1_test_req_res()
2782 putnext(WR(macinfo->llcp_queue), rmp); in llc1_test_req_res()
2791 llc1_find_waiting(llc_mac_info_t *macinfo, mblk_t *mp, long prim) in llc1_find_waiting() argument
2798 if (llc->llc_mac_info == macinfo && in llc1_find_waiting()
2861 llc_mac_info_t *macinfo; in llc1_update_kstat() local
2869 macinfo = (llc_mac_info_t *)(ksp->ks_private); in llc1_update_kstat()
2870 stats = &macinfo->llcp_stats; in llc1_update_kstat()
2892 llc1_init_kstat(llc_mac_info_t *macinfo) in llc1_init_kstat() argument
2899 macinfo->llcp_kstatp = kstat_create("llc", (-macinfo->llcp_ppa - 1), in llc1_init_kstat()
2902 if (macinfo->llcp_kstatp == NULL) in llc1_init_kstat()
2905 macinfo->llcp_kstatp->ks_update = llc1_update_kstat; in llc1_init_kstat()
2906 macinfo->llcp_kstatp->ks_private = (void *)macinfo; in llc1_init_kstat()
2908 ksp = (kstat_named_t *)(macinfo->llcp_kstatp->ks_data); in llc1_init_kstat()
2926 kstat_install(macinfo->llcp_kstatp); in llc1_init_kstat()
2930 llc1_uninit_kstat(llc_mac_info_t *macinfo) in llc1_uninit_kstat() argument
2932 if (macinfo->llcp_kstatp) { in llc1_uninit_kstat()
2933 kstat_delete(macinfo->llcp_kstatp); in llc1_uninit_kstat()
2934 macinfo->llcp_kstatp = NULL; in llc1_uninit_kstat()