> -----Original Message-----
> From: Li, Xiaoyun <xiaoyun...@intel.com>
> Sent: Thursday, February 4, 2021 11:11 AM
> To: Wu, Jingjing <jingjing...@intel.com>; Xing, Beilei 
> <beilei.x...@intel.com>;
> dev@dpdk.org
> Cc: Li, Xiaoyun <xiaoyun...@intel.com>
> Subject: [PATCH] net/iavf: fix VLAN insert issue
> 
> The new VIRTCHNL_VF_OFFLOAD_VLAN_V2 capability allows PF to set the
> location of TX VLAN insertion.
> 
> So VF needs to insert VLAN tag according to the location flags.
> 
> Fixes: 1c301e8c3cff ("net/iavf: support new VLAN capabilities")
> 
> Signed-off-by: Xiaoyun Li <xiaoyun...@intel.com>
> ---
>  drivers/net/iavf/iavf_rxtx.c | 45 +++++++++++++++++++++++++++++++-----
>  drivers/net/iavf/iavf_rxtx.h |  3 +++
>  2 files changed, 42 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/net/iavf/iavf_rxtx.c b/drivers/net/iavf/iavf_rxtx.c index
> 3d471d9acc..af5a28d84d 100644
> --- a/drivers/net/iavf/iavf_rxtx.c
> +++ b/drivers/net/iavf/iavf_rxtx.c
> 
>  /* Check if the context descriptor is needed for TX offloading */  static 
> inline
> uint16_t -iavf_calc_context_desc(uint64_t flags)
> +iavf_calc_context_desc(uint64_t flags, uint8_t vlan_flag)
>  {
> -     static uint64_t mask = PKT_TX_TCP_SEG;
> -
> -     return (flags & mask) ? 1 : 0;
> +     if (flags & PKT_TX_TCP_SEG)
> +             return 1;
> +     if (flags & PKT_TX_VLAN_PKT &&
> +         vlan_flag & IAVF_TX_FLAGS_VLAN_TAG_LOC_L2TAG2)
> +             return 1;
> +     return 0;

How about merging if condition?

if ((flags & PKT_TX_TCP_SEG) ||
    (flags & PKT_TX_VLAN_PKT &&
     vlan_flag & IAVF_TX_FLAGS_VLAN_TAG_LOC_L2TAG2))
         return 1;
else
         return 0;

>  }
> 

Reply via email to