Lines Matching refs:mp

259 	mblk_t *mp;
311 if ((mp = blp->bl_lfailmp) == NULL &&
312 (mp = allocb(sizeof (bridge_ctl_t), BPRI_MED)) == NULL)
320 blp->bl_lfailmp = mp;
325 bcp = (bridge_ctl_t *)mp->b_rptr;
328 mp->b_wptr = (uchar_t *)(bcp + 1);
329 mp->b_next = *mlist;
330 *mlist = mp;
338 send_up_messages(bridge_inst_t *bip, mblk_t *mp)
345 while (mp != NULL) {
346 mnext = mp->b_next;
347 mp->b_next = NULL;
348 putnext(rq, mp);
349 mp = mnext;
399 bridge_m_tx(void *arg, mblk_t *mp)
402 freemsgchain(mp);
1694 reform_vlan_header(mblk_t *mp, uint16_t vlanid, uint16_t tci, uint16_t pvid)
1703 if (mp == NULL)
1704 return (mp);
1707 DB_CKSUMFLAGS(mp) = 0;
1711 return (mp);
1714 if (source_has_tag && mp->b_band == pri) {
1716 return (mp);
1718 return (mp);
1726 if (MBLKL(mp) < sizeof (struct ether_header)) {
1727 mpcopy = msgpullup(mp, sizeof (struct ether_header));
1729 freemsg(mp);
1732 mp = mpcopy;
1734 if (DB_REF(mp) > 1 || !IS_P2ALIGNED(mp->b_rptr, sizeof (uint16_t)) ||
1735 (!source_has_tag && MBLKTAIL(mp) < VLAN_INCR)) {
1736 minlen = mlen = MBLKL(mp);
1748 freemsg(mp);
1753 bcopy(mp->b_rptr, mpcopy->b_rptr, mlen);
1755 mpcopy->b_cont = mp->b_cont;
1756 freeb(mp);
1761 bcopy(mp->b_rptr, mpcopy->b_rptr, minlen);
1763 mpcopy->b_cont = mp;
1764 mp->b_rptr += minlen;
1766 mp = mpcopy;
1770 evh = (struct ether_vlan_header *)mp->b_rptr;
1772 if (mp->b_band == 0 && vlanid == pvid) { /* 3 */
1774 mlen = MBLKL(mp);
1776 ovbcopy(mp->b_rptr +
1778 mp->b_rptr + sizeof (struct ether_header),
1780 mp->b_wptr -= VLAN_INCR;
1784 tci = VLAN_TCI(mp->b_band, ETHER_CFI, vlanid);
1789 mlen = MBLKL(mp);
1791 ovbcopy(mp->b_rptr + sizeof (struct ether_header),
1792 mp->b_rptr + sizeof (struct ether_vlan_header),
1794 mp->b_wptr += VLAN_INCR;
1795 ASSERT(mp->b_wptr <= DB_LIM(mp));
1798 tci = VLAN_TCI(mp->b_band, ETHER_CFI, vlanid);
1803 return (mp);
1808 update_header(mblk_t *mp, mac_header_info_t *hdr_info, boolean_t striphdr)
1815 evhp = (struct ether_vlan_header *)mp->b_rptr;
1827 mp->b_rptr = (uchar_t *)(evhp + 1);
1833 mp->b_rptr += sizeof (struct ether_header);
1861 bridge_forward(bridge_link_t *blp, mac_header_info_t *hdr_info, mblk_t *mp,
1881 freemsg(mp);
1882 mp = NULL;
1884 return (mp);
1900 freemsg(mp);
1907 update_header(mp, hdr_info, B_FALSE);
1909 mp = mac_fix_cksum(mp);
1911 mp = reform_vlan_header(mp, vlanid, tci, 0);
1912 if (mp == NULL) {
1917 trill_encap_fn(tdp, blp, hdr_info, mp,
1928 freemsg(mp);
1954 mpsend = mp;
1955 mp = NULL;
1957 mpsend = copymsg(mp);
1991 if (mp != NULL && is_xmit && (bfp->bf_flags & BFF_LOCALADDR)) {
1992 mac_rx_common(blp->bl_mh, NULL, mp);
1993 mp = NULL;
2012 if ((mpsend = copymsg(mp)) != NULL) {
2065 mpsend = mp;
2066 mp = NULL;
2068 mpsend = copymsg(mp);
2098 return (mp);
2109 bridge_get_vlan(bridge_link_t *blp, mac_header_info_t *hdr_info, mblk_t *mp,
2125 while (mp != NULL) {
2126 mlen = MBLKL(mp);
2130 mp = mp->b_cont;
2132 if (mp == NULL)
2134 tci = mp->b_rptr[tpos] << 8;
2137 mp = mp->b_cont;
2138 } while (mp != NULL && MBLKL(mp) == 0);
2139 if (mp == NULL)
2143 tci |= mp->b_rptr[tpos];
2215 mblk_t *mp, *mpcopy;
2241 while ((mp = mpnext) != NULL) {
2244 mpnext = mp->b_next;
2250 if (mac_header_info(blp->bl_mh, mp,
2252 tail = mp;
2279 ((struct ether_vlan_header *)mp->b_rptr)->
2281 tail = mp;
2295 mp->b_next = NULL;
2296 if (mp == newhead)
2298 mac_trill_snoop(blp->bl_mh, mp);
2299 update_header(mp, &hdr_info, B_TRUE);
2308 size_t msglen = msgdsize(mp);
2311 (void) adjmsg(mp,
2316 freemsg(mp);
2320 trill_recv_fn(tdp, blp, rsrc, mp, &hdr_info);
2362 (mp = copymsgchain(mpnext)) != NULL) {
2363 mac_rx(bmp->bm_mh, NULL, mp);
2371 while ((mp = mpnext) != NULL) {
2372 mpnext = mp->b_next;
2373 mp->b_next = NULL;
2381 if (mac_header_info(blp->bl_mh, mp, &hdr_info) != 0 ||
2385 mac_rx_common(blp->bl_mh, rsrc, mp);
2392 if (!bridge_get_vlan(blp, &hdr_info, mp, &vlanid, &tci) ||
2394 mac_rx_common(blp->bl_mh, rsrc, mp);
2405 mac_rx_common(blp->bl_mh, rsrc, mp);
2416 (mpcopy = copymsg(mp)) != NULL)
2432 mp = bridge_forward(blp, &hdr_info, mp, vlanid, tci,
2435 if (mp != NULL)
2436 mac_rx_common(blp->bl_mh, rsrc, mp);
2450 mblk_t *mp, *mpcopy;
2466 MAC_RING_TX(blp->bl_mh, rh, mpnext, mp);
2467 return (mp);
2476 (mp = copymsgchain(mpnext)) != NULL) {
2477 mac_rx(bmp->bm_mh, NULL, mp);
2480 while ((mp = mpnext) != NULL) {
2481 mpnext = mp->b_next;
2482 mp->b_next = NULL;
2484 if (mac_header_info(blp->bl_mh, mp, &hdr_info) != 0) {
2485 freemsg(mp);
2492 if (!bridge_get_vlan(blp, &hdr_info, mp, &vlanid, &tci) ||
2494 freemsg(mp);
2504 (mpcopy = copymsg(mp)) != NULL) {
2520 mp = bridge_forward(blp, &hdr_info, mp, vlanid, tci,
2523 if (mp != NULL) {
2524 MAC_RING_TX(blp->bl_mh, rh, mp, mp);
2525 if (mp == NULL) {
2536 if (mp != NULL) {
2537 mp->b_next = mpnext;
2541 return (mp);
2552 bridge_trill_decaps(bridge_link_t *blp, mblk_t *mp, uint16_t ingress_nick)
2559 if (mac_header_info(blp->bl_mh, mp, &hdr_info) != 0) {
2560 freemsg(mp);
2569 evhp = (struct ether_vlan_header *)mp->b_rptr;
2575 blp, mblk_t *, mp, uint16_t, ingress_nick);
2576 freemsg(mp);
2584 mp = bridge_forward(blp, &hdr_info, mp, vlanid, tci, B_TRUE, B_TRUE);
2585 if (mp != NULL) {
2588 if ((mpcopy = copymsg(mp)) != NULL)
2590 MAC_RING_TX(blp->bl_mh, NULL, mp, mp);
2592 if (mp == NULL) {
2596 freemsg(mp);
2606 bridge_trill_output(bridge_link_t *blp, mblk_t *mp)
2610 mac_trill_snoop(blp->bl_mh, mp);
2611 MAC_RING_TX(blp->bl_mh, NULL, mp, mp);
2612 if (mp == NULL) {
2616 return (mp);
2770 mblk_t *mp = arg;
2787 bsp = (bridge_stream_t *)mp->b_next;
2788 mp->b_next = NULL;
2791 linkid = *(datalink_id_t *)mp->b_cont->b_rptr;
2846 i = MBLKL(mp->b_cont) - sizeof (datalink_id_t);
2849 bcopy(mp->b_cont->b_rptr + sizeof (datalink_id_t), linkname, i);
2940 miocack(bsp->bs_wq, mp, 0, 0);
2951 miocnak(bsp->bs_wq, mp, 0, err);
2958 mblk_t *mp = arg;
2967 bsp = (bridge_stream_t *)mp->b_next;
2968 mp->b_next = NULL;
2971 linkid = *(datalink_id_t *)mp->b_cont->b_rptr;
3041 miocack(bsp->bs_wq, mp, 0, 0);
3043 miocnak(bsp->bs_wq, mp, 0, ENOENT);
3066 bridge_ioctl(queue_t *wq, mblk_t *mp)
3077 iop = (struct iocblk *)mp->b_rptr;
3082 if ((cr = msg_getcred(mp, NULL)) == NULL)
3085 miocnak(wq, mp, 0, EPERM);
3094 (rc = miocpullup(mp, sizeof (bridge_newbridge_t))) != 0)
3097 bnb = (bridge_newbridge_t *)mp->b_cont->b_rptr;
3120 (rc = miocpullup(mp, sizeof (datalink_id_t))) != 0)
3127 mp->b_next = (mblk_t *)bsp;
3129 (void) ddi_taskq_dispatch(bridge_taskq, bridge_add_link, mp,
3135 (rc = miocpullup(mp, sizeof (datalink_id_t))) != 0)
3142 mp->b_next = (mblk_t *)bsp;
3144 (void) ddi_taskq_dispatch(bridge_taskq, bridge_rem_link, mp,
3152 (rc = miocpullup(mp, sizeof (*bss))) != 0)
3155 bss = (bridge_setstate_t *)mp->b_cont->b_rptr;
3170 (rc = miocpullup(mp, sizeof (*bsv))) != 0)
3173 bsv = (bridge_setpvid_t *)mp->b_cont->b_rptr;
3195 (rc = miocpullup(mp, sizeof (*bve))) != 0)
3198 bve = (bridge_vlanenab_t *)mp->b_cont->b_rptr;
3232 (rc = miocpullup(mp, sizeof (*bff))) != 0)
3235 bff = (bridge_flushfwd_t *)mp->b_cont->b_rptr;
3291 (rc = miocpullup(mp, sizeof (uint32_t))) != 0)
3294 bip->bi_tablemax = *(uint32_t *)mp->b_cont->b_rptr;
3299 miocack(wq, mp, len, 0);
3301 miocnak(wq, mp, 0, rc);
3305 bridge_wput(queue_t *wq, mblk_t *mp)
3307 switch (DB_TYPE(mp)) {
3309 bridge_ioctl(wq, mp);
3312 if (*mp->b_rptr & FLUSHW)
3313 *mp->b_rptr &= ~FLUSHW;
3314 if (*mp->b_rptr & FLUSHR)
3315 qreply(wq, mp);
3317 freemsg(mp);
3320 freemsg(mp);