Intel® Ethernet 800 Series Linux Flow Control

Configuration Guide for RDMA Use Cases

ID Date Version Classification
635330 11/13/2025 Public
Document Table of Contents

Congestion Control Parameter Settings

The Intel® Ethernet 800 Series supports multiple congestion control algorithms for RDMA transports. These algorithms are configurable via configfs, and additional tuning is available through module parameters when using out-of-tree irdma drivers.

Algorithm Transport Description
DCQCN RoCEv2 Combines ECN and PFC to provide scalable, lossless congestion control.
DCTCP RoCEv2, iWARP Uses ECN feedback to adjust transmission rate with fine granularity.
TIMELY RoCEv2, iWARP Latency-based algorithm that adjusts rate based on RTT measurements.
TCP New Reno plus ECN iWARP Traditional TCP congestion control enhanced with ECN support.
Note: Always consult the README_​irdma.txt for the latest information on congestion control support.

To access congestion control settings:

  1. Navigate to the configfs directory after loading the RDMA driver: cd /sys/kernel/config/irdma
  2. Create a new directory for each RDMA device you want to configure. Note: Use ibv_​devices for a list of RDMA devices.

    For example, to create configfs entries for the rdmap<interface> device:

    mkdir rdmap<interface>
  3. List available congestion control attributes: cd rdmap<interface> for f in *; do echo -n "$f: "; cat "$f"; done;

    iWARP mode:

    • iw_​dctcp_​enable: Enables DCTCP congestion control.
    • iw_​ecn_​enable: Enables ECN marking for TCP New Reno.
    • iw_​timely_​enable: Enables latency-based TIMELY algorithm.

    RoCEv2 mode:

    • roce_​dcqcn_​enable: Enables DCQCN congestion control.
    • roce_​dctcp_​enable: Enables DCTCP congestion control.
    • roce_​timely_​enable: Enables latency-based TIMELY algorithm.
  4. Enable or disable the desired algorithms.
    1. To enable an algorithm: echo 1 > <attribute>

      For example, to add ECN marker processing to the default TCP New Reno iWARP congestion control algorithm:

      echo 1 > /sys/kernel/config/irdma/rdmap<interface>/iw_ecn_enable
    2. To disable an algorithm: echo 0 > <attribute>

      For example: echo 0 > /sys/kernel/config/irdma/rdmap<interface>/iw_ecn_enable

    3. To read the current status: cat <attribute>

      Default values:

      • iwarp_​dctcp_​en: off
      • iwarp_​timely_​en: off
      • iwarp_​ecn_​en: ON
      • roce_​timely_​en: off
      • roce_​dctcp_​en: off
      • roce_​dcqcn_​en: off
  5. Remove the configfs directory created above: rmdir /sys/kernel/config/irdma/rdmap<interface> Note:The driver will not unload until you remove the configfs directory.

Advanced Congestion Control Knobs

The following module parameters are available for RoCEv2 DCQCN tuning on Intel® Ethernet 800 Series adapters.

These parameters are only supported when using out-of-tree irdma drivers. They are not available with inbox drivers.

Additionally, ensure that roce_​ena is set to true for these parameters to take effect.

Parameter Description
dcqcn_​enable Enables the DCQCN algorithm for RoCEv2. Note: roce_​ena must also be set to True.
dcqcn_​cc_​cfg_​valid Indicates that all DCQCN parameters are valid and should be updated in the registers or QP context.
dcqcn_​min_​dec_​factor Minimum percentage (1-100) by which the transmit rate can be reduced upon receiving a CNP.
dcqcn_​min_​rate Minimum transmit rate in Mbps.
dcqcn_​F Number of times to stay in each stage of bandwidth recovery.
dcqcn_​T Microseconds to wait before increasing CWND in DCQCN mode.
dcqcn_​B Number of bytes to transmit before updating CWND in DCQCN mode.
dcqcn_​rai_​factor Number of MSS to add to CWND in additive increase mode.
dcqcn_​hai_​factor Number of MSS to add to CWND in hyperactive increase mode.
dcqcn_​rreduce_​mperiod Minimum time between two consecutive rate reductions for a flow, triggered only if a CNP is received.