[dpdk-dev] [PATCH v6 0/4] ethdev new offloads API

Ferruh Yigit ferruh.yigit at intel.com
Thu Oct 5 02:55:57 CEST 2017


On 10/4/2017 5:12 PM, Ananyev, Konstantin wrote:
> 
> 
>> -----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 [1], 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.
>>
>> [1]
>> http://dpdk.org/ml/archives/dev/2017-August/072643.html
>>
>> 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>

Series applied to dpdk-next-net/master, thanks.


More information about the dev mailing list