On Mon, 19-07-01, 13:40, Ori Kam wrote: > Hi Jack, > > I know I acked this patch, but after Dekel patch, > https://patches.dpdk.org/patch/55667/ > > Where it was decided to remove structures for just one variable, > and simply use the value. I wish if possible that you will also modify this > patch to match this new convention. > > OK, I'll remove the struct in v2 patch for the new convention.
> Thanks, > Ori Kam > > > -----Original Message----- > > From: dev <dev-boun...@dpdk.org> On Behalf Of Xiaoyu Min > > Sent: Monday, June 24, 2019 6:40 PM > > To: Adrien Mazarguil <adrien.mazarg...@6wind.com>; John McNamara > > <john.mcnam...@intel.com>; Marko Kovacevic > > <marko.kovace...@intel.com>; Thomas Monjalon <tho...@monjalon.net>; > > Ferruh Yigit <ferruh.yi...@intel.com>; Andrew Rybchenko > > <arybche...@solarflare.com> > > Cc: dev@dpdk.org > > Subject: [dpdk-dev] [PATCH 1/4] ethdev: add GRE key field to flow API > > > > Add new rte_flow_item_gre_key in order to match the optional key field. > > > > Signed-off-by: Xiaoyu Min <jack...@mellanox.com> > > --- > > doc/guides/prog_guide/rte_flow.rst | 9 +++++++++ > > lib/librte_ethdev/rte_flow.c | 1 + > > lib/librte_ethdev/rte_flow.h | 27 +++++++++++++++++++++++++++ > > 3 files changed, 37 insertions(+) > > > > diff --git a/doc/guides/prog_guide/rte_flow.rst > > b/doc/guides/prog_guide/rte_flow.rst > > index a34d012e55..e900a53e3c 100644 > > --- a/doc/guides/prog_guide/rte_flow.rst > > +++ b/doc/guides/prog_guide/rte_flow.rst > > @@ -980,6 +980,15 @@ Matches a GRE header. > > - ``protocol``: protocol type. > > - Default ``mask`` matches protocol only. > > > > +Item: ``GRE_KEY`` > > +^^^^^^^^^^^^^^^^^ > > + > > +Matches a GRE key field. > > +This should be preceded by item ``GRE`` > > + > > +- ``key``: key value. > > +- Default ``mask`` matches key only. > > + > > Item: ``FUZZY`` > > ^^^^^^^^^^^^^^^ > > > > diff --git a/lib/librte_ethdev/rte_flow.c b/lib/librte_ethdev/rte_flow.c > > index 3277be1edb..1cd5f4d263 100644 > > --- a/lib/librte_ethdev/rte_flow.c > > +++ b/lib/librte_ethdev/rte_flow.c > > @@ -55,6 +55,7 @@ static const struct rte_flow_desc_data > > rte_flow_desc_item[] = { > > MK_FLOW_ITEM(NVGRE, sizeof(struct rte_flow_item_nvgre)), > > MK_FLOW_ITEM(MPLS, sizeof(struct rte_flow_item_mpls)), > > MK_FLOW_ITEM(GRE, sizeof(struct rte_flow_item_gre)), > > + MK_FLOW_ITEM(GRE_KEY, sizeof(struct rte_flow_item_gre_key)), > > MK_FLOW_ITEM(FUZZY, sizeof(struct rte_flow_item_fuzzy)), > > MK_FLOW_ITEM(GTP, sizeof(struct rte_flow_item_gtp)), > > MK_FLOW_ITEM(GTPC, sizeof(struct rte_flow_item_gtp)), > > diff --git a/lib/librte_ethdev/rte_flow.h b/lib/librte_ethdev/rte_flow.h > > index f3a8fb103f..a708ccd53b 100644 > > --- a/lib/librte_ethdev/rte_flow.h > > +++ b/lib/librte_ethdev/rte_flow.h > > @@ -289,6 +289,13 @@ enum rte_flow_item_type { > > */ > > RTE_FLOW_ITEM_TYPE_GRE, > > > > + /** > > + * Matches a GRE optional key field. > > + * > > + * See struct rte_flow_item_gre_key. > > + */ > > + RTE_FLOW_ITEM_TYPE_GRE_KEY, > > + > > /** > > * [META] > > * > > @@ -856,6 +863,26 @@ static const struct rte_flow_item_gre > > rte_flow_item_gre_mask = { > > }; > > #endif > > > > +/** > > + * RTE_FLOW_ITEM_GRE_KEY. > > + * > > + * Matches the presence of a GRE key. > > + * > > + * Normally preceding by: > > + * > > + * - RTE_FLOW_ITEM_TYPE_GRE > > + */ > > +struct rte_flow_item_gre_key { > > + rte_be32_t key; /**< Application specific key value (K bit). */ > > +}; > > + > > +/** Default mask for RTE_FLOW_ITEM_TYPE_GRE_KEY. */ > > +#ifndef __cplusplus > > +static const struct rte_flow_item_gre_key rte_flow_item_gre_key_mask = { > > + .key = RTE_BE32(UINT32_MAX), > > +}; > > +#endif > > + > > /** > > * RTE_FLOW_ITEM_TYPE_FUZZY > > * > > -- > > 2.21.0 >