aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar lucas <lucas@cloudflare.com> 2021-11-05 07:21:19 +0000
committerGravatar Alessandro Ghedini <alessandro@ghedini.me> 2021-11-12 13:36:30 +0000
commitb84e9ebf4c46b4bbb1e3cb60f35dc69e52afbb1a (patch)
tree3d932f6291cabbcb6096ce3a6521af7c01df3428
parent51d2c2155ef76ce91bf9216d78c33951eb8dd5b7 (diff)
downloadquiche-b84e9ebf4c46b4bbb1e3cb60f35dc69e52afbb1a.tar.gz
quiche-b84e9ebf4c46b4bbb1e3cb60f35dc69e52afbb1a.tar.zst
quiche-b84e9ebf4c46b4bbb1e3cb60f35dc69e52afbb1a.zip
qlog: AckedRanges can be a single or double range
-rw-r--r--src/frame.rs7
-rw-r--r--tools/qlog/src/events/quic.rs9
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>,