A Quality of Experience and Smart Queue Management system for ISPs. Leverage CAKE to improve network responsiveness, enforce bandwidth plans, and reduce bufferbloat.
Go to file
2023-01-17 19:40:50 -07:00
.github Update lint_python.yml 2023-01-16 08:38:05 -07:00
docs Add files via upload 2022-09-27 13:13:50 -06:00
old Major move around of every thing 2022-12-07 11:04:54 -08:00
sim More test tools 2022-12-11 09:05:09 -08:00
src Goofed on /vendor 2023-01-17 17:02:52 -08:00
.gitignore Allow logged-in users to update ispConfig.py via web UI 2023-01-10 16:12:09 +00:00
.gitmodules Update .gitmodules for removing the cpumap submodule 2023-01-10 14:12:50 +00:00
LICENSE Initial commit 2020-10-02 09:18:14 -06:00
README.md Improve documentation for CPU requirements 2023-01-17 19:40:50 -07:00
requirements.txt python3 -m pip install -r requirements.txt 2023-01-10 09:40:36 +01:00

LibreQoS

LibreQoS is a Quality of Experience (QoE) Smart Queue Management (SQM) system designed for 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.

Servers running LibreQoS can shape traffic for many thousands of customers.

Learn more at LibreQoS.io!

Support LibreQoS

Please support the continued development of LibreQoS by visiting our GitHub Sponsors page.

Features

Flexible Hierarchical Shaping / Back-Haul Congestion Mitigation

Starting in version v1.1+, operators can map their network hierarchy in LibreQoS. This enables both simple network hierarchies (Site>AP>Client) as well as much more complex ones (Site>Site>Micro-PoP>AP>Site>AP>Client). This can be used to ensure that a given sites peak bandwidth will not exceed the capacity of its back-haul links (back-haul congestion control). Operators can support more users on the same network equipment with LibreQoS than with competing QoE solutions which only shape by AP and Client.

CAKE

CAKE is the product of nearly a decade of development efforts to improve on fq_codel. With the diffserv_4 parameter enabled CAKE groups traffic in to Bulk, Best Effort, Video, and Voice. This means that without having to fine-tune traffic priorities as you would with DPI products CAKE automatically ensures your clients OS update downloads will not disrupt their zoom calls. It allows for multiple video conferences to operate on the same connection which might otherwise “fight” for upload bandwidth causing call disruptions. It holds the connection together like glue. With work-from-home, remote learning, and tele-medicine becoming increasingly common minimizing video call disruptions can save jobs, keep students engaged, and help ensure equitable access to medical care.

XDP

Fast, multi-CPU queueing leveraging xdp-cpumap-tc and cpumap-pping. Currently tested in the real world past 11 Gbps (so far) with just 30% CPU use on a 16 core Intel Xeon Gold 6254. It's likely capable of 30Gbps or more.

Graphing

You can graph bandwidth and TCP RTT by client and node (Site, AP, etc), with great visalizations made possible by InfluxDB. LibreQoS

CRM Integrations

  • UISP
  • Splynx

System Requirements

VM or physical server

  • For VMs, NIC passthrough is required for optimal throughput and latency (XDP vs generic XDP). Using Virtio / bridging is much slower than NIC passthrough. Virtio / bridging should not be used for large amounts of traffic.

CPU

  • 2 or more CPU cores
  • A CPU with solid single-thread performance within your budget. Queuing is very CPU-intensive, and requires high single-thread performance.

Single-thread CPU performance will determine the max throughput of a single HTB (cpu core), and in turn, what max speed plan you can offer customers.

Customer Max Plan Passmark Single-Thread
100 Mbps 1500
250 Mbps 2000
500 Mbps 2500
1 Gbps 3000

Below is a table of approximate aggregate throughput capacity, assuming a a CPU with a single thread performance of 2700 or greater:

Aggregate Throughput CPU Cores
500 Mbps 2
1 Gbps 4
5 Gbps 6
10 Gbps 8
20 Gbps 16
50 Gbps* 32

(* Estimated)

So for example, an ISP delivering 1Gbps service plans with 10Gbps aggregate throughput would choose a CPU with a 3000+ single-thread score and 8 cores, such as the Intel Xeon E-2388G @ 3.20GHz.

Memory

  • Mimumum RAM = 2 + (0.002 x Subscriber Count) GB
  • Recommended RAM:
Subscribers RAM
100 4 GB
1,000 8 GB
5,000 16 GB
10,000* 32 GB
50,000* 48 GB

(* Estimated)

Network Interface Requirements

  • One management network interface completely separate from the traffic shaping interfaces. Usually this would be the Ethernet interface built in to the motherboard.
  • Dedicated Network Interface Card for Shaping Interfaces

Versions

IPv4 + IPv6