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

Iremonger, Bernard bernard.iremonger at intel.com
Tue Mar 28 13:12:01 CEST 2017


Hi Wenzhuo,

> -----Original Message-----
> From: Lu, Wenzhuo
> Sent: Tuesday, March 28, 2017 9:46 AM
> To: Iremonger, Bernard <bernard.iremonger at intel.com>; dev at dpdk.org;
> Xing, Beilei <beilei.xing at intel.com>; Wu, Jingjing <jingjing.wu at intel.com>
> Cc: Zhang, Helin <helin.zhang at intel.com>; Iremonger, Bernard
> <bernard.iremonger at intel.com>
> Subject: RE: [dpdk-dev] [PATCH v2 2/3] net/i40e: parse QinQ pattern
> 
> 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.

I will check.
> 
> > +			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;
> > +		}

Regards,

Bernard.



More information about the dev mailing list