> -----Original Message----- > From: Xiaoyu Min <[email protected]> > Sent: Tuesday, July 2, 2019 12:46 PM > To: Ori Kam <[email protected]>; Adrien Mazarguil > <[email protected]>; John McNamara > <[email protected]>; Marko Kovacevic > <[email protected]>; Thomas Monjalon <[email protected]>; > Ferruh Yigit <[email protected]>; Andrew Rybchenko > <[email protected]> > Cc: [email protected] > Subject: [Suspected-Phishing][PATCH v4 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 <[email protected]> > --- Acked-by: Ori Kam <[email protected]> Thanks, Ori Kam. > doc/guides/prog_guide/rte_flow.rst | 8 ++++++++ > lib/librte_ethdev/rte_flow.c | 1 + > lib/librte_ethdev/rte_flow.h | 7 +++++++ > 3 files changed, 16 insertions(+) > > diff --git a/doc/guides/prog_guide/rte_flow.rst > b/doc/guides/prog_guide/rte_flow.rst > index a34d012e55..f4b7baa3c3 100644 > --- a/doc/guides/prog_guide/rte_flow.rst > +++ b/doc/guides/prog_guide/rte_flow.rst > @@ -980,6 +980,14 @@ 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 > + > Item: ``FUZZY`` > ^^^^^^^^^^^^^^^ > > diff --git a/lib/librte_ethdev/rte_flow.c b/lib/librte_ethdev/rte_flow.c > index 3277be1edb..f3e56d0bbe 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(rte_be32_t)), > 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..5d3702a44c 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. > + * > + * The value should a big-endian 32bit integer. > + */ > + RTE_FLOW_ITEM_TYPE_GRE_KEY, > + > /** > * [META] > * > -- > 2.21.0

