Commit Graph
14 Commits
Author SHA1 Message Date
Nils Andreas Svee 01c10e2e0d docs: document client public API 2026-05-18 01:34:04 +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 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 8374a51054 fix(client): reject runtime-invalid negotiated dscp 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 07d14328d3 fix(client): clarify duration negotiation rejection 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 294d97a13d fix(client): reject invalid negotiated packet length 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 ab951a440a feat(client): track and handle late replies after timeout 2026-05-10 20:56:43 +07:00
Nils Andreas Svee c373b957d5 feat(client): implement core echo probe sending and receiving logic 2026-05-10 20:56:43 +07:00
Nils Andreas Svee e33b9b3f3f refactor(client): rename ClientState to ClientPhase and introduce ActiveSession 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 7429beef79 refactor(irtt-client): modularize client components 2026-05-10 20:56:43 +07:00