#

Monday, September 16, 2019

LLQ Example with MQC/HQF

LLQ (Low Latency Queuing) is the feature in IOS mostly known as the Priority Queuing.

To learn about fundamentals of MQC/HQF please go here.

I created following picture to visualize what's happening in an interface..















In an event of a congestion, LLQ will get the priority and and the 10% bandwidth is guaranteed. Other queues are attached to CBWFQ so that they will get the configured portion of the link bandwidth but in a round robin fashion and will not be completely starved even in an event of a congestion. To learn how CBWFQ works please go here.

Let's see how to address a requirement..

Assume that VoIP calls are using the G.729 codec, which generates 50 packets per second with a Layer 3 size of 60 bytes.

(1) Configure Low Latency Queuing to allow for exactly one VoIP call to be prioritized.
(2) Additional VoIP calls should be allowed only if the link is not congested, but they should not be prioritized.
(3) Reserve 30% of the remaining bandwidth to HTTP traffic and 20% of the remaining bandwidth to SMTP traffic.

Let's start with creating the Access List to capture all the VoIP calling traffic..

R1(config)#ip access-list extended VOIP
R1(config-ext-nacl)#permit udp any any range 16384 32767

Now let's create the Class-Maps needed..

R1(config)#class-map CM-VOIP
R1(config-cmap)#match access-group name VOIP

R1(config)#class-map HTTP
R1(config-cmap)#match protocol http 

R1(config)#class-map SMTP
R1(config-cmap)#match protocol smtp

Creating the policy..

R1(config)#policy-map POLICY
R1(config-pmap)#class CM-VOIP
R1(config-pmap-c)#priority 32
R1(config-pmap-c)#exit
R1(config-pmap)#class HTTP
R1(config-pmap-c)#bandwidth remaining percent 30
R1(config-pmap-c)#exit
R1(config-pmap)#class SMTP
R1(config-pmap-c)#bandwidth remaining percent 20

Finally applying to an interface;

R1(config)#int g0/1
R1(config-if)#service-policy output POLICY

Following is the active policy-map as per my configuration..





























Explanation:-
priority 32, command tells the router to put the Traffic Class CM-VOIP to the LLQ or the Priority Queue and limit the Queue bandwidth to the fix value of 32 kbps.

How this 32 kbps value came?

Bandwidth required in Ethernet for a G.729 call which generates 50 packets per second with a Layer 3 size of 60 bytes can be calculated like the following. Ethernet overhead is 18 bytes..

= (18+60) x 50 x 8
= 31.2 kbps

To learn how to calculate bandwidth for VoIP calling please go here.

This bandwidth is for a one call. So when a one call is active, it will be put in to the Priority Queue and there won't be any free space for another call. So in an event of congestion, only one call will be handled. Remaining bandwidth will be sharing as per the configuration. These other traffic classes goes to CBWFQ (Class Based Weighted Fair Queuing).

No comments:

Post a Comment