DPDK patches and discussions
 help / color / mirror / Atom feed
* [RFC PATCH 0/6] ethdev: refactor and extend DCB configuration API
@ 2025-08-30 17:17 Vladimir Medvedkin
  2025-08-30 17:17 ` [RFC PATCH 1/6] ethdev: extend and refactor DCB configuration Vladimir Medvedkin
                   ` (6 more replies)
  0 siblings, 7 replies; 18+ messages in thread
From: Vladimir Medvedkin @ 2025-08-30 17:17 UTC (permalink / raw)
  To: dev; +Cc: bruce.richardson, anatoly.burakov, thomas, andrew.rybchenko, stephen

Hi all,

This series reworks the ethdev API related to advanced queueing configuration,
specifically Data Center Bridging (DCB) and Virtual Machine Device Queues
(VMDq). The existing API was designed years ago around ixgbe hardware
assumptions, which makes it difficult to properly support modern NICs and their
more flexible capabilities.

The main goals of this refactoring are:

Unify duplicated DCB configuration structures for Tx and Rx.

Extend the API to better align with the DCB specification (e.g., TSA, per-TC
bandwidth allocation).

Decouple VMDq and DCB configuration so they can be used independently.

Enable explicit configuration of queue mappings instead of relying on
driver-specific behavior.

Clean up legacy or redundant fields that were artifacts of early
implementations.

Place multi-queue mode settings in a more consistent location within the
configuration API.

Overall, this makes the API more expressive, more consistent, and more
future-proof for modern hardware, while simplifying driver implementations.

Patch summary:

ethdev: extend and refactor DCB configuration
Introduce a common structure for Rx/Tx DCB configuration and extend it with missing DCB spec features.

ethdev: remove nb_tcs from rte_eth_dcb_conf structure
Drop legacy traffic class count field which drivers can derive from config.

ethdev: decouple VMDq and DCB configuration
Remove unnecessary coupling and redundant structures

ethdev: extend VMDq/DCB configuration with queue mapping
Allow explicit queue mapping configuration in API.

ethdev: remove dcb_capability_en from rte_eth_conf
Drop unused or misused DCB capability flags in favor of per-TC PFC API.

ethdev: move mq_mode to [r,t]x_adv_conf
Relocate mq_mode to advanced config, and make it a flag field.

This is an API-breaking series, but it is expected to make the interface cleaner
and more aligned with modern NIC capabilities. Feedback on both the design
direction and implementation details is very welcome.

Note: This RFC series reflects changes only for ice PMD and testpmd app
(no other drivers or examples apps was changed) and depends on:
https://patches.dpdk.org/project/dpdk/list/?series=35948
thus configure your build like:
meson setup -Denable_drivers=net/intel/ice

Vladimir Medvedkin (6):
  ethdev: extend and refactor DCB configuration
  ethdev: remove nb_tcs from rte_eth_dcb_conf structure
  ethdev: decouple VMDq and DCB cofiguration
  ethdev: extend VMDq/DCB configuration with queue mapping
  ethdev: remove dcb_capability_en from rte_eth_conf
  ethdev: move mq_mode to [r,t]x_adv_conf

 app/graph/ethdev.c                       |   6 +-
 app/test-eventdev/test_perf_common.c     |   4 +-
 app/test-eventdev/test_pipeline_common.c |   4 +-
 app/test-pipeline/init.c                 |   2 +-
 app/test-pmd/cmdline.c                   |  27 +---
 app/test-pmd/parameters.c                |   4 +-
 app/test-pmd/testpmd.c                   | 153 +++++++++++---------
 app/test-pmd/testpmd.h                   |   5 +-
 app/test/test_event_eth_rx_adapter.c     |   4 +-
 app/test/test_link_bonding.c             |   4 +-
 app/test/test_link_bonding_rssconf.c     |   8 +-
 app/test/test_pmd_perf.c                 |   4 +-
 app/test/test_security_inline_macsec.c   |  12 +-
 app/test/test_security_inline_proto.c    |  12 +-
 drivers/net/intel/ice/ice_dcf.c          |   2 +-
 drivers/net/intel/ice/ice_dcf_ethdev.c   |   2 +-
 drivers/net/intel/ice/ice_ethdev.c       | 137 ++++++++++--------
 drivers/net/intel/ice/ice_rxtx.c         |  27 ++--
 lib/ethdev/ethdev_trace.h                |   4 +-
 lib/ethdev/rte_ethdev.c                  |  10 +-
 lib/ethdev/rte_ethdev.h                  | 169 ++++++++---------------
 21 files changed, 294 insertions(+), 306 deletions(-)

-- 
2.43.0


^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2025-08-31 15:57 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-08-30 17:17 [RFC PATCH 0/6] ethdev: refactor and extend DCB configuration API Vladimir Medvedkin
2025-08-30 17:17 ` [RFC PATCH 1/6] ethdev: extend and refactor DCB configuration Vladimir Medvedkin
2025-08-30 19:52   ` Ivan Malov
2025-08-31 15:00     ` Vladimir Medvedkin
2025-08-30 19:57   ` Ivan Malov
2025-08-31 15:01     ` Vladimir Medvedkin
2025-08-30 17:17 ` [RFC PATCH 2/6] ethdev: remove nb_tcs from rte_eth_dcb_conf structure Vladimir Medvedkin
2025-08-30 17:17 ` [RFC PATCH 3/6] ethdev: decouple VMDq and DCB cofiguration Vladimir Medvedkin
2025-08-30 17:17 ` [RFC PATCH 4/6] ethdev: extend VMDq/DCB configuration with queue mapping Vladimir Medvedkin
2025-08-30 20:36   ` Ivan Malov
2025-08-31 15:09     ` Vladimir Medvedkin
2025-08-31 15:57       ` Ivan Malov
2025-08-30 17:17 ` [RFC PATCH 5/6] ethdev: remove dcb_capability_en from rte_eth_conf Vladimir Medvedkin
2025-08-30 20:46   ` Ivan Malov
2025-08-30 20:49   ` Ivan Malov
2025-08-30 17:17 ` [RFC PATCH 6/6] ethdev: move mq_mode to [r,t]x_adv_conf Vladimir Medvedkin
2025-08-30 21:13 ` [RFC PATCH 0/6] ethdev: refactor and extend DCB configuration API Ivan Malov
2025-08-31 14:55   ` Vladimir Medvedkin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).