> -----Original Message----- > From: Xiaoyu Min <jack...@mellanox.com> > Sent: Friday, July 5, 2019 12:54 > To: Adrien Mazarguil <adrien.mazarg...@6wind.com>; Ori Kam > <or...@mellanox.com>; Slava Ovsiienko <viachesl...@mellanox.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: [Suspected-Phishing][PATCH v7 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. > > Acked-by: Ori Kam <or...@mellanox.com> > Acked-by: Adrien Mazarguil <adrien.mazarg...@6wind.com> > Signed-off-by: Xiaoyu Min <jack...@mellanox.com> Acked-by: Viacheslav Ovsiienko <viachesl...@mellanox.com>
> --- > doc/guides/prog_guide/rte_flow.rst | 9 +++++++++ > lib/librte_ethdev/rte_flow.c | 1 + > lib/librte_ethdev/rte_flow.h | 13 +++++++++++++ > 3 files changed, 23 insertions(+) > > diff --git a/doc/guides/prog_guide/rte_flow.rst > b/doc/guides/prog_guide/rte_flow.rst > index a34d012e55..8072fc1664 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``. > + > +- Value to be matched is a big-endian 32 bit integer. > +- When this item present it implicitly match K bit in default mask as "1" > + > Item: ``FUZZY`` > ^^^^^^^^^^^^^^^ > > diff --git a/lib/librte_ethdev/rte_flow.c b/lib/librte_ethdev/rte_flow.c index > 5c4952242f..f617e0304f 100644 > --- a/lib/librte_ethdev/rte_flow.c > +++ b/lib/librte_ethdev/rte_flow.c > @@ -74,6 +74,7 @@ static const struct rte_flow_desc_data > rte_flow_desc_item[] = { > sizeof(struct rte_flow_item_icmp6_nd_opt_tla_eth)), > MK_FLOW_ITEM(MARK, sizeof(struct rte_flow_item_mark)), > MK_FLOW_ITEM(META, sizeof(struct rte_flow_item_meta)), > + MK_FLOW_ITEM(GRE_KEY, sizeof(rte_be32_t)), > }; > > /** Generate flow_action[] entry. */ > diff --git a/lib/librte_ethdev/rte_flow.h b/lib/librte_ethdev/rte_flow.h index > f3a8fb103f..bdb8edee42 100644 > --- a/lib/librte_ethdev/rte_flow.h > +++ b/lib/librte_ethdev/rte_flow.h > @@ -421,6 +421,19 @@ enum rte_flow_item_type { > * See struct rte_flow_item_meta. > */ > RTE_FLOW_ITEM_TYPE_META, > + > + /** > + * Matches a GRE optional key field. > + * > + * The value should a big-endian 32bit integer. > + * > + * When this item present the K bit is implicitly matched as "1" > + * in the default mask. > + * > + * @p spec/mask type: > + * @code rte_be32_t * @endcode > + */ > + RTE_FLOW_ITEM_TYPE_GRE_KEY, > }; > > /** > -- > 2.21.0