On 7/15/2022 9:28 AM, Ding, Xuan wrote:
Hi,

-----Original Message-----
From: Slava Ovsiienko <viachesl...@nvidia.com>
Sent: Friday, July 15, 2022 12:56 AM
To: Ferruh Yigit <ferruh.yi...@xilinx.com>; Ding, Xuan
<xuan.d...@intel.com>; NBU-Contact-Thomas Monjalon (EXTERNAL)
<tho...@monjalon.net>; andrew.rybche...@oktetlabs.ru
Cc: m...@ashroe.eu; dev@dpdk.org; step...@networkplumber.org;
m...@smartsharesystems.com; Zhang, Qi Z <qi.z.zh...@intel.com>;
asek...@marvell.com; pbhagavat...@marvell.com; gr...@u256.net
Subject: RE: [PATCH] doc: announce header split deprecation

-----Original Message-----
From: Ferruh Yigit <ferruh.yi...@xilinx.com>
Sent: Thursday, July 14, 2022 18:58
To: Ding, Xuan <xuan.d...@intel.com>; NBU-Contact-Thomas Monjalon
(EXTERNAL) <tho...@monjalon.net>; andrew.rybche...@oktetlabs.ru;
Slava
Ovsiienko <viachesl...@nvidia.com>
Cc: m...@ashroe.eu; dev@dpdk.org; step...@networkplumber.org;
m...@smartsharesystems.com; Zhang, Qi Z <qi.z.zh...@intel.com>;
asek...@marvell.com; pbhagavat...@marvell.com; gr...@u256.net
Subject: Re: [PATCH] doc: announce header split deprecation

On 7/14/2022 3:07 PM, Ding, Xuan wrote:
Hi,

-----Original Message-----
From: Thomas Monjalon <tho...@monjalon.net>
Sent: Thursday, July 14, 2022 9:25 PM
To: Ding, Xuan <xuan.d...@intel.com>;
andrew.rybche...@oktetlabs.ru; ferruh.yi...@xilinx.com
Cc: m...@ashroe.eu; dev@dpdk.org; step...@networkplumber.org;
m...@smartsharesystems.com; dev@dpdk.org; Zhang, Qi Z
<qi.z.zh...@intel.com>; asek...@marvell.com;
pbhagavat...@marvell.com; gr...@u256.net
Subject: Re: [PATCH] doc: announce header split deprecation

14/07/2022 14:54, Ding, Xuan:
Hi,

From: Thomas Monjalon <tho...@monjalon.net>
14/07/2022 07:50, Ding, Xuan:
From: Thomas Monjalon <tho...@monjalon.net>
23/05/2022 16:20, xuan.d...@intel.com:
From: Xuan Ding <xuan.d...@intel.com>

RTE_ETH_RX_OFFLOAD_HEADER_SPLIT offload was introduced
some
time
ago
to substitute bit-field header_split in struct rte_eth_rxmode.
It allows to enable header split offload with the header size
controlled using split_hdr_size in the same structure.

Right now, no single PMD actually supports
RTE_ETH_RX_OFFLOAD_HEADER_SPLIT with above definition.
Many
examples and test apps initialize the field to 0 explicitly.
The most of drivers simply ignore split_hdr_size since the
offload is not advertised, but
some double-check that its value is 0.

So the RTE_ETH_RX_OFFLOAD_HEADER_SPLIT and
split_header_size
field
will be removed in DPDK 22.11.

Signed-off-by: Xuan Ding <xuan.d...@intel.com>
---
   doc/guides/rel_notes/deprecation.rst | 4 ++++
   1 file changed, 4 insertions(+)

diff --git a/doc/guides/rel_notes/deprecation.rst
b/doc/guides/rel_notes/deprecation.rst
index 4e5b23c53d..b8114f29ed 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -125,3 +125,7 @@ Deprecation Notices
     applications should be updated to use the ``dmadev``
library
instead,
     with the underlying HW-functionality being provided by the
