[PATCH] app/testpmd: fix tunnel offload validation
Gregory Etelson
getelson at nvidia.com
Wed Nov 17 09:57:54 CET 2021
Hello Ferruh,
Can you estimate when this patch will be merged into 21.11 ?
Thank you.
Regards,
Gregory
> -----Original Message-----
> From: Gregory Etelson <getelson at nvidia.com>
> Sent: Tuesday, November 2, 2021 14:24
> To: dev at dpdk.org; Gregory Etelson
> <getelson at nvidia.com>
> Cc: Matan Azrad <matan at nvidia.com>; Raslan
> Darawsheh <rasland at nvidia.com>;
> stable at dpdk.org; Xiaoyun Li
> <xiaoyun.li at intel.com>
> Subject: [PATCH] app/testpmd: fix tunnel offload
> validation
>
> Tunnel offload API allows application to restore
> packet to
> its original form if chain of flows missed after
> DECAP action.
> The main idea of the tunnel offload API was to
> query port PMD
> to provide flow elements - actions or items.
> Flow elements supplied by PMD are merged with
> original flow rule
> elements provided by testpmd operator to
> create a new flow rule,
> optimal for PMD, to implement the tunnel
> offload API.
> That flow rule transformation is hidden form
> testpmd operator and uses
> internal testpmd resources.
>
> Current testpmd did not release tunnel offload
> resources if flow rule
> validation failed.
>
> The patch always releases tunnel offload
> resources after flow rule
> validation returns.
>
> Cc: stable at dpdk.org
>
> Fixes: 1b9f274623b8 ("app/testpmd: add
> commands for tunnel offload")
>
> Signed-off-by: Gregory Etelson
> <getelson at nvidia.com>
> ---
> app/test-pmd/config.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/app/test-pmd/config.c b/app/test-
> pmd/config.c
> index a18871d461..4870aaeba6 100644
> --- a/app/test-pmd/config.c
> +++ b/app/test-pmd/config.c
> @@ -2011,6 +2011,7 @@
> port_flow_validate(portid_t port_id,
> struct rte_flow_error error;
> struct port_flow_tunnel *pft = NULL;
> struct rte_port *port;
> + int ret;
>
> if (port_id_is_invalid(port_id,
> ENABLED_WARN) ||
> port_id == (portid_t)RTE_PORT_ALL)
> @@ -2037,10 +2038,11 @@
> port_flow_validate(portid_t port_id,
> if (pft->actions)
> actions = pft->actions;
> }
> - if (rte_flow_validate(port_id, attr,
> pattern, actions, &error))
> - return
> port_flow_complain(&error);
> + ret = rte_flow_validate(port_id, attr,
> pattern, actions, &error);
> if (tunnel_ops->enabled)
>
> port_flow_tunnel_offload_cmd_release(
> port_id, tunnel_ops, pft);
> + if (ret)
> + return
> port_flow_complain(&error);
> printf("Flow rule validated\n");
> return 0;
> }
> --
> 2.33.1
More information about the dev
mailing list