From b8d3d1721299a8beb6b14f377faee736ff8c2b5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Chac=C3=B3n?= Date: Sun, 10 Oct 2021 10:06:22 -0600 Subject: [PATCH] Update README.md --- README.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 5273b579..d5aaa0dc 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # LibreQoS ![Banner](docs/Banner.png "Banner") -LibreQoS is an application that allows ISPs to apply bandwidth rate limiting to hundreds of clients using htb+cake or htb+fq_codel. Cake and fq_codel are Active Queue Management algorithms that reduce bufferbloat. When used in the context of an ISP network, these AQMs can be used when setting bandwidth limits on customer traffic - reducing latency, enforcing advertised plan bandwidth, and improving overall network performance. LibreQoS directs each customer's traffic into a hierarchy token bucket, where traffic can be shaped both by Access Point capacity and by the subscriber's allocated plan bandwidth. Please test to ensure compatability with your network architecture and design before deploying in production. +LibreQoS is a smart queue management (SQM) system that allows ISPs to intelligently apply bandwidth rate limiting to hundreds or thousands of clients using htb+cake or htb+fq_codel. Cake and fq_codel are Active Queue Management algorithms that reduce bufferbloat. When used in the context of an ISP network, these AQMs can be used when setting bandwidth limits on customer traffic - reducing latency, enforcing advertised plan bandwidth, and improving overall network performance. LibreQoS directs each customer's traffic into a hierarchy token bucket, where traffic can be shaped both by Access Point capacity and by the subscriber's allocated plan bandwidth. Please test to ensure compatability with your network architecture and design before deploying in production. ## Who is LibreQoS for? This software is intended for Internet Service Providers, particularly Fixed Wireless Internet Service Providers. Large Internet Service Providers with thousands of subscribers may benefit more from using commercially supported alternatives with NMS/CRM integrations such as Preseem or Saisei. ``` @@ -74,10 +74,11 @@ Bloat is below 5ms in each direction. # v0.9 (IPv4 Only) ## Features -* XDP-CPUMAP-TC integration greatly improves throughput, allows many more IPv4 clients, and lowers CPU use. Latency reduced by half on networks previously limited by single-CPU / TC QDisc locking problem in v.0.8. +* XDP-CPUMAP-TC integration greatly improves throughput, allows many more IPv4 clients (), and lowers CPU use. Latency reduced by half on networks previously limited by single-CPU / TC QDisc locking problem in v.0.8. * Tested up to 10Gbps asymmetrical throughput on dedicated server (lab only had 10G router). v0.9 is estimated to be capable of an asymmetrical throughput of 20Gbps-40Gbps on a dedicated server with 12+ cores. * ![Throughput](docs/10Gbps.png?raw=true "Throughput") * MQ+HTB+fq_codel or MQ+HTB+cake +* Client limit raised from 1000 to 32,767 * Shape Clients by Access Point / Node capacity * APs equally distributed among CPUs / NIC queues to greatly increase throughput * Simple client management via csv file @@ -87,17 +88,15 @@ Bloat is below 5ms in each direction. * Not dual stack, clients can only be shaped by IPv4 address for now in v0.9. Once IPv6 support is added to XDP-CPUMAP-TC we can then shape IPv6 as well. * XDP's cpumap-redirect achieves higher throughput on a server with direct access to the NIC (XDP offloading possible) vs as a VM with bridges (generic XDP). * Working on stats feature -## Requirements -* v0.9: Requires kernel version 5.9 or above for physical servers, and kernel version 5.14 or above for VM. -* v0.8: Requires kernel version 5.1 or above. - -# General Requirements +# Requirements * VM or physical server. Physical server will perform better and better utilize all CPU cores. * One management network interface, completely seperate from the traffic shaping interfaces. * NIC supporting two interfaces for traffic shaping. Recommendations: * NVIDIA ConnectX-4 MCX4121A-XCAT * Intel X710 * Ubuntu Server recommended. Ubuntu Desktop is not recommended as it uses NetworkManager instead of Netplan. +* v0.9: Requires kernel version 5.9 or above for physical servers, and kernel version 5.14 or above for VM. +* v0.8: Requires kernel version 5.1 or above. * Python 3, PIP, and some modules (listed in respective guides). * Choose a CPU with solid single-thread performance within your budget. Generally speaking any new CPU above $200 can probably handle shaping up to 2Gbps.