[dpdk-stable] [PATCH v2] net: fix stripped VLAN flag for offload emulation

Olivier Matz olivier.matz at 6wind.com
Fri May 5 12:02:27 CEST 2017


Hi Thomas,

On Fri,  5 May 2017 00:36:13 +0200, Thomas Monjalon <thomas at monjalon.net> wrote:
> From: Michał Mirosław <michal.miroslaw at atendesoftware.pl>
> 
> Apply the new flag PKT_RX_VLAN_STRIPPED to the software emulation case
> (currently only for virtio and af_packet).
> 
> Fixes: b37b528d957c ("mbuf: add new Rx flags for stripped VLAN")
> Cc: stable at dpdk.org
> 
> Signed-off-by: Michał Mirosław <michal.miroslaw at atendesoftware.pl>
> Signed-off-by: Thomas Monjalon <thomas at monjalon.net>
> ---
> v2: add explanations and update rte_vlan_insert()
> ---
>  lib/librte_net/rte_ether.h | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/lib/librte_net/rte_ether.h b/lib/librte_net/rte_ether.h
> index ff3d06540..5edf66c3f 100644
> --- a/lib/librte_net/rte_ether.h
> +++ b/lib/librte_net/rte_ether.h
> @@ -357,7 +357,7 @@ static inline int rte_vlan_strip(struct rte_mbuf *m)
>  		return -1;
>  
>  	struct vlan_hdr *vh = (struct vlan_hdr *)(eh + 1);
> -	m->ol_flags |= PKT_RX_VLAN_PKT;
> +	m->ol_flags |= PKT_RX_VLAN_PKT | PKT_RX_VLAN_STRIPPED;
>  	m->vlan_tci = rte_be_to_cpu_16(vh->vlan_tci);
>  
>  	/* Copy ether header over rather than moving whole packet */
> @@ -407,6 +407,8 @@ static inline int rte_vlan_insert(struct rte_mbuf **m)
>  	vh = (struct vlan_hdr *) (nh + 1);
>  	vh->vlan_tci = rte_cpu_to_be_16((*m)->vlan_tci);
>  
> +	(*m)->ol_flags &= ~PKT_RX_VLAN_STRIPPED;
> +
>  	return 0;
>  }
>  

Having disymetric flags looks strange at first glance, but I think
you are right and PKT_RX_VLAN_PKT should be kept in rte_vlan_strip()
for compat purpose. As I said previously in the thread, I think
there is some work remaining to clean-up the vlan offload flags,
we should do this for 17.08.


Acked-by: Olivier Matz <olivier.matz at 6wind.com>


More information about the stable mailing list