Skip to content

Commit 668290f

Browse files
feat(s2n-quic): Add frame and datagram lengths (#3007)
1 parent 5726853 commit 668290f

25 files changed

Lines changed: 1551 additions & 718 deletions

quic/s2n-quic-core/events/common.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -318,7 +318,9 @@ impl IntoEvent<builder::EcnCounts> for crate::frame::ack::EcnCounts {
318318

319319
//= https://tools.ietf.org/id/draft-marx-qlog-event-definitions-quic-h3-02#A.7
320320
enum Frame {
321-
Padding,
321+
Padding {
322+
len: u16,
323+
},
322324
Ping,
323325
Ack {
324326
ecn_counts: Option<EcnCounts>,
@@ -389,7 +391,9 @@ enum Frame {
389391
impl IntoEvent<builder::Frame> for &crate::frame::Padding {
390392
#[inline]
391393
fn into_event(self) -> builder::Frame {
392-
builder::Frame::Padding {}
394+
builder::Frame::Padding {
395+
len: self.length as u16,
396+
}
393397
}
394398
}
395399

quic/s2n-quic-core/events/connection.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,9 @@ struct PacketSent {
5151
struct PacketReceived {
5252
#[nominal_counter("kind")]
5353
packet_header: PacketHeader,
54+
#[measure("bytes", Bytes)]
55+
#[counter("bytes.total", Bytes)]
56+
packet_len: usize,
5457
}
5558

5659
#[event("connectivity:active_path_updated")]

quic/s2n-quic-core/src/event/generated.rs

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -358,7 +358,7 @@ pub mod api {
358358
#[non_exhaustive]
359359
pub enum Frame {
360360
#[non_exhaustive]
361-
Padding {},
361+
Padding { len: u16 },
362362
#[non_exhaustive]
363363
Ping {},
364364
#[non_exhaustive]
@@ -1900,12 +1900,14 @@ pub mod api {
19001900
#[doc = " Packet was received by a connection"]
19011901
pub struct PacketReceived {
19021902
pub packet_header: PacketHeader,
1903+
pub packet_len: usize,
19031904
}
19041905
#[cfg(any(test, feature = "testing"))]
19051906
impl crate::event::snapshot::Fmt for PacketReceived {
19061907
fn fmt(&self, fmt: &mut core::fmt::Formatter) -> core::fmt::Result {
19071908
let mut fmt = fmt.debug_struct("PacketReceived");
19081909
fmt.field("packet_header", &self.packet_header);
1910+
fmt.field("packet_len", &self.packet_len);
19091911
fmt.finish()
19101912
}
19111913
}
@@ -3380,7 +3382,9 @@ pub mod api {
33803382
impl IntoEvent<builder::Frame> for &crate::frame::Padding {
33813383
#[inline]
33823384
fn into_event(self) -> builder::Frame {
3383-
builder::Frame::Padding {}
3385+
builder::Frame::Padding {
3386+
len: self.length as u16,
3387+
}
33843388
}
33853389
}
33863390
impl IntoEvent<builder::Frame> for &crate::frame::Ping {
@@ -3803,8 +3807,11 @@ pub mod tracing {
38033807
event: &api::PacketReceived,
38043808
) {
38053809
let id = context.id();
3806-
let api::PacketReceived { packet_header } = event;
3807-
tracing :: event ! (target : "packet_received" , parent : id , tracing :: Level :: DEBUG , { packet_header = tracing :: field :: debug (packet_header) });
3810+
let api::PacketReceived {
3811+
packet_header,
3812+
packet_len,
3813+
} = event;
3814+
tracing :: event ! (target : "packet_received" , parent : id , tracing :: Level :: DEBUG , { packet_header = tracing :: field :: debug (packet_header) , packet_len = tracing :: field :: debug (packet_len) });
38083815
}
38093816
#[inline]
38103817
fn on_active_path_updated(
@@ -4902,7 +4909,9 @@ pub mod builder {
49024909
}
49034910
#[derive(Clone, Debug)]
49044911
pub enum Frame {
4905-
Padding,
4912+
Padding {
4913+
len: u16,
4914+
},
49064915
Ping,
49074916
Ack {
49084917
ecn_counts: Option<EcnCounts>,
@@ -4974,7 +4983,9 @@ pub mod builder {
49744983
fn into_event(self) -> api::Frame {
49754984
use api::Frame::*;
49764985
match self {
4977-
Self::Padding => Padding {},
4986+
Self::Padding { len } => Padding {
4987+
len: len.into_event(),
4988+
},
49784989
Self::Ping => Ping {},
49794990
Self::Ack {
49804991
ecn_counts,
@@ -5809,13 +5820,18 @@ pub mod builder {
58095820
#[doc = " Packet was received by a connection"]
58105821
pub struct PacketReceived {
58115822
pub packet_header: PacketHeader,
5823+
pub packet_len: usize,
58125824
}
58135825
impl IntoEvent<api::PacketReceived> for PacketReceived {
58145826
#[inline]
58155827
fn into_event(self) -> api::PacketReceived {
5816-
let PacketReceived { packet_header } = self;
5828+
let PacketReceived {
5829+
packet_header,
5830+
packet_len,
5831+
} = self;
58175832
api::PacketReceived {
58185833
packet_header: packet_header.into_event(),
5834+
packet_len: packet_len.into_event(),
58195835
}
58205836
}
58215837
}

0 commit comments

Comments
 (0)