Description

This KB article outlines a scenario where packets are dropped in the "Best-Effort" queue, disrupting traffic even though the link shows low bandwidth utilization. It explains how traffic shaping configurations can impose limits that contribute to these drops, and provides guidance on resolving the issue.

Symptoms

  • Packets are being dropped in the "Best-Effort" queue while other queues remain unaffected.
  • The interface shows low overall bandwidth utilization.
  • Tail drops are observed in the affected forwarding-class. 
  • CoS configuration includes customized shapers applied at the interface and on the scheduler mapped to the affected forwarding class.

Solution

Here is the related COs configuration on the device:

 

set class-of-service forwarding-classes class FC_BE queue-num 0
set class-of-service forwarding-classes class FC_AF1 queue-num 1
set class-of-service forwarding-classes class FC_AF2 queue-num 2
set class-of-service forwarding-classes class FC_AF3 queue-num 3
set class-of-service forwarding-classes class FC_AF4 queue-num 4
set class-of-service forwarding-classes class FC_EF queue-num 5
set class-of-service forwarding-classes class FC_NC queue-num 6

 

set class-of-service scheduler-maps SCHEDULER-MAP forwarding-class FC_AF1 scheduler SCHED_AF1
set class-of-service scheduler-maps SCHEDULER-MAP forwarding-class FC_AF2 scheduler SCHED_AF2
set class-of-service scheduler-maps SCHEDULER-MAP forwarding-class FC_AF3 scheduler SCHED_AF3
set class-of-service scheduler-maps SCHEDULER-MAP forwarding-class FC_AF4 scheduler SCHED_AF4
set class-of-service scheduler-maps SCHEDULER-MAP forwarding-class FC_BE scheduler SCHED_BE
set class-of-service scheduler-maps SCHEDULER-MAP forwarding-class FC_EF scheduler SCHED_EF
set class-of-service scheduler-maps SCHEDULER-MAP forwarding-class FC_NC scheduler SCHED_NC

 

set class-of-service schedulers SCHED_BE transmit-rate percent 4
set class-of-service schedulers SCHED_BE shaping-rate percent 4
set class-of-service schedulers SCHED_BE priority low

set class-of-service schedulers SCHED_AF1 transmit-rate percent 1
set class-of-service schedulers SCHED_AF1 shaping-rate percent 1
set class-of-service schedulers SCHED_AF1 priority low

set class-of-service schedulers SCHED_AF2 transmit-rate percent 14
set class-of-service schedulers SCHED_AF2 shaping-rate percent 14
set class-of-service schedulers SCHED_AF2 priority low

set class-of-service schedulers SCHED_AF3 transmit-rate percent 34
set class-of-service schedulers SCHED_AF3 shaping-rate percent 34
set class-of-service schedulers SCHED_AF3 priority low

set class-of-service schedulers SCHED_AF4 transmit-rate percent 35
set class-of-service schedulers SCHED_AF4 shaping-rate percent 35
set class-of-service schedulers SCHED_AF4 priority low

set class-of-service schedulers SCHED_EF transmit-rate percent 10
set class-of-service schedulers SCHED_EF shaping-rate percent 10
set class-of-service schedulers SCHED_EF priority strict-high

set class-of-service schedulers SCHED_NC transmit-rate percent 2
set class-of-service schedulers SCHED_NC shaping-rate percent 2
set class-of-service schedulers SCHED_NC priority low

 

set class-of-service interfaces xe-0/0/0 scheduler-map SCHEDULER-MAP
set class-of-service interfaces xe-0/0/0 shaping-rate 3g

 

The device is dropping packets in the "Best-Effort" queue on egress, even though overall throughput is very low compared to the interface’s 10 Gbps capacity:

 

root@user> show interfaces xe-0/0/0 extensive 

