Skip to content

librespeed-common: add measurement backend - #30294

Open
BKPepe wants to merge 1 commit into
openwrt:masterfrom
BKPepe:librespeed-common
Open

librespeed-common: add measurement backend#30294
BKPepe wants to merge 1 commit into
openwrt:masterfrom
BKPepe:librespeed-common

Conversation

@BKPepe

@BKPepe BKPepe commented Aug 17, 2026

Copy link
Copy Markdown
Member

📦 Package Details

Maintainer: @BKPepe

Description:

Backend for running librespeed-cli measurements on a router: a locked runner with live progress state, an rpcd ucode plugin exposing start/stop/status/result/history/config over ubus, cron scheduling within a configurable time window, and optional daily min/avg/max aggregation of JSONL history.

Live progress uses --json-stream, proposed for the Go client in librespeed/speedtest-cli#145 (the Rust port will ship the same flag once reviewed and merged in GO) with a client without it the runner falls back to interface counter sampling.

Companion frontend: openwrt/luci#8951.

cc @shenek: This covers similar ground as the Foris Controller librespeed module;. The server list URL is configurable (option server_list), so a Turris deployment can keep using https://librespeed.turris.cz/servers.json.
cc @aleksan4eg: the reForis integration could be reworked on top of this ubus API.


🧪 Run Testing Details

  • OpenWrt Version: SNAPSHOT
  • OpenWrt Target/Subtarget: mpc85xx/p2020
  • OpenWrt Device: Turris 1.x

Compile tested for powerpc_8548. Run tested on the device: measurements over ubus and LuCI (start/stop/status/result), streamed progress and the interface-counter fallback, scheduled runs within an hour window, history with daily aggregation, and server list caching including a custom server_list URL.


✅ Formalities

  • I have reviewed the CONTRIBUTING.md file for detailed contributing guidelines.

Copilot AI lite review requested due to automatic review settings August 17, 2026 20:07

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@BKPepe
BKPepe force-pushed the librespeed-common branch from ab79789 to 2e9ea45 Compare August 17, 2026 20:18
@BKPepe
BKPepe force-pushed the librespeed-common branch 2 times, most recently from 0125707 to cf9efc5 Compare August 17, 2026 21:03
Add a common backend for running librespeed-cli measurements on a router.

The package provides a locked measurement runner, live progress state, and
an rpcd ucode plugin exposing start/stop/status/result/history/config over
ubus. Scheduled measurements are managed through cron and can run within a
configurable time window. Optional daily aggregation keeps longer-term
history compact.

Raw measurements are kept in JSONL for a configurable retention period.
When persistent archive storage is configured, completed days are reduced
to daily min/avg/max values.

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
@BKPepe
BKPepe force-pushed the librespeed-common branch from cf9efc5 to 44917b1 Compare August 17, 2026 21:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants