Skip to content

Commit

Permalink
Implement MOQT qlog events
Browse files Browse the repository at this point in the history
  • Loading branch information
LPardue committed Mar 1, 2025
1 parent 0790f10 commit 6fa904a
Show file tree
Hide file tree
Showing 2 changed files with 530 additions and 7 deletions.
95 changes: 88 additions & 7 deletions qlog/src/events/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
use crate::Bytes;
use crate::Token;
use h3::*;
use moqt::MOQTEventType;
use qpack::*;
use quic::*;

Expand Down Expand Up @@ -56,6 +57,8 @@ pub enum EventType {

GenericEventType(GenericEventType),

MOQTEventType(MOQTEventType),

#[default]
None,
}
Expand Down Expand Up @@ -302,6 +305,8 @@ impl From<EventType> for EventImportance {
EventType::QpackEventType(QpackEventType::InstructionParsed) =>
EventImportance::Base,

EventType::MOQTEventType(_) => EventImportance::Core,

_ => unimplemented!(),
}
}
Expand Down Expand Up @@ -396,12 +401,10 @@ impl From<&EventData> for EventType {
EventData::MtuUpdated { .. } => EventType::ConnectivityEventType(
ConnectivityEventType::MtuUpdated,
),

EventData::KeyUpdated { .. } =>
EventType::SecurityEventType(SecurityEventType::KeyUpdated),
EventData::KeyDiscarded { .. } =>
EventType::SecurityEventType(SecurityEventType::KeyDiscarded),

EventData::VersionInformation { .. } =>
EventType::TransportEventType(
TransportEventType::VersionInformation,
Expand Down Expand Up @@ -439,7 +442,6 @@ impl From<&EventData> for EventType {
EventType::TransportEventType(TransportEventType::FramesProcessed),
EventData::DataMoved { .. } =>
EventType::TransportEventType(TransportEventType::DataMoved),

EventData::RecoveryParametersSet { .. } =>
EventType::RecoveryEventType(RecoveryEventType::ParametersSet),
EventData::MetricsUpdated { .. } =>
Expand All @@ -456,7 +458,6 @@ impl From<&EventData> for EventType {
EventType::RecoveryEventType(
RecoveryEventType::MarkedForRetransmit,
),

EventData::H3ParametersSet { .. } =>
EventType::Http3EventType(Http3EventType::ParametersSet),
EventData::H3ParametersRestored { .. } =>
Expand All @@ -469,7 +470,6 @@ impl From<&EventData> for EventType {
EventType::Http3EventType(Http3EventType::FrameParsed),
EventData::H3PushResolved { .. } =>
EventType::Http3EventType(Http3EventType::PushResolved),

EventData::QpackStateUpdated { .. } =>
EventType::QpackEventType(QpackEventType::StateUpdated),
EventData::QpackStreamStateUpdated { .. } =>
Expand All @@ -484,7 +484,6 @@ impl From<&EventData> for EventType {
EventType::QpackEventType(QpackEventType::InstructionCreated),
EventData::QpackInstructionParsed { .. } =>
EventType::QpackEventType(QpackEventType::InstructionParsed),

EventData::ConnectionError { .. } =>
EventType::GenericEventType(GenericEventType::ConnectionError),
EventData::ApplicationError { .. } =>
Expand All @@ -497,6 +496,41 @@ impl From<&EventData> for EventType {
EventType::GenericEventType(GenericEventType::Message),
EventData::Marker { .. } =>
EventType::GenericEventType(GenericEventType::Marker),

EventData::MOQTControlMessageCreated { .. } =>
EventType::MOQTEventType(MOQTEventType::ControlMessageCreated),
EventData::MOQTControlMessageParsed { .. } =>
EventType::MOQTEventType(MOQTEventType::ControlMessageParsed),
EventData::MOQTStreamTypeSet { .. } =>
EventType::MOQTEventType(MOQTEventType::StreamTypeSet),
EventData::MOQTObjectDatagramCreated { .. } =>
EventType::MOQTEventType(MOQTEventType::ObjectDatagramCreated),
EventData::MOQTObjectDatagramParsed { .. } =>
EventType::MOQTEventType(MOQTEventType::ObjectDatagramParsed),
EventData::MOQTObjectDatagramStatusCreated { .. } =>
EventType::MOQTEventType(
MOQTEventType::ObjectDatagramStatusCreated,
),
EventData::MOQTObjectDatagramStatusParsed { .. } =>
EventType::MOQTEventType(
MOQTEventType::ObjectDatagramStatusParsed,
),
EventData::MOQTSubgroupHeaderCreated { .. } =>
EventType::MOQTEventType(MOQTEventType::SubgroupHeaderCreated),
EventData::MOQTSubgroupHeaderParsed { .. } =>
EventType::MOQTEventType(MOQTEventType::SubgroupHeaderParsed),
EventData::MOQTSubgroupObjectCreated { .. } =>
EventType::MOQTEventType(MOQTEventType::SubgroupObjectCreated),
EventData::MOQTSubgroupObjectParsed { .. } =>
EventType::MOQTEventType(MOQTEventType::SubgroupObjectParsed),
EventData::MOQTFetchHeaderCreated { .. } =>
EventType::MOQTEventType(MOQTEventType::FetchHeaderCreated),
EventData::MOQTFetchHeaderParsed { .. } =>
EventType::MOQTEventType(MOQTEventType::FetchHeaderParsed),
EventData::MOQTFetchObjectCreated { .. } =>
EventType::MOQTEventType(MOQTEventType::FetchObjectCreated),
EventData::MOQTFetchObjectParsed { .. } =>
EventType::MOQTEventType(MOQTEventType::FetchObjectParsed),
}
}
}
Expand All @@ -512,7 +546,7 @@ pub enum DataRecipient {
}

#[serde_with::skip_serializing_none]
#[derive(Serialize, Deserialize, Clone, PartialEq, Eq, Debug)]
#[derive(Serialize, Deserialize, Clone, PartialEq, Eq, Debug, Default)]
pub struct RawInfo {
pub length: Option<u64>,
pub payload_length: Option<u64>,
Expand Down Expand Up @@ -693,6 +727,52 @@ pub enum EventData {
marker_type: String,
message: Option<String>,
},

// MOQT
#[serde(rename = "moqt:control_message_created")]
MOQTControlMessageCreated(moqt::MOQTControlMessageCreated),

#[serde(rename = "moqt:control_message_parsed")]
MOQTControlMessageParsed(moqt::MOQTControlMessageParsed),

#[serde(rename = "moqt:stream_type_set")]
MOQTStreamTypeSet(moqt::MOQTStreamTypeSet),

#[serde(rename = "moqt:object_datagram_created")]
MOQTObjectDatagramCreated(moqt::MOQTObjectDatagramCreated),

#[serde(rename = "moqt:object_datagram_parsed")]
MOQTObjectDatagramParsed(moqt::MOQTObjectDatagramParsed),

#[serde(rename = "moqt:object_datagram_status_created")]
MOQTObjectDatagramStatusCreated(moqt::MOQTObjectDatagramStatusCreated),

#[serde(rename = "moqt:object_datagram_status_parsed")]
MOQTObjectDatagramStatusParsed(moqt::MOQTObjectDatagramStatusParsed),

#[serde(rename = "moqt:subgroup_header_created")]
MOQTSubgroupHeaderCreated(moqt::MOQTSubgroupHeaderCreated),

#[serde(rename = "moqt:subgroup_header_parsed")]
MOQTSubgroupHeaderParsed(moqt::MOQTSubgroupHeaderParsed),

#[serde(rename = "moqt:subgroup_object_created")]
MOQTSubgroupObjectCreated(moqt::MOQTSubgroupObjectCreated),

#[serde(rename = "moqt:subgroup_object_parsed")]
MOQTSubgroupObjectParsed(moqt::MOQTSubgroupObjectParsed),

#[serde(rename = "moqt:fetch_header_created")]
MOQTFetchHeaderCreated(moqt::MOQTFetchHeaderCreated),

#[serde(rename = "moqt:fetch_header_parsed")]
MOQTFetchHeaderParsed(moqt::MOQTFetchHeaderParsed),

#[serde(rename = "moqt:fetch_object_created")]
MOQTFetchObjectCreated(moqt::MOQTFetchObjectCreated),

#[serde(rename = "moqt:fetch_object_parsed")]
MOQTFetchObjectParsed(moqt::MOQTFetchObjectParsed),
}

impl EventData {
Expand Down Expand Up @@ -754,5 +834,6 @@ pub mod quic;

pub mod connectivity;
pub mod h3;
pub mod moqt;
pub mod qpack;
pub mod security;
Loading

0 comments on commit 6fa904a

Please sign in to comment.