Physical interface: xe-0/0/0, Enabled, Physical link is Up
  CoS queues     : 10 supported, 10 maximum usable queues
  Traffic statistics:
   Input  bytes  :        5432817230822             13824752 bps
   Output bytes  :       51029861134838            120025592 bps
   Input  packets:          14051591216                 5113 pps
   Output packets:          41934699699                12865 pps
   IPv6 transit statistics:
   Input  bytes  :                    0
   Output bytes  :                    0
   Input  packets:                    0
   Output packets:                    0
  Input errors:
    Errors: 0, Drops: 0, Framing errors: 0, Runts: 0, Policed discards: 0, L3 incompletes: 0, L2 channel errors: 0, L2 mismatch timeouts: 0, FIFO errors: 0, Resource errors: 0
  Output errors:
    Carrier transitions: 3, Errors: 0, Drops: 366201423, Collisions: 0, Aged packets: 0, FIFO errors: 0, HS link CRC errors: 0, MTU errors: 0, Resource errors: 0
  Egress queues: 10 supported, 9 in use
  Queue counters:       Queued packets  Transmitted packets      Dropped packets
    0                      42174622171          41808420748            366201423
    1                                0                    0                    0
    2                             2475                 2475                    0
    3                                0                    0                    0
    4                             1344                 1344                    0
    5                             4995                 4995                    0
    6                                0                    0                    0
    7                        126306784            126306784                    0
    8                                0                    0                    0
  Queue number:         Mapped forwarding classes
    0                   FC_BE
    1                   FC_AF1
    2                   FC_AF2
    3                   FC_AF3
    4                   FC_AF4
    5                   FC_EF
    6                   FC_NC
    7                   network-control
    8                   mcast
  CoS information:
    Direction : Output
    CoS transmit queue               Bandwidth               Buffer Priority   Limit
                              %            bps     %           usec
    0 FC_BE                  4      120000000     r              0      low         none
    1 FC_AF1                 1       30000000     r              0      low         none
    2 FC_AF2                14      420000000     r              0      low         none
    3 FC_AF3                34     1020000000     r              0      low         none
    4 FC_AF4                35     1050000000     r              0      low         none
    5 FC_EF                 10      300000000     r              0      strict-high none
    6 FC_NC                  2       60000000     r              0      low         none

 

The interface is lightly utilized relative to its 10 Gbps capacity, currently receiving approximately:

 

  • Ingress: ~13.8 Mbps
  • Egress: ~120 Mbps

 

Despite this low throughput, there has historically been congestion and queue exhaustion on the default egress queue. The root cause is the "shaping‑rate" settings applied to the "Best-Effort" queue:

 

set class-of-service schedulers SCHED_BE transmit-rate percent 4
set class-of-service schedulers SCHED_BE shaping-rate percent 4
set class-of-service schedulers SCHED_BE priority low

 

It’s important to note that the "transmit‑rate" defines the scheduler’s guaranteed bandwidth and minimum allocation during congestion, but it does not strictly cap traffic. If bandwidth is available, the queue can exceed its 4% allocation. On a 10 Gbps interface, 4% equals ~400 Mbps, and bursts above this threshold can still occur. However, the configuration line "shaping‑rate" percent 4 enforces a hard traffic shaper, effectively rate‑limiting the "FC_BE" queue to ~400 Mbps. Any traffic beyond this limit is buffered and eventually dropped once the queue fills, meaning short spikes—even if average traffic is below 400 Mbps—can still cause microbursts.

 

Although overall bandwidth utilization remains low and the link is not saturating capacity, the "shaping‑rate" is prematurely constraining traffic. To address this, you could consider:

 

  • Tuning the "shaping‑rate" to raise the threshold, reducing drops since "FC_BE" carries the majority of traffic.
  • Removing the "shaping‑rate" at the scheduler level while retaining the interface‑level shaping‑rate (currently set to 3 Gbps), preventing early drops.
  • Deleting the "shaping‑rate" configuration entirely from both interface and scheduler, as utilization is well below capacity, avoiding unnecessary packet loss.


Each of these workarounds will depend on the amount of traffic being handled, so it’s important to analyze the traffic patterns and bandwidth utilization first.

Modification History

2026-05-29 : Article Created