Commit Graph
705 Commits
Author SHA1 Message Date
Nils Andreas Svee c1b2486046 refactor(irtt-stats): split reply and IPDV samples 2026-05-13 13:28:08 +07:00
Nils Andreas Svee 90bb29cd75 refactor(irtt-stats): extract IPDV tracker 2026-05-13 13:20:58 +07:00
Nils Andreas Svee 0dd137a59e refactor(irtt-stats): rename WindowEvent to StatsEvent 2026-05-13 13:12:06 +07:00
Nils Andreas Svee 05f9732760 refactor(irtt-stats): rename median mode to sample mode 2026-05-13 12:58:13 +07:00
Nils Andreas Svee ce4b3c37ab fix(irtt-stats): keep RTT IPDV independent from directional timing 2026-05-13 12:57:10 +07:00
Nils Andreas Svee f05b7cceb2 refactor(irtt-stats): improve duration safety by handling negative time offsets 2026-05-13 12:44:35 +07:00
Nils Andreas Svee 0a66f6fb49 refactor(irtt-stats): remove unused push_duration helper 2026-05-13 12:36:51 +07:00
Nils Andreas Svee 5138dee29f refactor(irtt-stats): unify duration statistics into a single TimeStats type
Simplify the statistics model by merging signed and unsigned duration types into a single structure that uses i128 to consistently handle both positive and negative time offsets.
2026-05-13 12:32:47 +07:00
Nils Andreas Svee 542e67bf74 refactor(irtt-stats): consolidate snapshot types and rename summary to snapshot 2026-05-13 12:21:51 +07:00
Nils Andreas Svee 197903fb8e test(irtt-stats): rename internal date-time helper and update test case name
Rename system_time_ns to unix_time_ns_after_epoch for better clarity on output behavior and update a continuous mode test case name to more accurately reflect its purpose.
2026-05-13 12:07:51 +07:00
Nils Andreas Svee adfe8e7a6b test(irtt-stats): move integration tests to dedicated test module 2026-05-13 11:59:06 +07:00
Nils Andreas Svee 72470bd196 test(client): update and expand DSCP negotiation test coverage 2026-05-13 00:37:54 +07:00
Nils Andreas Svee fec14b2c7c feat(session): restrict DSCP negotiation to allow only disabling (reset to 0) 2026-05-13 00:37:53 +07:00
Nils Andreas Svee 3dfca1ab5e refactor(session): implement Display and add documentation for NegotiationRestriction 2026-05-13 00:37:45 +07:00
Nils Andreas Svee cbe91f2fe0 feat(client): track and report specific negotiation restrictions
Replace basic validation with a detailed negotiation process that records specific parameter changes. This allows the client to provide better feedback when a server restricts requested session parameters like duration or DSCP.
2026-05-12 15:18:02 +07:00
Nils Andreas Svee a7e10358fd test(client): use fallible packet length helpers in integration tests 2026-05-12 13:05:45 +07:00
Nils Andreas Svee 4549d95d0a test(client): update test helpers to handle fallible packet length calculations 2026-05-12 13:05:45 +07:00
Nils Andreas Svee 1b79c864d4 refactor(client): propagate ProtoError from recv_buffer_size calculation 2026-05-12 13:05:45 +07:00
Nils Andreas Svee 20a1d9dc8e refactor(proto): make echo_packet_len return Result to handle negative lengths 2026-05-12 13:05:45 +07:00
Nils Andreas Svee b508a94198 build: bump version to 0.2.0 v0.2.0 2026-05-11 15:11:58 +07:00
Nils Andreas Svee 4ed09e2209 ci: add cargo-dist for automated release management
Introduce cargo-dist workflows and configuration to automate binary building and GitHub Release creation across multiple platforms.
2026-05-11 15:10:15 +07:00
Nils Andreas Svee e2a9d68843 ci: add actions read permission to OSV-Scanner workflow
Grant necessary read access to actions to ensure the vulnerability scanner can evaluate the execution environment.
2026-05-11 15:01:05 +07:00
renovate[bot] c04e8f7084 chore(deps): maintain cargo lockfile 2026-05-11 08:00:31 +00:00
renovate[bot] 323e5f7f3d chore(deps): update github actions 2026-05-11 14:58:04 +07:00
Nils Andreas Svee 7ad83ca1f6 refactor: remove logical_seq from client events, session tracking and stats usage
It was an attempt at handling integer wraparound more cleanly keeping in mind that we have a continuous mode,
and so we can more easily reach seq > u32::MAX

However after running the numbers, if we run with a interval of 10ms, it's still gonna take ~497 days before we hit integer overflow, so for now it doesn't seem worth to have this extra logic to handle something that'll in 99.9% of cases be purely an edge case

