Nils Andreas Svee
cb4ae4d251
chore: update reflectors list to use new format
2026-10-13 22:56:25 +07:00
Nils Andreas Svee
93bfee0624
fix(irtt): honor measurement socket routing settings
Build binaries / Build (arm-musleabi) (push) Successful in 1m37s
Build binaries / Build (aarch64-musl) (push) Successful in 1m39s
Build binaries / Build (armv7-musleabi) (push) Successful in 1m44s
Build binaries / Build (arm-musleabihf) (push) Successful in 1m45s
Build binaries / Build (armv7-musleabihf) (push) Successful in 1m52s
Build binaries / Build (i686-musl) (push) Successful in 1m53s
Build binaries / Build (mips64-muslabi64) (push) Successful in 2m19s
Build binaries / Build (mips-musl) (push) Successful in 2m20s
Build binaries / Build (mips64el-muslabi64) (push) Successful in 2m12s
Build binaries / Build (mipsel-musl) (push) Successful in 2m13s
Build binaries / Build (x86_64-musl) (push) Successful in 1m48s
Build binaries / Build (riscv64gc-musl) (push) Successful in 1m50s
2026-10-13 22:03:09 +07:00
Nils Andreas Svee
80b39da9de
fix(ratecontroller): use the configured reflector count for reselection
2026-10-13 22:02:58 +07:00
Nils Andreas Svee
f8691c5189
fix(reflectors): reject conflicting resolved endpoints
...
Build binaries / Build (aarch64-musl) (push) Successful in 2m16s
Build binaries / Build (arm-musleabi) (push) Successful in 2m48s
Build binaries / Build (arm-musleabihf) (push) Successful in 2m6s
Build binaries / Build (armv7-musleabi) (push) Successful in 2m8s
Build binaries / Build (armv7-musleabihf) (push) Successful in 2m29s
Build binaries / Build (i686-musl) (push) Successful in 2m34s
Build binaries / Build (mips-musl) (push) Successful in 1m57s
Build binaries / Build (mips64-muslabi64) (push) Successful in 1m58s
Build binaries / Build (mips64el-muslabi64) (push) Successful in 2m0s
Build binaries / Build (mipsel-musl) (push) Successful in 1m53s
Build binaries / Build (riscv64gc-musl) (push) Successful in 2m10s
Build binaries / Build (x86_64-musl) (push) Successful in 2m41s
Deduplicate compatible definitions and reject conflicting metadata or authentication within each list and across bootstrap and pool entries. Treat hostname aliases, protocol ordering, country-code case, and omitted default ports consistently.
2026-10-13 21:24:05 +07:00
Nils Andreas Svee
a073a9d049
fix(reflectors): tolerate individual DNS resolution failures
...
Log and skip unresolved reflectors so startup can proceed with usable endpoints. Report an error when none remain for the selected protocol.
2026-10-13 21:24:05 +07:00
Nils Andreas Svee
78bcb7886a
fix(controller): honor the configured ICMP probe interval
...
Use advanced_settings.tick_interval for Controller schedules so ICMP probe pacing follows the configured measurement cadence.
2026-10-13 21:24:05 +07:00
Nils Andreas Svee
de77e5a281
feat(measurement): add configurable IRTT reflector measurements
...
Support optional IRTT measurements alongside ICMP with CSV and inline reflector definitions, repeated UCI registration, authentication, and endpoint-specific stream tracking.
Keep the managed driver running during target acknowledgements and stop and join it on event-loop exits. Carry stream identity through baselines, selection, and rate control so endpoints sharing an IP remain distinct.
2026-10-13 21:24:05 +07:00
Nils Andreas Svee
76a7e14835
feat(uci): support repeated sections and skipped fields
...
Allow structured lists to share the existing UCI configuration adapter while keeping collection fields out of scalar section mappings.
2026-10-13 21:24:04 +07:00
Nils Andreas Svee
8c923f373d
chore(deps): update rust dependencies
Rust CI / cargo fmt (push) Successful in 16s
Rust CI / cargo clippy (push) Failing after 27s
Rust CI / cargo check (x86_64-unknown-linux-gnu) (push) Failing after 23s
Rust CI / cargo check (x86_64-unknown-linux-musl) (push) Failing after 11s
Rust CI / cargo test (x86_64-unknown-linux-gnu) (push) Failing after 28s
Rust CI / cargo test (x86_64-unknown-linux-musl) (push) Failing after 7s
Supply chain / cargo-deny advisories (push) Failing after 2s
Supply chain / cargo-deny bans licenses sources (push) Failing after 2s
Supply chain / actionlint (push) Failing after 2s
Rust CI / cargo doc (push) Failing after 20s
Build binaries / Build (arm-musleabi) (push) Successful in 1m46s
Build binaries / Build (aarch64-musl) (push) Successful in 1m47s
Build binaries / Build (armv7-musleabi) (push) Successful in 1m44s
Build binaries / Build (arm-musleabihf) (push) Successful in 1m45s
Build binaries / Build (armv7-musleabihf) (push) Successful in 1m39s
Build binaries / Build (i686-musl) (push) Successful in 1m39s
Build binaries / Build (mips-musl) (push) Successful in 2m12s
Build binaries / Build (mips64-muslabi64) (push) Successful in 2m12s
Build binaries / Build (mipsel-musl) (push) Successful in 2m7s
Build binaries / Build (mips64el-muslabi64) (push) Successful in 2m9s
Build binaries / Build (x86_64-musl) (push) Successful in 1m38s
Build binaries / Build (riscv64gc-musl) (push) Successful in 1m44s
2026-10-13 00:41:49 +07:00
Nils Andreas Svee
7e8213556f
chore(ci): add gitea action to build binaries
2026-10-10 14:50:32 +07:00
Nils Andreas Svee
68b34a587f
refactor: move ucisource to the settings module
Rust CI / cargo fmt (push) Successful in 11s
Rust CI / cargo check (x86_64-unknown-linux-gnu) (push) Failing after 37s
Rust CI / cargo clippy (push) Failing after 37s
Rust CI / cargo test (x86_64-unknown-linux-gnu) (push) Failing after 41s
Rust CI / cargo check (x86_64-unknown-linux-musl) (push) Failing after 7s
Rust CI / cargo test (x86_64-unknown-linux-musl) (push) Failing after 9s
Rust CI / cargo doc (push) Successful in 32s
Supply chain / cargo-deny advisories (push) Failing after 1m38s
Supply chain / actionlint (push) Successful in 6s
Supply chain / cargo-deny bans licenses sources (push) Failing after 1m40s
2026-10-08 20:03:05 +07:00
Nils Andreas Svee
b7bbed6e5e
Merge branch 'refactor/measurement-icmp'
Rust CI / cargo fmt (push) Successful in 11s
Rust CI / cargo check (x86_64-unknown-linux-gnu) (push) Failing after 33s
Rust CI / cargo clippy (push) Failing after 35s
Rust CI / cargo test (x86_64-unknown-linux-gnu) (push) Failing after 38s
Rust CI / cargo check (x86_64-unknown-linux-musl) (push) Failing after 8s
Rust CI / cargo test (x86_64-unknown-linux-musl) (push) Failing after 8s
Rust CI / cargo doc (push) Successful in 31s
Supply chain / cargo-deny advisories (push) Failing after 1m38s
Supply chain / actionlint (push) Successful in 8s
Supply chain / cargo-deny bans licenses sources (push) Failing after 1m36s
2026-10-08 16:27:00 +07:00
Nils Andreas Svee
0e2e2f9d38
fix: start controller after the baseliner
2026-10-08 14:31:59 +07:00
Nils Andreas Svee
e80940ba6d
refactor(main): add spawn task helper
2026-10-08 14:28:12 +07:00
Nils Andreas Svee
480976b666
fix(metrics): move ping metrics sending to baseliner
2026-10-08 14:15:14 +07:00
Nils Andreas Svee
ac349a1897
refactor(measurement): remove legacy pinger and migrate production to
2026-10-08 14:15:14 +07:00
Nils Andreas Svee
a925e60f36
refactor(measurement): introduce Controller for dynamic ICMP probe configuration
2026-10-08 14:15:14 +07:00
Nils Andreas Svee
c7b283d761
refactor(measurement): enhance ICMP engine's async integration and robustness
...
Ensure IcmpEngine initializes within a Tokio runtime, improve timestamp validation, and refine probe management.
2026-10-08 14:15:14 +07:00
Nils Andreas Svee
89c7d75947
refactor(measurement): migrate ICMP engine to Tokio async runtime
2026-10-08 14:15:14 +07:00
Nils Andreas Svee
afedfbeb65
feat(measurement): implement ICMP measurement engine
2026-10-08 14:15:13 +07:00
Nils Andreas Svee
f51ff19f04
feat(measurement): add core data models
2026-10-08 10:48:14 +07:00
Nils Andreas Svee
60fdea4dff
refactor(time): implement ClockSample from SystemTime
2026-10-08 10:48:14 +07:00
Nils Andreas Svee
3016f4b887
feat(settings): add network settings for measurement sockets
2026-10-08 10:48:03 +07:00
Nils Andreas Svee
fca0967563
refactor(time): consolidate ClockId usage via the public time::Clock trait
...
Rust CI / cargo fmt (push) Successful in 15s
Rust CI / cargo clippy (push) Failing after 35s
Rust CI / cargo check (x86_64-unknown-linux-gnu) (push) Failing after 32s
Rust CI / cargo check (x86_64-unknown-linux-musl) (push) Failing after 9s
Rust CI / cargo test (x86_64-unknown-linux-gnu) (push) Failing after 41s
Rust CI / cargo test (x86_64-unknown-linux-musl) (push) Failing after 7s
Rust CI / cargo doc (push) Successful in 37s
Supply chain / actionlint (push) Successful in 8s
Supply chain / cargo-deny bans licenses sources (push) Failing after 1m47s
Supply chain / cargo-deny advisories (push) Failing after 1m49s
Remove direct `rustix::time::ClockId` imports by centralizing its dependency within the `time` module.
2026-10-04 23:46:54 +07:00
Nils Andreas Svee
64e002c0d0
chore(deps): update rust crate icmp-socket2 to v0.6.4
Rust CI / cargo fmt (push) Successful in 17s
Rust CI / cargo check (x86_64-unknown-linux-gnu) (push) Failing after 40s
Rust CI / cargo clippy (push) Failing after 40s
Rust CI / cargo test (x86_64-unknown-linux-gnu) (push) Failing after 45s
Rust CI / cargo check (x86_64-unknown-linux-musl) (push) Failing after 7s
Rust CI / cargo test (x86_64-unknown-linux-musl) (push) Failing after 8s
Rust CI / cargo doc (push) Successful in 33s
Supply chain / actionlint (push) Successful in 11s
Supply chain / cargo-deny advisories (push) Failing after 1m51s
Supply chain / cargo-deny bans licenses sources (push) Failing after 1m44s
2026-09-30 15:32:22 +07:00
Nils Andreas Svee
817cc304e6
refactor(time): Introduce typed clock sources for compile-time safety
...
This change replaces runtime `ClockId` parameters with distinct types to ensure correct clock usage at compile time.
2026-09-30 12:05:42 +07:00
Nils Andreas Svee
e27bab1944
chore(deps): update rust crate icmp-socket2 to v0.6.2
Rust CI / cargo fmt (push) Successful in 17s
Rust CI / cargo clippy (push) Failing after 40s
Rust CI / cargo check (x86_64-unknown-linux-gnu) (push) Failing after 40s
Rust CI / cargo check (x86_64-unknown-linux-musl) (push) Failing after 9s
Rust CI / cargo test (x86_64-unknown-linux-gnu) (push) Failing after 47s
Rust CI / cargo test (x86_64-unknown-linux-musl) (push) Failing after 8s
Supply chain / actionlint (push) Successful in 9s
Rust CI / cargo doc (push) Successful in 43s
Supply chain / cargo-deny advisories (push) Failing after 1m48s
Supply chain / cargo-deny bans licenses sources (push) Failing after 1m50s
2026-09-28 19:52:26 +07:00
Nils Andreas Svee
c199d63c93
ci: split Gitea and GitHub workflows
Rust CI / cargo fmt (push) Successful in 11s
Rust CI / cargo clippy (push) Failing after 34s
Rust CI / cargo check (x86_64-unknown-linux-gnu) (push) Failing after 34s
Rust CI / cargo test (x86_64-unknown-linux-gnu) (push) Failing after 41s
Rust CI / cargo check (x86_64-unknown-linux-musl) (push) Failing after 9s
Rust CI / cargo test (x86_64-unknown-linux-musl) (push) Failing after 8s
Rust CI / cargo doc (push) Successful in 36s
Supply chain / actionlint (push) Successful in 11s
Supply chain / cargo-deny bans licenses sources (push) Failing after 1m54s
Supply chain / cargo-deny advisories (push) Failing after 2m1s
2026-09-26 00:01:03 +07:00
Nils Andreas Svee
6d4849899e
fix(settings): reject zero-floor minimum rates
Build / build (push) Failing after 4s
DevSkim / DevSkim (push) Failing after 1m22s
rust-clippy analyze / Run rust-clippy analyzing (push) Failing after 1m35s
2026-09-25 17:20:08 +07:00
Nils Andreas Svee
7254aa5cf9
fix(uci): propagate malformed optional sources
2026-09-25 17:20:08 +07:00
Nils Andreas Svee
5b0854920d
fix(settings): reject IPv6 reflectors
2026-09-25 17:20:07 +07:00
Nils Andreas Svee
4c9fe15201
fix(log): honor configured maximum level
2026-09-25 17:20:07 +07:00
Nils Andreas Svee
5872f40d3e
fix(icmp): handle RFC 792 timestamp rollover
2026-09-25 17:20:06 +07:00
Nils Andreas Svee
4abf4bfcb8
refactor(ratecontroller): own random generator
2026-08-13 22:16:43 +07:00
Nils Andreas Svee
1a49c9adce
refactor(platform): move platform.rs to platform/mod.rs
...
Restructure the platform module into a directory to allow for future sub-module expansion.
2026-08-13 21:10:53 +07:00
Nils Andreas Svee
8c831e4287
refactor(ratecontroller): reorder methods to improve code organization
2026-08-13 14:20:15 +07:00
Nils Andreas Svee
6a90446b56
fix(ratecontroller): use egress interface for traffic stats
...
Read both RX and TX byte counters from the configured upload/egress
interface. Remove the obsolete per-direction stats selection and related
plumbing now that download load uses RX and upload load uses TX from the
same interface.
2026-08-13 14:19:53 +07:00
Nils Andreas Svee
be6546b443
Merge pull request #68 from Lochnair/feature/config
...
feat(config): migrate configuration loading to config-rs
2026-08-07 16:10:13 +07:00
Nils Andreas Svee
605ec6ef81
refactor(main): simplify interface stats direction logic
...
Remove the ifb/veth interface prefix detection from
interface_stats_directions. The function now unconditionally returns
RX for download and TX for upload, as the previous heuristic was
unreliable and the simplified behavior matches actual usage.
2026-08-07 16:05:00 +07:00
Nils Andreas Svee
7e0f434251
refactor: replace legacy Config with Settings
...
Remove legacy src/config.rs and migrate all application consumers to
the nested Settings model. Baseliner, metrics, pingers, ratecontroller,
reflector selector, and main now use Settings. Derived min rates become
methods on NetworkSettings rather than stored legacy fields.
MeasurementType and ObservabilityProtocol move into the settings module.
2026-08-07 16:04:59 +07:00
Nils Andreas Svee
3c688089a1
feat(settings): add validation and flexible boolean parsing
...
Add settings validation with Warning and Error severity levels.
Warnings print to stderr without preventing startup; errors are
aggregated and prevent startup. Percentage validation accepts 1..=100
rather than silently clamping. Add UCI-compatible flexible boolean
parsing through Serde, accepting 1/true/yes/y/on/enabled for true and
0/false/no/n/off/disabled for false, while native booleans continue to
deserialize correctly.
2026-08-07 16:04:59 +07:00
Nils Andreas Svee
a6478c9bd4
feat(uci): derive UCI schema from settings
...
Add uci-derive proc-macro crate with UciConfig and UciSection derive
macros that generate UCI schema metadata from Settings structs. The
schema maps UCI section types and option names to config-rs field
paths. UciSource::from_schema() creates a source from the derived
schema, mapping known UCI options to their Settings fields while
preserving unknown options under raw UCI-derived paths.
2026-08-07 16:04:59 +07:00
Nils Andreas Svee
f51d90bff6
feat(settings): parse reflector lists with CSV
...
Add CSV-based reflector list parsing with Serde reflector records.
The load_reflectors method reads a CSV file with reflector_ip,
ip_version, and description columns, validating IP version
consistency for each entry.
2026-08-07 16:04:59 +07:00
Nils Andreas Svee
a653bcf279
ci: support static cross-compilation with vendored UCI
...
Add Dockerfile.ci with pkg-config for vendored UCI builds. Switch
Jenkinsfile from pre-built Docker images to Dockerfile-based agents
for full control over the build environment. Add static CRT linking
via RUSTFLAGS for standalone static binaries across the CI matrix.
2026-08-07 16:04:59 +07:00
Nils Andreas Svee
af07915441
build(uci): enable vendored UCI builds and Unix development support
...
Switch rust-uci dependency to the Lochnair fork with vendored UCI
feature for self-contained builds without system libuci. Add
uci-vendored feature flag (enabled by default) that pulls in the
vendored C library. UCI support on non-Linux Unix is intended for
development and testing.
2026-08-07 16:04:59 +07:00
Nils Andreas Svee
39add2b2e0
feat(uci): add generalized UCI configuration source
...
Introduce the UciSource abstraction as a config-rs Source that reads
UCI packages and maps them into the configuration tree. Supports
package selection, required/optional behavior, and custom config/save
directories. Move rust-uci dependency to cfg(unix) to enable UCI
support on all Unix systems for development and testing, while
Linux/OpenWrt remains the production-supported platform.
2026-08-07 16:04:59 +07:00
Nils Andreas Svee
c0a50c68f9
feat(config): add config-rs settings support
...
Introduce config-rs and Serde support with a nested Settings model.
Add config and serde dependencies with toml feature for file-based
configuration loading. The Settings struct provides typed configuration
with sensible defaults for network, output, observability, and advanced
settings sections. Environment variable override via SQMA__ prefix is
supported. The legacy Config remains in use; migration follows later.
2026-08-07 16:04:58 +07:00
Nils Andreas Svee
7f557f26d4
style(reflector): remove redundant comment in reflector selector
...
Eliminate an outdated comment to improve code readability and maintain a clean codebase.
2026-07-24 00:05:41 +07:00
Nils Andreas Svee
c1bcb22b23
refactor(baseliner): Replace shared Mutex state with thread-safe control snapshots
...
Eliminate lock contention between the baseliner, ratecontroller, and selector by moving to a message-passing architecture using immutable snapshots of reflector state. This improves data consistency and simplifies cross-thread communication.
2026-07-24 00:05:41 +07:00
Nils Andreas Svee
51377f947f
refactor(baseliner): extract reflector statistics logic and add unit tests
2026-07-24 00:05:41 +07:00
Nils Andreas Svee
dc4ce1159f
chore(deps): update rust crate dependencies
2026-07-24 00:05:41 +07:00
Nils Andreas Svee
288d1afdb9
chore(deps): switch netlink dependencies from git to crates.io
2026-07-24 00:05:41 +07:00
Nils Andreas Svee
b45ae4b6d6
build: update development and cross-compilation tools
2026-07-24 00:05:40 +07:00
Nils Andreas Svee
b762901470
feat(platform): add support for FreeBSD interface statistics
2026-07-24 00:05:19 +07:00
Nils Andreas Svee
cd6d631afa
refactor(config): remove unimplemented measurement types
...
Remove NTP and TCP timestamp variants from the measurement type configuration since they are currently unimplemented and lead to runtime panics.
2026-07-20 23:06:23 +07:00
Nils Andreas Svee
b07dc99bf5
fix(deps): update rust crate icmp-socket2 to 0.5.1
2026-07-17 13:07:30 +07:00
Nils Andreas Svee
ae9193580c
refactor(platform): restructure platform-specific abstractions and add synthetic backends
2026-07-17 13:02:17 +07:00
Nils Andreas Svee
50f0dcb4dd
perf(baseliner): bound the reselection channel to prevent memory buildup
...
Change the reselection channel from unbounded to a size of 1 and use non-blocking sends to avoid unnecessary queuing of reselection triggers.
2026-07-17 11:39:07 +07:00
Nils Andreas Svee
9811592f13
feat(platform): introduce abstractions for cross-platform interface statistics and traffic control
...
Decouple the rate controller from Linux-specific Netlink calls to support other operating systems. This adds a macOS backend for interface statistics and an "observe-only" mode for platforms where traffic shaping is not yet implemented.
2026-07-17 11:35:43 +07:00
Nils Andreas Svee
c5d673fcb8
build(uci): restrict UCI dependency and feature to Linux targets
...
Ensure the UCI integration is only compiled on Linux, as the underlying native dependency is platform-specific. Added a build script to warn users when the feature is enabled on unsupported platforms.
2026-07-17 01:43:10 +07:00
Nils Andreas Svee
b56c8b72cc
refactor(main): modularize main loop and improve resource cleanup logic
2026-07-14 22:53:01 +07:00
Nils Andreas Svee
8b0c37bc83
refactor: simplify control flow and error handling in metrics and netlink
2026-07-05 12:44:44 +07:00
Nils Andreas Svee
694cad1fac
chore(deps): update wasm and web-related dependencies
2026-07-03 00:50:00 +07:00
Nils Andreas Svee
908fbfdf04
refactor(deps): cleanup netlink-bindings and shlex dependencies
2026-07-03 00:50:00 +07:00
Nils Andreas Svee
2dacde8a3f
chore(deps): update cargo dependencies
2026-07-03 00:50:00 +07:00
Nils Andreas Svee
4aaf8fa100
chore: add SPDX license identifiers and copyright headers to source files
...
Apply the MPL-2.0 license to all source files and include the full license text to ensure legal compliance and proper attribution.
2026-04-23 12:39:52 +07:00
Nils Andreas Svee
dfa11be236
chore: add MPLv2.0 license
...
The original Lua sqm-autorate project is licensed under the MPLv2.0, and this project started life as a pure port of that. Thus our code should also be licensed under the MPL
2026-04-23 12:19:49 +07:00
Nils Andreas Svee
58d536bb22
refactor(pinger): replace hashlru with standard HashMap and manual TTL cleanup
...
Remove the hashlru dependency to reduce bloat, replacing it with a Mutex-wrapped HashMap and manual entry expiration logic.
2026-04-23 00:33:07 +07:00
Nils Andreas Svee
6f16f3a93c
build(deps): disable default features for hashlru to reduce dependency bloat
...
Remove unused dependencies including ahash, hashbrown, and zerocopy by disabling default features for hashlru.
2026-04-23 00:19:00 +07:00
Nils Andreas Svee
1b959d52ed
feat(main): Initialize and pass InFlightProbeCache to pinger threads
2026-04-23 00:16:19 +07:00
Nils Andreas Svee
8c29d7b251
feat(pinger): Integrate in-flight probe cache into sender and listener
2026-04-23 00:16:19 +07:00
Nils Andreas Svee
80adb368d4
feat(pinger): Implement new craft_packet signature for ICMP types
2026-04-23 00:16:19 +07:00
Nils Andreas Svee
6ae19b619a
feat(pinger): Introduce InFlightProbeCache and update Ping traits
2026-04-23 00:16:19 +07:00
Nils Andreas Svee
7250050f63
feat(deps): Add hashlru for in-flight probe caching
2026-04-23 00:16:19 +07:00
Nils Andreas Svee
3322e82b6c
refactor: replace std::sync::mpsc with flume for improved channel performance
...
Migrate internal message passing to flume to leverage better performance and additional features like eventual fairness and selection.
2026-04-22 22:39:06 +07:00
Nils Andreas Svee
ea19c6d68b
style: remove unused synchronization imports
...
Eliminate unused Arc, Mutex, and RwLock imports to clean up codebase and reduce compiler warnings.
2026-04-22 22:26:44 +07:00
Nils Andreas Svee
a81d208c0d
style: refine logging verbosity and improve diagnostic messages
...
Demote baseline telemetry to debug level, add context to rate controller warnings, and remove redundant string conversions in reflector selection logs.
2026-04-22 22:09:26 +07:00
Nils Andreas Svee
e22c100e57
refactor(main): Relocate and enhance signal handler with improved logging
2026-04-22 21:45:27 +07:00
Nils Andreas Svee
72fe0230ee
style: Apply general code formatting and import reordering
2026-04-22 21:45:25 +07:00
Nils Andreas Svee
6690402a34
chore(deps): update dependencies and switch rust-uci to git revision
...
Update bindgen, nom, and other core dependencies while switching rust-uci and libuci-sys to a specific git revision to ensure compatibility with recent project changes.
2026-04-22 16:55:46 +07:00
Nils Andreas Svee
3ec53a1224
refactor: Migrate configuration to new UCI path prefix and boolean helper
2026-04-22 16:55:05 +07:00
Nils Andreas Svee
7d5c2f0275
refactor: Add boolean configuration helper and streamline host tag retrieval
2026-04-22 16:55:05 +07:00
Nils Andreas Svee
45da0c030e
feat: Add flexible boolean parsing for configuration
2026-04-22 16:55:05 +07:00
Nils Andreas Svee
33169182be
chore(deps): update rust-uci repository source
...
Switch the rust-uci dependency to the namib-project fork while maintaining the same revision to ensure availability and consistency with project requirements.
2026-04-22 15:11:16 +07:00
Nils Andreas Svee
2aea1bea86
chore(deps): switch rust-uci to git dependency
...
Update rust-uci to use a specific git revision from the upstream repository to incorporate latest changes not yet available in the published version.
2026-04-22 15:06:45 +07:00
Nils Andreas Svee
d0e3394f03
refactor: add ArcMutex/ArcRwLock type aliases
...
Replace repeated Arc> and Arc> with concise type aliases for readability.
2026-04-18 19:04:35 +02:00
Nils Andreas Svee
7c40990e93
chore(deps): switch netlink dependencies to upstream git and remove vendor patch
...
Replace the local vendored patch for netlink-socket2 with a direct reference to the upstream git repository to maintain the fix for musl targets.
This should be changed back to using a release once the fix has a published release
2026-04-18 15:41:02 +07:00
Nils Andreas Svee
11837195de
chore(deps): update rust dependencies
...
Update several crates including cc, cmake, fastrand, and quote to their latest versions to maintain up-to-date build tools and libraries.
2026-04-14 16:04:02 +07:00
Nils Andreas Svee
7b0eb942ea
fix(deps): patch netlink-socket2 to support musl targets
...
Vendor netlink-socket2 to resolve compilation failures caused by direct struct-literal initialization of libc types on musl.
2026-04-14 15:00:49 +07:00
Nils Andreas Svee
5daccecc1d
fix(deps): update rust crate netlink-bindings to 0.3
...
Adjust netlink and traffic control logic to accommodate breaking API changes, including shifts from method calls to direct field access.
2026-04-14 13:09:50 +07:00
Nils Andreas Svee
8739ed4419
fix(metrics): use AtomicU32 for drop counter to support MIPS targets
...
Also bumps version to 0.4.1.
2026-04-14 02:14:55 +07:00
Nils Andreas Svee
99e80c381d
build: bump package version to 0.4.0
2026-04-14 02:09:20 +07:00
Nils Andreas Svee
3c689b1d1e
feat(main): Orchestrate application shutdown and cleanup
2026-04-14 02:03:53 +07:00
Nils Andreas Svee
bda1a44b6e
feat(threads): Add graceful shutdown checks to worker loops
2026-04-14 02:03:53 +07:00
Nils Andreas Svee
6e4e6b85e9
feat(shutdown): Implement global shutdown signal handling
2026-04-14 02:03:53 +07:00
Nils Andreas Svee
f8976a78a2
feat(metrics): support arbitrary event tags and enhance monitoring coverage
...
Enable key-value metadata for events to track dry-run status and introduce new monitoring events for rate controller failure states.
2026-04-14 01:45:07 +07:00
Nils Andreas Svee
60e7ffc9e7
refactor(main): integrate MetricsSender across application entry point
2026-04-13 18:57:51 +07:00
Nils Andreas Svee
2db63e6159
refactor(reflector_selector): migrate to MetricsSender for event dispatch
2026-04-13 18:57:50 +07:00
Nils Andreas Svee
3095e32d41
refactor(ratecontroller): migrate to MetricsSender for metric dispatch
2026-04-13 18:57:50 +07:00
Nils Andreas Svee
57382465bf
refactor(pinger): migrate to MetricsSender for metric dispatch
2026-04-13 18:57:50 +07:00