[PATCH] app/testpmd: fix tunnel offload validation
Ferruh Yigit
ferruh.yigit at intel.com
Wed Nov 17 11:09:53 CET 2021
On 11/17/2021 8:57 AM, Gregory Etelson wrote:
> Hello Ferruh,
>
> Can you estimate when this patch will be merged into 21.11 ?
>
Hi Gregory,
It is not merged because it is missing review.
Ori, Slava, can you please help with the review?
> 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