[dpdk-dev] [PATCH 1/4] ethdev: add GRE key field to flow API
Jack Min
jackmin at mellanox.com
Mon Jul 1 13:40:38 CEST 2019
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-bounces at dpdk.org> On Behalf Of Xiaoyu Min
> > Sent: Monday, June 24, 2019 6:40 PM
> > To: Adrien Mazarguil <adrien.mazarguil at 6wind.com>; John McNamara
> > <john.mcnamara at intel.com>; Marko Kovacevic
> > <marko.kovacevic at intel.com>; Thomas Monjalon <thomas at monjalon.net>;
> > Ferruh Yigit <ferruh.yigit at intel.com>; Andrew Rybchenko
> > <arybchenko at solarflare.com>
> > Cc: dev at 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 <jackmin at 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
>
More information about the dev
mailing list