Hi Wenzhuo,

> -----Original Message-----
> From: Lu, Wenzhuo
> Sent: Tuesday, March 28, 2017 9:46 AM
> To: Iremonger, Bernard <bernard.iremon...@intel.com>; dev@dpdk.org;
> Xing, Beilei <beilei.x...@intel.com>; Wu, Jingjing <jingjing...@intel.com>
> Cc: Zhang, Helin <helin.zh...@intel.com>; Iremonger, Bernard
> <bernard.iremon...@intel.com>
> Subject: RE: [dpdk-dev] [PATCH v2 2/3] net/i40e: parse QinQ pattern
> 
> Hi Bernard,
> 
> > -----Original Message-----
> > From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Bernard
> Iremonger
> > Sent: Friday, March 24, 2017 12:39 AM
> > To: dev@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.iremon...@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.

Reply via email to