29/04/2021 12:13, Ori Kam:
> From: Gregory Etelson <getel...@nvidia.com>
> > 
> > Add integrity item definition to the rte_flow_desc_item array.
> > The new entry allows to build RTE flow item from a data stored in
> > rte_flow_item_integrity type.
> > 
> > Add bitmasks to the integrity item value.
> > The masks allow to query multiple integrity filters in a single compare
> > operation.
> > 
> > Fixes: b10a421a1f3b ("ethdev: add packet integrity check flow rules")
> > 
> > Signed-off-by: Gregory Etelson <getel...@nvidia.com>
> > Acked-by: Viacheslav Ovsiienko <viachesl...@nvidia.com>
> > ---
> >  lib/ethdev/rte_flow.c | 1 +
> >  lib/ethdev/rte_flow.h | 9 +++++++++
> >  2 files changed, 10 insertions(+)
> > 
> > diff --git a/lib/ethdev/rte_flow.c b/lib/ethdev/rte_flow.c index
> > c7c7108933..8cb7a069c8 100644
> > --- a/lib/ethdev/rte_flow.c
> > +++ b/lib/ethdev/rte_flow.c
> > @@ -98,6 +98,7 @@ static const struct rte_flow_desc_data
> > rte_flow_desc_item[] = {
> >     MK_FLOW_ITEM(PFCP, sizeof(struct rte_flow_item_pfcp)),
> >     MK_FLOW_ITEM(ECPRI, sizeof(struct rte_flow_item_ecpri)),
> >     MK_FLOW_ITEM(GENEVE_OPT, sizeof(struct
> > rte_flow_item_geneve_opt)),
> > +   MK_FLOW_ITEM(INTEGRITY, sizeof(struct rte_flow_item_integrity)),
> >     MK_FLOW_ITEM(CONNTRACK, sizeof(uint32_t)),  };
> > 
> This fix is correct. 
> 
> > --- a/lib/ethdev/rte_flow.h
> > +++ b/lib/ethdev/rte_flow.h
> > +#define RTE_FLOW_ITEM_INTEGRITY_PKT_OK       RTE_BIT64(0)
> > +#define RTE_FLOW_ITEM_INTEGRITY_L2_OK        RTE_BIT64(1)
> > +#define RTE_FLOW_ITEM_INTEGRITY_L3_OK        RTE_BIT64(2)
> > +#define RTE_FLOW_ITEM_INTEGRITY_L4_OK        RTE_BIT64(3)
> > +#define RTE_FLOW_ITEM_INTEGRITY_L2_CRC_OK    RTE_BIT64(4)
> > +#define RTE_FLOW_ITEM_INTEGRITY_IPV4_CSUM_OK RTE_BIT64(5)
> > +#define RTE_FLOW_ITEM_INTEGRITY_L4_CSUM_OK   RTE_BIT64(6)
> > +#define RTE_FLOW_ITEM_INTEGRITY_L3_LEN_OK    RTE_BIT64(7)
> > +
> 
> I don't think that we need those flags, this means two option for the same 
> API,
> I suggest that we remove the value from the struct.

To make it clear, these flags were for use with
rte_flow_item_integrity.value, but it seems we can just remove
the struct member "value" which was unioned with some bitfields.

> In any case I think this should be in a different thread then the above fix.

I am OK to have such fix, it looks better to remove the union
which leads to duplicate the API.



Reply via email to