Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

Example: Configuring Queue Scheduling Priority

 

You can configure the bandwidth scheduling priority of individual queues by specifying the priority in a scheduler, and then using a scheduler map to associate the scheduler with a queue.

Requirements

This example uses the following hardware and software components:

  • One switch.

  • Junos OS Release 11.1 or later for the QFX Series or Junos OS Release 14.1X53-D20 or later for the OCX Series.

Overview

Queues can have one of several bandwidth priorities:

  • strict-high—Strict-high priority allocates bandwidth to the queue before any other queue receives bandwidth. Other queues receive the bandwidth that remains after the strict-high queue has been serviced. On QFX10000 switches, you can configure as many queues as you want as strict-high priority queues. On QFX5200, QFX3500, and QFX3600 switches and on QFabric systems, you can configure only one queue as a strict-high queue. On QFX5100 and EX4600 switches, you can configure only one forwarding-class-set (priority group) as strict-high priority. All queues which are part of that strict-high forwarding class set then act as strict-high queues.

    Note

    On QFX5200 switches, it is not possible to support multiple queues with strict-high priority because QFX5200 doesn’t support flexible hierarchical scheduling. When multiple strict-high priority queues are configured, all of those queues are treated as strict-high priority but the higher number queue among them is given highest priority.

    On QFX10000 switches, if you configure strict-high priority queues on a port, we strongly recommend that you configure a transmit rate on those queues. The transmit rate sets the amount of traffic that the switch forwards as strict-high priority; traffic in excess of the transmit rate is treated as best-effort traffic that receives the queue excess rate. Even if you configure only one strict-high priority queue, we strongly recommend that you configure a transmit rate the queue to prevent it from starving other queues. If you do not configure a transmit rate to limit the amount of bandwidth a strict-high priority queue can use, then the strict-high priority queue can use all of the available port bandwidth and starve other queues on the port.

    On QFX5200, QFX5100, QFX3500, QFX3600, and EX4600 switches and on QFabric systems, we recommend that you always apply a shaping rate to strict-high priority queues to prevent them from starving other queues. If you do not apply a shaping rate to limit the amount of bandwidth a strict-high priority queue can use, then the strict-high priority queue can use all of the available port bandwidth and starve other queues on the port.

    Note

    On switches that support enhanced transmission selection (ETS) hierarchical scheduling, if you use ETS and you configure a strict-high priority queue, you must create a forwarding class set that is dedicated only to strict-high priority traffic. Only one forwarding class set can contain a strict-high priority queue. Queues that are not strict-high priority cannot belong to the same forwarding class set as strict-high priority queues.

    On switches that use different output queues for unicast and multidestination traffic, the multidestination forwarding class set cannot contain strict-high priority queues.

  • high (QFX10000 Series switches only)—High priority. Traffic with high priority is serviced after any queue that has a strict-high priority, and before queues with low priority.

  • low—Low priority. Traffic with low priority is serviced after any queue that has a strict-high priority.

Note

By default, all queues are low priority queues.

Table 1 shows the configuration components for this example.

This example describes how to set the queue priority for two forwarding classes (queues) named fcoe and no-loss. Both queues have a priority of low. The scheduler for the fcoe queue is named fcoe-sched and the scheduler for the no-loss queue is named nl-sched. One scheduler map, schedmap1, associates the schedulers to the queues.

Table 1: Components of the Queue Scheduler Priority Configuration Example

Component

Settings

Hardware

One switch

Schedulers

fcoe-sched for FCoE traffic

nl-sched for no-loss traffic

Priority

low for FCoE traffic

low for no-loss traffic

Scheduler map

schedmap1:

FCoE mapping: scheduler fcoe-sched to forwarding class fcoe

No-loss mapping: scheduler nl-sched to forwarding class no-loss

Note

OCX Series switches do not support lossless transport. On OCX Series switches, the default DSCP classifier does not map traffic to the default fcoe and no-loss forwarding classes. On an OCX Series switch, you could use this example by substituting other forwarding classes (for example, best-effort or network-control) for the fcoe and no-loss forwarding classes, and naming the schedulers appropriately. The active forwarding classes (best-effort, network-control, and mcast) share the unused bandwidth assigned to the fcoe and no-loss forwarding classes.

Configuring Queue Scheduling Priority

CLI Quick Configuration

To quickly configure queue scheduling priority, copy the following commands, paste them in a text file, remove line breaks, change variables and details to match your network configuration, and then copy and paste the commands into the CLI at the [edit] hierarchy level:

[edit class-of-service]

set schedulers fcoe-sched priority low

set schedulers nl-sched priority low

set scheduler-maps schedmap1 forwarding-class fcoe scheduler fcoe-sched

set scheduler-maps schedmap1 forwarding-class no-loss scheduler nl-sched

To configure queue priority using the CLI:

  1. Create the FCoE scheduler with low priority:
    [edit class-of-service]

    user@switch# set schedulers fcoe-sched priority low



  2. Create the no-loss scheduler with low priority:
    [edit class-of-service]

    user@switch# set schedulers nl-sched priority low



  3. Associate the schedulers with the desired queues in the scheduler map:
    [edit class-of-service]

    user@switch# set scheduler-maps schedmap1 forwarding-class fcoe scheduler fcoe-sched

    user@switch# set scheduler-maps schedmap1 forwarding-class no-loss scheduler nl-sched

Verification

To verify that you configured the queue scheduling priority for bandwidth and mapped the schedulers to the correct forwarding classes, perform these tasks:

Verifying the Queue Scheduling Priority

Purpose

Verify that you configured the queue schedulers fcoe-sched and nl-sched with low queue scheduling priority.

Action

Display the fcoe-sched scheduler priority configuration using the operational mode command show configuration class-of-service schedulers fcoe-sched priority:

user@switch> show configuration class-of-service schedulers fcoe-sched priority



Display the nl-sched scheduler priority configuration using the operational mode command show configuration class-of-service schedulers nl-sched priority:

user@switch> show configuration class-of-service schedulers nl-sched priority

Verifying the Scheduler-to-Forwarding-Class Mapping

Purpose

Verify that you configured the scheduler map schedmap1 to map scheduler fcoe-sched to forwarding class fcoe and schedule nl-sched to forwarding class no-loss.

Action

Display the scheduler map schedmap1 using the operational mode command show configuration class-of-service scheduler-maps schedmap1:

user@switch> show configuration class-of-service scheduler-maps schedmap1