Intel® Ethernet 800 Series Linux Flow Control
Configuration Guide for RDMA Use Cases
Congestion Control Parameter Settings
Congestion control settings are accessed through configfs. Additional DCQCN tunings are available via module parameters can be tuned when using out of tree irdma driver.
To access congestion control settings:
- After driver load, change to the irdma configfs directory:
cd /sys/kernel/config/irdma - 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> - List the new directory to get its dynamic congestion control knobs and values:
cd rdmap<interface> for f in *; do echo -n "$f: "; cat "$f"; done; If the interface is in iWARP mode, the files have an "iw_" prefix:
- iw_dctcp_enable
- iw_ecn_enable
- iw_timely_enable
If the interface is in RoCEv2 mode, the files have a "roce_" prefix:
- roce_dcqcn_enable
- roce_dctcp_enable
- roce_timely_enable
- Enable or disable the desired algorithms.
- 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 - To disable an algorithm:
echo 0 > <attribute> For example:
echo 0 > /sys/kernel/config/irdma/rdmap<interface>/iw_ecn_enable - 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
- To enable an algorithm:
- 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
Module parameters on Intel Ethernet 800 Series for RoCEv2 DCQCN tuning that can be accessed when using an out-of-tree RDMA driver:
- 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
The minimum factor by which the current transmit rate can be changed when processing a CNP, given as a percentage (1 to100).
- dcqcn_min_rate
The minimum value for the rate to limit, in Megabits per second (Mbps).
- dcqcn_F
The number of times to stay in each stage of the bandwidth recovery.
- dcqcn_T
The number of microseconds that should elapse before increasing the CWND in DCQCN mode.
- dcqcn_B
The number of bytes to transmit before updating the CWND in DCQCN mode.
- dcqcn_rai_factor
The number of MSS to add to the congestion window in additive increase mode.
- dcqcn_hai_factor
The number of MSS to add to the congestion window in hyperactive increase mode.
- dcqcn_rreduce_mperiod
The minimum time between 2 consecutive rate reductions for a single flow. Rate reduction will occur only if a CNP is received during the relevant time interval.