[dpdk-dev] [PATCH 1/2] ethdev: allow negative values in flow rule types
Gregory Etelson
getelson at nvidia.com
Wed Aug 19 16:33:34 CEST 2020
> -----Original Message-----
> From: Andrew Rybchenko <arybchenko at solarflare.com>
> Sent: Sunday, July 5, 2020 16:34
> To: Gregory Etelson <getelson at mellanox.com>; dev at dpdk.org
> Cc: Matan Azrad <matan at mellanox.com>; Raslan Darawsheh
> <rasland at mellanox.com>; Ori Kam <orika at mellanox.com>
> Subject: Re: [dpdk-dev] [PATCH 1/2] ethdev: allow negative values in
> flow rule types
>
> On 6/25/20 7:03 PM, Gregory Etelson wrote:
> > RTE flow items & actions use positive values in item & action type.
> > Negative values are reserved for PMD private types. PMD items &
> > actions usually are not exposed to application and are not used to
> > create RTE flows.
> >
> > The patch allows applications with access to PMD flow items &
> > actions ability to integrate RTE and PMD items & actions and use
> > them to create flow rule.
> >
> > Signed-off-by: Gregory Etelson <getelson at mellanox.com>
> > Acked-by: Ori Kam <orika at mellanox.com>
> > ---
> > lib/librte_ethdev/rte_flow.c | 30 ++++++++++++++++++++++++------
> > 1 file changed, 24 insertions(+), 6 deletions(-)
> >
> > diff --git a/lib/librte_ethdev/rte_flow.c
> > b/lib/librte_ethdev/rte_flow.c index 1685be5f73..c19d25649f 100644
> > --- a/lib/librte_ethdev/rte_flow.c
> > +++ b/lib/librte_ethdev/rte_flow.c
> > @@ -563,7 +563,12 @@ rte_flow_conv_item_spec(void *buf, const size_t
> size,
> > }
> > break;
> > default:
> > - off = rte_flow_desc_item[item->type].size;
> > + /**
> > + * allow PMD private flow item
> > + */
> > + off = (uint32_t)item->type <= INT_MAX ?
> > + rte_flow_desc_item[item->type].size :
> > + sizeof(void *);
>
> May be it is out-of-scope of the patch (strictly speaking), but usage of 'off'
> variable is very misleading here. It is not used as an offset. It is
> used as a size to copy.
>
The 'off' variable in that scope refers to object size to copy.
I did not change it because it's not related to proposed change.
> Also it is absolutely unclear why sizeof(void *) is a right size for
> PMD private flow items.
RTE flow library functions cannot work with PMD private items & actions (elements)
because RTE flow has no API to query PMD flow object size . In the patch,
PMD flow elements use object pointer. RTE flow library functions handle PMD element object size
as size of a pointer. PMD handles its objects internally.
More information about the dev
mailing list