[dpdk-dev] [PATCH v2 1/4] ethdev: fix integrity flow item
Ori Kam
orika at nvidia.com
Thu Apr 29 12:13:21 CEST 2021
Hi Gregory,
> -----Original Message-----
> From: Gregory Etelson <getelson at 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 <getelson at nvidia.com>
> Acked-by: Viacheslav Ovsiienko <viacheslavo at 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
More information about the dev
mailing list