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:
4 files changed
+366
-24
No files matched your search
@@ -72,7 +72,7 @@ fn compute_one_way_omits_samples_when_client_wall_time_overflows_i64() {
|
||||
};
|
||||
|
||||
assert_eq!(
|
||||
compute_one_way(&sent_at, &received_at, &ReceiveMeta::default(), &ts),
|
||||
compute_one_way(&sent_at, &received_at, None, &ReceiveMeta::default(), &ts),
|
||||
None
|
||||
);
|
||||
}
|
||||
@@ -93,7 +93,8 @@ fn compute_one_way_returns_available_direction_samples() {
|
||||
..Default::default()
|
||||
};
|
||||
|
||||
let sample = compute_one_way(&sent_at, &received_at, &ReceiveMeta::default(), &ts).unwrap();
|
||||
let sample =
|
||||
compute_one_way(&sent_at, &received_at, None, &ReceiveMeta::default(), &ts).unwrap();
|
||||
assert_eq!(
|
||||
sample.client_to_server,
|
||||
Some(SignedDuration::from_nanos(15_000_000))
|
||||
@@ -120,7 +121,8 @@ fn compute_one_way_preserves_negative_client_to_server_delay() {
|
||||
..Default::default()
|
||||
};
|
||||
|
||||
let sample = compute_one_way(&sent_at, &received_at, &ReceiveMeta::default(), &ts).unwrap();
|
||||
let sample =
|
||||
compute_one_way(&sent_at, &received_at, None, &ReceiveMeta::default(), &ts).unwrap();
|
||||
|
||||
assert_eq!(
|
||||
sample.client_to_server,
|
||||
@@ -148,7 +150,8 @@ fn compute_one_way_preserves_negative_server_to_client_delay() {
|
||||
..Default::default()
|
||||
};
|
||||
|
||||
let sample = compute_one_way(&sent_at, &received_at, &ReceiveMeta::default(), &ts).unwrap();
|
||||
let sample =
|
||||
compute_one_way(&sent_at, &received_at, None, &ReceiveMeta::default(), &ts).unwrap();
|
||||
|
||||
assert_eq!(
|
||||
sample.client_to_server,
|
||||
|
||||
Reference in new issue
Block a user