Commit Graph
43 Commits
Author SHA1 Message Date
Nils Andreas Svee 20e6286277 fix(client): report counter overflows clearly 2026-05-08 10:47:14 +07:00
Nils Andreas Svee 2a780337f2 fix(client): reject invalid timing parameters earlier 2026-05-08 10:23:42 +07:00
Nils Andreas Svee fedb478ad6 perf(client): reuse receive buffer 2026-05-07 23:40:12 +07:00
Nils Andreas Svee 7017071949 fix(client): report read-timeout restore failures 2026-05-07 21:25:51 +07:00
Nils Andreas Svee b5f1d8d438 fix(client): check probe scheduling arithmetic 2026-05-07 21:25:51 +07:00
Nils Andreas Svee 4cd0201c50 fix(client): handle sequence wrap in reply ordering 2026-05-07 21:25:51 +07:00
Nils Andreas Svee e479d51dc3 fix(client): validate packet length configuration 2026-05-07 21:25:51 +07:00
Nils Andreas Svee 97d61371cb feat(client): add receive datagram abstraction 2026-05-07 17:35:54 +07:00
Nils Andreas Svee 168beffec1 feat(client): add receive metadata scaffold 2026-05-07 17:15:08 +07:00
Nils Andreas Svee 31e7066e81 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-05 00:18:34 +07:00
Nils Andreas Svee 36ca426ff5 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-05 00:04:12 +07:00
Nils Andreas Svee 746ea3805b refactor(client): move internal client tests to a dedicated sub-module 2026-05-03 22:25:35 +07:00
Nils Andreas Svee 8c9afce30f feat(client): implement protocol configuration validation 2026-05-03 16:12:10 +07:00
Nils Andreas Svee c2138fe356 test(client): validate parameter mapping from configuration 2026-05-03 15:34:04 +07:00
Nils Andreas Svee 36c36f3872 feat(cli): add support for continuous mode with zero duration 2026-05-02 00:01:31 +07:00
Nils Andreas Svee 851d143f86 refactor(client): improve session initialization and state access 2026-05-02 00:01:31 +07:00
Nils Andreas Svee 64e7117a12 feat(client): drain late replies before closing session 2026-05-01 18:24:54 +07:00
Nils Andreas Svee cf519bd630 feat(client): emit EchoSent event with scheduling metadata 2026-05-01 10:05:52 +07:00
Nils Andreas Svee bcbc0ec164 feat(client): track and handle late replies after timeout 2026-05-01 10:05:52 +07:00
Nils Andreas Svee e2be6cadac feat(client): implement SignedDuration for precise RTT tracking 2026-05-01 10:05:52 +07:00
Nils Andreas Svee 18f15f16d5 feat(client): record and report packet size in client events 2026-05-01 10:05:43 +07:00
Nils Andreas Svee 2f3d92ad2b feat(client): add run status and packet count helpers 2026-04-28 23:34:34 +07:00
Nils Andreas Svee bef98b5d58 test(client): add regression tests for packet processing and RTT 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 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 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 cc7923e0ad feat(irtt-client): introduce core client connection logic 2026-04-28 16:33:05 +07:00