LibreQoS 1.5-RC1 Released!

• Herbert Wolverson

We’re proud to announce the release of LibreQoS 1.5-rc1! The changelog is really rather large!

LibreQoS v1.5-RC-1 Changelog

Major Features

StormGuard * Automatic Rate Adjustment

  • StormGuard automatic bandwidth adjustment system integrated directly into lqosd
  • Dynamically adjusts circuit rates based on network conditions and TCP retransmission rates
  • Score-based decision making with bias towards returning to maximum rates
  • Independent min/max/step bandwidth configuration per site
  • Optional CSV logging for rate changes
  • Web UI configuration panel for StormGuard settings

LQOS Bakery * TC Command Processing System

  • Complete rewrite of TC (Traffic Control) command processing in Rust
  • Fractional speed plan support (floating-point rates instead of integers)
  • Lazy queue creation system for improved performance
  • Lazy threshold bytes setting * only announce circuits that reach traffic threshold
  • In-memory command execution reducing file I/O overhead
  • Queue pruning system for efficient resource management
  • Batch command processing to reduce bus overload

Insight Integration Enhancements

  • Complete web-based signup system for Insight service with trial teasers
  • Dynamic circuit counting for pricing estimates
  • Remote topology management with primary/secondary role support
  • Automatic scheduler control based on Insight topology settings
  • License key enrollment system for existing shapers
  • Topology sharing with remote Insight mapping service
  • Insight teasers load from server with local fallback
  • Removed opt-in “use_insight” configuration field

Performance Improvements

  • Memory usage reductions through improved flow tracking
  • Pointer-free flow analysis for simpler memory management
  • ArcSwap-based configuration to reduce churn
  • Persistent bus connections replacing read-to-end pattern
  • Lazy queue expiration aligned with XDP garbage collection
  • More aggressive flow expiration to reduce memory burstiness

UI/UX Enhancements

Dashboard Improvements

  • New dashboard editor with Bootstrap 5 accordion interface
  • Color-blind mode toggle for all visualizations
  • Sortable circuit network traffic tables
  • Mouse-over tooltips with axis highlighting on time graphs
  • “Hide small flows” checkbox for active flows table
  • Improved sankey diagram layouts (circuit>ASN>protocol>IP)
  • Top 20 flow limitation on active flows sankey
  • Cache busters for JavaScript and CSS files

Visualization Updates

  • Dave Täht memorial feature (moved to support page only)
  • Klingon redaction mode for privacy
  • Better shaped/unshaped pie chart coloring
  • Filtered display removing empty tree sections
  • Improved throughput history rendering
  • TimedCache on circuit capacity to reduce UI jumpiness

Integration Updates

UISP Integration

  • New integration strategies: “ap_only”, “ap_site”, and improved “full2”
  • Bottom-up processing starting from clients
  • Support for multiple services per customer
  • 64-bit bandwidth support
  • Configurable client bandwidth multiplier
  • Node promotion to root functionality
  • Airmax and LTU capacity multipliers restored

General Integration Features

  • Smart scheduler that skips reload if nothing changed
  • Better error reporting and diagnostics
  • Blackboard submission improvements
  • Route override support with bidirectional graph routing

Configuration & Management

New Configuration Options

  • disable_icmp_ping * Disable ICMP pinging on circuits page
  • client_bandwidth_multiplier * Adjust client bandwidth calculations
  • promote_to_root * Specify nodes to promote to root level
  • Lazy queue configuration options
  • StormGuard enable/disable and tuning parameters

System Improvements

  • Cursive-based lqos_setup tool * creates configuration directly instead of Python conversion
  • Health check endpoint at /health returning 220/OK
  • PyO3 syntax updated for version 25.1
  • All package versions updated
  • Better TC error reporting with improved locking
  • Scheduler service restart on “Reload LibreQoS”

Bug Fixes

Critical Fixes

  • Fixed duration underflow panic
  • Fixed Per-Protocol Packet Count calculations
  • Fixed TCP retransmit percentage calculations
  • Fixed MQ device reload issues
  • Fixed queue creation regression with lazy_queues=false
  • Fixed site speed changes not respecting min < max requirement
  • Fixed empty device names crashing UISP integration

UI Fixes

  • Re-enabled time period buttons
  • Fixed frozen UI when queue data unavailable
  • Fixed tooltip display scaling for traffic
  • Fixed dashboard item addition when dashboard empty
  • Fixed Insight time-based packet display
  • Fixed ping icon dramatics with proper tooltips

Integration Fixes

  • Fixed multiple services per customer in UISP
  • Fixed bandwidth calculation with commit multipliers
  • Fixed circular recursion in graph calculations
  • Fixed Netflow 9 source port selection
  • Fixed version check submission confusion

Documentation Updates

  • Created LTS documentation
  • Updated CAKE documentation
  • Updated integration guides
  • Updated troubleshooting guide
  • Updated design documentation
  • Added LQOS Bakery implementation plans

Development & Testing

  • Enhanced allocative flamegraph system for memory profiling
  • Comprehensive test coverage for lazy queue system
  • Circuit hash integrity tests
  • Build script improvements
  • Warning and log spam reduction throughout

Breaking Changes

  • “full2” is now the default UISP integration strategy replacing “full”
  • TC command processing moved to Rust implementation by default
  • Fractional speeds now use floating-point values instead of integers