> -----Original Message----- > From: Ferruh Yigit <ferruh.yi...@xilinx.com> > Sent: Friday, July 15, 2022 7:34 PM > To: Ding, Xuan <xuan.d...@intel.com>; Slava Ovsiienko > <viachesl...@nvidia.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 > > 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.
Yes, since no PMD supports this offload, we should remove it to make code cleaner. Thanks, Xuan > > > 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> > >> > >