qlog: add support for ACK_FREQUENCY and IMMEDIATE_ACK frames (#5276)

This commit is contained in:
Marten Seemann
2025-08-04 10:00:02 +02:00
committed by GitHub
parent 2db5f56cc5
commit 69cbb6ec5b
3 changed files with 47 additions and 0 deletions

View File

@@ -59,6 +59,10 @@ func (f frame) MarshalJSONObject(enc *gojay.Encoder) {
marshalHandshakeDoneFrame(enc, frame)
case *logging.DatagramFrame:
marshalDatagramFrame(enc, frame)
case *logging.AckFrequencyFrame:
marshalAckFrequencyFrame(enc, frame)
case *logging.ImmediateAckFrame:
marshalImmediateAckFrame(enc, frame)
default:
panic("unknown frame type")
}
@@ -232,3 +236,15 @@ func marshalDatagramFrame(enc *gojay.Encoder, f *logging.DatagramFrame) {
enc.StringKey("frame_type", "datagram")
enc.Int64Key("length", int64(f.Length))
}
func marshalAckFrequencyFrame(enc *gojay.Encoder, f *logging.AckFrequencyFrame) {
enc.StringKey("frame_type", "ack_frequency")
enc.Uint64Key("sequence_number", f.SequenceNumber)
enc.Uint64Key("ack_eliciting_threshold", f.AckElicitingThreshold)
enc.Float64Key("request_max_ack_delay", milliseconds(f.RequestMaxAckDelay))
enc.Uint64Key("reordering_threshold", uint64(f.ReorderingThreshold))
}
func marshalImmediateAckFrame(enc *gojay.Encoder, _ *logging.ImmediateAckFrame) {
enc.StringKey("frame_type", "immediate_ack")
}