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
Robert Chacón 798fd39da7
Merge pull request #137 from thebracket/uisp-integration-check-site-none
Uisp integration: check ap['device']['site'] for None
2022-10-21 07:52:34 -06:00
docs Add files via upload 2022-09-27 13:13:50 -06:00
v0.7 Delete new.txt 2021-07-01 23:53:20 -06:00
v0.8 Update README.md 2022-09-11 13:27:02 -06:00
v0.9 Update README.md 2022-09-11 13:26:34 -06:00
v1.0 Update README.md 2022-09-11 13:25:34 -06:00
v1.1 tidy, nix original config files 2022-09-13 17:04:21 +12:00
v1.2 Make Mbps explicit 2022-10-20 15:14:24 -06:00
v1.3 Running integrationUISP.py against our controller resulted in a crash. Two devices didn't yield proper site information in their ap['device']['site'] record. Both devices were not-yet associated with UISP, so they didn't *have* site information yet. This commit adds a test for this condition, and emits a warning instead of crashing. 2022-10-21 08:48:03 -05:00
.gitignore Update .gitignore 2022-09-27 12:18:54 -06:00
.gitmodules add v1.3-alpha 2022-10-18 14:26:43 -06:00
LICENSE Initial commit 2020-10-02 09:18:14 -06:00
README.md Update README.md 2022-10-21 07:40:25 -06:00

LibreQoS

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.

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

Learn more at LibreQoS.io

LibreQoS

Real World Impact

By allowing ISPs to better optimize traffic flows LibreQoS can improve the reliability of end-users voice and video calls transiting the network. With work-from-home, remote learning, and tele-medicine becoming increasingly common it is important to minimize any disruptions to video calls and VoIP that might otherwise occur due to bufferbloat within the ISP network. LibreQoS mitigates such bufferbloat, which can have important real world benefits for end-users, such as:

  • Keeping remote workers productive and employed
  • Mitigating learning disruptions keeping students engaged and on-track with their peers
  • Reduce educational and employment inequities for people with disabilities
  • Allowing for reliable access to tele-medicine

Features

Flexible Hierarchical Shaping

Network hierarchy can be mapped to a json file in v1.1+. This allows for both simple network heirarchies (Site>AP>Client) as well as much more complex ones (Site>Site>Micro-PoP>AP>Site>AP>Client). This allows operators to ensure a given sites peak bandwidth will not exceed the capacity of its back-haul links (back-haul congestion control). This can allow operators to support more users on the same network equipment with LibreQoS than with competing QoE solutions which only shape by AP and Client. Shaping just by AP and client could allow for high aggregate peaks to occur on back-hauls links, which can trigger packet loss and disrupt network connectivity. LibreQoS flexible shaping provides a solution to this.

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.

XDP

Fast, multi-CPU queueing leveraging xdp-cpumap-tc. Tested up to 11 Gbps of real world traffic with just 30% CPU use on an Intel Xeon Gold 6254. Likely capable of 30Gbps or more.

Graphing

Graph bandwidth by client and node (Site, AP, etc), with great visalizations made possible by InfluxDB

CRM Integrations

  • UISP (v1.2+)
  • Splynx (v1.3+)

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

Throughput CPU Cores
1 Gbps 4
5 Gbps 8
10 Gbps 12
20 Gbps 16

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

Network Interfaces

  • 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

IPv4 only