Nils Andreas Svee
9ca1e6a2be
ci: add primary rust continuous integration pipeline
2026-05-10 20:24:04 +07:00
Nils Andreas Svee
019e847306
chore: add cargo-deny configuration for dependency auditing
2026-05-10 20:13:17 +07:00
Nils Andreas Svee
563346a610
fix(client): use correct socket option for IPv4 TOS reception on Linux
2026-05-10 19:58:50 +07:00
Nils Andreas Svee
17a4be9258
chore: add OSV-Scanner workflow for vulnerability scanning
2026-05-10 19:52:16 +07:00
Nils Andreas Svee
408b9930bb
chore: add rust-clippy workflow for code analysis
2026-05-10 19:51:50 +07:00
Nils Andreas Svee
a6a1421671
fix(deps): update rust crate ctrlc to 3.5.2
2026-05-10 18:05:31 +07:00
Nils Andreas Svee
417d4b8dd9
refactor(irtt-proto): update HMAC implementation for Digest 0.11
2026-05-10 17:58:40 +07:00
Nils Andreas Svee
80cf0e1e03
build(deps): update hmac and md-5 dependencies
2026-05-10 17:58:40 +07:00
Nils Andreas Svee
40bc934976
refactor(client): upgrade socket2 to 0.6 and use version-specific API
2026-05-10 17:56:36 +07:00
Nils Andreas Svee
453a63b368
build: update windows-sys dependencies and consolidate versions
2026-05-10 17:56:36 +07:00
Nils Andreas Svee
08e404b8bd
chore: upgrade ctrlc to version 3.5
2026-05-10 17:56:36 +07:00
Nils Andreas Svee
325e412d95
build: add package metadata to member crates for publishing
...
Include descriptions, keywords, categories, and workspace-inherited fields (repository, homepage, readme) to prepare crates for distribution on crates.io.
2026-05-08 18:27:39 +07:00
Nils Andreas Svee
445b64ad66
build: centralize internal dependencies using workspace inheritance
2026-05-08 14:56:30 +07:00
Nils Andreas Svee
d190a710fa
chore: add license
2026-05-08 14:22:15 +07:00
Nils Andreas Svee
c456fa1f09
docs: add README with project overview and usage examples
2026-05-08 14:22:02 +07:00
Nils Andreas Svee
7e6617e506
feat(stats): track multiple IPDV pairs per event update
...
Expose multiple jitter updates when a single event fills a sequence gap, ensuring accurate IPDV reporting for out-of-order packets in human-readable output.
2026-05-08 13:52:54 +07:00
Nils Andreas Svee
0c1ee79afc
feat(cli): quiet default human output
2026-05-08 13:16:07 +07:00
Nils Andreas Svee
e971e95693
feat(cli): format human summary as aligned table
2026-05-08 13:02:11 +07:00
Nils Andreas Svee
8809ea04ab
feat(cli): improve human event output
2026-05-08 13:02:01 +07:00
Nils Andreas Svee
fd0048c761
feat(stats): expose per-event jitter updates
2026-05-08 13:01:44 +07:00
Nils Andreas Svee
8cba83e5d0
chore(workflow): add build workflow
2026-05-08 12:55:40 +07:00
Nils Andreas Svee
9818d10355
docs(proto): document HMAC-MD5 compatibility
2026-05-08 12:20:30 +07:00
Nils Andreas Svee
b3c3970c53
fix(client): avoid lossy timing casts
2026-05-08 12:19:52 +07:00
Nils Andreas Svee
8c021f394d
fix(client): handle close-flagged echo replies
2026-05-08 11:31:45 +07:00
Nils Andreas Svee
e2a98f571b
fix(proto): require exact echo reply packet length
2026-05-08 11:25:52 +07:00
Nils Andreas Svee
20e6286277
fix(client): report counter overflows clearly
2026-05-08 10:47:14 +07:00
Nils Andreas Svee
846c4bf3a5
test(client): cover timing validation boundaries
2026-05-08 10:23:49 +07:00
Nils Andreas Svee
2a780337f2
fix(client): reject invalid timing parameters earlier
2026-05-08 10:23:42 +07:00
Nils Andreas Svee
b994fb9273
fix(client): reject runtime-invalid negotiated dscp
2026-05-08 10:06:00 +07:00
Nils Andreas Svee
fbb345cdf6
fix(proto): reject invalid echo packet lengths
2026-05-08 09:58:31 +07:00
Nils Andreas Svee
e4ebf1f11b
fix(proto): reject oversized echo payloads
2026-05-08 00:48:59 +07:00
Nils Andreas Svee
8eb3d6c5fb
perf(proto): compute HMAC without packet allocation
2026-05-08 00:46:31 +07:00
Nils Andreas Svee
fedb478ad6
perf(client): reuse receive buffer
2026-05-07 23:40:12 +07:00
Nils Andreas Svee
3c0d4f35c4
chore(client): polish managed runner ergonomics
2026-05-07 23:01:55 +07:00
Nils Andreas Svee
4df9b295f9
docs(client): document optional real backend tests
2026-05-07 22:27:07 +07:00
Nils Andreas Svee
057fcecf7e
fix(client): retry real backend startup on port races
2026-05-07 22:17:31 +07:00
Nils Andreas Svee
cd6dacbb5c
feat(cli): handle interrupt as graceful shutdown
2026-05-07 22:08:41 +07:00
Nils Andreas Svee
ddf2b5426c
docs(client): mark advanced networking cleanup complete
2026-05-07 21:25:51 +07:00
Nils Andreas Svee
7017071949
fix(client): report read-timeout restore failures
2026-05-07 21:25:51 +07:00
Nils Andreas Svee
658a4375ec
fix(client): clarify duration negotiation rejection
2026-05-07 21:25:51 +07:00
Nils Andreas Svee
4f1f033c02
fix(proto): avoid mutating flags in HMAC helper
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
1f167071fb
fix(client): reject invalid negotiated packet length
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
2ed0677286
fix(client): harden ancillary receive parsing
2026-05-07 20:34:34 +07:00
Nils Andreas Svee
49321ba8b7
fix(client): harden ancillary control message parsing
2026-05-07 19:02:38 +07:00
Nils Andreas Svee
afb97da196
feat(cli): expose kernel receive timestamp in machine output
2026-05-07 18:51:41 +07:00
Nils Andreas Svee
1e706dfefd
feat(client): add Linux kernel receive timestamp metadata
2026-05-07 18:51:06 +07:00
Nils Andreas Svee
f35b8fea95
feat(cli): expose receive metadata in machine output
2026-05-07 18:40:38 +07:00
Nils Andreas Svee
ec847bb1d4
test(client): cover receive metadata on reply events
2026-05-07 18:30:04 +07:00
Nils Andreas Svee
fb1d7bc7a0
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-07 18:24:14 +07:00
Nils Andreas Svee
6eb7ff2920
feat(client): add Linux ancillary receive metadata
2026-05-07 17:58:40 +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
ae699c4ef2
test: refactor real backend support for reliable output capture
2026-05-05 00:58:22 +07:00
Nils Andreas Svee
8625672f85
test: make IPv6 socket option tests more robust
2026-05-05 00:58:22 +07:00
Nils Andreas Svee
4dd6c11936
feat(cli): improve cli help text and unit test naming
2026-05-05 00:58:22 +07:00
Nils Andreas Svee
88ab7ca3b6
chore: remove unused interop feature flag
2026-05-05 00:58:22 +07:00
Nils Andreas Svee
5139882c10
docs: update implementation plan regarding DSCP and testing strategy
2026-05-05 00:58:22 +07:00
Nils Andreas Svee
8c8a679533
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-05 00:45:56 +07:00
Nils Andreas Svee
5132e0e247
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-05 00:32:12 +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
0262a2af0c
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-04 17:16:23 +07:00
Nils Andreas Svee
a715842e38
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-04 00:05:35 +07:00
Nils Andreas Svee
56b560418c
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-03 23:06:26 +07:00
Nils Andreas Svee
86f16b8656
test(client): split client tests into behavior-focused modules
2026-05-03 22:54:08 +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
bf5b3b2f55
refactor(cli): rename m8 compatibility terms to advanced protocol options
2026-05-03 22:25:35 +07:00
Nils Andreas Svee
8ee308a2b4
test(cli): consolidate invalid argument parsing tests
2026-05-03 22:25:25 +07:00
Nils Andreas Svee
49dbb0b536
test: verify RTT equality when no timestamping is present
2026-05-03 21:30:23 +07:00
Nils Andreas Svee
dff201de89
refactor(test): extract RTT processing verification to helper function
2026-05-03 21:30:23 +07:00
Nils Andreas Svee
c506d5a7f7
test: update mock timestamp simulation in test support
2026-05-03 21:30:23 +07:00
Nils Andreas Svee
7440e7d217
test(client): add integration tests for m8 compatibility
2026-05-03 21:26:55 +07:00
Nils Andreas Svee
18c6e2c1a9
test(cli): expand test coverage for new CLI parameters
2026-05-03 16:12:10 +07:00
Nils Andreas Svee
5af3f891fc
feat(cli): add advanced negotiation and protocol options
2026-05-03 16:12:10 +07:00
Nils Andreas Svee
64df93dbb6
feat(cli): add support for midpoint timestamps and received stats
2026-05-03 16:12:10 +07:00
Nils Andreas Svee
8c9afce30f
feat(client): implement protocol configuration validation
2026-05-03 16:12:10 +07:00
Nils Andreas Svee
474aefb723
feat(client): define constants and validation for DSCP and server fill
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
70df9d63f1
test(proto): verify HMAC field placement in protocol packets
2026-05-03 15:34:04 +07:00
Nils Andreas Svee
3c4a77b9f6
test(proto): add unit tests for parameter encoding and decoding
2026-05-03 15:34:04 +07:00
Nils Andreas Svee
7b3deb1f3c
refactor(client): modularize duration restriction validation
2026-05-03 15:34:04 +07:00
Nils Andreas Svee
59194b620a
feat(cli): implement continuous statistics and summary suppression
2026-05-02 00:01:31 +07:00
Nils Andreas Svee
d79c8716a0
refactor(cli): enhance main loop and reply draining logic
2026-05-02 00:01:31 +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
e63b176265
style(cli): rename machine output keys for clarity
2026-05-02 00:01:31 +07:00
Nils Andreas Svee
a26e1a6d59
feat(cli): integrate StatsCollector into main execution loop
2026-05-01 22:11:47 +07:00
Nils Andreas Svee
815dab077d
feat(cli): implement summary formatting for statistics
2026-05-01 22:11:47 +07:00
Nils Andreas Svee
17d9ed9e3a
build(cli): add irtt-stats dependency and feature flag
2026-05-01 22:11:47 +07:00
Nils Andreas Svee
07b3d2d822
feat(cli): add Human output mode and summary logic
2026-05-01 22:11:47 +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
4604dd8786
feat(stats): bound sequence tracking in continuous mode
2026-05-01 18:24:54 +07:00
Nils Andreas Svee
a73a4ff341
fix(client): prune insertion order in TimedOutMap on removal
2026-05-01 18:24:54 +07:00
Nils Andreas Svee
96bd041680
build(stats): add irtt-client dependency to irtt-stats
2026-05-01 18:08:21 +07:00
Nils Andreas Svee
198a929ed6
feat(stats): implement core statistics collection and aggregation
2026-05-01 18:07: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