pub struct OneWayDelaySample {
pub client_to_server: Option<SignedDuration>,
pub server_to_client: Option<SignedDuration>,
}Expand description
Directional one-way delay samples computed from wall-clock timestamps.
Each directional field is an Option<SignedDuration>. None means the
required client or server wall-clock timestamp was unavailable, or the
timestamp arithmetic was out of range. Some(value) means the delay was
computed from available timestamps.
Negative computed values are preserved as Some instead of being clamped to
zero or dropped. A negative one-way delay usually indicates wall-clock skew
between the client and server.
Fields§
§client_to_server: Option<SignedDuration>Client-to-server delay.
This is computed from the client send wall time and the server receive
wall time when both are available. The client send endpoint is the
correlated Linux kernel TX timestamp for this send when one is
available and plausible for this send, and the userspace post-send wall
time otherwise. The server receive endpoint is whatever wall time the
peer reported; against this crate’s own Tokio server runtime on Linux
(the irtt-server applet), that is its kernel receive timestamp when
one is available and plausible, and its userspace receive wall time
otherwise. Against another IRTT-compatible peer, or an application
driving irtt_server::ServerCore::handle_datagram directly, the
client has no way to know which clock source produced it — the public
ServerCore API never supplies a kernel timestamp of its own accord.
RttSample::raw is unaffected and remains a userspace
monotonic measurement, but adjusted and effective can still shift:
when the session negotiated wall-clock timing rather than monotonic,
server processing time is derived from this same server receive
endpoint.
server_to_client: Option<SignedDuration>Server-to-client delay.
This is computed from the server send wall time and the client receive wall time when both are available. The client receive endpoint is the kernel receive timestamp reported with the datagram when one is available and plausible for this receive, and the userspace receive wall time otherwise. RTT is unaffected and remains a userspace monotonic measurement.