docs(client): mark advanced networking cleanup complete
This commit is contained in:
1 file changed
+40
-14
+40
-14
@@ -1835,28 +1835,54 @@ tests, and backend-neutral smoke tests can be explicitly run against a real
|
|||||||
|
|
||||||
### Milestone 9 — Advanced Networking
|
### Milestone 9 — Advanced Networking
|
||||||
|
|
||||||
|
**Status:** Complete as of PG7 cleanup.
|
||||||
|
|
||||||
**Goal:** Ancillary receive metadata for ECN/DSCP/kernel RX timestamps.
|
**Goal:** Ancillary receive metadata for ECN/DSCP/kernel RX timestamps.
|
||||||
|
|
||||||
**Files/modules:**
|
**Files/modules:**
|
||||||
- `crates/irtt-client/src/ancillary.rs` (feature-gated)
|
- `crates/irtt-client/src/receive.rs`
|
||||||
- Platform-specific code
|
- `crates/irtt-client/src/receive/linux.rs` (Linux + `ancillary`)
|
||||||
|
- `crates/irtt-client/src/metadata.rs`
|
||||||
|
- `crates/irtt-client/src/event.rs`
|
||||||
|
- `crates/irtt-cli/src/lib.rs`
|
||||||
|
|
||||||
**Tasks:**
|
**Implemented scope:**
|
||||||
1. Implement recvmsg wrapper (Linux)
|
1. Added internal `ReceiveMeta` and event-facing `PacketMeta` plumbing.
|
||||||
2. Extract IP_TOS / IPV6_TCLASS from ancillary data
|
2. Added a receive abstraction with a connected `UdpSocket::recv` fallback.
|
||||||
3. Extract kernel RX timestamp
|
Unsupported platforms and builds without `ancillary` keep metadata
|
||||||
4. Populate PacketMeta
|
unavailable.
|
||||||
5. macOS support (if feasible)
|
3. Added a Linux `recvmsg` ancillary path behind the non-default `ancillary`
|
||||||
6. Test with `irtt server --ecn`
|
feature.
|
||||||
|
4. Extracted inbound IPv4 TOS / IPv6 Traffic Class and exposed
|
||||||
|
`traffic_class`, `dscp`, and `ecn` metadata.
|
||||||
|
5. Enabled Linux `SO_TIMESTAMPNS`, parsed `SCM_TIMESTAMPNS`, and exposed
|
||||||
|
kernel RX timestamps as additive metadata while preserving userspace
|
||||||
|
`received_at` semantics.
|
||||||
|
6. Exposed M9 metadata in machine output for echo replies and late replies,
|
||||||
|
with `none` for unavailable values and numeric `0` for observed zero.
|
||||||
|
7. Completed PG7 audit cleanup: ancillary parser hardening, packet length and
|
||||||
|
negotiated length validation, continuous-mode sequence and scheduling
|
||||||
|
hardening, HMAC helper API cleanup, duration negotiation wording cleanup,
|
||||||
|
and read-timeout restore failure reporting.
|
||||||
|
|
||||||
**Tests:**
|
**Tests:**
|
||||||
- Integration: verify ancillary data extraction on Linux
|
- Self-contained fallback receive, metadata propagation, machine output, and
|
||||||
- Interop: verify ECN behavior with server --ecn
|
Linux ancillary tests.
|
||||||
- Unit: ancillary data parsing
|
- Linux + `ancillary` tests cover receive length/payload, inbound Traffic
|
||||||
|
Class/DSCP/ECN when the kernel provides it, kernel RX timestamps when the
|
||||||
|
kernel provides them, and parser edge cases.
|
||||||
|
|
||||||
**Success criteria:** PacketMeta populated with real values on supported platforms.
|
**Out of scope:** SO_TIMESTAMPING, hardware timestamps, TX timestamps,
|
||||||
|
receive-side TTL/hop-limit metadata, packet-info/interface metadata, stats
|
||||||
|
architecture extraction, JSON, async/Tokio, packet capture integration, and
|
||||||
|
production server behavior.
|
||||||
|
|
||||||
**Risks:** High platform variability. macOS ancillary API differences. ECN behavior not fully verified.
|
**Success criteria:** PacketMeta remains unavailable by default/fallback and is
|
||||||
|
populated with real values on Linux when `ancillary` is enabled and the kernel
|
||||||
|
provides the requested control messages.
|
||||||
|
|
||||||
|
**Risks:** High platform variability. macOS ancillary API differences. ECN
|
||||||
|
behavior with real servers is not asserted by default tests.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user