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 <getel...@mellanox.com> > Acked-by: Ori Kam <or...@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. Also it is absolutely unclear why sizeof(void *) is a right size for PMD private flow items.