Lines Matching refs:pktinfo

105 #define	UPDATE_STATS(stats, vstats, pktinfo, delta) {			\  argument
106 if ((pktinfo).isBroadcast) { \
109 } else if ((pktinfo).isMulticast) { \
113 ((pktinfo).pktLen)); \
2047 pktinfo_t pktinfo; in gld_start() local
2074 if ((*ifp->interpreter)(macinfo, mp, &pktinfo, GLD_TX) != 0) { in gld_start()
2167 pktinfo.pktLen > ifp->hdr_size + (vtag == 0 ? 0 : VTAG_SIZE) + in gld_start()
2175 "max %d", pktinfo.pktLen, in gld_start()
2193 UPDATE_STATS(stats0, stats, pktinfo, 1); in gld_start()
2205 UPDATE_STATS(stats0, stats, pktinfo, 1); in gld_start()
2246 pktinfo_t pktinfo; in gld_start_mdt() local
2310 (void) (*ifp->interpreter_mdt)(macinfo, mp, NULL, &pktinfo, in gld_start_mdt()
2331 &pinfo, &pktinfo, GLD_MDT_TXPKT); in gld_start_mdt()
2333 totLen += pktinfo.pktLen; in gld_start_mdt()
2343 dl_pkt, &pktinfo); in gld_start_mdt()
2364 pktinfo.pktLen = totLen; in gld_start_mdt()
2365 UPDATE_STATS(vlan->gldv_stats, NULL, pktinfo, numpacks); in gld_start_mdt()
2408 &pinfo, &pktinfo, GLD_MDT_TXPKT); in gld_start_mdt()
2410 totLen += pktinfo.pktLen; in gld_start_mdt()
2414 pktinfo.pktLen = totLen; in gld_start_mdt()
2415 UPDATE_STATS(vlan->gldv_stats, NULL, pktinfo, mdtpacks); in gld_start_mdt()
2507 pktinfo_t pktinfo; in gld_precv() local
2517 if ((*ifp->interpreter)(macinfo, mp, &pktinfo, GLD_RXLOOP) != 0) { in gld_precv()
2531 pktinfo.isTagged = (vtag != VLAN_VID_NONE); in gld_precv()
2532 pktinfo.vid = GLD_VTAG_VID(vtag); in gld_precv()
2533 pktinfo.cfi = GLD_VTAG_CFI(vtag); in gld_precv()
2534 pktinfo.user_pri = GLD_VTAG_PRI(vtag); in gld_precv()
2536 gld_sendup(macinfo, &pktinfo, mp, gld_paccept); in gld_precv()
2547 pdesc_t *dl_pkt, pktinfo_t *pktinfo) in gld_precv_mdt() argument
2558 (void) (*ifp->interpreter_mdt)(macinfo, mp, NULL, pktinfo, in gld_precv_mdt()
2561 gld_sendup(macinfo, pktinfo, adjmp, gld_paccept); in gld_precv_mdt()
2582 pktinfo_t pktinfo; in gld_recv_tagged() local
2633 err = (*ifp->interpreter)(macinfo, mp, &pktinfo, GLD_RXQUICK); in gld_recv_tagged()
2635 BUMP(stats0, stats, glds_bytercv64, pktinfo.pktLen); in gld_recv_tagged()
2657 switch (pktinfo.ethertype) { in gld_recv_tagged()
2677 pktinfo.isForMe && in gld_recv_tagged()
2683 mp->b_rptr += pktinfo.macLen; in gld_recv_tagged()
2691 if ((*ifp->interpreter)(macinfo, mp, &pktinfo, GLD_RX) != 0) { in gld_recv_tagged()
2705 pktinfo.vid = vid; in gld_recv_tagged()
2706 pktinfo.cfi = GLD_VTAG_CFI(vtag); in gld_recv_tagged()
2708 if (pktinfo.cfi != VLAN_CFI_ETHER) in gld_recv_tagged()
2711 pktinfo.user_pri = GLD_VTAG_PRI(vtag); in gld_recv_tagged()
2712 pktinfo.isTagged = (vtag != VLAN_VID_NONE); in gld_recv_tagged()
2717 (!pktinfo.isBroadcast && !pktinfo.isMulticast))) { in gld_recv_tagged()
2721 gld_macaddr_sprintf(pbuf, pktinfo.shost, in gld_recv_tagged()
2723 pktinfo.dhost, macinfo->gldm_addrlen)); in gld_recv_tagged()
2725 pktinfo.vid, in gld_recv_tagged()
2726 pktinfo.user_pri); in gld_recv_tagged()
2729 pktinfo.ethertype, in gld_recv_tagged()
2730 pktinfo.pktLen, in gld_recv_tagged()
2731 pktinfo.macLen, in gld_recv_tagged()
2732 pktinfo.hdrLen, in gld_recv_tagged()
2733 pktinfo.isMulticast ? "Y" : "N"); in gld_recv_tagged()
2737 gld_sendup(macinfo, &pktinfo, mp, gld_accept); in gld_recv_tagged()
2757 gld_sendup_vlan(gld_vlan_t *vlan, pktinfo_t *pktinfo, mblk_t *mp, in gld_sendup_vlan() argument
2785 (!pktinfo->isBroadcast && !pktinfo->isMulticast))) in gld_sendup_vlan()
2798 if ((*acceptfunc)(gld, pktinfo)) { in gld_sendup_vlan()
2800 pktinfo->wasAccepted = 1; /* known protocol */ in gld_sendup_vlan()
2842 gld_passon(gld, nmp, pktinfo, send); in gld_sendup_vlan()
2854 gld_sendup(gld_mac_info_t *macinfo, pktinfo_t *pktinfo, in gld_sendup() argument
2872 ASSERT(pktinfo != NULL); in gld_sendup()
2884 if (pktinfo->vid != VLAN_VID_NONE) { in gld_sendup()
2887 vlann = gld_find_vlan(macinfo, pktinfo->vid); in gld_sendup()
2914 err = gld_sendup_vlan(vlan0, pktinfo, mp, acceptfunc, send, in gld_sendup()
2918 err = gld_sendup_vlan(vlann, pktinfo, mp, acceptfunc, send, in gld_sendup()
2925 gld_passon(fgld, mp, pktinfo, send); in gld_sendup()
2933 if (pktinfo->isBroadcast) in gld_sendup()
2935 else if (pktinfo->isMulticast) in gld_sendup()
2939 if (!pktinfo->wasAccepted) in gld_sendup()
2952 #define MATCH(stream, pktinfo) \ argument
2953 ((((gld_vlan_t *)stream->gld_vlan)->gldv_id == pktinfo->vid) && \
2954 ((stream->gld_ethertype && stream->gld_sap == pktinfo->ethertype) || \
2955 (!stream->gld_ethertype && pktinfo->isLLC)))
2964 gld_accept(gld_t *gld, pktinfo_t *pktinfo) in gld_accept() argument
2975 if ((!MATCH(gld, pktinfo) && !(gld->gld_flags & GLD_PROM_SAP) && in gld_accept()
2977 pktinfo->isTagged))) in gld_accept()
2984 if (pktinfo->isLooped) in gld_accept()
2991 if (pktinfo->isForMe || pktinfo->isBroadcast || in gld_accept()
2992 gld_mcmatch(gld, pktinfo)) in gld_accept()
3009 gld_mcmatch(gld_t *gld, pktinfo_t *pktinfo) in gld_mcmatch() argument
3014 if (!pktinfo->isMulticast) in gld_mcmatch()
3032 return (gld_multicast(pktinfo->dhost, gld)); in gld_mcmatch()
3065 gld_paccept(gld_t *gld, pktinfo_t *pktinfo) in gld_paccept() argument
3076 (MATCH(gld, pktinfo) || gld->gld_flags & GLD_PROM_SAP || in gld_paccept()
3078 pktinfo->isTagged))); in gld_paccept()
3083 gld_passon(gld_t *gld, mblk_t *mp, pktinfo_t *pktinfo, in gld_passon() argument
3094 (void *)mp, (void *)pktinfo); in gld_passon()
3097 (!pktinfo->isBroadcast && !pktinfo->isMulticast))) in gld_passon()
3114 if ((pktinfo->isTagged && is_phys) || (pktinfo->user_pri != 0)) in gld_passon()
3125 if (is_phys && pktinfo->isTagged && in gld_passon()
3131 skiplen = pktinfo->macLen; /* skip mac header */ in gld_passon()
3133 skiplen += pktinfo->hdrLen; /* skip any extra */ in gld_passon()
3135 if (skiplen >= pktinfo->pktLen) { in gld_passon()
3144 ASSERT(!(skiplen > pktinfo->pktLen)); in gld_passon()
3152 vtag = GLD_MAKE_VTAG(pktinfo->user_pri, pktinfo->cfi, in gld_passon()
3153 is_phys ? pktinfo->vid : VLAN_VID_NONE); in gld_passon()
3176 if (((gld->gld_flags & GLD_FAST) && !pktinfo->isMulticast && in gld_passon()
3177 !pktinfo->isBroadcast) || (gld->gld_flags & GLD_RAW)) { in gld_passon()
3182 mp = gld_addudind(gld, mp, pktinfo, addtag); in gld_passon()
3194 gld_addudind(gld_t *gld, mblk_t *mp, pktinfo_t *pktinfo, boolean_t tagged) in gld_addudind() argument
3206 (void *)mp, (void *)pktinfo); in gld_addudind()
3232 type = (gld->gld_ethertype) ? pktinfo->ethertype : 0; in gld_addudind()
3249 dludindp->dl_group_address = (pktinfo->isMulticast || in gld_addudind()
3250 pktinfo->isBroadcast); in gld_addudind()
3254 mac_copy(pktinfo->dhost, nmp->b_wptr, macinfo->gldm_addrlen); in gld_addudind()
3263 mac_copy(pktinfo->shost, nmp->b_wptr, macinfo->gldm_addrlen); in gld_addudind()
3269 if (pktinfo->nosource) in gld_addudind()