Commit Graph
138 Commits
Author SHA1 Message Date
Nils Andreas Svee 2dd57720d7 refactor(probe): improve CompletedSet eviction logic using insertion order 2026-04-28 22:45:03 +07:00
Nils Andreas Svee a51274d6b6 fix(client): handle negative RTT and simplify sample generation 2026-04-28 22:45:03 +07:00
Nils Andreas Svee 8ae849b2db feat(client): add specific warning kinds for dropped packets 2026-04-28 22:45:03 +07:00
Nils Andreas Svee 899506dc64 refactor(client): capture send timestamp before socket call
Record the send timestamp immediately before the socket operation to include local enqueue overhead in RTT measurements, providing more conservative latency data for consumers.
2026-04-28 22:38:08 +07:00
Nils Andreas Svee 6782f7b741 refactor(client): unify production and test timing logic
Extract internal methods that accept an optional timestamp to eliminate code duplication between primary client logic and test helpers.
2026-04-28 22:07:09 +07:00
Nils Andreas Svee c4001407d5 test(client): add regression tests for edge cases and correctness 2026-04-28 21:55:49 +07:00
Nils Andreas Svee 8032836661 fix(client): allow partial one-way delay samples 2026-04-28 21:55:49 +07:00
Nils Andreas Svee 3534a59fce fix(client): improve probe tracking and reply handling 2026-04-28 21:55:49 +07:00
Nils Andreas Svee 2380d76da3 refactor(client): dynamic receive buffer sizing based on negotiated parameters 2026-04-28 21:55:49 +07:00
Nils Andreas Svee 2f5d5744ea feat(client): add configuration validation and new error types 2026-04-28 21:55:49 +07:00
Nils Andreas Svee 443040c175 refactor(client): use internal clock for timestamps and simplify probe signatures 2026-04-28 21:55:49 +07:00
Nils Andreas Svee 001a4a7cd7 test(client): add comprehensive tests for Milestone 3 probing functionality 2026-04-28 18:23:35 +07:00
Nils Andreas Svee 974fa65626 feat(client): implement core echo probe sending and receiving logic 2026-04-28 18:23:35 +07:00
Nils Andreas Svee 99fbbb9c32 feat(client): define new event types and error variants for echo probes 2026-04-28 18:23:35 +07:00
Nils Andreas Svee 0fbf775400 feat(client): add configuration options for probe timing and budgets 2026-04-28 18:23:35 +07:00
Nils Andreas Svee 0edb3fe223 feat(client): implement PendingMap and CompletedSet for probe tracking 2026-04-28 18:23:35 +07:00
Nils Andreas Svee b71b6c1938 refactor(client): rename ClientState to ClientPhase and introduce ActiveSession 2026-04-28 18:23:35 +07:00
Nils Andreas Svee 3f902f6f2d fix(client): Improve socket error handling and remove redundant validation 2026-04-28 17:58:31 +07:00
Nils Andreas Svee e0a48e1d53 feat(client): Reject empty open_timeouts configuration with dedicated error 2026-04-28 17:58:31 +07:00
Nils Andreas Svee 3a523092fb refactor(proto): Remove unused protocol flags and helper functions 2026-04-28 17:58:31 +07:00
Nils Andreas Svee 1aff30c709 build(deps): Upgrade thiserror to version 2 2026-04-28 17:58:20 +07:00
Nils Andreas Svee a3f0cf015a test(client): Verify socket read timeout restoration after open() 2026-04-28 16:42:33 +07:00
Nils Andreas Svee ebc7ec1c35 refactor(client): Introduce and apply test helper for timeout servers 2026-04-28 16:42:33 +07:00
Nils Andreas Svee b04ec41e1e test(client): Add open() state validation tests 2026-04-28 16:42:33 +07:00
Nils Andreas Svee afb686b046 feat(client): Validate client state and restore socket timeout on open() 2026-04-28 16:42:33 +07:00
Nils Andreas Svee c3a75cdb0e feat(client): Add client session state error variants 2026-04-28 16:42:33 +07:00
Nils Andreas Svee a5696fd4d3 feat(client): Normalize IPv6 addresses without port in brackets 2026-04-28 16:42:33 +07:00
Nils Andreas Svee cc7923e0ad feat(irtt-client): introduce core client connection logic 2026-04-28 16:33:05 +07:00
Nils Andreas Svee 6182bc5378 refactor(irtt-client): update lib.rs for modularized client 2026-04-28 16:33:05 +07:00
Nils Andreas Svee 01d4466bc2 refactor(irtt-client): modularize client components 2026-04-28 16:33:05 +07:00
Nils Andreas Svee 7b26115a35 build(deps): upgrade thiserror to version 2 2026-04-28 16:33:05 +07:00
Nils Andreas Svee 4c9fea3c9b feat(client): Implement initial IRTT client session management 2026-04-28 16:27:33 +07:00
Nils Andreas Svee bc260b83e5 build(client): Add core dependencies for irtt-client 2026-04-28 16:27:33 +07:00
Nils Andreas Svee b1db169494 style(gitignore): Restrict target directory ignore scope 2026-04-28 16:15:43 +07:00
Nils Andreas Svee eade39aa94 refactor(proto): Remove Clock::None and default to Clock::Both
Simplify clock parameter negotiation by rejecting the ambiguous 'None' value.
2026-04-28 16:15:26 +07:00
Nils Andreas Svee 82491f0f61 feat(project): Establish initial IRTT workspace and protocol definitions
Set up the multi-crate project structure and add the core IRTT protocol with pinned dependencies for reproducible builds.
2026-04-28 16:03:50 +07:00
Nils Andreas Svee dd8b55ad9f docs(plan): Revise implementation plan to reflect API simplifications and feature deferrals 2026-04-28 15:56:05 +07:00
Nils Andreas Svee 208341a84d first revision plan + docs 2026-04-28 15:36:40 +07:00