04-01-2015 02:41 PM
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?
04-03-2015 05:30 AM
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
!
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide