> -----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

Reply via email to