diff options
author | 2021-11-05 07:21:19 +0000 | |
---|---|---|
committer | 2021-11-12 13:36:30 +0000 | |
commit | b84e9ebf4c46b4bbb1e3cb60f35dc69e52afbb1a (patch) | |
tree | 3d932f6291cabbcb6096ce3a6521af7c01df3428 | |
parent | 51d2c2155ef76ce91bf9216d78c33951eb8dd5b7 (diff) | |
download | quiche-b84e9ebf4c46b4bbb1e3cb60f35dc69e52afbb1a.tar.gz quiche-b84e9ebf4c46b4bbb1e3cb60f35dc69e52afbb1a.tar.zst quiche-b84e9ebf4c46b4bbb1e3cb60f35dc69e52afbb1a.zip |
qlog: AckedRanges can be a single or double range
-rw-r--r-- | src/frame.rs | 7 | ||||
-rw-r--r-- | tools/qlog/src/events/quic.rs | 9 |
2 files changed, 13 insertions, 3 deletions
diff --git a/src/frame.rs b/src/frame.rs index 8c6fd80a..1f32152f 100644 --- a/src/frame.rs +++ b/src/frame.rs @@ -33,6 +33,8 @@ use crate::ranges; use crate::stream; #[cfg(feature = "qlog")] +use qlog::events::quic::AckedRanges; +#[cfg(feature = "qlog")] use qlog::events::quic::ErrorSpace; #[cfg(feature = "qlog")] use qlog::events::quic::QuicFrame; @@ -797,8 +799,9 @@ impl Frame { ranges, ecn_counts, } => { - let ack_ranges = - ranges.iter().map(|r| (r.start, r.end - 1)).collect(); + let ack_ranges = AckedRanges::Double( + ranges.iter().map(|r| (r.start, r.end - 1)).collect(), + ); let (ect0, ect1, ce) = match ecn_counts { Some(ecn) => ( diff --git a/tools/qlog/src/events/quic.rs b/tools/qlog/src/events/quic.rs index 78893795..2ee022bc 100644 --- a/tools/qlog/src/events/quic.rs +++ b/tools/qlog/src/events/quic.rs @@ -309,6 +309,13 @@ pub enum TimerType { } #[derive(Serialize, Deserialize, Clone, PartialEq, Debug)] +#[serde(untagged)] +pub enum AckedRanges { + Single(Vec<Vec<u64>>), + Double(Vec<(u64, u64)>), +} + +#[derive(Serialize, Deserialize, Clone, PartialEq, Debug)] #[serde(rename_all = "snake_case")] pub enum QuicFrameTypeName { Padding, @@ -351,7 +358,7 @@ pub enum QuicFrame { Ack { ack_delay: Option<f32>, - acked_ranges: Option<Vec<(u64, u64)>>, + acked_ranges: Option<AckedRanges>, ect1: Option<u64>, |