Description

The delay-buffer-rate configuration can be configured under the Traffic Control Profile (TCP) stanza as follows:

# show class-of-service traffic-control-profiles
test {
    scheduler-map test;
    shaping-rate 1g;
    guaranteed-rate 1g;
    delay-buffer-rate 1g;
}

However, if there is no ​"delay-buffer-rate" configured, how is the delay buffer calculated?

This question is answered in this article.

Solution

The delay-buffer-rate or DBR is applied through a Traffic Control Profile (TCP) stanza. Buffer allocation through DBR depends on the mode, CIR (guaranteed-rate), or PIR (shaping-rate) that is configured on the interface.

If DBR is not explicitly configured, then DBR uses CIR for calculation and if CIR is not configured, it takes PIR into consideration.

However, when Hierarchy QoS (HQoS) is used and CIR is configured at the interface-set level, the interface-level DBR will derive ONLY from the interface level's CIR. In another word, if CIR is not configured at the interface level, the interface-level delay buffer remains 0; after CIR is configured at the interface level, it equals the interface-level CIR.

Note: If any logical interface has a configured guaranteed rate, all other logical interfaces on that port that DO NOT have a guaranteed rate configured receive a delay-buffer rate of 0. This introduces a potential risk of not being able to absorb any traffic bursts, causing drops.
Refer to the following technical documentation on guaranteed minimum rate and delay-buffer rate:

 

Example:

If CIR (guaranteed-rate) is configured, then the delay buffer equals the CIR.

# show class-of-service traffic-control-profiles
test {
    scheduler-map test;
    shaping-rate 1g;
    guaranteed-rate 500M;  
}

If CIR is NOT configured, then the delay buffer equals the shaping-rate (PIR).

# show class-of-service traffic-control-profiles
test {
    scheduler-map test;
    shaping-rate 1g;
}

If CIR is configured at the interface-set level, but the CIR at the interface level is not configured, the delay buffer at the interface level remains 0.

# show class-of-service 
traffic-control-profiles {
    L2-TCP-SHAPE-1G {                       <- TCP at interface-set level
        shaping-rate 1g;
        guaranteed-rate 1g;
    }
    TCP-SHAPE-NO-HCOS-500M {    <- TCP at interface level, CIR is not configured, PIR is configured.
        shaping-rate 500m;
    }
}
interfaces {
    interface-set DCCHK000035 {
        output-traffic-control-profile L2-TCP-SHAPE-1G;
    }
    ge-3/2/0 {
        unit 1 {
            output-traffic-control-profile TCP-SHAPE-NO-HCOS-500M;
        }
        unit 2 {
            output-traffic-control-profile TCP-SHAPE-NO-HCOS-500M;
        }
    }
}

image.png

If CIR is configured at the interface-set level as well as at the interface level, the delay buffer at the interface level equals the CIR at the interface level.

# show class-of-service 
traffic-control-profiles {
    L2-TCP-SHAPE-1G {                       <- TCP at interface-set level
        shaping-rate 1g;
        guaranteed-rate 1g;
    }
    TCP-SHAPE-NO-HCOS-500M {    <- TCP at interface level, CIR is configured
        shaping-rate 500m;
        guaranteed-rate 500m;          
    }
}
interfaces {
    interface-set DCCHK000035 {
        output-traffic-control-profile L2-TCP-SHAPE-1G;
    }
    ge-3/2/0 {
        unit 1 {
            output-traffic-control-profile TCP-SHAPE-NO-HCOS-500M;
        }
        unit 2 {
            output-traffic-control-profile TCP-SHAPE-NO-HCOS-500M;
        }
    }
}
 
image.png
 

Modification History

2019-08-03: Added DBR clarification.
2022-04-28: Added HQoS scenario
2022-11-09: Updated solution with note on guaranteed minimum rate and delay-buffer rate.