Applying Scheduler Maps to Chassis-Level Queues
On Intelligent Queuing (IQ) and Intelligent Queuing 2 (IQ2) interfaces, as well as on the 10x10GE MIC with SFP+, the traffic that is fed from the packet forwarding components into the PIC uses low packet loss priority (PLP) by default and is distributed evenly across the four chassis queues (not PIC queues), regardless of the scheduling configuration for each logical interface. This default behavior can cause traffic congestion.
The default chassis scheduler allocates resources for queue 0 through queue 3, with 25 percent of the bandwidth allocated to each queue. When you configure the chassis to use more than four queues, you must configure and apply a custom chassis scheduler to override the default chassis scheduler.
To apply a custom chassis scheduler:
Specify the interface on which to apply the scheduler.
[edit] user@host# edit class-of-service interfaces interface-name
For example:
[edit] user@host# edit class-of-service interfaces so-0/1/*
Specify the name of the custom scheduler you want to apply to the interface.
[edit class-of-service interfaces so-0/1/0] user@host# set scheduler-map-chassis map-name
To control the aggregated traffic transmitted from the chassis queues into the PIC, you can configure the chassis queues to derive their scheduling configuration from the associated logical interface’s.
To configure the chassis queues to derive their scheduling from the associated logical interfaces:
Specify the logical interfaces from which to derive the scheduling configuration.
[edit] user@host# edit class-of-service interfaces interface-name
For example:
[edit] user@host# edit class-of-service interfaces so-0/1/*
Specify that the scheduler configuration is derived from the specified logical interfaces.
[edit class-of-service interfaces so-0/1/0] user@host# set scheduler-map-chassis derived
If you specify the scheduler-map-chassis derived
statement in the configuration, packet loss might occur when you subsequently add or remove logical interfaces at the [edit interfaces interface-name]
hierarchy level.
When fragmentation occurs on the egress interface, the first set of packet counters displayed in the output of the show interfaces queue
command show the post-fragmentation values. The second set of packet counters (under the Packet Forwarding Engine Chassis Queues
field) show the pre-fragmentation values. For more information about the show interfaces queue
command, see the CLI Explorer.
You can specify both the scheduler-map
and the scheduler-map-chassis derived
statements in the same interface configuration. The scheduler-map
statement controls the scheduler inside the PIC, while the scheduler-map-chassis derived
statement controls the aggregated traffic transmitted into the entire PIC.
For the Gigabit Ethernet IQ PIC, you must specify both the scheduler-map
and the scheduler-map-chassis derived
statements in the interface configuration.
Generally, when you specify the scheduler-map-chassis
statement in the configuration, you must use an interface wildcard for the interface name, as in type-fpc/pic/*
. The wildcard must use this format—for example. so-1/2/*
, which means all interfaces on FPC slot 1, PIC slot 2. There is one exception—you can apply the chassis scheduler map to a specific interface on the Gigabit Ethernet IQ PIC only.
According to Junos OS wildcard rules, specific interface configurations override wildcard configurations. For chassis scheduler map configurations, this rule does not apply; instead, specific interface CoS configurations are added to the chassis scheduler map configuration. For more information about how wildcards work with chassis scheduler maps, see Examples: Scheduling Packet Forwarding Component Queues. For general information about wildcards, see the Junos OS Administration Library for Routing Devices.
The interface applies wildcard configuration only if you do not add any specific configuration. If you add the specific interface configuration, then the interface deletes the applied wildcard configuration and applies the specified configuration.
Applying Custom Schedulers to Packet Forwarding Component Queues
Optionally, you can apply a custom scheduler to the chassis queues instead of configuring the chassis queues to automatically derive their scheduling configuration from the logical interfaces on the PIC.
To apply a custom chassis scheduler:
When you apply a custom scheduler map to packet forwarding component queues, or when you modify the configuration of a custom scheduler map that is already applied to packet forwarding component queues, packets already in the chassis queues might be dropped. The amount of packet loss is not deterministic and depends on the offered traffic load at the time you apply or modify the custom scheduler map.
Examples: Scheduling Packet Forwarding Component Queues
- Example: Applying a Chassis Scheduler Map to a 2-Port IQ PIC
- Example: Configuring Two T3 Interfaces on a Channelized DS3 IQ PIC
- Example: Applying Normal Schedulers to Two T3 Interfaces
- Example: Applying a Chassis Scheduler to Two T3 Interfaces
Example: Applying a Chassis Scheduler Map to a 2-Port IQ PIC
This example applies a chassis scheduler map to interfaces so-0/1/0
and so-0/1/1
.
According to customary wildcard rules, the so-0/1/0
configuration overrides the so-0/1/*
configuration, implying that the chassis scheduler map MAP1
is not applied to so-0/1/0
. However, the wildcard rule is not obeyed in this case; the chassis scheduler map applies to both interfaces so-0/1/0
and so-0/1/1
.
To configure the chassis queues to derive their scheduling from the associated logical interfaces:
Not Recommended: Using a Wildcard for Gigabit Ethernet IQ Interfaces When Applying a Chassis Scheduler Map
On a Gigabit Ethernet IQ PIC, you can apply the chassis scheduler map at both the specific interface level and the wildcard level. We do not recommend this because the wildcard chassis scheduler map takes precedence, which might not be the desired effect. For example, if you want to apply the chassis scheduler map MAP1 to port 0 and MAP2 to port 1, we do not recommend the following:
[edit class-of-service] user@host# set interfaces ge-0/1/0 scheduler-map-chassis MAP1 user@host# set interfaces ge-0/1/* scheduler-map-chassis MAP2
[edit class-of-service] user@host# show interfaces { ge-0/1/0 { scheduler-map-chassis MAP1; } ge-0/1/* { scheduler-map-chassis MAP2; } }
Recommended: Identifying Gigabit Ethernet IQ Interfaces Individually When Applying a Chassis Scheduler Map
Instead, we recommend this configuration:
[edit class-of-service] user@host# set interfaces ge-0/1/0 scheduler-map-chassis MAP1 user@host# set interfaces ge-0/1/1 scheduler-map-chassis MAP2
[edit class-of-service] user@host# show interfaces { ge-0/1/0 { scheduler-map-chassis MAP1; } ge-0/1/1 { scheduler-map-chassis MAP2; } }
Example: Configuring Two T3 Interfaces on a Channelized DS3 IQ PIC
To configure two T3 interfaces on a channelized DS3 IQ PIC:
Example: Applying Normal Schedulers to Two T3 Interfaces
Configure a scheduler for the aggregated traffic transmitted into both T3 interfaces.
Example: Applying a Chassis Scheduler to Two T3 Interfaces
Bind a scheduler to the aggregated traffic transmitted into the entire PIC. The chassis scheduler controls the traffic from the packet forwarding components feeding the interface t3-3/0/*
:
Not Recommended: Using a Wildcard for Logical Interfaces When Applying a Scheduler
Do not apply a scheduler to a logical interface using a wildcard. For example, if you
configure a logical interface (unit) with one parameter, and apply a scheduler map to
the interface using a wildcard, the logical interface will not apply the scheduler. The
following configuration will commit correctly but will not apply the scheduler map to
interface so-3/0/0.0
:
[edit] user@host# set class-of-service interfaces so-3/0/* unit 0 scheduler-map MY_SCHED_MAP user@host# set class-of-service interfaces so-3/0/0 unit 0 shaping-rate 100m
[edit class of service] user@host# show interfaces { so-3/0/* { unit 0 { scheduler-map MY_SCHED_MAP; } } so-3/0/0 { unit 0 { shaping-rate 100m; } } }
Recommended: Identifying Logical Interfaces Individually When Applying a Scheduler
Always apply the scheduler to a logical interface without the wildcard:
[edit] user@host# set class-of-service interfaces so-3/0/0 unit 0 scheduler-map MY_SCHED_MAP user@host# set class-of-service interfaces so-3/0/0 unit 0 shaping-rate 100m
[edit class of service] user@host# show interfaces { so-3/0/0 { unit 0 { scheduler-map MY_SCHED_MAP; shaping-rate 100m; } } }
This same wildcard behavior applies to classifiers and rewrites as well as schedulers.