Ethan Banks On productivity.

OECG – Chapter 15


Low latency queuing is the tool to use when you are providing QoS for delay sensitive traffic. LLQ is the same as CBWFQ, but for the addition of some queues to be tweaked to be low-latency. These special low-latency queues are serviced much like PQ’s “high” queue – LLQ will service packets in these queues first.

You might remember that with PQ, a busy high queue could result in queue starvation (starved of pipe) for the other queues. LLQ prevents this problem of queue starvation by policing the low-latency/high priority queue based on configured bandwidth. Therefore, the bandwidth you give to a LLQ priority queue is not only the guaranteed minimum, but also the policed maximum. The net result is that packets leaving the queue will have low-latency, but not everyone will make it out of the queue. Some priority queue packets may get dropped so that the other queues do not starve.

Configuring LLQ is the same as for CBWFQ. However, you get an additional command called “priority {bandwidth-kbps | percent <percentage>} [burst]” which you use instead of “bandwidth” to make that queue a low-latency queue. The “burst” refers to the burst size of the policer, in other words, how high can the traffic burst above the configured maximum, where the default of 20% of the bandwidth you’ve configured usually being sufficient.

Note that the bandwidth used by priority queues take away from the “remaining bandwidth”. So as a follow up to the previous post, remaining bandwidth is really the max-reservable, minus whatever’s been taken up with priority queues. If you go crazy enough reserving percentages and Kbps, you’ll need a slide ruler to sort it out, and we don’t want that.

Finally, note that while you can configure multiple priority (low-latency) queues, those queues are treated by the router as if they were a single priority queue. You would set up multiple priority queues then, so that you can policy different classes of traffic at different rates, thus keeping different types of priority traffic from clobbering one another.

And finally, a couple of miscellaneous notes:

  • A router probably won’t have packets in all the configured queues all at the same time. In that case, you might see some traffic getting more bandwidth than they were allocated. If there’s extra bandwidth, the router will allocate it proportionally when computed against what each class is reserved.
  • A router will only use queuing if there’s congestion. In other words, when the hardware queue is full. The queuing logic never kicks in otherwise.
By Ethan Banks
Ethan Banks On productivity.

You probably know Ethan Banks because he writes & podcasts about IT. For example, he co-authored "Computer Networks Problems & Solutions" with Russ White.

This site is Ethan on productivity--not tech so much.

Find out more on his about page.