[dpdk-dev] [PATCH v2] net/i40e: fix qinq flow pattern to allow non full mask

Iremonger, Bernard bernard.iremonger at intel.com
Thu Oct 15 10:56:40 CEST 2020


Hi Padraig,

> -----Original Message-----
> From: Connolly, Padraig J <padraig.j.connolly at intel.com>
> Sent: Wednesday, October 14, 2020 5:31 PM
> To: Xing, Beilei <beilei.xing at intel.com>
> Cc: dev at dpdk.org; Connolly, Padraig J <padraig.j.connolly at intel.com>;
> Iremonger, Bernard <bernard.iremonger at intel.com>; stable at dpdk.org
> Subject: [PATCH v2] net/i40e: fix qinq flow pattern to allow non full mask
> 
> Issue reported by customer that only full mask was allowed on inner and
> outer VLAN tag, thus not allowing mask to set VLAN ID filter only.
> Removed check that enforces inner vlan and outer vlan to equal
> I40E_TCI_MASK (full mask 0xffff).
> 
> Fixes: c2be7f9b232f ("net/i40e: fix parsing QinQ pattern")
> Fixes: d37705068ee8 ("net/i40e: parse QinQ pattern")
> 
> Cc: bernard.iremonger at intel.com
> Cc: stable at dpdk.org
> 
> Tested-by: Padraig Connolly <padraig.j.connolly at intel.com>
> Signed-off-by: Padraig Connolly <padraig.j.connolly at intel.com>
> ---
>  drivers/net/i40e/i40e_flow.c | 11 +++--------
>  1 file changed, 3 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/net/i40e/i40e_flow.c b/drivers/net/i40e/i40e_flow.c
> index adc5da1c5..8e7a9989b 100644
> --- a/drivers/net/i40e/i40e_flow.c
> +++ b/drivers/net/i40e/i40e_flow.c
> @@ -4649,14 +4649,9 @@ i40e_flow_parse_qinq_pattern(__rte_unused
> struct rte_eth_dev *dev,
>  	}
> 
>  	/* Get filter specification */
> -	if ((o_vlan_mask != NULL) && (o_vlan_mask->tci ==
> -			rte_cpu_to_be_16(I40E_TCI_MASK)) &&
> -			(i_vlan_mask != NULL) &&
> -			(i_vlan_mask->tci ==
> rte_cpu_to_be_16(I40E_TCI_MASK))) {
> -		filter->outer_vlan = rte_be_to_cpu_16(o_vlan_spec->tci)
> -			& I40E_TCI_MASK;
> -		filter->inner_vlan = rte_be_to_cpu_16(i_vlan_spec->tci)
> -			& I40E_TCI_MASK;
> +	if (o_vlan_mask != NULL &&  i_vlan_mask != NULL) {
> +		filter->outer_vlan = rte_be_to_cpu_16(o_vlan_spec->tci);
> +		filter->inner_vlan = rte_be_to_cpu_16(i_vlan_spec->tci);
>  	} else {
>  			rte_flow_error_set(error, EINVAL,
>  					   RTE_FLOW_ERROR_TYPE_ITEM,
> --
> 2.17.1

The following fixes line can be removed:
 Fixes: c2be7f9b232f ("net/i40e: fix parsing QinQ pattern")

As the fix in the above patch is not changed by this fix.

Otherwise 

Acked-by: Bernard Iremonger <bernard.iremonger at intel.com>




More information about the dev mailing list