Example: Configuring Transmission Rate with Intelligent Oversubscription on SONET/SDH OC48/STM16 IQE PICs
This example shows how to configure transmission rates on a sonet interface for eight forwarding classes with transmission rate values that exceed 100 percent, causing the interface to be in an oversubscribed state.
Requirements
This example requires the following hardware and software components:
Networking devices using a SONET/SDH OC48/STM16 IQE PIC.
Junos OS Release 12.2 or later running on the devices.
Before you begin:
Configure the device interfaces.
Enable class-of-service (CoS) queuing, scheduling, and shaping on the device interfaces.
Overview and Topology
Junos OS Release 12.2 and later support oversubscribing the available bandwidth on a SONET/SDH OC48/STM16 IQE PIC up to 300 percent. This optimization is achieved by creating an additional priority group for all queues specified for low priority, and the sum of transmission rates for all the low priority queues adding up to 100 percent, independent of the transmission rate configured for all other queues.
Previously, the SONET/SDH OC48/STM16 IQE PIC supported a maximum bandwidth optimization by oversubscribing the available bandwidth up to 200 percent, by excluding the transmission rate percentage specified for the Strict-High queue from the total 100 percent transmission rate. Therefore, the transmission rate percentage for all the non-Strict-High queues added up to 100 percent. This computation was done after the internal mapping of the excess priority or the excess rate.
As an enhancement to the intelligent oversubscription feature on SONET/SDH OC48/STM16 IQE PICs, support for maximum bandwidth optimization is increased to 300 percent.
When the sum of transmission rates for all queues exceeds 100 percent, the interface is in an oversubscribed state. At the time of oversubscription, the queues are split into three priority groups with the intelligent oversubscription feature enhancement:
Strict-High
High, Medium-High, and Medium-Low
Low
Each of the above priority groups can be configured to have a transmission rate oversubscription up to 100 percent. The transmission rate oversubscription value can be expressed as a percentage of the CIR or PIR value or as an absolute value.
The remainder
option is not supported on an
oversubscribed SONET/SDH OC48/STM16 IQE PIC. When the sum of the transmission
rates for all queues exceeds 100 percent, and if one or more queues
are configured with the remainder
option, a syslog error
message is generated and the configuration is ignored.
In this example, Router R0 is the route on which the CoS options are configured. Routers R1 and R2 are directly connected to R0 and send traffic to R0.

