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