Queue depth sampling (7250 IXR)
On 7250 IXR platforms, you can enable queue depth sampling on one or more queues. With queue depth sampling enabled on an egress queue, the system monitors all VOQs that can hold output traffic in the queue. You can then use state commands or telemetry to display or stream the collected queue depth sampling data for any congested VOQs.
On the 7250 IXR platforms, the interval between queue depth samples is short enough to allow for the detection of microbursts.
Threshold-triggered queue depth sampling
To determine the state of congestion for a VOQ, the system uses high and low threshold levels. When the VOQ depth exceeds the high threshold, the system records the start time of the congested state and begins collecting regular samples of the VOQ depth. When the VOQ depth subseqently drops below the low threshold and remains below that threshold for a configurable number of consecutive samples (default: 3), the system stops collecting samples from the VOQ and records the end time of the congested state as well as the high-watermark sample value.
Adaptive sampling frequency
The interval of time between consecutive samples of a particular VOQ is dependent on the number of VOQs that are currently in a congested state. When only a single VOQ is in a congested state, the time between consecutive samples should be less than 1 ms. Each additional congested VOQ adds to the system workload for collecting queue samples and therefore the time between consecutive samples for each VOQ increases.
Per-forwarding complex limit
Queue depth sampling limits the maximum number of VOQs for which congestion events are recorded to 32 per forwarding complex.
Configuration using buffer allocation profile
To enable queue depth sampling, you must configure the required per-queue parameters as part of a buffer allocation profile, which you then associate with one or more interfaces.
Configuring queue depth sampling (7250 IXR)
To enable queue depth sampling on 7250 IXR platforms, use the qos buffer-management buffer-allocation-profile queues queue queue-depth-sampling command.
To apply a buffer allocation profile to an interface, use the qos interfaces interface output buffer-allocation-profile command.
Configure queue depth sampling (7250 IXR)
--{ * candidate shared default }--[ ]--
7250-ixr# info with-context qos buffer-management buffer-allocation-profile test-buffer-profile queues queue test-queue
qos {
buffer-management {
buffer-allocation-profile test-buffer-profile {
queues {
queue test-queue {
high-threshold-bytes 50000000
low-threshold-bytes 40000000
low-threshold-count 3
queue-depth-sampling true
}
}
}
}
}
The queue depth sampling parameters are defined as follows:
- high-threshold-bytes – Defines the high threshold level.
The default value is 0. This parameter must be set to a non-zero value when queue depth sampling is enabled.
Note: The high-threshold-bytes parameter applies to both the queue depth sampling feature and the static queue utilization feature. When queue-depth-sampling is true, the configured high-threshold-bytes value is applicable for queue depth sampling. But when queue-depth-sampling is false (the default value), the configured high-threshold-bytes value is applicable as a static queue utilization threshold. - low-threshold-bytes – Defines the low threshold level.
The default value is 0. This parameter must be set to a non-zero value when queue depth sampling is enabled.
- low-threshold-count – Defines the number of consecutive
queue depth samples below the low threshold that are required to end the
congested state.
The default value is 3.
- queue-depth-sampling – Enables and disables queue depth
sampling.
The default value is false.
Apply buffer allocation profile to an interface
--{ * candidate shared default }--[ ]--
# info with-context qos interfaces interface ethernet-2/10
qos {
interfaces {
interface ethernet-2/10 {
interface-ref {
interface ethernet-2/10
}
output {
buffer-allocation-profile test-buffer-profile
}
}
}
}
Displaying queue depth sampling congestion event information (7250 IXR)
When a congestion event is triggered for a particular interface and VOQ, polling is started on this VOQ (provided that the per-forwarding complex limit is not exceeded). To obtain state information related to the congestion event, use the following state command:
info from state qos interfaces interface output voq-interface queue queue-depth congestion event
Display in-progress congestion event information
While polling of the congested VOQ is under way, the queue-depth congestion event state command displays the start time for the event and a status of in-progress.
--{ candidate shared default }--[ ]--
# info from state qos interfaces interface ethernet-2/10 output voq-interface voq-1-0-1 queue uc0 queue-depth congestion-event 1
status in-progress
start-time "2025-06-19T13:33:18.120Z (a minute ago)"
high-watermark 0
To specify a value for the voq-interface parameter, use the format voq-x-y-z, where x specifies the ingress slot, y specifies the ingress complex, and z specifies the ingress core (0 or 1).
Only the most recent congestion event for each VOQ is maintained in YANG state (index 0) and therefore the recording of the start time for a new congestion event overwrites all of the state for any previous congestion event. However, the system can stream telemetry off-platform so that historical information is not lost.
Display completed congestion event information
When polling of the congested VOQ is complete, the queue-depth congestion event state command displays the end time for the event and a status of done. It also includes the high watermark queue depth level of the VOQ for this event.
--{ candidate shared default }--[ ]--
# info from state qos interfaces interface ethernet-2/10 output voq-interface voq-1-0-1 queue uc0 queue-depth congestion-event 1
status done
start-time "2025-06-19T13:33:18.120Z (a minute ago)"
end-time "2025-06-19T13:35:09.929Z (3 seconds ago)"
high-watermark 100000032
Display congestion event start time when the per-complex limit is reached
If a VOQ is congested when the per-complex limit has been reached, the system records the start time of the congestion, but polling cannot be started on the VOQ. In this case, the queue-depth congestion-event state command displays a status of no-information-available.
--{ candidate shared default }--[ ]--
# info from state qos interfaces interface ethernet-2/15 output voq-interface voq-3-0-0 queue uc0 queue-depth congestion-event 1
status no-information-available
high-watermark 0
The start time value also overwrites the value from any previous congestion event.
Displaying forwarding complex associations for queue depth sampling (7250 IXR)
To enter the queue-depth congestion-event state command, the voq-interface parameter requires you to specify the forwarding complex that is associated with the VOQ.
To determine the interfaces associated with a forwarding complex, use the info from state platform linecard forwarding-complex interfaces command.
Display interfaces associated with a forwarding complex
--{ candidate shared default }--[ ]--
# info with-context from state platform linecard 1 forwarding-complex 0 interfaces
platform {
linecard 1 {
forwarding-complex 0 {
interfaces [
ethernet-1/1
ethernet-1/2
ethernet-1/3
ethernet-1/4
...
ethernet-1/16
ethernet-1/17
ethernet-1/18
]
}
}
}