cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
704
Views
0
Helpful
1
Replies

ASR9K: bandwidth and bandwidth remaining cannot be used together. How to solve the problem to grant a quota and equally assign the remaining quota?

asindona65
Level 1
Level 1

Hi everyone

The problem should be trivial. We want to grant a quota to specific classes and use equally the remaining quota of available bandwidth to all the requesting classes. Let's clarify with an example:

 

Class 7 ==> priority queue, level 1 with police 20%

Class 5 ==> priority queue, level 2 with police 40%

 

Class 6 ==> CIR 12%

Class 3 ==> CIR 11%

Class 2 ==> CIR 8%

Class 1 ==> CIR 5%

Class 0 ==> CIR 4%

 

To simplify let's suppose that there is no traffic on class 7 and 5 and that all remaining classes are generating traffic at a rate of 300Mbps each. Outgoing interface is 1G so congestion occurs. We want that each class 6,3,2,1,0 receive its granted value (so, respectively, 120M, 110M, 80M, 50M and 40M for a total of 400M) and that the remaining available bandwidth (600M) will be equally assigned, so 120M to each class.

Documentation from IOS-XR 5.2.2 let's understand that this should be the default behavior but if we run the policy shown below what we get is a weighted assignment of the remaining quota.

 

The policy used is the following:

policy-map TEST-POLICY
 class qos7
  police rate percent 20
  !
  priority level 1
 !
 class qos5
  police rate percent 40
  !
  priority level 2
 !
 class qos6
  bandwidth percent 12
 !
 class qos3
  bandwidth percent 11
 !
 class qos2
  bandwidth percent 8
 !
 class qos1
  bandwidth percent 5
 !
 class qos0
  bandwidth percent 4
 !
 class class-default
 !
 end-policy-map
!

 

The documentation of IOS-XR 5.2.2 states that both "bandwidth percent" and "bandwidth remaining percent" could be used in the same class (which could be a solution to force the requested behavior) but using both generates the following error:

!!% Both bandwidth and bandwidth-remaining actions cannot be configured together in leaf-level of the queuing hierarchy: InPlace Modify Error: Policy TEST-POLICY: 'qos-ea' detected the 'warning' condition 'Both bandwidth and bandwidth-remaining actions cannot be configured together in leaf-level of the queuing hierarchy'

 

How could be solved the problem? Maybe a hierarchical QoS with the granted quota in the parent policy and a "bandwidth remaining percent 20" in the child?

1 Reply 1

asindona65
Level 1
Level 1

Hi everyone

just to provide my contribution, the hierarchical QoS policy works balancing the remaining bandwidth after granting the requested bandwidth (see the policy implemented below). However for priority queues it is granted the policer quota but sending more flows these appears to be unbalanced. So the problem to have both PQ served (in a balanced way between flows) AND have the remaining bandwidth distributed equally remains open ...

 

policy-map TEST-POLICY-parent
 class qos6
  service-policy TEST-POLICY-child
  bandwidth percent 12
 !
 class qos3
  service-policy TEST-POLICY-child
  bandwidth percent 11
 !
 class qos2
  service-policy TEST-POLICY-child
  bandwidth percent 8
 !
 class qos1
  service-policy TEST-POLICY-child
  bandwidth percent 5
 !
 class qos0
  service-policy TEST-POLICY-child
  bandwidth percent 4
 !
 class class-default

  service-policy TEST-POLICY-child
 !
 end-policy-map
!


policy-map TEST-POLICY-child
 class qos7
  police rate percent 20
  !
  priority level 1
 !
 class qos5
  police rate percent 40
  !
  priority level 2
 !
 class qos6
  bandwidth remaining percent 20
 !
 class qos3
  bandwidth remaining percent 20
 !
 class qos2
  bandwidth remaining percent 20
 !
 class qos1
  bandwidth remaining percent 20
 !
 class qos0
  bandwidth remaining percent 20
 !
 class class-default
 !
 end-policy-map
!