From: Padraig Connolly Date: Thu, 15 Oct 2020 09:28:58 +0000 (+0100) Subject: net/i40e: fix QinQ flow pattern to allow non full mask X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=ff0df4e134cc6efe75e1ed103b2c7b316b8269e2;p=dpdk.git 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 equal I40E_TCI_MASK (full mask 0xffff). Fixes: d37705068ee8 ("net/i40e: parse QinQ pattern") Cc: stable@dpdk.org Signed-off-by: Padraig Connolly Acked-by: Bernard Iremonger --- diff --git a/drivers/net/i40e/i40e_flow.c b/drivers/net/i40e/i40e_flow.c index adc5da1c53..8e7a9989b3 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,