From: Gregory Etelson <getelson@nvidia.com>
To: Ferruh Yigit <ferruh.yigit@intel.com>, "dev@dpdk.org" <dev@dpdk.org>
Cc: Matan Azrad <matan@nvidia.com>, Ori Kam <orika@nvidia.com>,
Raslan Darawsheh <rasland@nvidia.com>,
"stable@dpdk.org" <stable@dpdk.org>,
Slava Ovsiienko <viacheslavo@nvidia.com>,
Shahaf Shuler <shahafs@nvidia.com>
Subject: Re: [dpdk-dev] [dpdk-stable] [PATCH v3] net/mlx5: fix tunnel offload private items location
Date: Thu, 6 May 2021 06:08:43 +0000 [thread overview]
Message-ID: <BY5PR12MB4834446CAD9C01D08A3AE3ADA5589@BY5PR12MB4834.namprd12.prod.outlook.com> (raw)
In-Reply-To: <303e2815-ac2f-36df-1867-bf398be0306c@intel.com>
Hello Ferruh,
> >> The were some questions around testpmd part of this patch in previous
> >> version, they are not answered and this version is dropping the
> >> testpmd part.
> >>
> >
> > The tunnel offload API allows application to place tunnel offload elements
> at any valid location in a flow rule.
>
> How PMD should detect the tunnel offload elements?
>
Flow elements in tunnel offload rule can be logically divided into two parts:
- application elements that reflect application logic
- tunnel offload related elements. These flow elements are selected by PMD
to implement tunnel offload with respect to underlying hardware.
Application obtains these actions and items from PMD with
rte_flow_tunnel_decap_and_set() and rte_flow_tunnel_match().
Application combines both parts into a flow rule and sends it to PMD.
> And which API are we talking about, is there enough documentation in the
> API about the location of the tunnel offload elements, or should we clarify it
> more?
>
The tunnel offload API was introduced here:
commit 9ec0f97e02e1 ("ethdev: add tunnel offload model").
There is a detailed explanation with examples how the API works.
> > Current testpmd code places tunnel offload items at the beginning of
> > pattern array and tunnel offload actions at the beginning of actions array.
>
> Got it, so this patch is removing false expectation (about the location of the
> tunnel offload elements in flow rule) in the PMD, right?
>
Correct. Location of flow elements supplied by PMD in a rule is not important.
> As far as I understand testpmd already satisfies this false expectation, so
> the problem should not be visible with testpmd.
> Was there a visible user impact, like any application failing because of this
> false expectation, or is this theoretical fix to be correct with API contract?
>
There is no issue with the testpmd code.
The bug was discovered by OVS.
> btw, I can see 'MLX5_RTE_FLOW_ITEM_TYPE_TUNNEL' still checked if it in
> the first location of the items (items[0].type), in 'flow_dv_validate()',
> 'mlx5_flow_dv.c'
> https://git.dpdk.org/dpdk/tree/drivers/net/mlx5/mlx5_flow_dv.c?h=v21.0
> 5-rc1#n6298
> Can you please confirm that this is expected?
>
The `items` variable in that function iterates on pattern array:
for (; items->type != RTE_FLOW_ITEM_TYPE_END; items++) {
In this scenario,
case MLX5_RTE_FLOW_ITEM_TYPE_TUNNEL:
if (items[0].type !=
(typeof(items[0].type))MLX5_RTE_FLOW_ITEM_TYPE_TUNNEL)
compares items with itself.
> > The testpmd patch in v1 & v2 changed location of tunnel offload elements
> in a flow rule.
> >
> >> Is it safe to remove the testpmd part? If so why was the changes for
> >> at first place?
> >>
> >
> > That patch was not a fix - it emphasized general usage of the tunnel
> offload API.
> > Current testpmd code works fine.
> >
> >> And can you please reply to the questions on the testpmd patch for
> >> the record?
> >>
> >
> > I'll add my replies.
> >
> >> Thanks,
> >> Ferruh
> >
> > Regards,
> > Gregory
> >
next prev parent reply other threads:[~2021-05-06 6:08 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-19 13:02 [dpdk-dev] [PATCH 1/2] " Gregory Etelson
2021-04-19 13:02 ` [dpdk-dev] [PATCH 2/2] app/testpmd: " Gregory Etelson
2021-04-23 8:50 ` [dpdk-dev] [dpdk-stable] " Ferruh Yigit
2021-04-25 15:57 ` [dpdk-dev] [PATCH v2 1/2] net/mlx5: " Gregory Etelson
2021-04-25 15:57 ` [dpdk-dev] [PATCH v2 2/2] app/testpmd: " Gregory Etelson
2021-04-30 13:49 ` Ferruh Yigit
2021-04-25 16:28 ` [dpdk-dev] [PATCH v2 1/2] net/mlx5: " Thomas Monjalon
2021-04-25 17:01 ` Gregory Etelson
2021-04-25 17:07 ` Thomas Monjalon
2021-04-26 7:54 ` Ferruh Yigit
2021-04-27 9:27 ` Gregory Etelson
2021-04-29 7:44 ` Gregory Etelson
2021-04-30 13:37 ` Ferruh Yigit
2021-05-04 9:20 ` Gregory Etelson
2021-05-02 8:08 ` [dpdk-dev] [PATCH v3] " Gregory Etelson
2021-05-04 8:10 ` Raslan Darawsheh
2021-05-04 8:20 ` [dpdk-dev] [dpdk-stable] " Ferruh Yigit
2021-05-04 9:12 ` Gregory Etelson
2021-05-05 17:45 ` Ferruh Yigit
2021-05-06 6:08 ` Gregory Etelson [this message]
2021-05-06 7:40 ` Gregory Etelson
2021-05-06 7:59 ` [dpdk-dev] net/mlx5: mellanox cx5/cx6-dx increment "rx_phy_discard_packets" with DPDK rte_flow actions COUNT & DROP Arthas
2021-05-06 10:55 ` Slava Ovsiienko
2021-05-06 9:57 ` [dpdk-dev] [PATCH v4] net/mlx5: fix tunnel offload private items location Gregory Etelson
2021-05-10 12:29 ` Gregory Etelson
2021-05-10 16:10 ` Ferruh Yigit
2021-05-11 22:16 ` Ferruh Yigit
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=BY5PR12MB4834446CAD9C01D08A3AE3ADA5589@BY5PR12MB4834.namprd12.prod.outlook.com \
--to=getelson@nvidia.com \
--cc=dev@dpdk.org \
--cc=ferruh.yigit@intel.com \
--cc=matan@nvidia.com \
--cc=orika@nvidia.com \
--cc=rasland@nvidia.com \
--cc=shahafs@nvidia.com \
--cc=stable@dpdk.org \
--cc=viacheslavo@nvidia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).