mbox series

[v8,0/3] ethdev: introduce protocol type based header split

Message ID 20220601135059.958882-1-wenxuanx.wu@intel.com (mailing list archive)
Headers
Series ethdev: introduce protocol type based header split |

Message

Wu, WenxuanX June 1, 2022, 1:50 p.m. UTC
  From: Wenxuan Wu <wenxuanx.wu@intel.com>

Buffer split consists of splitting a received packet into two separate
regions based on the packet content. It is useful in some scenarios,
such as GPU acceleration. The splitting will help to enable true zero
copy and hence improve the performance significantly.

This patchset extends the current buffer split to support multi protocol
headers split. When Rx queue is configured with buffer split feature,
packets received will be directly splitted into two different mempools.

v6->v7:
*fix supported header protocol check.
*add rxhdrs commands and parameters.
v5->v6:
*Change doc and designi of struct rte_eth_rxseg_split, support multi
segments protocol_hdr configuration.
v4->v5:
* Use protocol and mbuf_offset based buffer split instead of header split.
* Use RTE_PTYPE* instead of enum rte_eth_rx_header_split_protocol_type.
* Improve the description of rte_eth_rxseg_split.proto.

v3->v4:
* Use RTE_ETH_RX_HEADER_SPLIT_NONE instead of 0.

v2->v3:
* Fix a PMD bug.
* Add rx queue header split check.
* Revise the log and doc.

v1->v2:
* Add support for all header split protocol types.

Wenxuan Wu (3):
  ethdev: introduce protocol header based buffer split
  net/ice: support buffer split in Rx path
  app/testpmd: add rxhdrs commands and parameters

 app/test-pmd/cmdline.c                | 127 ++++++++++++++-
 app/test-pmd/config.c                 |  81 ++++++++++
 app/test-pmd/parameters.c             |  15 +-
 app/test-pmd/testpmd.c                |   6 +-
 app/test-pmd/testpmd.h                |   6 +
 drivers/net/ice/ice_ethdev.c          |  10 +-
 drivers/net/ice/ice_rxtx.c            | 220 ++++++++++++++++++++++----
 drivers/net/ice/ice_rxtx.h            |  16 ++
 drivers/net/ice/ice_rxtx_vec_common.h |   3 +
 lib/ethdev/rte_ethdev.c               |  40 ++++-
 lib/ethdev/rte_ethdev.h               |  28 +++-
 11 files changed, 505 insertions(+), 47 deletions(-)
  

Comments

Andrew Rybchenko June 2, 2022, 1:20 p.m. UTC | #1
On 6/1/22 16:50, wenxuanx.wu@intel.com wrote:
> From: Wenxuan Wu <wenxuanx.wu@intel.com>
> 
> Buffer split consists of splitting a received packet into two separate

'two' is misleading above. Buffer split supports many segments.

> regions based on the packet content.

As far as I know buffer split is not based on packet content.

> It is useful in some scenarios,
> such as GPU acceleration. The splitting will help to enable true zero
> copy and hence improve the performance significantly.
> 
> This patchset extends the current buffer split to support multi protocol
> headers split. When Rx queue is configured with buffer split feature,
> packets received will be directly splitted into two different mempools.

v8?

> 
> v6->v7:
> *fix supported header protocol check.
> *add rxhdrs commands and parameters.
> v5->v6:
> *Change doc and designi of struct rte_eth_rxseg_split, support multi
> segments protocol_hdr configuration.
> v4->v5:
> * Use protocol and mbuf_offset based buffer split instead of header split.
> * Use RTE_PTYPE* instead of enum rte_eth_rx_header_split_protocol_type.
> * Improve the description of rte_eth_rxseg_split.proto.
> 
> v3->v4:
> * Use RTE_ETH_RX_HEADER_SPLIT_NONE instead of 0.
> 
> v2->v3:
> * Fix a PMD bug.
> * Add rx queue header split check.
> * Revise the log and doc.
> 
> v1->v2:
> * Add support for all header split protocol types.
> 
> Wenxuan Wu (3):
>    ethdev: introduce protocol header based buffer split
>    net/ice: support buffer split in Rx path
>    app/testpmd: add rxhdrs commands and parameters
> 
>   app/test-pmd/cmdline.c                | 127 ++++++++++++++-
>   app/test-pmd/config.c                 |  81 ++++++++++
>   app/test-pmd/parameters.c             |  15 +-
>   app/test-pmd/testpmd.c                |   6 +-
>   app/test-pmd/testpmd.h                |   6 +
>   drivers/net/ice/ice_ethdev.c          |  10 +-
>   drivers/net/ice/ice_rxtx.c            | 220 ++++++++++++++++++++++----
>   drivers/net/ice/ice_rxtx.h            |  16 ++
>   drivers/net/ice/ice_rxtx_vec_common.h |   3 +
>   lib/ethdev/rte_ethdev.c               |  40 ++++-
>   lib/ethdev/rte_ethdev.h               |  28 +++-
>   11 files changed, 505 insertions(+), 47 deletions(-)
>