ok mvs@

> On 15 Jan 2021, at 04:14, David Gwynne <[email protected]> wrote:
> 
> bpf should be showing what will be or has been on the wire, which is
> what the ether_vtag in the mbuf has. the prio is either about to be
> decoded from the tag on the wya into the stack, or has been encoded by
> vlan(4) on the way out of the stack.
> 
> ok?
> 
> Index: bpf.c
> ===================================================================
> RCS file: /cvs/src/sys/net/bpf.c,v
> retrieving revision 1.201
> diff -u -p -r1.201 bpf.c
> --- bpf.c     2 Jan 2021 07:25:42 -0000       1.201
> +++ bpf.c     15 Jan 2021 01:12:31 -0000
> @@ -1444,7 +1444,6 @@ bpf_mtap_ether(caddr_t arg, const struct
> #if NVLAN > 0
>       struct ether_vlan_header evh;
>       struct m_hdr mh, md;
> -     uint8_t prio;
> 
>       if ((m->m_flags & M_VLANTAG) == 0)
> #endif
> @@ -1455,15 +1454,10 @@ bpf_mtap_ether(caddr_t arg, const struct
> #if NVLAN > 0
>       KASSERT(m->m_len >= ETHER_HDR_LEN);
> 
> -     prio = m->m_pkthdr.pf.prio;
> -     if (prio <= 1)
> -             prio = !prio;
> -
>       memcpy(&evh, mtod(m, char *), ETHER_HDR_LEN);
>       evh.evl_proto = evh.evl_encap_proto;
>       evh.evl_encap_proto = htons(ETHERTYPE_VLAN);
> -     evh.evl_tag = htons(m->m_pkthdr.ether_vtag |
> -         (prio << EVL_PRIO_BITS));
> +     evh.evl_tag = htons(m->m_pkthdr.ether_vtag);
> 
>       mh.mh_flags = 0;
>       mh.mh_data = (caddr_t)&evh;
> 

Reply via email to