* [PATCH] doc: update documentation for ICE DCB and PFC features
@ 2025-11-03 15:02 Vladimir Medvedkin
2025-11-03 15:10 ` Bruce Richardson
0 siblings, 1 reply; 4+ messages in thread
From: Vladimir Medvedkin @ 2025-11-03 15:02 UTC (permalink / raw)
To: dev; +Cc: bruce.richardson, anatoly.burakov
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(+)
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)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+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
+
+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.
+
+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.
+
+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);
+
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
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] doc: update documentation for ICE DCB and PFC features
2025-11-03 15:02 [PATCH] doc: update documentation for ICE DCB and PFC features Vladimir Medvedkin
@ 2025-11-03 15:10 ` Bruce Richardson
2025-11-03 15:50 ` Medvedkin, Vladimir
0 siblings, 1 reply; 4+ messages in thread
From: Bruce Richardson @ 2025-11-03 15:10 UTC (permalink / raw)
To: Vladimir Medvedkin; +Cc: dev, anatoly.burakov
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
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] doc: update documentation for ICE DCB and PFC features
2025-11-03 15:10 ` Bruce Richardson
@ 2025-11-03 15:50 ` Medvedkin, Vladimir
2025-11-03 15:53 ` Bruce Richardson
0 siblings, 1 reply; 4+ messages in thread
From: Medvedkin, Vladimir @ 2025-11-03 15:50 UTC (permalink / raw)
To: Bruce Richardson; +Cc: dev, anatoly.burakov
Hi Bruce, thanks for reviewing, will send v2 addressing your comments
On 11/3/2025 3:10 PM, Bruce Richardson wrote:
> 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
>
<snip>
>> +
>> +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?
Yes, first we need to enable DCB with rte_eth_dev_configure(), then PFC
can be configured on each individual TC. Generally speaking, PFC is a
part of DCB standard so it should be obvious to configure DCB first.
>
<snip>
>> --
>> 2.43.0
>>
--
Regards,
Vladimir
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] doc: update documentation for ICE DCB and PFC features
2025-11-03 15:50 ` Medvedkin, Vladimir
@ 2025-11-03 15:53 ` Bruce Richardson
0 siblings, 0 replies; 4+ messages in thread
From: Bruce Richardson @ 2025-11-03 15:53 UTC (permalink / raw)
To: Medvedkin, Vladimir; +Cc: dev, anatoly.burakov
On Mon, Nov 03, 2025 at 03:50:59PM +0000, Medvedkin, Vladimir wrote:
> Hi Bruce, thanks for reviewing, will send v2 addressing your comments
>
> On 11/3/2025 3:10 PM, Bruce Richardson wrote:
> > 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
> >
> <snip>
> > > +
> > > +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?
>
> Yes, first we need to enable DCB with rte_eth_dev_configure(), then PFC can
> be configured on each individual TC. Generally speaking, PFC is a part of
> DCB standard so it should be obvious to configure DCB first.
>
I wouldn't assume its obvious. Maybe have a combined C-code example in the
docs for configuring both.
/Bruce
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-11-03 15:54 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-11-03 15:02 [PATCH] doc: update documentation for ICE DCB and PFC features Vladimir Medvedkin
2025-11-03 15:10 ` Bruce Richardson
2025-11-03 15:50 ` Medvedkin, Vladimir
2025-11-03 15:53 ` Bruce Richardson
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).