Description

All sub-interfaces' guaranteed-rate becomes '0' when the sum of their shaping rate exceeds the interface bandwidth.

Symptoms

When the sum of shaping rate does NOT exceed the interface bandwidth, all sub-interfaces' guaranteed-rate equals to the configured shaping rate: 

@jtac-mx480# show class-of-service interfaces  <-- The interface bandwidth is 10Gbps, while the sum of shaping rate is 10G
xe-1/0/0 {
    unit 1 {
        shaping-rate 5g;
    }
    unit 2 {
        shaping-rate 2g;
    }
    unit 3 {
        shaping-rate 3g;
    }
}

 

@jtac-mx480# run show class-of-service scheduler-hierarchy interface xe-1/0/0    <-- Guaranteed-rate equals to shaping rate
Interface/                    Shaping Guaranteed Guaranteed/   Queue   Excess
Resource name                    rate      rate       Excess  weight   weight
                                kbits     kbits     priority          high/low
xe-1/0/0                     10000000
  xe-1/0/0.1                  5000000   5000000                        500  500   
    best-effort               5000000   4750000     Low  Low      95
    network-control           5000000    250000     Low  Low       5
  xe-1/0/0.2                  2000000   2000000                        200  200 
    best-effort               2000000   1900000     Low  Low      95
    network-control           2000000    100000     Low  Low       5
  xe-1/0/0.3                  3000000   3000000                        300  300 
    best-effort               3000000   2850000     Low  Low      95
    network-control           3000000    150000     Low  Low       5
  xe-1/0/0.32767             10000000      2000                          1    1 
    best-effort              10000000      1900     Low  Low      95
    network-control          10000000       100     Low  Low       5


When the sum of shaping rate exceeds the interface bandwidth (oversubscribing interface bandwidth scenario), all sub-interfaces' guaranteed-rate becomes "0" :

@jtac-mx480# show class-of-service interfaces  <-- The interface bandwidth is 10Gbps, while the sum of shaping rate is 11G                                 
xe-1/0/0 {
    unit 1 {
        shaping-rate 5g;
    }
    unit 2 {
        shaping-rate 2g;
    }
    unit 3 {
        shaping-rate 4g;
    }
}

 

@jtac-mx480# run show class-of-service scheduler-hierarchy interface xe-1/0/0   <-- Guaranteed-rate is "0"
Interface/                    Shaping Guaranteed Guaranteed/   Queue   Excess
Resource name                    rate      rate       Excess  weight   weight
                                kbits     kbits     priority          high/low
xe-1/0/0                     10000000
  xe-1/0/0.1                  5000000         0                         500  500 
    best-effort               5000000         0     Low  Low      95
    network-control           5000000         0     Low  Low       5
  xe-1/0/0.2                  2000000         0                         200  200 
    best-effort               2000000         0     Low  Low      95
    network-control           2000000         0     Low  Low       5
  xe-1/0/0.3                  4000000         0                         400  400 
    best-effort               4000000         0     Low  Low      95
    network-control           4000000         0     Low  Low       5
  xe-1/0/0.32767             10000000      2000                          1    1 
    best-effort              10000000      1900     Low  Low      95
    network-control          10000000       100     Low  Low       5

Solution

To fix the '0' guaranteed-rate in the above scenario,  deploy TCP (traffic-control-profiles) on each sub-interface: 

@jtac-mx480# show class-of-service 
traffic-control-profiles {
    1 {
        shaping-rate 5g;
        guaranteed-rate 4g;
    }
    2 {
        shaping-rate 4g;
        guaranteed-rate 2g;
    }
    3 {
        guaranteed-rate 2g;
    }
}
interfaces {
    xe-1/0/0 {
        unit 1 {
            output-traffic-control-profile 1;
        }
        unit 2 {
            output-traffic-control-profile 2;
        }
        unit 3 {
            output-traffic-control-profile 3;
        }
    }
}

@jtac-mx480# run show class-of-service scheduler-hierarchy interface xe-1/0/0 
Interface/                    Shaping Guaranteed Guaranteed/   Queue   Excess
Resource name                    rate      rate       Excess  weight   weight
                                kbits     kbits     priority          high/low
xe-1/0/0                     10000000
  xe-1/0/0.1                  5000000   4000000                        500  500 
    best-effort               5000000   3800000     Low  Low      95
    network-control           5000000    200000     Low  Low       5
  xe-1/0/0.2                  4000000   2000000                        250  250 
    best-effort               4000000   1900000     Low  Low      95
    network-control           4000000    100000     Low  Low       5
  xe-1/0/0.3                 10000000   2000000                        250  250 
    best-effort              10000000   1900000     Low  Low      95
    network-control          10000000    100000     Low  Low       5
  xe-1/0/0.32767             10000000      2000                          1    1 
    best-effort              10000000      1900     Low  Low      95
    network-control          10000000       100     Low  Low       5