<feed xmlns='http://www.w3.org/2005/Atom'>
<title>packages/utils/librespeed-common/files/librespeed-run, branch master</title>
<subtitle>Mirror of packages feed</subtitle>
<id>https://git.openwrt.org/feed/packages/atom?h=master</id>
<link rel='self' href='https://git.openwrt.org/feed/packages/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/packages/'/>
<updated>2026-10-28T09:13:45Z</updated>
<entry>
<title>librespeed-common: measure and schedule per interface</title>
<updated>2026-10-28T09:13:45Z</updated>
<author>
<name>Josef Schlehofer</name>
</author>
<published>2026-09-24T06:24:24Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/packages/commit/?id=da7767e56ffcce933f1e182336ac6dcb408d3b22'/>
<id>urn:sha1:da7767e56ffcce933f1e182336ac6dcb408d3b22</id>
<content type='text'>
Every result named main.interface, even when the test had gone out
another link, so a backup uplink such as LTE could not be measured on
its own, and a day's aggregate mixed all links.

librespeed-run and ubus start take an optional interface. IPv4 and IPv6
on one device (wan and wan6) count as one link. Each test is bound to
the device of its link, and its result names that link. A link with
none of its interfaces up is not measured; its failure is shown. The
same holds for an interface netifd does not know, such as a disabled
one, and for any while netifd does not answer; ubus start refuses these
at once. 'librespeed-run --links' and ubus links print the link each
interface is recorded under and the links to offer, leaving out a
static interface without a gateway such as lan, so a frontend need not
repeat the rule. A failure is reported per interface until a result is
recorded on its link, or until no configuration names that interface
any more. The init script writes one cron line per interface,
aggregates are kept per day and interface, and a run that finds another
in progress waits up to 3 minutes, as several schedules fire at the
same minute, then gives up and records that as the interface's failure.

Existing configs, cron lines and history keep working, except that a
default interface whose link is down, or that netifd does not know, is
no longer measured.

Signed-off-by: Josef Schlehofer &lt;pepe.schlehofer@gmail.com&gt;
</content>
</entry>
<entry>
<title>librespeed-common: free the lock as soon as a run ends</title>
<updated>2026-10-28T09:13:45Z</updated>
<author>
<name>Josef Schlehofer</name>
</author>
<published>2026-10-11T05:54:03Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/packages/commit/?id=1cc1d0ccc41233e143519a13006adb93ab90cd2f'/>
<id>urn:sha1:1cc1d0ccc41233e143519a13006adb93ab90cd2f</id>
<content type='text'>
The traffic sampler of a bound run inherited the lock's descriptor, so
its last 'sleep 1' held the lock up to a second after the run ended,
and a test started right then was refused as already running.

Signed-off-by: Josef Schlehofer &lt;pepe.schlehofer@gmail.com&gt;
</content>
</entry>
<entry>
<title>librespeed-common: add measurement backend</title>
<updated>2026-09-03T12:53:08Z</updated>
<author>
<name>Josef Schlehofer</name>
</author>
<published>2026-08-16T10:40:23Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/packages/commit/?id=08da28b3e81185053263ee262326c66b88760c0f'/>
<id>urn:sha1:08da28b3e81185053263ee262326c66b88760c0f</id>
<content type='text'>
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 &lt;pepe.schlehofer@gmail.com&gt;
</content>
</entry>
</feed>
