> -----Original Message-----
> From: dev <dev-boun...@dpdk.org> On Behalf Of Qiming Yang
> Sent: Tuesday, March 17, 2020 4:18 PM
> To: dev@dpdk.org
> Cc: Yang, Qiming <qiming.y...@intel.com>
> Subject: [dpdk-dev] [PATCH 1/2] net/iavf: support generic flow
> 
> This patch added iavf_flow_create, iavf_flow_destroy, iavf_flow_flush and
> iavf_flow_validate support, these are used to handle all the generic filters.
> 
> This patch supported basic L2, L3, L4 and GTPU patterns.
> 
> Signed-off-by: Qiming Yang <qiming.y...@intel.com>
> ---
>  doc/guides/rel_notes/release_20_05.rst |   5 +
>  drivers/net/iavf/Makefile              |   1 +
>  drivers/net/iavf/iavf.h                |   9 +
>  drivers/net/iavf/iavf_ethdev.c         |  46 ++
>  drivers/net/iavf/iavf_generic_flow.c   | 928
> +++++++++++++++++++++++++++++++++
>  drivers/net/iavf/iavf_generic_flow.h   | 279 ++++++++++
>  drivers/net/iavf/meson.build           |   1 +
>  7 files changed, 1269 insertions(+)
>  create mode 100644 drivers/net/iavf/iavf_generic_flow.c
>  create mode 100644 drivers/net/iavf/iavf_generic_flow.h
> 
> diff --git a/doc/guides/rel_notes/release_20_05.rst
> b/doc/guides/rel_notes/release_20_05.rst
> index 2190eaf..44d375a 100644
> --- a/doc/guides/rel_notes/release_20_05.rst
> +++ b/doc/guides/rel_notes/release_20_05.rst
> @@ -56,6 +56,11 @@ New Features
>       Also, make sure to start the actual text at the margin.
> 
> =========================================================
> 
> +* **Updated the Intel ice driver.**
> +
> +  Updated the Intel ice driver with new features and improvements,
> including:
> +
> +  * Added support for DCF (Device Config Function) feature.

Above comment is not related with this patch, right?

> 
>  Removed Items
>  -------------
....


> +
> +static struct iavf_flow_engine *
> +iavf_parse_engine_create(struct iavf_adapter *ad,
> +             struct rte_flow *flow,
> +             struct iavf_parser_list *parser_list,
> +             const struct rte_flow_item pattern[],
> +             const struct rte_flow_action actions[],
> +             struct rte_flow_error *error)
> +{
> +     struct iavf_flow_engine *engine = NULL;
> +     struct iavf_flow_parser_node *parser_node;
> +     void *temp;
> +     void *meta = NULL;
> +
> +     TAILQ_FOREACH_SAFE(parser_node, parser_list, node, temp) {
> +             if (parser_node->parser->parse_pattern_action(ad,
> +                             parser_node->parser->array,
> +                             parser_node->parser->array_len,
> +                             pattern, actions, &meta, error) < 0)
> +                     continue;
> +
> +             engine = parser_node->parser->engine;
> +             if (engine->create == NULL) {
> +                     rte_flow_error_set(error, EINVAL,
> +                             RTE_FLOW_ERROR_TYPE_HANDLE,
> +                             NULL, "Invalid engine");
> +                     continue;
> +             }

Please sync with below fix for ice
https://patchwork.dpdk.org/patch/66232/

> +
> +             if (!(engine->create(ad, flow, meta, error)))
> +                     return engine;
> +     }
> +     return NULL;
> +}
> +
> +static struct iavf_flow_engine *
> +iavf_parse_engine_validate(struct iavf_adapter *ad,
> +             struct rte_flow *flow,
> +             struct iavf_parser_list *parser_list,
> +             const struct rte_flow_item pattern[],
> +             const struct rte_flow_action actions[],
> +             struct rte_flow_error *error)
> +{
> +     struct iavf_flow_engine *engine = NULL;
> +     struct iavf_flow_parser_node *parser_node;
> +     void *temp;
> +     void *meta = NULL;
> +
> +     TAILQ_FOREACH_SAFE(parser_node, parser_list, node, temp) {
> +             if (parser_node->parser->parse_pattern_action(ad,
> +                             parser_node->parser->array,
> +                             parser_node->parser->array_len,
> +                             pattern, actions, &meta,  error) < 0)
> +                     continue;
> +
Please sync with below fix for ice
https://patchwork.dpdk.org/patch/66232/


> +             engine = parser_node->parser->engine;
> +             if (engine->validation == NULL) {
> +                     rte_flow_error_set(error, EINVAL,
> +                             RTE_FLOW_ERROR_TYPE_HANDLE,
> +                             NULL, "Validation not support");
> +                     continue;
> +             }

Reply via email to