``ioat``
or
     ``idxd`` dma drivers
+
+* ethdev: After bit-field header split was removed, the
+``RTE_ETH_RX_OFFLOAD_HEADER_SPLIT``
+offload and the ``split_hdr_size`` field in structure
+``rte_eth_rxmode`` to enable header split offload are not
+supported in any
PMDs. They will be removed in DPDK 22.11.

It would have been good to talk about rte_eth_rxseg_split which
is similar and configured per-queue.

Thanks for your suggestion.

But I'm a little confused, are you referring that I need to
involve protocol
based buffer split?
About the deprecation of header split, I haven't realized its
connection to
rte_eth_rxseg_split.

What???
In old versions of your patch "ethdev: introduce protocol type
based header split"
you wrote:
"
A new proto field is introduced in the rte_eth_rxseg_split
structure reserved field to specify header protocol type.
With Rx offload flag RTE_ETH_RX_OFFLOAD_HEADER_SPLIT enabled
and
protocol type configured, PMD will split the ingress packets into
two separate regions.
"

It has a long history...
It was corrected in v4 that RTE_ETH_RX_OFFLOAD_HEADER_SPLIT is
used to enable header split offload with the header size
controlled using
"split_hdr_size".
But no single PMD actually supports
RTE_ETH_RX_OFFLOAD_HEADER_SPLIT
for this purpose.
So we finally decide to deprecate this flag.


http://patchwork.dpdk.org/project/dpdk/patch/20220402104109.472078
-
2-w
enxuanx...@intel.com/

In following series, I use RTE_ETH_RX_OFFLOAD_BUFFER_SPLIT instead.
It is for multi-segments packet split. And it still needs a
"proto_hdr" field in
rte_eth_rxmode to configure split location.

I know this history because I was the one asking you to deprecate this.
But it seems you didn't get the big picture.

Currently there are 2 acks, add more PMD maintainers to help
review this deprecation notice for header split, thanks a lot!

I cannot say my feeling strong enough.

So IMO the deprecation for header split is not relevant with
buffer split. But
we can still clean the code.
Hope it make things clearer.

They are almost the same features.
So when deprecating one, it is important to mention what remains.
If needed RTE_ETH_RX_OFFLOAD_BUFFER_SPLIT can still be used and it
is configured per-queue, while RTE_ETH_RX_OFFLOAD_HEADER_SPLIT
was
configurable per-port.

Thanks for your clarification. It's clearer now.
I was trying to figure out the whole history of header split, seems
it is not enough.


Isn't the intention of 'RTE_ETH_RX_OFFLOAD_BUFFER_SPLIT' &
'RTE_ETH_RX_OFFLOAD_HEADER_SPLIT' are different?
Cc'ed Slava for more comment.

Hi, thank you for Cc'ing

Yes, you are right, we have two splitting offloads, and these ones have the
different intentions. As there are no PMDs actually handling
RTE_ETH_RX_OFFLOAD_HEADER_SPLIT, there should be no objections for
this deprecation.

Thanks for helping review.

For 'BUFFER_SPLIT', I think it is clear. As Ferruh explains, it is used for 
splitting packets into multi-segments and multi-mempools based on 
rte_eth_rxseg_split.
Right now only mlx5 supports this offload.

For 'HEADER_SPLIT', IMO it is used for splitting packets into two segments 
based on the split_hdr_size in rte_eth_rxmode.
And header split does not support split into multi-mempools(the same mempool).


I looks like we don't have much details on the intention of the 'HEADER_SPLIT', it is not well documented.

So at this level, we can say that header split and buffer split are the same 
intention (split packets).
The functions supported by header split have been covered by buffer split. And 
no PMD actually supports 'HEADER_SPLIT'.

Please corrects me if my understanding is wrong.

Thanks,
Xuan



Acked-by: Viacheslav Ovsiienko <viachesl...@nvidia.com>



Reply via email to