DCQCN Parameters

Version 13

    This post lists the DCQCN parameters.

    For more information about DCQCN, see Understanding DC-QCN Algorithm for RoCE Congestion Control .

     

    References

     

    Configuration

    The following parameters are supported by ConnectX-4 and beyond adapters.

     

    General

    WinOF MLNX_OFEDNVConfig (Firmware)DescriptionRangeDefault
    DcQcnEnablePrio0…7EnableROCE_CC_PRIO_MASKEnables RoCE Congestion Control (DCQCN) on a specific priorityEnable/Disable or 0/1Disable

     

    Alpha Update

    WinOF MLNX_OFEDNVConfig (Firmware)DescriptionRangeDefault
    DcQcnDceAlphaGdce_tcp_gDCE_TCP_G

    These two parameters maintain alpha (DcQcnDceAlphaG, DcQcnDceAlphaUpdatePeriod).

    If CNP is received during DcQcnDceAlphaUpdatePeriod, alpha is increased according to following equation: DcQcnDecAlphaG/1024*α + (1-DcQcnDecAlphaG/1024)

    If no CNP is received during DcQcnDceAlphaUpdatePeriod, alpha is decreased according to following equation: (1024-DcQcnDecAlphaG)/1024 * alpha.

    0…10231019
    DcQcnDceAlphaUpdatePerioddce_tcp_rttDCE_TCP_RTTSee above.0…131071 [µS]1
    DcQcnInitialAlphaValueinitial_alpha_valueINITIAL_ALPHA_VALUE

    This parameter sets the initial value of alpha that should be used when receiving the first CNP for a flow (expressed in a fixed-point fraction of 2^10).

    The value of alpha is updated once every DcQcnDceAlphaUpdatePeriod, regardless of the reception of a CNP. If a CNP is received during this time frame, the alpha value will increase. If no CNP is received, the alpha value will decrease.

    0…10231023

     

     

    Rate Decrease

     

    WinOF MLNX_OFEDNVConfig (Firmware)DescriptionRangeDefault
    DcQcnRateToSetOnFirstCnprate_to_set_on_first_cnpRATE_TO_SET_ON_FIRST_CNPRate on first CNP (0 – half link rate).0, 1…line rate [Mbit/S]

    0

    DcQcnMinDecFacrpg_min_dec_facRPG_MIN_DEC_FACThis parameter defines the maximal ratio of rate decrease in a single event.0…100 [%]50
    DcQcnMinRaterpg_min_rateRPG_MIN_RATEThis parameter defines the minimal rate limit of the QP.1…line rate [Mbit/S]1
    DcQcnAlphaToRateShiftrpg_gdRPG_GDThe coefficient between alpha and rate reduction factor (2^value). Since alpha is in range of 0...1023, a value of 11 indicates that the rate is reduced by half the value of alpha.0…1111
    DcQcnRateReduceMonitorPeriodrate_reduce_monitor_periodRATE_REDUCE_MONITOR_PERIODThe time period between rate reductions.0…UINT32 [µS]4

     

     

    Rate Increase

    WinOF MLNX_OFEDNVConfig (Firmware)DescriptionRangeDefault
    DcQcnClampTgtRateclamp_tgt_rateCLAMP_TGT_RATEIf set, whenever a CNP is processed, the target rate is updated to the current rate (contrary to conventional QCN in which CNP is ignored if no rate increase event happened since last CNP arrival).Enable/DisableDisabled
    DcQcnClampTgtRateAfterTimeIncclamp_tgt_rate_after_time_incCLAMP_TGT_RATE_AFTER_TIMEWhen receiving a CNP, the target rate should be updated if the transmission rate was increased due to the timer, and not only due to the byte counter (contrary to conventional QCN in which CNP is ignored if no rate increase due to byte reset event happened since last CNP arrival).Enable/DisableEnable
    DcQcnTimeResetrpg_time_resetRPG_TIME_RESETThe time period between rate increase events.0…131071 [µS]300
    DcQcnByteResetrpg_byte_resetRPG_BYTE_RESETThe sent bytes counter between rate increase events.0…32767 [64 Bytes]32767
    DcQcnStageThresholdrpg_thresholdRPG_THRESHOLD

    The threshold of rate increase events for moving to next rate increase phase.

    1…311
    DcQcnAiRaterpg_ai_rateRPG_AI_RATEThe rate increase value in the Active Increase phase.1…line rate [Mbit/S]5
    DcQcnHaiRaterpg_hai_rateRPG_HAI_RATEThe rate increase value in the Active Increase phase.1…line rate [Mbit/S]50

     

     

     

    Notification Point

     

    WinOF MLNX_OFEDNVConfig (Firmware)DescriptionRangeDefault
    DcQcnCnpDscpcnp_dscpCNP_DSCPThis parameter sets the DSCP  value for CNPs.0...6348
    DcQcnCnp802pPriocnp_802p_prioCNP_802P_PRIO

    This parameter sets the PCP value for CNPs.

    Set DcQcnCnpPrioMode to '0' in order to use this priority value.

    0…76
    DcQcnCnpPrioMode

    Not Required. This parameter is set automatically if value of of cnp_dscp and cnp_802p_prio is set.

    N/AIf this parameter is set to '0', then use the configured priority for CNPs. Otherwise, the priority value of CNPs is taken from received data packets.0/10