Keeping in mind autorate usage, in sqm-autorate-rust each send loop is 500 ms by default, and the sleep is then 500 ms / 5 reflectors, so our interval is 100 ms. that means it'll take 4970 days or ~13.6 years to reach the limit. Not worth dealing with IMO
2026-05-11 14:56:07 +07:00
Nils Andreas Svee 8ef53c999a build: optimize release profile for binary size and performance
Enable LTO, single codegen units, and symbol stripping to reduce binary footprint and improve execution efficiency.
2026-05-11 13:27:50 +07:00
Nils Andreas Svee 21bc7805f7 refactor: mark public enums as non-exhaustive to improve API stability
Apply the #[non-exhaustive] attribute to ClientError and WarningKind to prevent breaking changes when adding new variants. Handle the catch-all case in the CLI formatter.
2026-05-11 12:33:40 +07:00
Nils Andreas Svee 8d1d0f50de style(client): reformat imports in test files
Collapse multi-line import statements into single lines to improve code legibility and maintain consistent formatting across test suites.
2026-05-11 10:13:06 +07:00
Nils Andreas Svee d6c6e60742 refactor(client): expose len methods for map structures 2026-05-11 10:10:24 +07:00
Nils Andreas Svee 1cdd100473 refactor(irtt-stats): remove redundant process_with_update method
Simplify the StatsCollector API by removing an unnecessary indirection that performed the same logic as the main process method.
2026-05-11 10:09:13 +07:00
Nils Andreas Svee 80fda92231 fix(irtt-stats): use event timestamp for warnings instead of current time
Ensure warning statistics reflect the actual time the event occurred rather than the moment the event was processed.
2026-05-11 09:55:11 +07:00
Nils Andreas Svee 5f6bff5dcb feat(client): add timestamp to ClientEvent::Warning
Include a timestamp when reporting warnings to allow consumers like the machine-readable formatter to provide temporal context for troubleshooting.
2026-05-11 09:50:16 +07:00
Nils Andreas Svee 1a04f44bb5 refactor(client): remove redundant timestamp parameter from poll_timeouts
Use internal monotonic time by default and introduce poll_timeouts_at for callers requiring a specific sampled Instant. This simplifies the API for standard usage while maintaining flexibility for external event loops.
2026-05-11 09:33:55 +07:00
Nils Andreas Svee d8b580a19c refactor(client): remove redundant timestamp parameter from close method 2026-05-10 23:47:46 +07:00
Nils Andreas Svee 023e85741a refactor(client): remove redundant timestamp parameter from open method 2026-05-10 23:37:35 +07:00
Nils Andreas Svee 2258509021 chore: bump version to 0.1.1 across all crates
Update workspace members and dependencies to version 0.1.1 to prepare for a new release.
v0.1.1
2026-05-10 21:17:22 +07:00
renovate[bot] e6a296baf4 chore(deps): pin dependencies 2026-05-10 20:56:43 +07:00
renovate[bot] 14be5cd836 chore(deps): update github actions to v2 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 6b373380f4 ci: pin GitHub Action digests in Renovate configuration
Add the pinGitHubActionDigests helper to improve CI security by using immutable commit SHA digests instead of mutable tags.
2026-05-10 20:56:43 +07:00
Nils Andreas Svee fc8e6d10e8 ci: add cargo-semver-checks to verify API compatibility
Check for breaking changes against all features on tags and manual triggers to ensure semantic versioning compliance.
2026-05-10 20:56:43 +07:00
Nils Andreas Svee 1a314778ad ci: expand workflow security auditing with actionlint
Rename the zizmor workflow to actions-security and add actionlint to provide comprehensive static analysis and linting for GitHub Actions.
2026-05-10 20:56:43 +07:00
Nils Andreas Svee 2e9ad57d61 ci: remove redundant build and test workflow
Deletes the basic build_and_test.yml to avoid duplication with more specialized CI pipelines and security scanners.
2026-05-10 20:56:43 +07:00
Nils Andreas Svee b00d3ef633 ci: add zizmor for GitHub Actions security scanning 2026-05-10 20:56:43 +07:00
Nils Andreas Svee ae5f939fb2 ci: implement supply chain security and workflow linting 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 385d531461 chore: refine cargo-deny policy for stricter dependency auditing
Replace the default template with a tailored configuration that enforces explicit license checks, denies unknown registries, and mandates exact commit pins for git dependencies.
2026-05-10 20:56:43 +07:00
Nils Andreas Svee 00aab3dd6b ci: modernize clippy sarif workflow 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 8343bcbb54 ci: add primary rust continuous integration pipeline 2026-05-10 20:56:43 +07:00
Nils Andreas Svee b8d60fcc23 chore: add cargo-deny configuration for dependency auditing 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 44ffb9557a fix(client): use correct socket option for IPv4 TOS reception on Linux 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 26fbe86e90 chore: add OSV-Scanner workflow for vulnerability scanning 2026-05-10 20:56:43 +07:00