Nils Andreas Svee
c26008a0b6
refactor(irtt-stats): extract event normalization module
2026-05-13 14:53:13 +07:00
Nils Andreas Svee
1469a2d9e8
refactor(irtt-stats): extract rolling events module
2026-05-13 14:44:56 +07:00
Nils Andreas Svee
ebc0d46621
refactor(irtt-stats): extract loss stats module
2026-05-13 14:32:12 +07:00
Nils Andreas Svee
cc43b43f00
refactor(irtt-stats): extract IPDV tracking module
2026-05-13 14:25:54 +07:00
Nils Andreas Svee
04d5b634a2
refactor(irtt-stats): extract time stats module
2026-05-13 14:16:07 +07:00
Nils Andreas Svee
557c946796
refactor(irtt-stats): split snapshot builders
2026-05-13 14:07:43 +07:00
Nils Andreas Svee
bda1d83c27
refactor(irtt-stats): extract rolling event storage
2026-05-13 13:59:54 +07:00
Nils Andreas Svee
820304f6eb
refactor(irtt-stats): split unique reply accounting
2026-05-13 13:49:43 +07:00
Nils Andreas Svee
f211845645
refactor(irtt-stats): extract IPDV update recording
2026-05-13 13:45:28 +07:00
Nils Andreas Svee
851825822d
refactor(irtt-stats): split CoreStats event handlers
2026-05-13 13:40:55 +07:00
Nils Andreas Svee
969d26d0f1
refactor(irtt-stats): extract event normalization boundary
2026-05-13 13:31:27 +07:00
Nils Andreas Svee
c1b2486046
refactor(irtt-stats): split reply and IPDV samples
2026-05-13 13:28:08 +07:00
Nils Andreas Svee
90bb29cd75
refactor(irtt-stats): extract IPDV tracker
2026-05-13 13:20:58 +07:00
Nils Andreas Svee
0dd137a59e
refactor(irtt-stats): rename WindowEvent to StatsEvent
2026-05-13 13:12:06 +07:00
Nils Andreas Svee
05f9732760
refactor(irtt-stats): rename median mode to sample mode
2026-05-13 12:58:13 +07:00
Nils Andreas Svee
ce4b3c37ab
fix(irtt-stats): keep RTT IPDV independent from directional timing
2026-05-13 12:57:10 +07:00
Nils Andreas Svee
f05b7cceb2
refactor(irtt-stats): improve duration safety by handling negative time offsets
2026-05-13 12:44:35 +07:00
Nils Andreas Svee
0a66f6fb49
refactor(irtt-stats): remove unused push_duration helper
2026-05-13 12:36:51 +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
197903fb8e
test(irtt-stats): rename internal date-time helper and update test case name
...
Rename system_time_ns to unix_time_ns_after_epoch for better clarity on output behavior and update a continuous mode test case name to more accurately reflect its purpose.
2026-05-13 12:07:51 +07:00
Nils Andreas Svee
adfe8e7a6b
test(irtt-stats): move integration tests to dedicated test module
2026-05-13 11:59:06 +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
a7e10358fd
test(client): use fallible packet length helpers in integration tests
2026-05-12 13:05:45 +07:00
Nils Andreas Svee
4549d95d0a
test(client): update test helpers to handle fallible packet length calculations
2026-05-12 13:05:45 +07:00
Nils Andreas Svee
1b79c864d4
refactor(client): propagate ProtoError from recv_buffer_size calculation
2026-05-12 13:05:45 +07:00
Nils Andreas Svee
20a1d9dc8e
refactor(proto): make echo_packet_len return Result to handle negative lengths
2026-05-12 13:05:45 +07:00
Nils Andreas Svee
b508a94198
build: bump version to 0.2.0
v0.2.0
2026-05-11 15:11:58 +07:00
Nils Andreas Svee
4ed09e2209
ci: add cargo-dist for automated release management
...
Introduce cargo-dist workflows and configuration to automate binary building and GitHub Release creation across multiple platforms.
2026-05-11 15:10:15 +07:00
Nils Andreas Svee
e2a9d68843
ci: add actions read permission to OSV-Scanner workflow
...
Grant necessary read access to actions to ensure the vulnerability scanner can evaluate the execution environment.
2026-05-11 15:01:05 +07:00
renovate[bot]
c04e8f7084
chore(deps): maintain cargo lockfile
2026-05-11 08:00:31 +00:00
renovate[bot]
323e5f7f3d
chore(deps): update github actions
2026-05-11 14:58:04 +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
8ef53c999a
build: optimize release profile for binary size and performance
...
Enable LTO, single codegen units, and symbol stripping to reduce binary footprint and improve execution efficiency.
2026-05-11 13:27:50 +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
8d1d0f50de
style(client): reformat imports in test files
...
Collapse multi-line import statements into single lines to improve code legibility and maintain consistent formatting across test suites.
2026-05-11 10:13:06 +07:00
Nils Andreas Svee
d6c6e60742
refactor(client): expose len methods for map structures
2026-05-11 10:10:24 +07:00
Nils Andreas Svee
1cdd100473
refactor(irtt-stats): remove redundant process_with_update method
...
Simplify the StatsCollector API by removing an unnecessary indirection that performed the same logic as the main process method.
2026-05-11 10:09:13 +07:00
Nils Andreas Svee
80fda92231
fix(irtt-stats): use event timestamp for warnings instead of current time
...
Ensure warning statistics reflect the actual time the event occurred rather than the moment the event was processed.
2026-05-11 09:55:11 +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.
v0.1.1
2026-05-10 21:17:22 +07:00
renovate[bot]
e6a296baf4
chore(deps): pin dependencies
2026-05-10 20:56:43 +07:00
renovate[bot]
14be5cd836
chore(deps): update github actions to v2
2026-05-10 20:56:43 +07:00
Nils Andreas Svee
6b373380f4
ci: pin GitHub Action digests in Renovate configuration
...
Add the pinGitHubActionDigests helper to improve CI security by using immutable commit SHA digests instead of mutable tags.
2026-05-10 20:56:43 +07:00