Lines Matching refs:mp

85 #define	DL_PRIM(mp)	(((union DL_primitives *)(mp)->b_rptr)->dl_primitive)
86 #define IS_DLPI_DATA(mp) \
87 ((DB_TYPE(mp) == M_PROTO) && \
88 MBLKL(mp) >= sizeof (dl_unitdata_ind_t) && \
89 (DL_PRIM(mp) == DL_UNITDATA_IND))
377 mblk_t *mp;
384 if ((mp = arl->arl_dlpi_deferred) == NULL) {
399 arl->arl_dlpi_deferred = mp->b_next;
400 mp->b_next = NULL;
402 ASSERT(DB_TYPE(mp) == M_PROTO || DB_TYPE(mp) == M_PCPROTO);
404 arl->arl_dlpi_pending = DL_PRIM(mp);
411 putnext(arl->arl_wq, mp);
421 * Caller will free the mp.
424 arp_ll_set_defaults(arl_t *arl, mblk_t *mp)
427 dl_info_ack_t *dlia = (dl_info_ack_t *)mp->b_rptr;
451 arl_defaults_common(arl, mp);
455 arp_wput(queue_t *q, mblk_t *mp)
461 switch (DB_TYPE(mp)) {
464 ioc = (struct iocblk *)mp->b_rptr;
470 putnext(q, mp);
473 if ((mp1 = mp->b_cont) == 0)
480 miocack(q, mp, 0, 0);
482 miocnak(q, mp, 0, err);
488 putnext(q, mp);
527 arp_rput_dlpi(queue_t *q, mblk_t *mp)
535 if ((mp->b_wptr - mp->b_rptr) < sizeof (dlp->dl_primitive)) {
536 putnext(q, mp);
539 dlp = (union DL_primitives *)mp->b_rptr;
576 putnext(q, mp);
580 freemsg(mp);
603 arp_ll_set_defaults(arl, mp);
604 freemsg(mp);
634 qwriter_ip(ill, ill->ill_wq, mp, arp_rput_dlpi_writer,
638 freemsg(mp);
646 arp_rput_dlpi_writer(ipsq_t *ipsq, queue_t *q, mblk_t *mp, void *dummy_arg)
648 union DL_primitives *dlp = (union DL_primitives *)mp->b_rptr;
662 freemsg(mp);
690 putnext(q, mp);
709 freemsg(mp);
729 putnext(q, mp);
735 putnext(q, mp);
740 freemsg(mp);
744 arp_rput(queue_t *q, mblk_t *mp)
756 if (DB_TYPE(mp) != M_PCPROTO) {
758 freemsg(mp);
767 switch (DB_TYPE(mp)) {
780 if (IS_DLPI_DATA(mp)) {
783 arp_drop_packet("No ill", mp, ill);
786 arp_process_packet(ill, mp);
791 arp_rput_dlpi(q, mp);
796 if (mp->b_rptr < mp->b_wptr)
797 arl->arl_error = (int)(*mp->b_rptr & 0xFF);
800 freemsg(mp);
803 ip1dbg(("arp_rput other db type %x\n", DB_TYPE(mp)));
804 putnext(q, mp);
812 arp_process_packet(ill_t *ill, mblk_t *mp)
832 arp_drop_packet("Interface does not support ARP", mp, ill);
841 dlui = (dl_unitdata_ind_t *)mp->b_rptr;
856 mp, ill);
862 mp1 = mp->b_cont;
864 arp_drop_packet("Missing ARP packet", mp, ill);
871 mp, ill);
879 arp_drop_packet("mblk len too small", mp, ill);
891 arp_drop_packet("Bogus hlen or plen", mp, ill);
899 mblk_t *, mp);
906 ill->ill_phyint->phyint_ifindex, arh, mp, mp1, ipst);
907 DTRACE_PROBE1(arp__physical__in__end, mblk_t *, mp);
908 if (mp == NULL)
937 arp_drop_packet("Martian IP addr", mp, ill);
951 /* Note: after here we need to freeb(mp) and freemsg(mp1) separately */
952 mp->b_cont = NULL;
957 arp_drop_packet("bad protocol len", mp, ill);
980 freemsg(mp);
1003 freemsg(mp);
1005 freemsg(mp);
1025 freemsg(mp);
1035 freemsg(mp);
1049 freemsg(mp);
1078 freemsg(mp);
1191 mp->b_cont = NULL;
1198 freemsg(mp);
1264 mblk_t *mp;
1266 if ((mp = allocb(size, BPRI_HI)) == NULL)
1274 DB_TYPE(mp) = (prim == DL_INFO_REQ) ? M_PCPROTO : M_PROTO;
1276 mp->b_wptr = mp->b_rptr + size;
1277 bzero(mp->b_rptr, size);
1278 DL_PRIM(mp) = prim;
1279 return (mp);
1437 * consumes/frees mp
1440 arp_notify(in_addr_t src, mblk_t *mp, uint32_t arcn_code,
1447 arh_t *arh = (arh_t *)mp->b_rptr;
1469 if (ip_nce_conflict(mp, ira, ncec)) {
1485 freemsg(mp);
1501 freemsg(mp);
1510 freemsg(mp);
1522 freemsg(mp);
1526 * mp will be freed by arp_excl.
1529 qwriter_ip(ill, ill->ill_rq, mp, arp_excl, NEW_OP, B_FALSE);
1533 freemsg(mp);
1557 mblk_t *mp;
1562 mp = ill_dlur_gen(dst_lladdr, hlen, ETHERTYPE_ARP, ill->ill_sap_length);
1564 if (mp == NULL)
1569 freemsg(mp);
1573 mp->b_cont = allocb(AR_LL_HDR_SLACK + ARH_FIXED_LEN + (hlen * 4) +
1575 if (mp->b_cont == NULL) {
1576 freeb(mp);
1581 cp = mp->b_cont->b_rptr + (AR_LL_HDR_SLACK + hlen + hlen);
1582 mp->b_cont->b_rptr = cp;
1604 mp->b_cont->b_wptr = cp;
1607 ill_t *, ill, arh_t *, arh, mblk_t *, mp);
1610 ill->ill_phyint->phyint_ifindex, arh, mp, mp->b_cont,
1612 DTRACE_PROBE1(arp__physical__out__end, mblk_t *, mp);
1613 if (mp == NULL)
1619 freemsg(mp);
1623 putnext(arl->arl_wq, mp);
1625 freemsg(mp);
1764 mblk_t *mp;
1766 if ((mp = arl->arl_unbind_mp) != NULL) {
1770 return (mp);
1821 mblk_t *mp, *nextmp;
1889 mp = arl->arl_dlpi_deferred;
1893 for (; mp != NULL; mp = nextmp) {
1894 nextmp = mp->b_next;
1895 mp->b_next = NULL;
1896 putnext(arl->arl_wq, mp);
1907 mp = arl_unbind(arl);
1909 if (mp != NULL)
1910 arp_dlpi_send(arl, mp);
1969 mblk_t *mp;
1972 mp = mpp[0];
1973 mpp[0] = mp->b_next;
1974 for (mp1 = mp; mp1 != NULL; mp1 = mp1->b_cont) {
1978 freemsg(mp);
1991 * a timer on the ipif. Caller has to free the mp.
1994 arp_failure(mblk_t *mp, ip_recv_attr_t *ira)
1998 if ((mp = copymsg(mp)) != NULL) {
2000 qwriter_ip(ill, ill->ill_rq, mp, arp_excl, NEW_OP, B_FALSE);
2010 arp_excl(ipsq_t *ipsq, queue_t *rq, mblk_t *mp, void *dummy_arg)
2021 arh = (arh_t *)mp->b_rptr;
2097 freemsg(mp);
2102 * Note that mp can be either the DL_UNITDATA_IND with a b_cont payload,
2107 arp_drop_packet(const char *str, mblk_t *mp, ill_t *ill)
2109 freemsg(mp);
2157 arp_dlpi_send(arl_t *arl, mblk_t *mp)
2163 ASSERT(DB_TYPE(mp) == M_PROTO || DB_TYPE(mp) == M_PCPROTO);
2182 *mpp = mp;
2187 if ((prim = ((union DL_primitives *)mp->b_rptr)->dl_primitive)
2214 putnext(arl->arl_wq, mp);
2218 arl_defaults_common(arl_t *arl, mblk_t *mp)
2220 dl_info_ack_t *dlia = (dl_info_ack_t *)mp->b_rptr;
2432 mblk_t *mp;
2441 mp = mexchange(NULL, NULL, sizeof (dl_notify_conf_t), M_PROTO,
2443 ((dl_notify_conf_t *)(mp->b_rptr))->dl_notification =
2445 arp_dlpi_send(arl, mp);