Upgrading
Warning
If you use the XDP bridge, traffic will briefly stop passing through the bridge when lqosd restarts (XDP bridge is only operating while lqosd runs).
If you installed the .deb
Important
Starting in v2.0, mapped-circuit ingest depends on valid Insight license state. Without a valid Insight subscription/license, LibreQoS reads only the first 1000 valid mapped circuits into active shaping state. This includes expired or otherwise invalid local grant/license state. See Insight Licensing Behavior and Troubleshooting.
Run:
cd /tmp
sudo apt-get update
sudo apt-get upgrade
wget https://download.libreqos.com/libreqos_2.1.202603311003-1_amd64.deb
sudo apt install ./libreqos_2.1.202603311003-1_amd64.deb
Using /tmp avoids local .deb permission issues where apt cannot access a package stored in a private home directory as user _apt.
If apt install completes normally, restart services:
sudo systemctl restart lqosd lqos_scheduler
Ubuntu 24.04 hotfix if the upgrade stops
On affected Ubuntu 24.04 hosts using systemd-networkd, apt install may stop with a hotfix requirement message. This is expected.
If that happens, run:
sudo /opt/libreqos/src/systemd_hotfix.sh install
sudo reboot
The hotfix installer bootstraps the LibreQoS APT repo at https://repo.libreqos.com, installs the patched Noble systemd package set, and pins those packages for future updates.
After the reboot, resume the upgrade and restart services:
cd /tmp
wget https://download.libreqos.com/libreqos_2.1.202603311003-1_amd64.deb
sudo apt install ./libreqos_2.1.202603311003-1_amd64.deb
sudo systemctl restart lqosd lqos_scheduler
Post-upgrade reboot
Now reboot the LibreQoS box with:
sudo reboot
This will flush the old eBPF maps and load the latest LibreQoS version.
Then continue with the normal post-upgrade validation below.
Post-Upgrade Validation (Required)
Run these checks after upgrade/reboot:
sudo systemctl status lqosd lqos_scheduler
journalctl -u lqosd -u lqos_scheduler --since "20 minutes ago"
Then verify:
WebUI Dashboard and Scheduler Status are healthy.
Integration users: a fresh sync produces expected
ShapedDevices.csv/network.jsonbehavior.Topology depth matches your chosen integration strategy.
If checks fail, go directly to Troubleshooting before further config changes.
If you installed with Git
Change to your LibreQoS directory (e.g.
cd /opt/libreqos)Update from Git:
git pullgit switch developRecompile:
./build_rust.shsudo rust/remove_pinned_maps.sh
Ubuntu 24.04 hotfix for Git installs
Before restarting LibreQoS services on Ubuntu 24.04, check whether the Noble systemd-networkd hotfix should be offered:
cd /opt/libreqos/src
./systemd_hotfix.sh status
If the script reports that the hotfix should be offered, install it and reboot before continuing:
sudo ./systemd_hotfix.sh install
sudo reboot
Run the following commands to reload the LibreQoS services.
sudo systemctl restart lqosd lqos_scheduler
Notes on pinned BPF maps
rust/remove_pinned_maps.sh removes pinned maps used by the eBPF/XDP pipeline so newer map schemas can load cleanly after upgrades.
Recent versions include additional map cleanup (including ip_mapping_epoch). If this cleanup is skipped after a schema-changing upgrade, you may see stale behavior or mapping inconsistencies.
If you use Git installs, keep this order:
build/update binaries
stop/restart services as needed
run
sudo rust/remove_pinned_maps.shrestart
lqosdandlqos_scheduler
Stop-and-Triage Symptoms
Pause rollout and triage immediately if you see:
lqosdorlqos_schedulernot healthy after restartunexpected hierarchy collapse/expansion after integration sync
persistent scheduler unhealthy state in WebUI
Primary references: