[dpdk-dev] [Suspected-Phishing][PATCH v7 1/4] ethdev: add GRE key field to flow API
Slava Ovsiienko
viacheslavo at mellanox.com
Tue Jul 9 07:21:04 CEST 2019
> -----Original Message-----
> From: Xiaoyu Min <jackmin at mellanox.com>
> Sent: Friday, July 5, 2019 12:54
> To: Adrien Mazarguil <adrien.mazarguil at 6wind.com>; Ori Kam
> <orika at mellanox.com>; Slava Ovsiienko <viacheslavo at mellanox.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: [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 <orika at mellanox.com>
> Acked-by: Adrien Mazarguil <adrien.mazarguil at 6wind.com>
> Signed-off-by: Xiaoyu Min <jackmin at mellanox.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo at 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
More information about the dev
mailing list