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.
To configure queue scheduler policies, use the qos scheduler-policies scheduler-policy command.

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

To apply the queue scheduler policy to an interface, use the qos interfaces interface output scheduler command.

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
                    }
                }
            }
        }
    }