Commit Graph
119 Commits
Author SHA1 Message Date
Nils Andreas Svee d7cdcc5cee refactor(cli): reorganize project structure into modular commands 2026-06-09 23:23:41 +07:00
Nils Andreas Svee c31ad07d61 feat(irtt-cli): add optional tui output mode 2026-06-09 13:29:00 +07:00
Nils Andreas Svee 8fd0b803e9 docs: add public crate landing docs 2026-05-18 01:22:08 +07:00
Nils Andreas Svee c7a0e5d055 chore: tighten release readiness checks 2026-05-18 00:30:07 +07:00
Nils Andreas Svee e117813578 test: consolidate and prune redundant unit tests
Simplify the test suite by merging similar test cases and removing redundant assertions that verify trivial initialization and basic container logic.
2026-05-18 00:16:51 +07:00
Nils Andreas Svee 3b5336a487 refactor(client): use SignedDuration for one-way delay to support negative values
Allow one-way delay samples to represent negative values caused by wall-clock skew between client and server. Update CLI output and statistics collection to correctly handle and report these signed durations.
2026-05-17 23:55:01 +07:00
Nils Andreas Svee 2d6581f31f refactor(client): encapsulate SignedDuration and enhance its API
Hide internal fields to improve type safety and provide helper methods for unit conversions and negative value checks. Fix several feature-gated test compilation issues.
2026-05-17 22:47:16 +07:00
Nils Andreas Svee bec56d4114 refactor(client): use SignedDuration for effective RTT to support negative values
Simplify RttSample by merging signed and unsigned fields into a single SignedDuration for adjusted and effective RTT. This ensures accurate reporting and statistics when server processing time exceeds raw RTT.
2026-05-17 21:30:51 +07:00
Nils Andreas Svee 39d414d588 test: consolidate formatter and hub policy cases 2026-05-17 00:39:23 +07:00
Nils Andreas Svee 00fd0ebb15 test: consolidate duplicate CLI and client config cases 2026-05-17 00:34:18 +07:00
Nils Andreas Svee ddd420cc21 test: consolidate and prune implementation-coupled tests 2026-05-17 00:28:05 +07:00
Nils Andreas Svee 5d471b77fb refactor(irtt-cli): split stream runtime path 2026-05-13 22:20:51 +07:00
Nils Andreas Svee 61c527eb26 refactor(irtt-cli): rename stream output helper 2026-05-13 22:12:03 +07:00
Nils Andreas Svee f5c35e8142 feat(irtt-cli): note running-only continuous summaries 2026-05-13 22:05:18 +07:00
Nils Andreas Svee 9adab6882d test(cli): add tests for interrupted continuous mode summary 2026-05-13 22:01:56 +07:00
Nils Andreas Svee 67ef912ba0 feat(cli): print summary when continuous mode is interrupted 2026-05-13 22:01:56 +07:00
Nils Andreas Svee f2f5728c72 refactor(cli): rename print_finite_summary to print_final_summary 2026-05-13 22:01:56 +07:00
Nils Andreas Svee c19dac5aef docs(irtt-cli): expand duration flag documentation
Add detailed help text to clarify the difference in statistics handling between finite and continuous test modes.
2026-05-13 21:36:30 +07:00
Nils Andreas Svee 480cb4fa92 warn(irtt-cli): flag large finite stats runs 2026-05-13 20:18:45 +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 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 b508a94198 build: bump version to 0.2.0 2026-05-11 15:11:58 +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 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 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.
2026-05-10 21:17:22 +07:00
Nils Andreas Svee c386f87a0e fix(deps): update rust crate ctrlc to 3.5.2 2026-05-10 20:56:43 +07:00
renovate[bot] 80255f1fff fix(deps): update rust crate clap to 4.6.1 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 8d24d4811a chore: upgrade ctrlc to version 3.5 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 416e5b43ba build: add package metadata to member crates for publishing
Include descriptions, keywords, categories, and workspace-inherited fields (repository, homepage, readme) to prepare crates for distribution on crates.io.
2026-05-10 20:56:43 +07:00
Nils Andreas Svee 2368e0b3ee build: centralize internal dependencies using workspace inheritance 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 2061bb6ae7 feat(stats): track multiple IPDV pairs per event update
Expose multiple jitter updates when a single event fills a sequence gap, ensuring accurate IPDV reporting for out-of-order packets in human-readable output.
2026-05-10 20:56:43 +07:00
Nils Andreas Svee 8cdd5c63e8 feat(cli): quiet default human output 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 1d6310ec22 feat(cli): format human summary as aligned table 2026-05-10 20:56:43 +07:00
Nils Andreas Svee f9c3685668 feat(cli): improve human event output 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 995293676d feat(cli): handle interrupt as graceful shutdown 2026-05-10 20:56:43 +07:00
Nils Andreas Svee e3bb28c559 fix(client): validate packet length configuration 2026-05-10 20:56:43 +07:00
Nils Andreas Svee f9a639d73d feat(cli): expose kernel receive timestamp in machine output 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 231021fd40 feat(cli): expose receive metadata in machine output 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 9e9b2d641f feat(cli): improve cli help text and unit test naming 2026-05-10 20:56:43 +07:00
Nils Andreas Svee d93e10ba45 feat(cli): add support for configuring outgoing TTL and hop limit
Introduce a `--ttl` flag to allow users to set the IPv4 TTL or IPv6 hop limit, providing control over packet lifespan and helping diagnose network topology issues.
2026-05-10 20:56:43 +07:00
Nils Andreas Svee ab95489f20 test(client): add integration tests for packet length and server fill
Verify that the client correctly handles custom packet lengths and server fill negotiation to ensure protocol compliance and support for larger MTUs. Add validation to reject empty server fill strings during configuration.
2026-05-10 20:56:43 +07:00
Nils Andreas Svee 8bd52f35fa refactor(cli): rename m8 compatibility terms to advanced protocol options 2026-05-10 20:56:43 +07:00
Nils Andreas Svee c80b108b6d test(cli): consolidate invalid argument parsing tests 2026-05-10 20:56:43 +07:00
Nils Andreas Svee aa5209dd0a test(cli): expand test coverage for new CLI parameters 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 8aa8876dc5 feat(cli): add advanced negotiation and protocol options 2026-05-10 20:56:43 +07:00