After two years of development, is available release of the LibreQoS 2.0 platform, designed to organize a fair distribution of available bandwidth between users and reduce the negative effects arising from intermediate buffering of packets (Bufferbloat) network equipment. The platform can be used by ISPs or private network administrators to optimize traffic flows, keep latency to a minimum and allocate bandwidth based on priorities. The project code is written in C, JavaScript, Python and Rust, and is distributed under the GPLv2 license. The platform is installed on a server located between the provider’s edge router and the base router of the local network.
LibreQoS allows you to reduce latency and increase the reliability of interactive sessions, games, online learning platforms, VoIP traffic and video calls under conditions of heavy load on the network, for example, due to some users downloading movies in multiple streams or the activity of torrent lovers (LibreQoS solves the problem with stuttering video calls when someone on the same network starts downloading 4K video). The use of LibreQoS reduces the peak throughput available to one user, but makes it possible to significantly reduce delays and fairly distribute resources between all participants in the data exchange.
LibreQoS is based on the use of a network queue management system CAKE (Common Applications Kept Enhanced) and a packet scheduler fq_codel (Fair Queuing Controlled Delay), and also uses eBPF and XDP (Express Data Path) to execute handlers at the network driver level with the ability to directly access the DMA packet buffer. The CAKE algorithm is designed to replace and simplify the complex hierarchy of packet queuing disciplines, is able to squeeze out the maximum possible throughput and provide the minimum level of delays even on the slowest communication channels with the provider and when running on low-power devices.
The project also provides tools for tracking delays between sending a request and receiving a response (RTT, round-trip time), in relation to individual users, access points and sites. To analyze the status, a web interface has been developed, which makes it possible to visually assess traffic on the network, track changes in load and delays, and identify the most active users. It is possible to create flexible hierarchical traffic limiting schemes and integrate with UISP and Splynx for mapping topologies and clients.
The release of LibreQoS 2.0 is dedicated to Dave Taht (Dave Taht), who died suddenly a year ago at the age of 59. Dave led the development of LibreQoS and was a co-founder of the Bufferbloat project, creator of the CeroWrt distribution, and author of numerous RFCs related to network queue processing.