Supported Platforms
Related Documentation
- QFabric System, QFX Series standalone switches
- Understanding CoS Packet Flow
- Understanding CoS Output Queue Schedulers
- Understanding CoS Priority Group Scheduling
- Benefits of Configuring CoS Hierarchical Port Scheduling
- Understanding CoS Flow Control (Ethernet PAUSE and PFC)
- Understanding CoS Classifiers
- Understanding Default CoS Scheduling and Classification
- Example: Configuring CoS Hierarchical Port Scheduling (ETS)
- Example: Configuring Queue Schedulers
- Example: Configuring Traffic Control Profiles (Priority Group Scheduling)
- Example: Configuring Minimum Guaranteed Output Bandwidth
- Example: Configuring Maximum Output Bandwidth
- QFabric System
- Understanding CoS Scheduling on QFabric System Node Device Fabric (fte) Ports
- Understanding Default CoS Scheduling on QFabric System Interconnect Devices (Junos OS Release 13.1 and Later Releases)
Understanding CoS Hierarchical Port Scheduling (ETS)
Scheduling defines the class-of-service (CoS) properties of output queues. These properties include the amount of interface bandwidth assigned to the queue, the queue priority, and the drop profiles associated with the queue.
Hierarchical port scheduling is a two-tier process that provides better port bandwidth utilization and greater flexibility to allocate resources to queues and to groups of queues. Hierarchical scheduling includes the Junos OS implementation of enhanced transmission selection (ETS, described in IEEE 802.1Qaz).
Video 1: What is Enhanced Transmission Selection?

This topic describes:
Hierarchical Scheduling Tiers
The two tiers used in hierarchical scheduling are priorities and priority groups, as shown in Table 1.
Table 1: Hierarchical Scheduling Tiers
Junos OS Configuration Construct | Equivalent ETS Construct | Description |
---|---|---|
Forwarding class | Priority | Think about priorities (forwarding classes) as output queues. You map forwarding classes to queues, so each forwarding class is in essence an output queue. When you use a classifier to map a forwarding class to an IEEE 802.1p code point, the code point identifies that traffic’s priority for priority-based flow control (PFC). Thus the forwarding class, the queue mapped to the forwarding class, and the priority mapped to the forwarding class all identify the same traffic. |
Forwarding class set | Priority group | Priority groups (forwarding class sets) are groups of priorities. Forwarding class membership in a forwarding class set defines the priority group to which each priority belongs. You can configure up to three unicast priority groups and one multicast forwarding class set. |
![]() | Note: If you explicitly configure one or more priority groups on an interface, any priority that is not assigned to a priority group on that interface is assigned to an automatically generated default priority group and receives no bandwidth. This means that if you configure hierarchical scheduling on an interface, every forwarding class that you want to forward traffic on that interface must belong to a forwarding class set. |
Hierarchical Scheduling and ETS
Two-tier hierarchical scheduling enables you to manage bandwidth efficiently by enabling you to define the CoS properties for each priority group and for each priority. One tier of the hierarchical scheduler allocates port bandwidth to a priority group. The other tier of the hierarchical scheduler determines the portion of the priority group bandwidth that a queue can use.
The CoS properties you configure for a priority group define the port bandwidth resources available to the queues in that priority group. The CoS properties you configure for each queue specify the portion or percentage of the total bandwidth configured for the priority group that is available to the queue. Figure 1 shows the relationship of port resource allocation to priority groups and priority group resource allocation to queues (priorities).
Figure 1: Hierarchical Scheduling Tiers

