LibreQoS is a Quality of Experience and Smart Queue Management system designed for Internet Service Providers (such as Fixed Wireless Internet Service Providers) to optimize the flow of their network traffic and thus reduce bufferbloat, keep the network responsive, and improve the end-user experience.

Because customers see greater performance, ISPs receive fewer support tickets/calls and reduce network traffic from fewer retransmissions.

A sub-$1000 server running LibreQoS can shape traffic for hundreds or thousands of customers at up to 10 Gbps.

Who should use LibreQoS?

The target for LibreQoS is ISPs that have less than 10,000 subscribers. LibreQoS runs on an inexpensive server and can handle up to thousands of subscribers.

Individuals can reduce bufferbloat on their home internet connections with a router that supports fq_codel – such as MikroTik’s hAP ac³, the IQrouter, Ubiquiti’s EdgeRouter-X (enable advanced queue fq_codel), or by installing OpenWrt or DD-WRT on their existing router.

Large Internet Service Providers with significantly more subscribers may benefit from using commercially supported alternatives with easier NMS/CRM integrations.

How does LibreQoS work?

LibreQoS runs on a server that sits between an ISP’s edge router and the core of the network (see network design section below). It manages all customer traffic with htb+cake or htb+fq_codel.

LibreQoS directs each customer’s traffic into a hierarchy token bucket, where traffic can be shaped by the subscriber’s allocated plan bandwidth, as well as by any upstream constraints within the ISP network (Access Point capacity, back-haul capacity, etc).

Typical Client Results

Here are the Waveform Bufferbloat Test results for a Fixed Wireless client averaging 27ms to the test server. LibreQoS keeps added latency at or below 1ms in each direction.

How do Cake and fq_codel work?

CAKE and fq_codel are hybrid packet scheduler and Active Queue Management (AQM) algorithms. LibreQoS uses a Hierarchical token bucket (HTB) to direct each customer’s traffic into its own queue, where it is then shaped using either CAKE or fq_codel. Each customer’s bandwidth ceiling is controlled by the HTB, according to the customer’s allocated plan bandwidth, as well as the available capacity of the customer’s respective Access Point and Site.

The difference is dramatic: the chart below shows the ping times during a Realtime Response Under Load (RRUL) test before and after enabling LibreQoS. The RRUL test sends full-rate traffic in both directions, then measures latency during the transfer. Note that the latency drops from ~20 msec (green, no LibreQoS) to well under 1 msec (brown, using LibreQoS).

The impact of fq_codel on a 3000Mbps connection vs hard rate limiting —
a 30x latency reduction.

“FQ_Codel provides great isolation… if you’ve got low-rate videoconferencing and low rate web traffic they never get dropped. A lot of issues with IW10 go away, because all the other traffic sees is the front of the queue. You don’t know how big its window is, but you don’t care because you are not affected by it. FQ_Codel increases utilization across your entire networking fabric, especially for bidirectional traffic… If we’re sticking code into boxes to deploy codel, don’t do that. Deploy fq_codel. It’s just an across the board win.”

Van Jacobson | IETF 84 Talk

NMS/CRM Integrations

UISP Integration

A UISP integration is included in v1.2+.
Additionally, you may want to consider the RUST-based UISP integration developed by @thebracket for v1.1.

Special Thanks

Special thanks to Dave Täht, Jesper Dangaard Brouer, Toke Høiland-Jørgensen, Herbert Wolverson, Jonathan Morton, Eric Dumazet, Kumar Kartikeya Dwivedi, Kathleen M. Nichols, Maxim Mikityanskiy, Yossi Kuperman, and Rony Efraim for their many contributions to the Linux networking stack. Thank you Phil Sutter, Bert Hubert, Gregory Maxwell, Remco van Mook, Martijn van Oosterhout, Paul B Schroeder, and Jasper Spaans for contributing to the guides and documentation listed below. Thanks to Leo Manuel Magpayo for his help improving documentation and for testing. Thanks to everyone on the Bufferbloat mailing list for your help and contibutions.

Made possible by

See Also

Other References

Sponsored By

Does your ISP use or contribute to LibreQoS? Please contact us to be added to the list above.