Configuration
CLI Quick Configuration
To quickly configure this example, copy the
following commands, paste them into a text file, remove any line breaks,
change any details necessary to match your network configuration,
and then copy and paste the commands into the CLI at the [edit]
hierarchy level.
R0
set class-of-service classifiers inet-precedence inet_classy forwarding-class fc0 loss-priority low code-points 000 set class-of-service classifiers inet-precedence inet_classy forwarding-class fc1 loss-priority low code-points 001 set class-of-service classifiers inet-precedence inet_classy forwarding-class fc2 loss-priority low code-points 010 set class-of-service classifiers inet-precedence inet_classy forwarding-class fc3 loss-priority low code-points 011 set class-of-service classifiers inet-precedence inet_classy forwarding-class fc4 loss-priority low code-points 100 set class-of-service classifiers inet-precedence inet_classy forwarding-class fc5 loss-priority low code-points 101 set class-of-service classifiers inet-precedence inet_classy forwarding-class fc6 loss-priority low code-points 110 set class-of-service classifiers inet-precedence inet_classy forwarding-class fc7 loss-priority low code-points 111 set class-of-service forwarding-classes class fc0 queue-num 0 set class-of-service forwarding-classes class fc1 queue-num 1 set class-of-service forwarding-classes class fc2 queue-num 2 set class-of-service forwarding-classes class fc3 queue-num 3 set class-of-service forwarding-classes class fc4 queue-num 4 set class-of-service forwarding-classes class fc5 queue-num 5 set class-of-service forwarding-classes class fc6 queue-num 6 set class-of-service forwarding-classes class fc7 queue-num 7 set class-of-service traffic-control-profiles TCP scheduler-map map_ifls set class-of-service traffic-control-profiles TCP shaping-rate 1g set class-of-service interfaces so-4/1/0 unit 0 classifiers inet-precedence inet_classy set class-of-service interfaces so-4/1/1 unit 0 output-traffic-control-profile TCP set class-of-service schedulers s0 transmit-rate percent 25 set class-of-service schedulers s0 priority strict-high set class-of-service schedulers s1 transmit-rate percent 20 set class-of-service schedulers s1 priority high set class-of-service schedulers s2 transmit-rate percent 15 set class-of-service schedulers s2 priority high set class-of-service schedulers s3 transmit-rate percent 35 set class-of-service schedulers s3 priority medium-high set class-of-service schedulers s4 transmit-rate percent 10 set class-of-service schedulers s4 priority medium-low set class-of-service schedulers s5 transmit-rate percent 15 set class-of-service schedulers s5 priority low set class-of-service schedulers s6 transmit-rate percent 15 set class-of-service schedulers s6 priority low set class-of-service schedulers s7 transmit-rate percent 15 set class-of-service schedulers s7 priority low set class-of-service scheduler-maps map_ifls forwarding-class fc0 scheduler s0 set class-of-service scheduler-maps map_ifls forwarding-class fc1 scheduler s1 set class-of-service scheduler-maps map_ifls forwarding-class fc2 scheduler s2 set class-of-service scheduler-maps map_ifls forwarding-class fc3 scheduler s3 set class-of-service scheduler-maps map_ifls forwarding-class fc4 scheduler s4 set class-of-service scheduler-maps map_ifls forwarding-class fc5 scheduler s5 set class-of-service scheduler-maps map_ifls forwarding-class fc6 scheduler s6 set class-of-service scheduler-maps map_ifls forwarding-class fc7 scheduler s7
Procedure
Step-by-Step Procedure
The following example requires you to navigate various levels in the configuration hierarchy. For information about navigating the CLI, see Using the CLI Editor in Configuration Mode. To configure the R0 router:
Configure an IP Precedence classifier to classify incoming packets based on the code point values.
[edit class-of-service classifiers]
user@R0# set inet-precedence inet_classyDefine the classification of code point values to a forwarding class, and configure code point values to classify to loss priority Low.
[edit class-of-service classifiers inet-precedence inet_classy]
user@R0# set fc0 loss-priority low code-points 000 user@R0# set fc1 loss-priority low code-points 001 user@R0# set fc2 loss-priority low code-points 010 user@R0# set fc3 loss-priority low code-points 011 user@R0# set fc4 loss-priority low code-points 100 user@R0# set fc5 loss-priority low code-points 101 user@R0# set fc6 loss-priority low code-points 110 user@R0# set fc7 loss-priority low code-points 111Define mapping of forwarding classes to queue numbers.
[edit class-of-service forwarding-classes class]
user@R0# set fc0 queue-num 0 user@R0# set fc1 queue-num 1 user@R0# set fc2 queue-num 2 user@R0# set fc3 queue-num 3 user@R0# set fc4 queue-num 4 user@R0# set fc5 queue-num 5 user@R0# set fc6 queue-num 6 user@R0# set fc7 queue-num 7Configure traffic shaping and scheduling profiles.
[edit class-of-service traffic-control-profiles]
user@R0# set TCP scheduler-map map_ifls user@R0# set TCP shaping-rate 1gApply the class-of-service options to interfaces.
[edit class-of-service interfaces]
user@R0# set so-4/1/0 unit 0 classifiers inet-precedence inet_classy user@R0# set so-4/1/1 unit 0 output-traffic-control-profile TCPConfigure eight packet schedulers with scheduling priority and transmission rates.
[edit class-of-service schedulers]
user@R0# set s0 transmit-rate percent 25 user@R0# set s0 priority strict-high user@R0# set s1 transmit-rate percent 20 user@R0# set s1 priority high user@R0# set s2 transmit-rate percent 15 user@R0# set s2 priority high user@R0# set s3 transmit-rate percent 35 user@R0# set s3 priority medium-high user@R0# set s4 transmit-rate percent 0 user@R0# set s4 priority medium-low user@R0# set s5 transmit-rate percent 15 user@R0# set s5 priority low user@R0# set s6 transmit-rate percent 15 user@R0# set s6 priority low user@R0# set s7 transmit-rate percent 15 user@R0# set s7 priority lowDefine mapping of forwarding classes to packet schedulers.
[edit class-of-service scheduler-maps]
user@R0# set map_ifls forwarding-class fc0 scheduler s0 user@R0# set map_ifls forwarding-class fc1 scheduler s1 user@R0# set map_ifls forwarding-class fc2 scheduler s2 user@R0# set map_ifls forwarding-class fc3 scheduler s3 user@R0# set map_ifls forwarding-class fc4 scheduler s4 user@R0# set map_ifls forwarding-class fc5 scheduler s5 user@R0# set map_ifls forwarding-class fc6 scheduler s6 user@R0# set map_ifls forwarding-class fc7 scheduler s7
Results
From configuration mode, confirm your configuration
by entering the show class-of-service
command. If the output
does not display the intended configuration, repeat the instructions
in this example to correct the configuration.
class-of-service { classifiers { inet-precedence inet_classy { forwarding-class fc0 { loss-priority low code-points 000; } forwarding-class fc1 { loss-priority low code-points 001; } forwarding-class fc2 { loss-priority low code-points 010; } forwarding-class fc3 { loss-priority low code-points 011; } forwarding-class fc4 { loss-priority low code-points 100; } forwarding-class fc5 { loss-priority low code-points 101; } forwarding-class fc6 { loss-priority low code-points 110; } forwarding-class fc7 { loss-priority low code-points 111; } } } forwarding-classes { class fc0 queue-num 0; class fc1 queue-num 1; class fc2 queue-num 2; class fc3 queue-num 3; class fc4 queue-num 4; class fc5 queue-num 5; class fc6 queue-num 6; class fc7 queue-num 7; } traffic-control-profiles { TCP { scheduler-map map_ifls; shaping-rate 1g; } } interfaces { so-4/1/0 { unit 0 { classifiers { inet-precedence inet_classy; } } } so-4/1/1 { unit 0 { output-traffic-control-profile TCP; } } } schedulers { s0 { transmit-rate percent 25; priority strict-high; } s1 { transmit-rate percent 20; priority high; } s2 { transmit-rate percent 15; priority high; } s3 { transmit-rate percent 35; priority medium-high; } s4 { transmit-rate percent 10; priority medium-low; } s5 { transmit-rate percent 15; priority low; } s6 { transmit-rate percent 15; priority low; } s7 { transmit-rate percent 15; priority low; } } scheduler-maps { map_ifls { forwarding-class fc0 scheduler s0; forwarding-class fc1 scheduler s1; forwarding-class fc2 scheduler s2; forwarding-class fc3 scheduler s3; forwarding-class fc4 scheduler s4; forwarding-class fc5 scheduler s5; forwarding-class fc6 scheduler s6; forwarding-class fc7 scheduler s7; } } }
If you are done configuring the device, enter commit
from configuration mode.
Verification
Confirm that the configuration is working properly.
Verifying Queue Transmission Rate Oversubscription
Purpose
Verify that the SONET/SDH OC48/STM16 IQE PIC supports 300 percent oversubscription.
Action
Configure the queue transmission rates such that they are oversubscribed up to 300 percent.
The sum of transmission rates of all queues can be less than or equal to 300 percent. The sum of transmission rates of all queues in each priority group should be less than or equal to 100 percent.
In this example, Router R0 interfaces have been oversubscribed by 150 percent of the available bandwidth. The sum of transmission rates of all the queues in each of the priority groups are:
Strict-High—(q0) 25%
High, Medium-High, Medium-Low—(q1, q2, q3, and q4) 80%
Low—(q5, q6, and q7) 45%
When the sum of transmission rates of all queues in any of the priority groups exceeds 100 percent, the commit fails.
For example, if the transmission rate of q1 is 30 percent, the sum of the transmission rates of all queues (q1, q2, q3, and q4) in the High-Medium priority group is 110 percent. At the time of commit, the following error is displayed:
Total bandwidth allocation for high-med priority queues exceeds 100 percent for scheduler-map map_ifls error: configuration check-out failed
Meaning
When the sum of transmission rates of all queues exceeds 100 percent, a new priority group is created for all Low priority queues. The queue transmission rates in the Low priority group can add up to 100 percent.