Commit Graph
306 Commits
Author SHA1 Message Date
Nils Andreas Svee 231021fd40 feat(cli): expose receive metadata in machine output 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 212a6e7b35 test(client): cover receive metadata on reply events 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 1c7f0ea22f chore(client): refine unsafe code restrictions for Linux ancillary features
Transition from a global forbid to a scoped deny for unsafe code to accommodate necessary low-level operations in the Linux receive implementation.
2026-05-10 20:56:43 +07:00
Nils Andreas Svee 3ff6a07225 feat(client): add Linux ancillary receive metadata 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 40dc41dc39 feat(client): add receive datagram abstraction 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 25d5c1db1c feat(client): add receive metadata scaffold 2026-05-10 20:56:43 +07:00
Nils Andreas Svee ed62a5c80c test: refactor real backend support for reliable output capture 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 706e3bd1e1 test: make IPv6 socket option tests more robust 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 2a11e77cfd chore: remove unused interop feature flag 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 a80a5e2b7b test(client): rename DSCP smoke test to reflect specific behavior
Update the test name to clarify that it verifies DSCP configuration during the session open and close lifecycle.
2026-05-10 20:56:43 +07:00
Nils Andreas Svee 063214b83b feat(client): implement DSCP negotiation and socket traffic class application
Apply the negotiated DSCP value to the UDP socket after a successful session open and clear it before closing to support network-level quality of service. This change adds platform-specific socket option handling for IPv4 TOS and IPv6 Traffic Class.
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 a4e2f3aef4 test(client): unify fake and real backend testing via BackendPeer
Introduce a BackendPeer abstraction to transparently switch between fake and real IRTT backends. This simplifies test logic by removing manual skip checks and providing a consistent interface for server lifecycle management.
2026-05-10 20:56:43 +07:00
Nils Andreas Svee 3d49f725ae test(client): add integration tests for compatibility with real IRTT backends
Introduce a mechanism to run tests against a live irtt binary to verify real-world protocol interoperability, including HMAC authentication and various timestamp modes.
2026-05-10 20:56:43 +07:00
Nils Andreas Svee 797120056e test(client): add comprehensive integration tests for HMAC authentication
Verify HMAC negotiation, session closure, and error handling for authenticated probes to ensure protocol security and reliability.
2026-05-10 20:56:43 +07:00
Nils Andreas Svee 3f33f630b2 test(client): split client tests into behavior-focused modules 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 48891f8b5a refactor(client): move internal client tests to a dedicated sub-module 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 e49e91c528 test: verify RTT equality when no timestamping is present 2026-05-10 20:56:43 +07:00
Nils Andreas Svee b5b6ecc69e refactor(test): extract RTT processing verification to helper function 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 2052417b6b test: update mock timestamp simulation in test support 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 3de92749e9 test(client): add integration tests for m8 compatibility 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
Nils Andreas Svee 8ecd113f04 feat(cli): add support for midpoint timestamps and received stats 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 880653a98d feat(client): implement protocol configuration validation 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 1d7c9d70ec feat(client): define constants and validation for DSCP and server fill 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 0a795379a7 test(client): validate parameter mapping from configuration 2026-05-10 20:56:43 +07:00
Nils Andreas Svee ab855338af test(proto): verify HMAC field placement in protocol packets 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 5831f4a3b5 test(proto): add unit tests for parameter encoding and decoding 2026-05-10 20:56:43 +07:00
Nils Andreas Svee cf65e88fa3 refactor(client): modularize duration restriction validation 2026-05-10 20:56:43 +07:00
Nils Andreas Svee b1451742b4 feat(cli): implement continuous statistics and summary suppression 2026-05-10 20:56:43 +07:00
Nils Andreas Svee b35bc50ca4 refactor(cli): enhance main loop and reply draining logic 2026-05-10 20:56:43 +07:00
Nils Andreas Svee ba5dd8abb5 feat(cli): add support for continuous mode with zero duration 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 9fd9ee2c3a refactor(client): improve session initialization and state access 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 54bb17ffd9 style(cli): rename machine output keys for clarity 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 4770d0d476 feat(cli): integrate StatsCollector into main execution loop 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 181b796e8d feat(cli): implement summary formatting for statistics 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 91a3e6f383 build(cli): add irtt-stats dependency and feature flag 2026-05-10 20:56:43 +07:00
Nils Andreas Svee f0121fa0fe feat(cli): add Human output mode and summary logic 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 2524f5d1b2 feat(client): drain late replies before closing session 2026-05-10 20:56:43 +07:00
Nils Andreas Svee ca99b752a6 feat(stats): bound sequence tracking in continuous mode 2026-05-10 20:56:43 +07:00
Nils Andreas Svee c345f4b549 fix(client): prune insertion order in TimedOutMap on removal 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 7d3a9f8da0 build(stats): add irtt-client dependency to irtt-stats 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 16c1af750c feat(stats): implement core statistics collection and aggregation 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 5d791d1fcd feat(client): emit EchoSent event with scheduling metadata 2026-05-10 20:56:43 +07:00
Nils Andreas Svee ab951a440a feat(client): track and handle late replies after timeout 2026-05-10 20:56:43 +07:00