[dpdk-dev] [PATCH] fm10k: fix wrong VLAN value in RX mbuf

Stephen Hemminger stephen at networkplumber.org
Thu Nov 19 18:25:47 CET 2015


On Wed, 18 Nov 2015 16:50:09 +0800
Shaopeng He <shaopeng.he at intel.com> wrote:

> VLAN value should be copied from RX descriptor to mbuf,
> this patch fixes this issue.
> 
> Signed-off-by: Shaopeng He <shaopeng.he at intel.com>
> ---
>  drivers/net/fm10k/fm10k_rxtx.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/net/fm10k/fm10k_rxtx.c b/drivers/net/fm10k/fm10k_rxtx.c
> index 1bac28d..eeb635e 100644
> --- a/drivers/net/fm10k/fm10k_rxtx.c
> +++ b/drivers/net/fm10k/fm10k_rxtx.c
> @@ -146,6 +146,7 @@ fm10k_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,
>  #endif
>  
>  		mbuf->hash.rss = desc.d.rss;
> +		mbuf->vlan_tci = desc.w.vlan & FM10K_RXD_VLAN_ID_MASK;
>  
>  		rx_pkts[count] = mbuf;
>  		if (++next_dd == q->nb_desc) {
> @@ -292,6 +293,7 @@ fm10k_recv_scattered_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,
>  		rx_desc_to_ol_flags(first_seg, &desc);
>  #endif
>  		first_seg->hash.rss = desc.d.rss;
> +		first_seg->vlan_tci = desc.w.vlan & FM10K_RXD_VLAN_ID_MASK;
>  
>  		/* Prefetch data of first segment, if configured to do so. */
>  		rte_packet_prefetch((char *)first_seg->buf_addr +

Good catch, this bug means VLAN's would not work right now.
But I think it isn't quite right.

By masking the VLAN you are losing the received priority bits.
Other drivers like ixgbe preserve the priority bits.


More information about the dev mailing list