mbox series

[v5,0/3] ethdev: introduce protocol based buffer split

Message ID 20220426111338.1074785-1-wenxuanx.wu@intel.com (mailing list archive)
Headers show
Series ethdev: introduce protocol based buffer split | expand

Message

Wu, WenxuanX April 26, 2022, 11:13 a.m. UTC
From: Wenxuan Wu <wenxuanx.wu@intel.com>

Protocol based 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 aims to support protocol split based on current buffer split.
When Rx queue is configured with RTE_ETH_RX_OFFLOAD_BUFFER_SPLIT
offload and corresponding protocol, packets received will be directly split
into two different mempools.

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 type based buffer split
  app/testpmd: add proto based buffer split config
  net/ice: support proto based buf split in Rx path

 app/test-pmd/cmdline.c                | 118 ++++++++++++++
 app/test-pmd/testpmd.c                |   7 +-
 app/test-pmd/testpmd.h                |   2 +
 drivers/net/ice/ice_ethdev.c          |  10 +-
 drivers/net/ice/ice_rxtx.c            | 217 ++++++++++++++++++++++----
 drivers/net/ice/ice_rxtx.h            |  16 ++
 drivers/net/ice/ice_rxtx_vec_common.h |   3 +
 lib/ethdev/rte_ethdev.c               |  36 ++++-
 lib/ethdev/rte_ethdev.h               |  21 ++-
 9 files changed, 388 insertions(+), 42 deletions(-)