If a queue is not using its allocated bandwidth, ETS shares the unused bandwidth among the other queues in the priority group. If link bandwidth is available or if a priority group on a link is not using its allocated bandwidth, ETS shares the unused bandwidth with other priority groups on the link. In this way ETS improves link bandwidth utilization and provides each queue with the maximum bandwidth. Priorities that consist of bursty traffic can share bandwidth during periods of low traffic transmission instead of consuming their entire bandwidth allocation when traffic loads are light.
![]() | Note: The available link bandwidth is the bandwidth remaining after servicing strict-high priority flows. |
ETS Advertisement in DCBX
When you configure hierarchical scheduling on a port, Data Center Bridging Capability Exchange Protocol (DCBX) advertises:
- Each priority group
- The priorities in each priority group
- The bandwidth properties of each priority group and priority
When you configure hierarchical scheduling on a port, any priority that is not part of an explicitly configured priority group is assigned to the automatically generated default priority group and receives no bandwidth. The default priority group is transparent. It does not appear in the configuration.
Hierarchical Scheduling Process
Hierarchical scheduling consists of multiple configuration steps that create the priorities and the priority groups, schedule their resources, and assign them to interfaces. The steps below correspond to the six blocks in the packet flow diagram shown in Figure 2:
Packet classification:
- Classify incoming traffic into priorities. This consists of either using the default classifiers or configuring classifiers to map IEEE 802.1p code points and loss priorities to the forwarding classes.
- Apply the classifiers to ingress interfaces. This groups incoming traffic into forwarding classes (priorities) by mapping code points to forwarding classes and loss priorities on the specified interface.
- Configure the output queues for the forwarding classes (priorities). This consists of either using the default forwarding classes and forwarding-class-to-queue mapping or creating your own forwarding classes and mapping them to queues.
Allocate resources to the forwarding classes:
- Define resources for the priorities. This consists of configuring schedulers to set minimum guaranteed bandwidth, maximum bandwidth, drop profiles for Weighted Random Early Detection (WRED), and bandwidth priority to apply to a forwarding class. Extra bandwidth is shared among queues in proportion to the minimum guaranteed bandwidth of each queue.
- Map resources to priorities. This consists of mapping forwarding classes to schedulers by using a scheduler map.
- Configure priority groups. This consists of mapping forwarding classes (priorities) to forwarding class sets (priority groups) to define the priorities that belong to each priority group.
- Define resources for the priority groups. This consists
of configuring traffic control profiles to set minimum guaranteed
bandwidth and maximum bandwidth for a priority group. Traffic control
profiles also specify a scheduler map, which defines the resources
(schedulers) for the priorities in the priority group. Extra port
bandwidth is shared among priority groups in proportion to the minimum
guaranteed bandwidth of each priority group.
The traffic control profile bandwidth settings determine the port resources available to the priority group, and the schedulers specified in the scheduler map determine the amount of the priority group resources that each priority receives.
- Apply the hierarchical scheduling to a port. This consists of attaching one or more priority groups to a port interface. For each priority group, you also attach a traffic control profile. Different priority groups on the same port can use different traffic control profiles.
Figure 2: Hierarchical Scheduling Packet Flow

Strict-High Priority Queues and Hierarchical Scheduling
If you configure a strict-high priority queue, you must observe the following rules:
- You must create a separate forwarding class set (priority group) for the strict-high priority queue.
- Only one forwarding class set can contain strict-high priority queues.
- Strict-high priority queues cannot belong to the same forwarding class set as queues that are not strict-high priority.
- A strict-high priority queue cannot belong to a multidestination forwarding class set.
- 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 a QFabric system, if a fabric (fte) interface handles strict-high priority traffic, you must define a separate fc-set (priority group) for strict-high priority traffic. Strict-high priority traffic cannot be mixed with traffic of other priorities in an fc-set. For example, you might choose to create different fc-sets for best effort, lossless, strict-high priority, and multidestination traffic. |
Default Hierarchical Scheduling
If you do not explicitly configure hierarchical scheduling, the switch uses the default settings:
- The switch automatically creates a default forwarding class set that contains all of the forwarding classes on the switch. The switch assigns 100 percent of the port output bandwidth to the default forwarding class set. The default forwarding class set is transparent. It does not appear in the configuration and is used for Data Center Bridging Capability Exchange Protocol (DCBX) advertisement.
- Ingress traffic is classified based on the default classifier settings.
- The forwarding classes (queues) in the default forwarding class set receive bandwidth based on the default scheduler settings.
Related Documentation
- QFabric System, QFX Series standalone switches
- Understanding CoS Packet Flow
- Understanding CoS Output Queue Schedulers
- Understanding CoS Priority Group Scheduling
- Benefits of Configuring CoS Hierarchical Port Scheduling
- Understanding CoS Flow Control (Ethernet PAUSE and PFC)
- Understanding CoS Classifiers
- Understanding Default CoS Scheduling and Classification
- Example: Configuring CoS Hierarchical Port Scheduling (ETS)
- Example: Configuring Queue Schedulers
- Example: Configuring Traffic Control Profiles (Priority Group Scheduling)
- Example: Configuring Minimum Guaranteed Output Bandwidth
- Example: Configuring Maximum Output Bandwidth
- QFabric System
- Understanding CoS Scheduling on QFabric System Node Device Fabric (fte) Ports
- Understanding Default CoS Scheduling on QFabric System Interconnect Devices (Junos OS Release 13.1 and Later Releases)
Published: 2014-07-23
Supported Platforms
Related Documentation
- QFabric System, QFX Series standalone switches
- Understanding CoS Packet Flow
- Understanding CoS Output Queue Schedulers
- Understanding CoS Priority Group Scheduling
- Benefits of Configuring CoS Hierarchical Port Scheduling
- Understanding CoS Flow Control (Ethernet PAUSE and PFC)
- Understanding CoS Classifiers
- Understanding Default CoS Scheduling and Classification
- Example: Configuring CoS Hierarchical Port Scheduling (ETS)
- Example: Configuring Queue Schedulers
- Example: Configuring Traffic Control Profiles (Priority Group Scheduling)
- Example: Configuring Minimum Guaranteed Output Bandwidth
- Example: Configuring Maximum Output Bandwidth
- QFabric System
- Understanding CoS Scheduling on QFabric System Node Device Fabric (fte) Ports
- Understanding Default CoS Scheduling on QFabric System Interconnect Devices (Junos OS Release 13.1 and Later Releases)