Lines Matching refs:mp

709 idndl_proto(queue_t *wq, mblk_t *mp)
717 if (MBLKL(mp) < sizeof (t_uscalar_t)) {
722 DLERRORACK(wq, mp, -1, DL_BADPRIM, 0);
725 dlp = (union DL_primitives *)mp->b_rptr;
740 idndl_udreq(wq, mp);
744 idndl_areq(wq, mp);
748 idndl_dreq(wq, mp);
752 idndl_breq(wq, mp);
756 idndl_ubreq(wq, mp);
760 idndl_ireq(wq, mp);
764 idndl_ponreq(wq, mp);
768 idndl_poffreq(wq, mp);
772 idndl_emreq(wq, mp);
776 idndl_dmreq(wq, mp);
780 idndl_pareq(wq, mp);
799 idndl_spareq(wq, mp);
804 DLERRORACK(wq, mp, prim, DL_UNSUPPORTED, 0);
815 idnioc_dlpi(queue_t *wq, mblk_t *mp, int *argsizep)
818 struct iocblk *iocp = (struct iocblk *)mp->b_rptr;
832 rv = idndl_ioc_hdr_info(wq, mp, argsizep);
855 idndl_ioc_hdr_info(queue_t *wq, mblk_t *mp, int *argsizep)
875 error = miocpullup(mp, sizeof (dl_unitdata_req_t) + IDNADDRL);
885 dludp = (dl_unitdata_req_t *)mp->b_cont->b_rptr;
889 !MBLKIN(mp->b_cont, off, len) || len != IDNADDRL) {
895 dlap = (struct idndladdr *)(mp->b_cont->b_rptr + off);
919 linkb(mp, nmp);
928 *argsizep = msgsize(mp->b_cont);
934 idndl_areq(queue_t *wq, mblk_t *mp)
943 dlp = (union DL_primitives *)mp->b_rptr;
945 if (MBLKL(mp) < DL_ATTACH_REQ_SIZE) {
946 DLERRORACK(wq, mp, DL_ATTACH_REQ, DL_BADPRIM, 0);
951 DLERRORACK(wq, mp, DL_ATTACH_REQ, DL_OUTSTATE, 0);
962 DLERRORACK(wq, mp, dlp->dl_primitive, DL_BADPPA, 0);
978 DLERRORACK(wq, mp, dlp->dl_primitive,
991 DLOKACK(wq, mp, DL_ATTACH_REQ);
995 idndl_dreq(queue_t *wq, mblk_t *mp)
1001 if (MBLKL(mp) < DL_DETACH_REQ_SIZE) {
1002 DLERRORACK(wq, mp, DL_DETACH_REQ, DL_BADPRIM, 0);
1007 DLERRORACK(wq, mp, DL_DETACH_REQ, DL_OUTSTATE, 0);
1013 DLOKACK(wq, mp, DL_DETACH_REQ);
1078 idndl_breq(queue_t *wq, mblk_t *mp)
1090 if (MBLKL(mp) < DL_BIND_REQ_SIZE) {
1091 DLERRORACK(wq, mp, DL_BIND_REQ, DL_BADPRIM, 0);
1096 DLERRORACK(wq, mp, DL_BIND_REQ, DL_OUTSTATE, 0);
1100 dlp = (union DL_primitives *)mp->b_rptr;
1103 DLERRORACK(wq, mp, DL_BIND_REQ, DL_UNSUPPORTED, 0);
1114 DLERRORACK(wq, mp, DL_BIND_REQ, DL_NOAUTO, 0);
1119 DLERRORACK(wq, mp, dlp->dl_primitive, DL_BADSAP, 0);
1141 DLERRORACK(wq, mp, dlp->dl_primitive, DL_NOADDR, 0);
1145 DLBINDACK(wq, mp, sap, &idnaddr, IDNADDRL, 0, 0);
1151 idndl_ubreq(queue_t *wq, mblk_t *mp)
1158 if (MBLKL(mp) < DL_UNBIND_REQ_SIZE) {
1159 DLERRORACK(wq, mp, DL_UNBIND_REQ, DL_BADPRIM, 0);
1164 DLERRORACK(wq, mp, DL_UNBIND_REQ, DL_OUTSTATE, 0);
1189 DLOKACK(wq, mp, DL_UNBIND_REQ);
1195 idndl_ireq(queue_t *wq, mblk_t *mp)
1205 if (MBLKL(mp) < DL_INFO_REQ_SIZE) {
1206 DLERRORACK(wq, mp, DL_INFO_REQ, DL_BADPRIM, 0);
1214 if ((mp = mexchange(wq, mp, size, M_PCPROTO, DL_INFO_ACK)) == NULL)
1220 dlip = (dl_info_ack_t *)mp->b_rptr;
1224 dlap = (struct idndladdr *)(mp->b_rptr + dlip->dl_addr_offset);
1231 ep = (struct ether_addr *)(mp->b_rptr + dlip->dl_brdcst_addr_offset);
1234 qreply(wq, mp);
1238 idndl_ponreq(queue_t *wq, mblk_t *mp)
1244 if (MBLKL(mp) < DL_PROMISCON_REQ_SIZE) {
1245 DLERRORACK(wq, mp, DL_PROMISCON_REQ, DL_BADPRIM, 0);
1249 switch (((dl_promiscon_req_t *)mp->b_rptr)->dl_level) {
1263 DLERRORACK(wq, mp, DL_PROMISCON_REQ, DL_NOTSUPPORTED, 0);
1273 DLOKACK(wq, mp, DL_PROMISCON_REQ);
1277 idndl_poffreq(queue_t *wq, mblk_t *mp)
1284 if (MBLKL(mp) < DL_PROMISCOFF_REQ_SIZE) {
1285 DLERRORACK(wq, mp, DL_PROMISCOFF_REQ, DL_BADPRIM, 0);
1289 switch (((dl_promiscoff_req_t *)mp->b_rptr)->dl_level) {
1303 DLERRORACK(wq, mp, DL_PROMISCOFF_REQ, DL_NOTSUPPORTED, 0);
1308 DLERRORACK(wq, mp, DL_PROMISCOFF_REQ, DL_NOTENAB, 0);
1320 DLOKACK(wq, mp, DL_PROMISCOFF_REQ);
1324 idndl_emreq(queue_t *wq, mblk_t *mp)
1335 if (MBLKL(mp) < DL_ENABMULTI_REQ_SIZE) {
1336 DLERRORACK(wq, mp, DL_ENABMULTI_REQ, DL_BADPRIM, 0);
1341 DLERRORACK(wq, mp, DL_ENABMULTI_REQ, DL_OUTSTATE, 0);
1345 dlp = (union DL_primitives *)mp->b_rptr;
1348 addrp = (struct ether_addr *)(mp->b_rptr + off);
1351 !MBLKIN(mp, off, len) ||
1353 DLERRORACK(wq, mp, DL_ENABMULTI_REQ, DL_BADADDR, 0);
1358 DLERRORACK(wq, mp, DL_ENABMULTI_REQ, DL_TOOMANY, 0);
1377 DLOKACK(wq, mp, DL_ENABMULTI_REQ);
1386 DLOKACK(wq, mp, DL_ENABMULTI_REQ);
1390 idndl_dmreq(queue_t *wq, mblk_t *mp)
1401 if (MBLKL(mp) < DL_DISABMULTI_REQ_SIZE) {
1402 DLERRORACK(wq, mp, DL_DISABMULTI_REQ, DL_BADPRIM, 0);
1407 DLERRORACK(wq, mp, DL_DISABMULTI_REQ, DL_OUTSTATE, 0);
1411 dlp = (union DL_primitives *)mp->b_rptr;
1414 addrp = (struct ether_addr *)(mp->b_rptr + off);
1416 if ((len != ETHERADDRL) || !MBLKIN(mp, off, len)) {
1417 DLERRORACK(wq, mp, DL_DISABMULTI_REQ, DL_BADADDR, 0);
1434 DLOKACK(wq, mp, DL_DISABMULTI_REQ);
1437 DLERRORACK(wq, mp, DL_DISABMULTI_REQ, DL_NOTENAB, 0);
1441 idndl_pareq(queue_t *wq, mblk_t *mp)
1451 if (MBLKL(mp) < DL_PHYS_ADDR_REQ_SIZE) {
1452 DLERRORACK(wq, mp, DL_PHYS_ADDR_REQ, DL_BADPRIM, 0);
1456 dlp = (union DL_primitives *)mp->b_rptr;
1461 DLERRORACK(wq, mp, DL_PHYS_ADDR_REQ, DL_OUTSTATE, 0);
1475 DLERRORACK(wq, mp, DL_PHYS_ADDR_REQ, DL_NOTSUPPORTED, 0);
1479 DLPHYSADDRACK(wq, mp, &addr, ETHERADDRL);
1484 idndl_spareq(queue_t *wq, mblk_t *mp)
1495 if (MBLKL(mp) < DL_SET_PHYS_ADDR_REQ_SIZE) {
1496 DLERRORACK(wq, mp, DL_SET_PHYS_ADDR_REQ, DL_BADPRIM, 0);
1500 dlp = (union DL_primitives *)mp->b_rptr;
1504 if (!MBLKIN(mp, off, len)) {
1505 DLERRORACK(wq, mp, DL_SET_PHYS_ADDR_REQ, DL_BADPRIM, 0);
1509 addrp = (struct ether_addr *)(mp->b_rptr + off);
1518 DLERRORACK(wq, mp, DL_SET_PHYS_ADDR_REQ, DL_BADADDR, 0);
1526 DLERRORACK(wq, mp, DL_SET_PHYS_ADDR_REQ, DL_OUTSTATE, 0);
1538 DLOKACK(wq, mp, DL_SET_PHYS_ADDR_REQ);
1543 idndl_udreq(queue_t *wq, mblk_t *mp)
1558 DLERRORACK(wq, mp, DL_UNITDATA_REQ, DL_OUTSTATE, 0);
1562 dludp = (dl_unitdata_req_t *)mp->b_rptr;
1570 if (!MBLKIN(mp, off, len) || (len != IDNADDRL)) {
1571 dluderrorind(wq, mp, mp->b_rptr + off, len, DL_BADADDR, 0);
1578 nmp = mp->b_cont;
1580 dluderrorind(wq, mp, mp->b_rptr + off, len, DL_BADDATA, 0);
1584 dlap = (struct idndladdr *)(mp->b_rptr + off);
1598 freeb(mp);
1599 mp = nmp;
1601 DB_TYPE(mp) = M_DATA;
1602 headerp = (struct ether_header *)mp->b_rptr;
1603 mp->b_wptr = mp->b_rptr + sizeof (struct ether_header);
1619 headerp->ether_type = (msgsize(mp) -
1628 (void) idndl_start(wq, mp, sip);
1632 idndl_start(queue_t *wq, register mblk_t *mp, register struct idn *sip)
1649 ASSERT(DB_TYPE(mp) == M_DATA);
1667 ehp = (struct ether_header *)mp->b_rptr;
1698 ((nmp = copymsg(mp)) == NULL)) {
1706 ((nmp = copymsg(mp)) == NULL)) {
1754 rv = idn_send_data(domid, netaddr, wq, mp);
1797 freemsg(mp);
1809 freemsg(mp);
1818 if (putbq(wq, mp) == 0)
1819 freemsg(mp);
1827 if (putbq(wq, mp) == 0)
1828 freemsg(mp);
1837 idndl_read(struct idn *sip, mblk_t *mp)
1846 proc, msgsize(mp), msgdsize(mp));
1848 ehp = (struct ether_header *)mp->b_rptr;
1859 freemsg(mp);
1867 pktlen = mp->b_wptr - mp->b_rptr;
1879 mp->b_rptr += sizeof (struct ether_header);
1880 (void) putnext(ip4q, mp);
1886 mp->b_rptr += sizeof (struct ether_header);
1887 (void) putnext(ip6q, mp);
1896 mp->b_wptr = mp->b_rptr + pktlen;
1897 idndl_sendup(sip, mp, idndl_accept);
1952 * Assume mp->b_rptr points to ether_header.
1955 idndl_sendup(struct idn *sip, mblk_t *mp, struct idnstr *(*acceptfunc)())
1965 dhostp = &((struct ether_header *)mp->b_rptr)->ether_dhost;
1966 shostp = &((struct ether_header *)mp->b_rptr)->ether_shost;
1967 type = ((struct ether_header *)mp->b_rptr)->ether_type;
1981 freemsg(mp);
1996 if ((nmp = dupmsg(mp)) == NULL)
1997 nmp = copymsg(mp);
2019 mp->b_rptr += sizeof (struct ether_header);
2020 (void) putnext(stp->ss_rq, mp);
2022 (void) putnext(stp->ss_rq, mp);
2023 } else if ((mp = idndl_addudind(sip, mp, shostp, dhostp,
2025 (void) putnext(stp->ss_rq, mp);
2028 freemsg(mp);
2139 idndl_addudind(struct idn *sip, mblk_t *mp,
2150 mp->b_rptr += sizeof (struct ether_header);
2162 freemsg(mp);
2193 nmp->b_cont = mp;