Output queue scheduler policies
SR Linux supports the configuration of queue scheduler policies, providing the flexibility to define:
- which queues are served strict priority
- which queues are served WRR (and their weights)
Each output queue is mapped to either scheduler 0 or scheduler 1, as defined by the scheduler policies, with the following restrictions:
- Scheduler 0 — must have a priority setting of strict, providing strict priority scheduling behavior
- Scheduler 1 — must have no priority configuration defined, which provides WRR scheduling behavior
You can apply the defined policies to specified interfaces, as required.
Queue scheduler policies are supported on 7220 IXR and 7250 IXR platforms.
Configuring queue scheduler policies
When you configure scheduler polices, be aware of the following considerations:
- By default, all queues in the policy are attached to scheduler 0, which is served strict priority with a PIR of 100.
- Queues that are mapped to scheduler 0 are strict priority queues (which ignore any configured weight value) and queues that are mapped to scheduler 1 are WRR queues. The schedulers are processed from lowest sequence to highest.
- When strict priority is enabled (priority strict), any configured weight is ignored.
- When strict priority is not enabled, the associated queue or scheduler node is configured as WRR.
Configure a strict priority policy
# info qos scheduler-policies scheduler-policy SP
qos {
scheduler-policies {
scheduler-policy SP {
scheduler 0 {
priority strict
input q0 {
queue-name unicast-0
peak-rate-percent 100
weight 1
}
}
}
}
}
Configure a WRR policy
# info qos scheduler-policies scheduler-policy WRR
qos {
scheduler-policies {
scheduler-policy WRR {
scheduler 1 {
input q1 {
queue-name unicast-1
peak-rate-percent 100
weight 1
}
}
}
}
}
Displaying the hardware programmed PIR values
You can also use the info from state qos scheduler-policies command to display the hardware programmed PIR values.
# info from state qos scheduler-policies
qos {
scheduler-policies {
scheduler-policy SP {
scheduler 0 {
priority strict
input q0 {
input-type queue
queue-name unicast-0
peak-rate-percent 100
weight 1
}
}
}
scheduler-policy WRR {
scheduler 1 {
input q1 {
input-type queue
queue-name unicast-1
peak-rate-percent 100
weight 1
}
}
}
Applying a queue scheduler policy to an interface
Apply a queue scheduler policy to an interface
# info qos interfaces interface ethernet-1/2 output scheduler
qos {
interfaces {
interface ethernet-1/2 {
output {
scheduler {
scheduler-policy SP
}
}
}
}
}