Lines Matching refs:mp

65 dld_proto(dld_str_t *dsp, mblk_t *mp)
69 if (MBLKL(mp) < sizeof (t_uscalar_t)) {
70 freemsg(mp);
73 prim = ((union DL_primitives *)mp->b_rptr)->dl_primitive;
77 proto_info_req(dsp, mp);
80 proto_bind_req(dsp, mp);
83 proto_unbind_req(dsp, mp);
86 proto_unitdata_req(dsp, mp);
89 proto_udqos_req(dsp, mp);
92 proto_attach_req(dsp, mp);
95 proto_detach_req(dsp, mp);
98 proto_enabmulti_req(dsp, mp);
101 proto_disabmulti_req(dsp, mp);
104 proto_promiscon_req(dsp, mp);
107 proto_promiscoff_req(dsp, mp);
110 proto_physaddr_req(dsp, mp);
113 proto_setphysaddr_req(dsp, mp);
116 proto_notify_req(dsp, mp);
119 proto_capability_req(dsp, mp);
122 proto_passive_req(dsp, mp);
125 proto_req(dsp, mp);
143 proto_info_req(dld_str_t *dsp, mblk_t *mp)
161 if ((mp = mexchange(q, mp, sizeof (dl_info_ack_wrapper_t),
165 bzero(mp->b_rptr, sizeof (dl_info_ack_wrapper_t));
166 dlwp = (dl_info_ack_wrapper_t *)mp->b_rptr;
169 ASSERT(dlp == (dl_info_ack_t *)mp->b_rptr);
311 qreply(q, mp);
318 proto_attach_req(dld_str_t *dsp, mblk_t *mp)
320 dl_attach_req_t *dlp = (dl_attach_req_t *)mp->b_rptr;
325 if (MBLKL(mp) < sizeof (dl_attach_req_t) ||
353 dlokack(q, mp, DL_ATTACH_REQ);
357 dlerrorack(q, mp, DL_ATTACH_REQ, dl_err, (t_uscalar_t)err);
364 proto_detach_req(dld_str_t *dsp, mblk_t *mp)
369 if (MBLKL(mp) < sizeof (dl_detach_req_t)) {
388 dlokack(dsp->ds_wq, mp, DL_DETACH_REQ);
392 dlerrorack(q, mp, DL_DETACH_REQ, dl_err, 0);
399 proto_bind_req(dld_str_t *dsp, mblk_t *mp)
401 dl_bind_req_t *dlp = (dl_bind_req_t *)mp->b_rptr;
412 if (MBLKL(mp) < sizeof (dl_bind_req_t)) {
495 dlbindack(q, mp, sap, dlsap_addr, dlsap_addr_length, 0, 0);
501 dlerrorack(q, mp, DL_BIND_REQ, dl_err, (t_uscalar_t)err);
508 proto_unbind_req(dld_str_t *dsp, mblk_t *mp)
514 if (MBLKL(mp) < sizeof (dl_unbind_req_t)) {
562 dlokack(dsp->ds_wq, mp, DL_UNBIND_REQ);
565 dlerrorack(q, mp, DL_UNBIND_REQ, dl_err, 0);
572 proto_promiscon_req(dld_str_t *dsp, mblk_t *mp)
574 dl_promiscon_req_t *dlp = (dl_promiscon_req_t *)mp->b_rptr;
581 if (MBLKL(mp) < sizeof (dl_promiscon_req_t)) {
634 dlokack(q, mp, DL_PROMISCON_REQ);
640 dlerrorack(q, mp, DL_PROMISCON_REQ, dl_err, (t_uscalar_t)err);
647 proto_promiscoff_req(dld_str_t *dsp, mblk_t *mp)
649 dl_promiscoff_req_t *dlp = (dl_promiscoff_req_t *)mp->b_rptr;
656 if (MBLKL(mp) < sizeof (dl_promiscoff_req_t)) {
718 dlokack(q, mp, DL_PROMISCOFF_REQ);
721 dlerrorack(q, mp, DL_PROMISCOFF_REQ, dl_err, (t_uscalar_t)err);
728 proto_enabmulti_req(dld_str_t *dsp, mblk_t *mp)
730 dl_enabmulti_req_t *dlp = (dl_enabmulti_req_t *)mp->b_rptr;
742 if (MBLKL(mp) < sizeof (dl_enabmulti_req_t) ||
743 !MBLKIN(mp, dlp->dl_addr_offset, dlp->dl_addr_length) ||
756 err = dls_multicst_add(dsp, mp->b_rptr + dlp->dl_addr_offset);
778 dlokack(q, mp, DL_ENABMULTI_REQ);
784 dlerrorack(q, mp, DL_ENABMULTI_REQ, dl_err, (t_uscalar_t)err);
791 proto_disabmulti_req(dld_str_t *dsp, mblk_t *mp)
793 dl_disabmulti_req_t *dlp = (dl_disabmulti_req_t *)mp->b_rptr;
805 if (MBLKL(mp) < sizeof (dl_disabmulti_req_t) ||
806 !MBLKIN(mp, dlp->dl_addr_offset, dlp->dl_addr_length) ||
813 err = dls_multicst_remove(dsp, mp->b_rptr + dlp->dl_addr_offset);
836 dlokack(q, mp, DL_DISABMULTI_REQ);
839 dlerrorack(q, mp, DL_DISABMULTI_REQ, dl_err, (t_uscalar_t)err);
846 proto_physaddr_req(dld_str_t *dsp, mblk_t *mp)
848 dl_phys_addr_req_t *dlp = (dl_phys_addr_req_t *)mp->b_rptr;
854 if (MBLKL(mp) < sizeof (dl_phys_addr_req_t)) {
885 dlphysaddrack(q, mp, addr, (t_uscalar_t)addr_length);
887 dlerrorack(q, mp, DL_PHYS_ADDR_REQ, dl_err, 0);
896 proto_setphysaddr_req(dld_str_t *dsp, mblk_t *mp)
898 dl_set_phys_addr_req_t *dlp = (dl_set_phys_addr_req_t *)mp->b_rptr;
910 if (MBLKL(mp) < sizeof (dl_set_phys_addr_req_t) ||
911 !MBLKIN(mp, dlp->dl_addr_offset, dlp->dl_addr_length) ||
936 mp->b_rptr + dlp->dl_addr_offset);
955 dlokack(q, mp, DL_SET_PHYS_ADDR_REQ);
961 dlerrorack(q, mp, DL_SET_PHYS_ADDR_REQ, dl_err, (t_uscalar_t)err);
968 proto_udqos_req(dld_str_t *dsp, mblk_t *mp)
970 dl_udqos_req_t *dlp = (dl_udqos_req_t *)mp->b_rptr;
979 if (MBLKL(mp) < sizeof (dl_udqos_req_t) || !MBLKIN(mp, off, len)) {
984 selp = (dl_qos_cl_sel1_t *)(mp->b_rptr + off);
997 dlokack(q, mp, DL_UDQOS_REQ);
1000 dlerrorack(q, mp, DL_UDQOS_REQ, dl_err, 0);
1021 proto_capability_req(dld_str_t *dsp, mblk_t *mp)
1023 dl_capability_req_t *dlp = (dl_capability_req_t *)mp->b_rptr;
1030 if (MBLKL(mp) < sizeof (dl_capability_req_t)) {
1047 proto_capability_advertise(dsp, mp);
1051 if (!MBLKIN(mp, dlp->dl_sub_offset, dlp->dl_sub_length)) {
1065 sp = (dl_capability_sub_t *)(mp->b_rptr + off);
1110 qreply(q, mp);
1113 dlerrorack(q, mp, DL_CAPABILITY_REQ, dl_err, 0);
1120 proto_notify_req(dld_str_t *dsp, mblk_t *mp)
1122 dl_notify_req_t *dlp = (dl_notify_req_t *)mp->b_rptr;
1138 if (MBLKL(mp) < sizeof (dl_notify_req_t)) {
1159 dlnotifyack(q, mp, note);
1169 dlerrorack(q, mp, DL_NOTIFY_REQ, dl_err, 0);
1176 proto_unitdata_req(dld_str_t *dsp, mblk_t *mp)
1179 dl_unitdata_req_t *dlp = (dl_unitdata_req_t *)mp->b_rptr;
1190 if (MBLKL(mp) < sizeof (dl_unitdata_req_t) || mp->b_cont == NULL) {
1191 dlerrorack(q, mp, DL_UNITDATA_REQ, DL_BADPRIM, 0);
1198 dlerrorack(q, mp, DL_UNITDATA_REQ, DL_OUTSTATE, 0);
1209 if (!MBLKIN(mp, off, len) || !IS_P2ALIGNED(off, sizeof (uint16_t))) {
1219 addr = mp->b_rptr + off;
1220 sap = *(uint16_t *)(mp->b_rptr + off + addr_length);
1226 payload = mp->b_cont;
1250 freeb(mp);
1277 dlerrorack(q, mp, DL_UNITDATA_REQ, dl_err, 0);
1282 dluderrorind(q, mp, (void *)addr, len, DL_BADDATA, 0);
1290 proto_passive_req(dld_str_t *dsp, mblk_t *mp)
1303 if (MBLKL(mp) < sizeof (dl_passive_req_t)) {
1309 dlokack(dsp->ds_wq, mp, DL_PASSIVE_REQ);
1312 dlerrorack(dsp->ds_wq, mp, DL_PASSIVE_REQ, dl_err, 0);
1320 proto_req(dld_str_t *dsp, mblk_t *mp)
1322 union DL_primitives *dlp = (union DL_primitives *)mp->b_rptr;
1324 dlerrorack(dsp->ds_wq, mp, dlp->dl_primitive, DL_UNSUPPORTED, 0);
1553 proto_capability_advertise(dld_str_t *dsp, mblk_t *mp)
1624 if ((mp1 = reallocb(mp,
1626 dlerrorack(q, mp, DL_CAPABILITY_REQ, DL_NOTSUPPORTED, 0);
1630 mp = mp1;
1631 DB_TYPE(mp) = M_PROTO;
1632 mp->b_wptr = mp->b_rptr + sizeof (dl_capability_ack_t) + subsize;
1633 bzero(mp->b_rptr, MBLKL(mp));
1634 dlap = (dl_capability_ack_t *)mp->b_rptr;
1710 ASSERT(ptr == mp->b_rptr + sizeof (dl_capability_ack_t) + subsize);
1711 qreply(q, mp);