Commit Graph
257 Commits
Author SHA1 Message Date
renovate[bot] 3d1c14d312 fix(deps): update netlink-bindings digest to 0b609e9 2026-07-03 00:46:39 +07:00
renovate[bot] 7955046426 fix(deps): update rust-uci digest to 3e7b615 2026-07-03 00:46:39 +07:00
renovate[bot] 30e3281178 chore(deps): update google/osv-scanner-action action to v2.3.8 2026-07-03 00:46:39 +07:00
renovate[bot] f3f033cf0f chore(deps): update rust crate libc to v0.2.186 2026-07-03 00:46:39 +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
renovate[bot] a739d1a5e2 chore(deps): update google/osv-scanner-action action to v2.3.5 2026-04-16 23:37: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
renovate[bot] 706d93f146 chore(deps): update rust crate libc to v0.2.185 2026-04-14 16:00:57 +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
renovate[bot] 2c336799b8 fix(deps): update rust crate netlink-socket2 to 0.3 2026-04-14 12:07:32 +07:00
Nils Andreas Svee 8739ed4419 fix(metrics): use AtomicU32 for drop counter to support MIPS targets
Also bumps version to 0.4.1.
v0.4.1
2026-04-14 02:14:55 +07:00
Nils Andreas Svee 99e80c381d build: bump package version to 0.4.0 v0.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
Nils Andreas Svee e9e233d98a refactor(baseliner): migrate to MetricsSender for metric dispatch 2026-04-13 18:57:50 +07:00
Nils Andreas Svee 8036d27e6f feat(metrics): track and report dropped metric counts 2026-04-13 18:57:50 +07:00
Nils Andreas Svee 451d42640b refactor(metrics): encapsulate metric dispatch with MetricsSender 2026-04-13 18:57:50 +07:00
Nils Andreas Svee b930a01fd6 feat(observability): emit a startup event metric to signal application initialization
Send a telemetry event when the process starts to provide better visibility into application lifecycle transitions.
2026-04-13 17:49:19 +07:00
Nils Andreas Svee e7cbdbb265 docs(observability): document rationale for unbatched UDP metric flushing
Explain that individual metric delivery prevents data truncation caused by small UDP receive buffers on the remote host.
2026-04-13 17:36:30 +07:00
Nils Andreas Svee 1d7fd5800b refactor(observability): initialize metrics collection earlier in the startup sequence
Move the metrics thread and error channel initialization before the settling period and peer setup to ensure early telemetry is captured.
2026-04-13 17:34:17 +07:00
Nils Andreas Svee 699c8782d9 fix(observability): send individual metrics over UDP to avoid packet size limits
Differentiate flushing logic between transport types to prevent UDP payload truncation while maintaining batched delivery for TCP.
2026-04-13 17:21:14 +07:00
Nils Andreas Svee 0f902e27a3 perf(observability): optimize metric flushing to reduce memory allocations
Use a pre-allocated buffer for metric serialization to improve efficiency when processing large batches.
2026-04-13 16:54:33 +07:00