fix(client): use kernel transmit time for upstream OWD

Upstream one-way delay now prefers the correlated Linux TX_SOFTWARE wall
timestamp retained by PendingProbe when it is locally plausible (sent_at
<= kernel_tx <= received_at, all on the client's own wall clock), falling
back to the userspace sent_at.wall sample otherwise. RTT, downstream OWD,
IPDV, and timeout/scheduling semantics are unchanged.
This commit is contained in:
Nils Andreas Svee committed 2026-08-15 18:54:41 +07:00
1 parent 1dc18588e7
commit 1066d5df72
4 files changed
+366 -24

No files matched your search

+5 -3
View File
@@ -12,9 +12,11 @@ pub(crate) struct PendingProbe {
pub timeout_at: Instant,
/// Observed Linux kernel TX_SOFTWARE wall timestamp for this probe's
/// send, when the socket has TX timestamping enabled and a matching
/// `MSG_ERRQUEUE` record has been drained. Dormant metadata only: no
/// measurement in this change reads it. `sent_at` remains authoritative
/// for RTT, timeout, and current one-way delay.
/// `MSG_ERRQUEUE` record has been drained. Optional observed metadata,
/// eligible only for upstream one-way delay after local plausibility
/// validation (see `compute_one_way`'s `preferred_send_wall`). `sent_at`
/// remains authoritative for RTT, timeout, pacing/scheduling semantics,
/// and the userspace fallback for upstream one-way delay.
pub kernel_tx_timestamp: Option<SystemTime>,
}