Some Cisco documentation claims that you can only have one low-latency queue inside a single
policy map. In other words, only one class can use the priority command, making it a lowlatency
queue. Other Cisco documentation claims that you can have more than one low-latency
queue in a single policy map.
As it turns out, you can have multiple low-latency queues in a single policy map. Why would
you need more than one low-latency queue in a policy map, and how would it work? Well, it’s
actually pretty simple, now that you know how to configure LLQ.
First, imagine a policy map that has one low-latency queue configured with the priority 400
command. This queue needs 320 kbps for a single video conference call, plus three G.729 voice
calls totaling about 80 kbps. If only the three voice calls and the single video-conference call
occur, the LLQ configuration works fine, the policer does not drop any packets, and the voice
and video packets are processed as FIFO within that LLQ class. As always, packets in the lowlatency
queue get serviced ahead of packets in the other non-LLQ classes.
Compare that configuration to a policy map with two low-latency queues defined—one for
voice with a priority 80 command, and another for video conferencing with priority 320
configured. What’s really different about this than the first configuration? The policing, but
not the queuing.
With multiple low-latency queues, each class is policed at the configured rate. For instance,
with all voice calls going into the class with priority 80, three G.729 calls are supported, but
not more than that. With video-conferencing traffic going into the class with priority 320, only
that single video call is supported.
The fact that the different types of traffic are policed separately in the second example provides
the motivation to use multiple low-latency queues. Suppose that a fourth voice call were made,
and the CAC tools in place did not prevent the call, meaning that more than 80 kbps of voice
traffic was being sent. With a single low-latency queue, both video and some voice packets
Some Cisco documentation claims that you can only have one low-latency queue inside a singlepolicy map. In other words, only one class can use the priority command, making it a lowlatencyqueue. Other Cisco documentation claims that you can have more than one low-latencyqueue in a single policy map.As it turns out, you can have multiple low-latency queues in a single policy map. Why wouldyou need more than one low-latency queue in a policy map, and how would it work? Well, it’sactually pretty simple, now that you know how to configure LLQ.First, imagine a policy map that has one low-latency queue configured with the priority 400command. This queue needs 320 kbps for a single video conference call, plus three G.729 voicecalls totaling about 80 kbps. If only the three voice calls and the single video-conference calloccur, the LLQ configuration works fine, the policer does not drop any packets, and the voiceand video packets are processed as FIFO within that LLQ class. As always, packets in the lowlatencyqueue get serviced ahead of packets in the other non-LLQ classes.Compare that configuration to a policy map with two low-latency queues defined—one forvoice with a priority 80 command, and another for video conferencing with priority 320configured. What’s really different about this than the first configuration? The policing, butnot the queuing.With multiple low-latency queues, each class is policed at the configured rate. For instance,with all voice calls going into the class with priority 80, three G.729 calls are supported, butnot more than that. With video-conferencing traffic going into the class with priority 320, onlythat single video call is supported.The fact that the different types of traffic are policed separately in the second example providesthe motivation to use multiple low-latency queues. Suppose that a fourth voice call were made,and the CAC tools in place did not prevent the call, meaning that more than 80 kbps of voicetraffic was being sent. With a single low-latency queue, both video and some voice packets
would be discarded due to policing, because the cumulative rate for all traffic would exceed
400 kbps. The policer would have no way to decide to discard just the extra voice, but not video,
because the policer acts on all traffic in the class. However, with the two lower-latency queues
configuration, only the voice calls would lose packets due to policing, and the video conference
would not have any packets dropped by the policer.
In effect, with multiple low-latency queues, you get more granularity in what you police. In fact,
the most typical reason to use multiple low-latency queues is to support voice in one queue, and
video in another.
Queuing does not differ when comparing using a single low-latency queue with multiple lowlatency
queues in a single policy map. IOS always takes packets from the low-latency queues
first, as compared with the non-low-latency queues (those with a bandwidth command), just
like before. However, IOS does not reorder packets between the various low-latency queues
inside the policy map. In other words, IOS treats all traffic in all the low-latency queues with
FIFO logic.
In short, using multiple low-latency queues in one policy map does enable you to police traffic
more granularly, but it does not reorder packets among the various low-latency queues.
Unfortunately, the DQOS and QoS courses and exams disagree with each other about where
you can have more than one low-latency queue. The DQOS course states that only one lowlatency
queue is allowed in a single policy map, whereas the QoS course states that multiple
low-latency queues are allowed. So, you may talk to colleagues who have seen some Cisco
documentation, or taken the DQOS class, and swear that only one low-latency queue is allowed.
Thankfully, the chances are low that you would see a question distinguishing this fine point.
However, you should be aware of the differences in documentation and the courses, so we made
it a point to draw attention to the differences here.