[dpdk-dev] [PATCH v2 2/3] net/i40e: parse QinQ pattern

Lu, Wenzhuo wenzhuo.lu at intel.com
Tue Mar 28 10:45:37 CEST 2017


Hi Bernard,

> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Bernard Iremonger
> Sent: Friday, March 24, 2017 12:39 AM
> To: dev at dpdk.org; Xing, Beilei; Wu, Jingjing
> Cc: Zhang, Helin; Iremonger, Bernard
> Subject: [dpdk-dev] [PATCH v2 2/3] net/i40e: parse QinQ pattern
> 
> add QinQ pattern.
> add i40e_flow_parse_qinq_pattern function.
> add i40e_flow_parse_qinq_filter function.
> 
> Signed-off-by: Bernard Iremonger <bernard.iremonger at intel.com>
> ---
>  drivers/net/i40e/i40e_flow.c | 194
> ++++++++++++++++++++++++++++++++++++++++++-
>  1 file changed, 192 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/i40e/i40e_flow.c b/drivers/net/i40e/i40e_flow.c index
> 8d7765a..e53ab22 100644
> --- a/drivers/net/i40e/i40e_flow.c
> +++ b/drivers/net/i40e/i40e_flow.c

> +/* Pattern matched QINQ */
> +static enum rte_flow_item_type pattern_qinq_1[] = {
> +	RTE_FLOW_ITEM_TYPE_ETH,
> +	RTE_FLOW_ITEM_TYPE_VLAN,
> +	RTE_FLOW_ITEM_TYPE_VLAN,
> +	RTE_FLOW_ITEM_TYPE_END,
> +};

> +
> +	/* Check specification and mask to get the filter type */
> +	if (vlan_spec && vlan_mask &&
> +	    (vlan_mask->tci == rte_cpu_to_be_16(I40E_TCI_MASK))) {
> +		/* If there's inner vlan */
> +		if (vlan_flag)
I think vlan_flag here is always 0, according to defined 'pattern_qinq_1'. Single vlan is not supported.

> +			filter->inner_vlan = rte_be_to_cpu_16(o_vlan_spec-
> >tci)
> +				& I40E_TCI_MASK;
> +		else {
> +			/* There is an inner and outer vlan */
> +			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;
> +		}



More information about the dev mailing list