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.
This example uses the following hardware and software components:
Junos OS Release 11.1 or later for the QFX Series or Junos OS Release 14.1X53-D20 or later for the OCX Series.
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.
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.
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.
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
fcoe-sched for FCoE traffic
nl-sched for no-loss traffic
low for FCoE traffic
low for no-loss traffic
FCoE mapping: scheduler fcoe-sched to forwarding class fcoe
No-loss mapping: scheduler nl-sched to forwarding class no-loss
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  hierarchy level:
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:
- Create the FCoE scheduler with low priority:
- Create the no-loss scheduler with low priority:
user@switch# set schedulers nl-sched priority low
- Associate the schedulers with the desired queues in the scheduler map:
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
Verify that you configured the queue schedulers fcoe-sched and nl-sched with low queue scheduling priority.
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
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.
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
forwarding-class fcoe scheduler fcoe-sched; forwarding-class no-loss scheduler nl-sched;