[dpdk-dev] [PATCH v6 0/4] ethdev new offloads API
konstantin.ananyev at intel.com
Wed Oct 4 18:12:57 CEST 2017
> -----Original Message-----
> From: Shahaf Shuler [mailto:shahafs at mellanox.com]
> Sent: Wednesday, October 4, 2017 9:18 AM
> To: Ananyev, Konstantin <konstantin.ananyev at intel.com>; thomas at monjalon.net; arybchenko at solarflare.com;
> jerin.jacob at caviumnetworks.com; Yigit, Ferruh <ferruh.yigit at intel.com>
> Cc: dev at dpdk.org
> Subject: [PATCH v6 0/4] ethdev new offloads API
> Tx offloads configuration is per queue. Tx offloads are enabled by default,
> and can be disabled using ETH_TXQ_FLAGS_NO* flags.
> This behaviour is not consistent with the Rx side where the Rx offloads
> configuration is per port. Rx offloads are disabled by default and enabled
> according to bit field in rte_eth_rxmode structure.
> Moreover, considering more Tx and Rx offloads will be added
> over time, the cost of managing them all inside the PMD will be tremendous,
> as the PMD will need to check the matching for the entire offload set
> for each mbuf it handles.
> In addition, on the current approach each Rx offload added breaks the
> ABI compatibility as it requires to add entries to existing bit-fields.
> The series address above issues by defining a new offloads API.
> In the new API, offloads are divided into per-port and per-queue offloads,
> with a corresponding capability for each.
> The offloads are disabled by default. Each offload can be enabled or
> disabled using the existing DEV_TX_OFFLOADS_* or DEV_RX_OFFLOADS_* flags.
> Such API will enable to easily add or remove offloads, without breaking the
> ABI compatibility.
> In order to provide a smooth transition between the APIs the following actions
> were taken:
> * The old offloads API is kept for the meanwhile.
> * Helper function which copy from old to new API were added to ethdev,
> enabling the PMD to support only one of the APIs.
> * Helper function which copy from new to old API were also added,
> to enable application to use the new API with PMD which still supports
> the old one.
> Per discussion made on the RFC of this series , the integration plan which was
> decided is to do the transition in two phases:
> * ethdev API will move on 17.11.
> * Apps and examples will move on 18.02.
> This to enable PMD maintainers sufficient time to adopt the new API.
> on v6:
> - Move mbuf fast free Tx offload to a seperate patch.
> on v5:
> - Fix documentation.
> - Fix comments on port offloads configuration.
> on v4:
> - Added another patch for documentation.
> - Fixed ETH_TXQ_FLAGS_IGNORE flag override.
> - Clarify the description of DEV_TX_OFFLOAD_MBUF_FAST_FREE offload.
> on v3:
> - Introduce the DEV_TX_OFFLOAD_MBUF_FAST_FREE to act as an equivalent
> for the no refcnt and single mempool flags.
> - Fix features documentation.
> - Fix comment style.
> on v2:
> - Taking new approach of dividing offloads into per-queue and per-port one.
> - Postpone the Tx/Rx public struct renaming to 18.02
> - Squash the helper functions into the Rx/Tx offloads intro patches.
> Shahaf Shuler (4):
> ethdev: introduce Rx queue offloads API
> ethdev: introduce Tx queue offloads API
> ethdev: add mbuf fast free Tx offload
> doc: add details on ethdev offloads API
> doc/guides/nics/features.rst | 66 +++++---
> doc/guides/nics/features/default.ini | 1 +
> doc/guides/prog_guide/poll_mode_drv.rst | 20 +++
> lib/librte_ether/rte_ethdev.c | 223 +++++++++++++++++++++++++--
> lib/librte_ether/rte_ethdev.h | 89 ++++++++++-
> 5 files changed, 359 insertions(+), 40 deletions(-)
> Series-reviewed-by: Andrew Rybchenko <arybchenko at solarflare.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev at intel.com>
More information about the dev