Hi Gregory, > -----Original Message----- > From: Gregory Etelson <getel...@nvidia.com> > Sent: Thursday, April 29, 2021 9:17 AM > Subject: [PATCH v2 1/4] ethdev: fix integrity flow item > > 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.
> diff --git a/lib/ethdev/rte_flow.h b/lib/ethdev/rte_flow.h index > 94c8c1ccc8..147fdefcae 100644 > --- a/lib/ethdev/rte_flow.h > +++ b/lib/ethdev/rte_flow.h > @@ -1738,6 +1738,15 @@ struct rte_flow_item_integrity { > }; > }; > > +#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. In any case I think this should be in a different thread then the above fix. > #ifndef __cplusplus > static const struct rte_flow_item_integrity rte_flow_item_integrity_mask = > { > -- > 2.31.1 Best, Ori