DPDK patches and discussions
 help / color / mirror / Atom feed
From: Bruce Richardson <bruce.richardson@intel.com>
To: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
Cc: <dev@dpdk.org>, <anatoly.burakov@intel.com>
Subject: Re: [PATCH] doc: update documentation for ICE DCB and PFC features
Date: Mon, 3 Nov 2025 15:10:55 +0000	[thread overview]
Message-ID: <aQjF_6Gne1Wpk1OM@bricha3-mobl1.ger.corp.intel.com> (raw)
In-Reply-To: <20251103150237.958606-1-vladimir.medvedkin@intel.com>

On Mon, Nov 03, 2025 at 03:02:37PM +0000, Vladimir Medvedkin wrote:
> Add DCB and PFC documentation. Update feature matrix
> and release notes.
> 
> Signed-off-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
> ---
>  doc/guides/nics/features/ice.ini       |  1 +
>  doc/guides/nics/ice.rst                | 74 ++++++++++++++++++++++++++
>  doc/guides/rel_notes/release_25_11.rst |  4 ++
>  3 files changed, 79 insertions(+)
> 

I should have noticed that this was all missing from the original patchset
and flagged it before merge! Sorry.

Anyway, thanks for doing this now - better late than never, as the saying
goes! Review comments inline below.

Thanks,
/Bruce

> diff --git a/doc/guides/nics/features/ice.ini b/doc/guides/nics/features/ice.ini
> index 2703493514..e9796c1eab 100644
> --- a/doc/guides/nics/features/ice.ini
> +++ b/doc/guides/nics/features/ice.ini
> @@ -24,6 +24,7 @@ Scattered Rx         = Y
>  TSO                  = Y
>  Promiscuous mode     = Y
>  Allmulticast mode    = Y
> +DCB                  = Y
>  Unicast MAC filter   = Y
>  RSS hash             = Y
>  RSS key update       = Y
> diff --git a/doc/guides/nics/ice.rst b/doc/guides/nics/ice.rst
> index 7e9ba23102..7fe61daaf3 100644
> --- a/doc/guides/nics/ice.rst
> +++ b/doc/guides/nics/ice.rst
> @@ -447,6 +447,80 @@ and add the ``--force-max-simd-bitwidth=64`` startup parameter to disable vector
>  
>     examples/dpdk-ptpclient -l 0-3 -n 3 -a 0000:ec:00.1 --force-max-simd-bitwidth=64 -- -T 1 -p 0x1 -c 1
>  
> +Data Center Bridging (DCB) and Priority Flow Control (PFC)
> +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> +

Just wondering about the placement of this new section. I would keep the
PTP section and the packet pacing sections together in the doc since
they are both time and timing related. Can you move this new section up to
appear after the DCF one.

> +The ice PMD supports Data Center Bridging (DCB) and Priority Flow Control (PFC).
> +These features enable Quality of Service (QoS) in data center environments by allowing
> +traffic classification and prioritization across multiple traffic classes.
> +
> +DCB Configuration
> +^^^^^^^^^^^^^^^^^
> +
> +DCB can be enabled by configuring the device with ``RTE_ETH_MQ_RX_DCB_FLAG`` in the Rx mode
> +during device configuration.
> +
> +The ice PMD supports:
> +
> +* 4 or 8 traffic classes (TCs)
> +* VLAN Priority to Traffic Class mapping
> +* All TCs configured with Enhanced Transmission Selection (ETS) with even bandwidth allocation
> +* Queues are evenly distributed across configured TCs
> +

The latter two points here are not really config options are they? They
seem more like limitations that should go in a separate list from the
configurable aspects.

> +Requirements:
> +
> +* The number of queues must be evenly divisible by the number of traffic classes
> +* The number of queues per TC must be a power of 2
> +* Traffic classes must be configured contiguously starting from TC 0
> +
> +Example DCB configuration in testpmd:
> +
> +.. code-block:: console
> +
> +   dpdk-testpmd -a 0000:18:00.0 -- -i --nb-cores=8 --rxq=8 --txq=8
> +   port stop 0
> +   port config 0 dcb vt off 4 pfc off
> +   port start 0
> +
> +This configures 4 traffic classes with 2 queues per TC.

Do you want to include a C-code config for app developers as well as just
testpmd instructions?

> +
> +PFC Configuration
> +^^^^^^^^^^^^^^^^^
> +
> +Priority Flow Control (PFC) provides a mechanism to pause and resume traffic
> +on individual traffic classes, enabling lossless Ethernet for specific priorities.
> +
> +PFC can be configured per priority using the ``rte_eth_dev_priority_flow_ctrl_set()`` API.
> +Each traffic class can be independently configured with:
> +
> +* RX pause only
> +* TX pause only
> +* Full duplex pause
> +* No pause (disabled)
> +
> +PFC operates in VLAN-based mode and requires DCB to be configured first.
> +

So this means you need to call APIs in a specific order?

> +Features:
> +
> +* Per-TC pause control (XON/XOFF)
> +* Configurable high/low watermarks for buffer management
> +* Configurable pause quanta
> +* PFC statistics exposed via xstats
> +
> +Example PFC configuration using DPDK API:
> +
> +.. code-block:: c
> +
> +   struct rte_eth_pfc_conf pfc_conf;
> +
> +   pfc_conf.fc.mode = RTE_ETH_FC_FULL;          /* Enable full duplex pause */
> +   pfc_conf.fc.high_water = 100000;              /* High watermark in bytes */
> +   pfc_conf.fc.low_water = 50000;                /* Low watermark in bytes */
> +   pfc_conf.fc.pause_time = 0xFFFF;              /* Pause quanta (in 512 bit-time units) */
> +   pfc_conf.priority = 0;                        /* Configure PFC for priority 0 */
> +
> +   ret = rte_eth_dev_priority_flow_ctrl_set(port_id, &pfc_conf);
> +

Need to align your config examples here. You show a testpmd example for DCB
and a code example for PFC.

>  Tx Packet Pacing
>  ~~~~~~~~~~~~~~~~
>  
> diff --git a/doc/guides/rel_notes/release_25_11.rst b/doc/guides/rel_notes/release_25_11.rst
> index c5ba335cfc..6a35f9f15d 100644
> --- a/doc/guides/rel_notes/release_25_11.rst
> +++ b/doc/guides/rel_notes/release_25_11.rst
> @@ -115,6 +115,10 @@ New Features
>  
>    Added network driver for the Huawei SPx series Network Adapters.
>  
> +* **Added DCB and PFC support to Intel ice net driver.**
> +
> +  Added support for Data Center Bridging (DCB) and Priority Flow Control (PFC) to the Intel ice PMD.
> +
>  * **Added Nebulamatrix nbl ethernet driver.**
>  
>    Added the PMD for Nebulamatrix NICs.
> -- 
> 2.43.0
> 

  reply	other threads:[~2025-11-03 15:11 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-03 15:02 Vladimir Medvedkin
2025-11-03 15:10 ` Bruce Richardson [this message]
2025-11-03 15:50   ` Medvedkin, Vladimir
2025-11-03 15:53     ` Bruce Richardson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aQjF_6Gne1Wpk1OM@bricha3-mobl1.ger.corp.intel.com \
    --to=bruce.richardson@intel.com \
    --cc=anatoly.burakov@intel.com \
    --cc=dev@dpdk.org \
    --cc=vladimir.medvedkin@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).