01-29-2014 04:45 PM - edited 03-04-2019 10:12 PM
We have a number of sites using telstra IPWAN MPLS network. Most traffic comes out of our head office feeding into a 40Mbps Ethernet service. The service policy is attached to the Ethernet interface
Policy-map QOS_OUT_NEW
class ROUTING
bandwidth 1200
class SITE_DR
shape average 15000000 150000 0
service-policy QOS_OUT_9MB
class SITE_1
shape average 4000000 40000 0
service-policy QOS_OUT_4MB
class SITE_2
shape average 4000000 40000 0
service-policy QOS_OUT_4MB
class SITE_2
shape average 4000000 40000 0
service-policy QOS_OUT_4MB
----etc--etc---
for a total of 24 sites of these 12 are 4Mbps and above, 5 are 2Mbps,1 at 1Mbps,2 at 512kbps,2 at 384kbps and 2 at 192kbps
the QOS_OUT_4MB below the others for different speedshave the same proportions
policy-map QOS_OUT_4MB
class RT-VOICE
priority percent 20
class RT-VIDEO
bandwidth percent 25
class CONTROL
bandwidth percent 3
class CRITICAL
bandwidth percent 18
random-detect dscp-based
class IMPORTANT
bandwidth percent 16
random-detect dscp-based
class TRANSACTIONAL
bandwidth percent 14
random-detect dscp-based
class class-default
shape average 4000000 40000 0
queue-limit 256 packets
random-detect dscp-based
random-detect dscp 0 64 256
now when I do a "sh policy-map interface"
I see for all the 4MB and 2MB policies below
for Voice
Class-map: RT-VOICE (match-any)
314515 packets, 21680630 bytes
5 minute offered rate 0000 bps, drop rate 0000 bps
Match: ip dscp ef (46)
314515 packets, 21680630 bytes
5 minute rate 0 bps
Priority: 20% (298 kbps), burst bytes 7450, b/w exceed drops: 0
298kbps is not 20% of 4 Mbps..I would expect 800kbps !!
also of interest the 1Mbps,512,384,and 192kbps policies showed the correct percentage!!
Can anyone help with this?
Solved! Go to Solution.
02-05-2014 05:23 AM
Hi Ambika,
I used simple math formula X% = (Y/Z)*100
Class-map: CRITICAL (match-any)
bandwidth 18% (268 kbps)
Here, X = 18%, Y=268, We needed Z. You can use any of the class in this policy and you would get the same result.
Following is a case which I worked on and below is an explanation of the HQF's functionality, hope it helps you understand the concept.
Customer's Problem Description -
HQF_CHILD in Class-2 always calculate Gold = 12.5 mbps and Silver = 5 mbps
Actual Problem –
HQF (Hierarchical QoS Framework ) takes visible BW instead of max_rate configured by parent shaper as allocated_bw.
Reason –
Each layer in the hierarchy gets its bandwidth based on 2 rates:
Since QoS defines BW ‘guarantees’, the lower of the 2 rates is available for any layer and this is represented as ‘allocated_bw’. All BW classes and LLQ derive their bandwidth from the ‘allocated_bw’.
!
policy-map HQF_CHILD
Class Gold
priority percent 50%
Class Silver
bandwidth percent 20%
!
policy-map HQF_Parent
!
class Class-1
shape average 1048576
queue-limit 1024 packets
service-policy HQF_CHILD
!
class Class-2
shape average 42000000
service-policy HQF_CHILD
!
class Class-3
shape average 2097152
queue-limit 1024 packets
service-policy HQF_CHILD
!
class class-default
!
!
interface FastEthernet0/0
service-policy out HQF_Parent
!
end
Explanation/Meaning of the above –
If we do not configure BW using bandwidth command on parent classes then HQF assigns equal BW to each of them. Here we have 4 classes, so each class will get 25% of (100Mbps on FaEth); this is visible_bw.
Now we have configured shaping in each class which is max_rate. HQF will take minimum of the visible_bw and max_rate as the reference for calculations for child classes.
class Class-1 (max_rate
visible_bw = 25000000
max_rate = 1048576
allocated_bw = 1048576
class Class-2 (max_rate>visible_bw)
visible_bw = 25000000
max_rate = 42000000
allocated_bw = 25000000
class Class-3 (max_rate
visible_bw = 25000000
max_rate = 2097152
allocated_bw = 2097152
class-default (no max_rate configured)
visible_bw = 25000000
allocated_bw = 25000000
Resolution –
If you want to allocate 42000000 bps to the class, use bandwidth 42000 in class Class-2 which will obviously set the visible_bw equal to max_rate and will allow HQF to use it as reference(allocated_bw).
Hoping, this helps you in understanding the underlying functionality of HQF on bandwidth allocation.
-Vishesh
02-05-2014 07:07 AM
Vishesh, Thanks for your brief Explanation on HQF.
Regards,
Ambi.M
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