Support Support Downloads Knowledge Base Case Manager My Juniper Community

Knowledge Base

Search our Knowledge Base sites to find answers to your questions.

Ask All Knowledge Base Sites All Knowledge Base Sites JunosE Defect (KA)Knowledge BaseSecurity AdvisoriesTechnical BulletinsTechnotes Sign in to display secure content and recently viewed articles

"QoS Transmit-rate" does not work when the total of transmit-rate has set to more than 100 a scheduler

0

0

Article ID: KB16374 KB Last Updated: 03 Feb 2010Version: 1.0
Summary:
"QoS Transmit-rate" does not work when the total of all transmit-rate is set to more than 100% of a scheduler (the sum of all queues configured stays at less than 100%). 

CoS is working as designed; the issue is due to a documentation error.  See below for details.
Symptoms:
During the investigation, observed that "QoS Transmit-rate" doesn't work when the total of transmit-rate is set to more than 100 a scheduler.  For an example, please refer to the following log.
lab@LCC1_RE0> show configuration
## Last commit: 2009-11-20 19:11:04 JST by lab
version 9.1S1.1;

<---skip--->

class-of-service {
   forwarding-classes {
   class class1 queue-num 3;
   class mig_class1 queue-num 4;
   class class2 queue-num 2;
   class class3 queue-num 1;
   class class4 queue-num 0; <---refer to same a quene
   class mig_class4 queue-num 0; <---refer to same a quene
   }
interfaces {
   ge-7/0/0 {
      scheduler-map mig_westmap;
      }
   }
scheduler-maps {
   mig_westmap {
      forwarding-class class1 scheduler class1;
      forwarding-class mig_class1 scheduler mig_class1;
      forwarding-class class2 scheduler class2;
      forwarding-class class3 scheduler class3;
      forwarding-class class4 scheduler class4;
      forwarding-class mig_class4 scheduler class4;  <<<<<<<<</* If you delete this then it will work*/
      }
   }
schedulers {
   class1 {
      priority strict-high;
      }
   mig_class1 {
      transmit-rate percent 2;
      priority high;
      }
   class2 {
      transmit-rate percent 36;
      priority low;
      }
   class3 {
      transmit-rate percent 36;
      priority low;
      }
   class4 {
      transmit-rate percent 13;  
      priority low;
      }
   mig_class4 {
      transmit-rate percent 13;
      priority low;
      }
   }
}


*******The sum of all queues configured is 87%.************
*******The sum of all schedulers configured is 100%.***********


<---skip--->

lab@LCC1_RE0> start shell pfe network fpc7
GFPC platform (300Mhz MPC 755 processor, 1024MB memory, 512KB flash)
EGFPC7(LCC1_RE0 vty)# show cos scheduling-policy

scheduler binding to final streams
==================================
ifd   phy   Q     tx-BW delay-BW   sched    rate tcp/plp tcp/plp tcp/plp tcp/plp
index strem num   (%)   (%)        priority cntl (0/0)   (0/1)   (1/0)   (1/1)
----- ----- ---   ----- --------   -------- ---- ------- ------- ------- -------
137   64    0     13.0 <--16.6     0        off  1       1       1       1
1                 36.0    16.6     0        off  1       1       1       1
2                 36.0    16.6     0        off  1       1       1       1
3                255.0    16.6     4        off  1       1       1       1
4                  2.0    16.6     3        off  1       1       1       1
0                 13.0 <--16.6     0        off  1       1       1       1

138   0     0     95.0    95.0     0        off  1       1       1       1
3                  5.0     5.0     0        off  1       1       1       1

scheduler binding to chassis streams
====================================
- No scheduling policy attached -

EGFPC7(LCC1_RE0 vty)# show mqchip 0 wan cos
                 Pkt Mem Alloc   WRR delta     WRR threshold
                 -------------   ---------     -------------
[Stream 64] Q 0: 136048 Cells    8559 <--*1   34236
            Q 1: 174421 Cells    23704        94816 
            Q 2: 174421 Cells    23703        94812
            Q 3: 174421 Cells    65535        262140
            Q 4: 20930 Cells     1317         5268
            Q 5: 256 Cells       0            0
            Q 6: 256 Cells       0            0
            Q 7: 256 Cells       0            0

EGFPC7(LCC1_RE0 vty)#

**************** *1 8559=13% ****************


lab@LCC1_RE0> configure
Entering configuration mode

[edit]
lab@LCC1_RE0# edit class-of-service scheduler

[edit class-of-service schedulers]
lab@LCC1_RE0# replace pattern 13 with 26

[edit class-of-service schedulers]
lab@LCC1_RE0# show
class1 {
   priority strict-high;
   }
mig_class1 {
   transmit-rate percent 2;
   priority high;
   }
class2 {
   transmit-rate percent 36;
   priority low;
   }
class3 {
   transmit-rate percent 36;
   priority low;
   }
class4 {
   transmit-rate percent 26;
   priority low;
   }
mig_class4 {
   transmit-rate percent 26;
   priority low;
   }

*******The sum of all queues configured is 100%.************
*******The sum of all schedulers configured is 113%.***********


[edit]
lab@LCC1_RE0# commit
commit complete

[edit]
lab@LCC1_RE0# exit
Exiting configuration mode

lab@LCC1_RE0> start shell pfe network fpc7


GFPC platform (300Mhz MPC 755 processor, 1024MB memory, 512KB flash)

EGFPC7(LCC1_RE0 vty)# show cos scheduling-policy

scheduler binding to final streams
==================================
ifd   phy   Q     tx-BW delay-BW   sched    rate tcp/plp tcp/plp tcp/plp tcp/plp
index strem num   (%)   (%)        priority cntl (0/0)   (0/1)   (1/0)   (1/1)
----- ----- ---   ----- --------   -------- ---- ------- ------- ------- -------
137   64    0     26.0<--255.0     0        off  1       1       1       1
1                 36.0   255.0     0        off  1       1       1       1
2                 36.0   255.0     0        off  1       1       1       1
3                255.0   255.0     4        off  1       1       1       1
4                  2.0   255.0     3        off  1       1       1       1
0                 26.0<--255.0     0        off  1       1       1       1

138  0      0     95.0    95.0     0        off  1       1       1       1
3                  5.0     5.0     0        off  1       1       1       1


scheduler binding to chassis streams
====================================
- No scheduling policy attached -

EGFPC7(LCC1_RE0 vty)#
EGFPC7(LCC1_RE0 vty)# show mqchip 0 wan cos
                 Pkt Mem Alloc  WRR delta   WRR threshold
                 -------------  ---------   -------------
[Stream 64] Q 0: 136048 Cells   8559  <--*2 34236 
            Q 1: 174421 Cells   23704       94816 
            Q 2: 174421 Cells   23703       94812
            Q 3: 174421 Cells   65535       262140
            Q 4: 20930 Cells    1317        5268
            Q 5: 256 Cells      0           0
            Q 6: 256 Cells      0           0
            Q 7: 256 Cells      0           0

**************** *1 8559=13% It is not 26% ****************


Also noted the following log message.

Nov 20 19:15:47.805 LCC1_RE0 fpc7 COSMAN: Wrr underflow, for ge-7/0/0
Nov 20 19:15:47.805 LCC1_RE0 fpc7 COSMAN: policy update failed


In short you cannot assign the same scheduler to Multiple Forwarding classes.  Scheduler task is to service a QUEUE, in this case Q0, which could get a packet classified by the forwarding class "class4" or "mig_class4".   You should not assign the scheduler named "class4", in this example, to both forwarding class "class4" and "mig_class4" . Only assigning one of them will work.   In the case where it is assigned to both then "transmit rate is counted double".

 Recommendation: Configure on scheduler to a QUEUE and NOT a forwarding class. It is a one to one mapping.
Solution:
CoS is working as designed.  This is a Documentation Error.

The documentation currently states:
"You can configure up 16 different forwarding-class names. The corresponding output queue number can be from 0 through 7. Therefore, you can map multiple forwarding classes to a single queue. If you map multiple forwarding classes to a queue, the multiple forwarding classes must refer to the same scheduler (at the [edit class-of-service scheduler-maps map-name forwarding-class class-name scheduler scheduler-name] hierarchy level)."

This  should be changed to:
"You can configure up 16 different forwarding-class names. The corresponding output queue number can be from 0 through 7. Therefore, you can map multiple forwarding classes to a single queue. If you map multiple forwarding classes to a queue, only one of those classes can have scheduler (at the [edit class-of-service scheduler-maps map-name forwarding-class class-name scheduler scheduler-name] hierarchy level)."
Comment on this article > Affected Products Browse the Knowledge Base for more articles related to these product categories. Select a category to begin.

Getting Up and Running with Junos

Getting Up and Running with Junos Security Alerts and Vulnerabilities Product Alerts and Software Release Notices Problem Report (PR) Search Tool EOL Notices and Bulletins JTAC User Guide Customer Care User Guide Pathfinder SRX High Availability Configurator SRX VPN Configurator Training Courses and Videos End User Licence Agreement Global Search