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.
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.
For more information, see the following sections:
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:
- 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
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 ATM CoS with a Normal Scheduler and a Chassis Scheduler
Example: Configuring Two T3 Interfaces on a Channelized DS3 IQ PIC
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:
- Specify the logical interfaces from which to derive the
scheduling configuration. [edit class-of-service]user@host# set interfaces so-0/1/0 unit 0 classifiers inet-precedence default
- Using a wildcard rule, specify that the scheduler configuration
is derived from the logical interfaces on so-0/1*.[edit class-of-service]user@host# set interfaces so-0/1/* scheduler-map-chassis derived
- Review the configuration.
[edit]
user@host# show
class-of-service { interfaces { so-0/1/0 { unit 0 { classifiers { inet-precedence default; } } } so-0/1/* { scheduler-map-chassis derived; } } }
- Save the configuration.[edit]user@host# commit
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# 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# show
interfaces { ge-0/1/0 { scheduler-map-chassis MAP1; } ge-0/1/1 { scheduler-map-chassis MAP2; } }
Example: Configuring ATM CoS with a Normal Scheduler and a Chassis Scheduler
For ATM2 IQ interfaces, the CoS configuration differs significantly from that of other interface types. For more information about ATM CoS, see CoS on ATM Interfaces Overview.
To configure scheduler mapping on ATM2 IQ interfaces:
- Apply the chassis scheduler to the ATM interface.[edit]user@host# set class-of-service interfaces at-1/2/* scheduler-map-chassis derived
- Configure ATM-specific physical interface properties.
Specify the ATM interface to configure.
[edit]user@host# edit interfaces at-1/2/* atm-optionsConfigure the virtual path (VP).
[edit interfaces at-1/2/* atm-options]user@host# set vpi 0Specify the CoS virtual circuit drop profiles for random early detection (RED). These parameters define the drop preferences during times of congestion.
[edit interfaces at-1/2/0 atm-options]user@host# set linear-red-profiles red-profile-1 queue-depth 35kuser@host# set linear-red-profiles red-profile-1 high-plp-threshold 75user@host# set linear-red-profiles red-profile-1 low-plp-threshold 25Define the CoS parameters for the scheduler map.
[edit interfaces at-1/2/0 atm-options]user@host# set scheduler-maps map-1 vc-cos-mode strictuser@host# set scheduler-maps map-1 forwarding-class best-effort priority lowuser@host# set scheduler-maps map-1 forwarding-class best-effort transmit-weight percent 25user@host# set scheduler-maps map-1 forwarding-class best-effort linear-red-profile red-profile-1
- Configure the ATM logical interface.
Specify the logical interface you want to configure.
[edit interfaces at-1/2/0]user@host# edit unit 0Specify the virtual circuit identifier (VCI) and virtual path identifier (VPI) for the ATM logical interfaces.
[edit interfaces at-1/2/0 unit 0]user@host# set vci 0.128Specify the traffic shaping profile parameters.
[edit interfaces at-1/2/0 unit 0]user@host# set shaping vbr peak 20m sustained 10m burst 20Specify the scheduler map you want to associate with the ATM logical interface.
[edit interfaces at-1/2/0 unit 0]user@host# set atm-scheduler-map map-1Configure the protocol, local address, and remote address.
user@host# set family inet address 192.168.0.100/32 destination 192.168.0.101
- Review the configuration.
[edit class-of-service]
user@host# show
interfaces { at-1/2/* { scheduler-map-chassis derived; } }
[edit interfaces]
user@host# show
at-1/2/0 { atm-options { vpi 0; linear-red-profiles red-profile-1 { queue-depth 35000 high-plp-threshold 75 low-plp-threshold 25; } scheduler-maps map-1 { vc-cos-mode strict; forwarding-class best-effort { priority low; transmit-weight percent 25; linear-red-profile red-profile-1; } } } unit 0 { vci 0.128; shaping { vbr peak 20m sustained 10m burst 20; } atm-scheduler-map map-1; family inet { address 192.168.0.100/32 { destination 192.168.0.101; } } } }
- Save the configuration.[edit]user@host# commit
Example: Configuring Two T3 Interfaces on a Channelized DS3 IQ PIC
To configure two T3 interfaces on a channelized DS3 IQ PIC:
- Configure the first channelized DS3 IQ interface.
Specify the name of the interface.
[edit]user@host# edit interfaces ct3-3/0/0Configure the interface as unpartitioned, clear channel.
[edit interfaces ct3-3/0/0]user@host# set no-partition interface-type t3
- Configure the second channelized DS3 IQ interface.
Specify the name of the interface.
[edit]user@host# edit interfaces ct3-3/0/1Configure the interface as unpartitioned, clear channel.
[edit interfaces ct3-3/0/1]user@host# set no-partition interface-type t3
- Configure the first T3 channel.
Specify the name of the T3 interface on the DS3 IQ PIC.
[edit]user@host# edit t3-3/0/0 unit 0Specify the protocol family and address of the interface.
[edit t3-3/0/0 unit 0]user@host# set family inet address 10.0.100.1/30
- Configure the second T3 channel.
Specify the name of the T3 interface on the DS3 IQ PIC.
[edit]user@host# edit t3-3/0/1 unit 0Specify the protocol family and address of the interface.
[edit t3-3/0/0 unit 0]user@host# set family inet address 10.0.101.1/30
- Review the configuration.
[edit interfaces]
user@host# show
ct3-3/0/0 { no-partition interface-type t3; # use entire port 0 as T3 } ct3-3/0/1 { no-partition interface-type t3; # use entire port 1 as T3 } t3-3/0/0 { unit 0 { family inet { address 10.0.100.1/30; } } } t3-3/0/1 { unit 0 { family inet { address 10.0.101.1/30; } } }
- Save the configuration.[edit]user@host# commit
Example: Applying Normal Schedulers to Two T3 Interfaces
Configure a scheduler for the aggregated traffic transmitted into both T3 interfaces.
- Specify the names of the scheduler maps for each interface.[edit]user@host# set class-of-service interfaces t3-3/0/0 scheduler-map sched-qct3-0user@host# set class-of-service interfaces t3-3/0/1 scheduler-map sched-qct3-1
- Specify the CoS parameters assigned to each forwarding
class.[edit]user@host# set class-of-service scheduler-maps sched-qct3-0 forwarding-class best-effort scheduler be-qct3-0user@host# set class-of-service scheduler-maps sched-qct3-0 forwarding-class expedited-forwarding scheduler ef-qct3-0user@host# set class-of-service scheduler-maps sched-qct3-0 forwarding-class assured-forwarding scheduler as-qct3-0user@host# set class-of-service scheduler-maps sched-qct3-0 forwarding-class network-control scheduler nc-qct3-0user@host# set class-of-service scheduler-maps sched-qct3-1 forwarding-class best-effort scheduler be-qct3-1user@host# set class-of-service scheduler-maps sched-qct3-1 forwarding-class expedited-forwarding scheduler ef-qct3-1user@host# set class-of-service scheduler-maps sched-qct3-1 forwarding-class assured-forwarding scheduler as-qct3-1user@host# set class-of-service scheduler-maps sched-qct3-1 forwarding-class network-control scheduler nc-qct3-1user@host# set class-of-service scheduler-maps sched-chassis-to-q forwarding-class best-effort scheduler be-chassisuser@host# set class-of-service scheduler-maps sched-chassis-to-q forwarding-class expedited-forwarding scheduler ef-chassisuser@host# set class-of-service scheduler-maps sched-chassis-to-q forwarding-class assured-forwarding scheduler as-chassisuser@host# set class-of-service scheduler-maps sched-chassis-to-q forwarding-class network-control scheduler nc-chassis
- Specify each scheduler name and the associated transmit
rate..user@host# set class-of-service schedulers be-qct3-0 transmit-rate percent 40user@host# set class-of-service schedulers ef-qct3-0 transmit-rate percent 30user@host# set class-of-service schedulers as-qct3-0 transmit-rate percent 20user@host# set class-of-service schedulers nc-qct3-0 transmit-rate percent 10
- Review the configuration.
[edit class-of-service]
user@host# show
interfaces { t3-3/0/0 { scheduler-map sched-qct3-0; } t3-3/0/1 { scheduler-map sched-qct3-1; } } scheduler-maps { sched-qct3-0 { forwarding-class best-effort scheduler be-qct3-0; forwarding-class expedited-forwarding scheduler ef-qct3-0; forwarding-class assured-forwarding scheduler as-qct3-0; forwarding-class network-control scheduler nc-qct3-0; } sched-qct3-1 { forwarding-class best-effort scheduler be-qct3-1; forwarding-class expedited-forwarding scheduler ef-qct3-1; forwarding-class assured-forwarding scheduler as-qct3-1; forwarding-class network-control scheduler nc-qct3-1; } sched-chassis-to-q { forwarding-class best-effort scheduler be-chassis; forwarding-class expedited-forwarding scheduler ef-chassis; forwarding-class assured-forwarding scheduler as-chassis; forwarding-class network-control scheduler nc-chassis; } } schedulers { be-qct3-0 { transmit-rate percent 40; } ef-qct3-0 { transmit-rate percent 30; } as-qct3-0 { transmit-rate percent 20; } nc-qct3-0 { transmit-rate percent 10; } }
- Save the configuration.[edit]user@host# commit
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/*:
- Using a wildcard rule, specify that the scheduler configuration
is derived from the logical interfaces on t3-3/0/*.user@host# set class-of-service interfaces t3-3/0/* scheduler-map-chassis derived
- Review the configuration.
[edit class-of-service]
user@host# show
interfaces { t3-3/0/* { scheduler-map-chassis derived; } }
- Save the configuration.[edit]user@host# commit
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 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 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.