diff --git a/qlog/event.go b/qlog/event.go index 1986315e8..612103cd7 100644 --- a/qlog/event.go +++ b/qlog/event.go @@ -328,13 +328,15 @@ type eventTransportParameters struct { SentBy protocol.Perspective OriginalDestinationConnectionID protocol.ConnectionID - StatelessResetToken *[16]byte - DisableActiveMigration bool - MaxIdleTimeout time.Duration - MaxUDPPayloadSize protocol.ByteCount - AckDelayExponent uint8 - MaxAckDelay time.Duration - ActiveConnectionIDLimit uint64 + InitialSourceConnectionID protocol.ConnectionID + + StatelessResetToken *[16]byte + DisableActiveMigration bool + MaxIdleTimeout time.Duration + MaxUDPPayloadSize protocol.ByteCount + AckDelayExponent uint8 + MaxAckDelay time.Duration + ActiveConnectionIDLimit uint64 InitialMaxData protocol.ByteCount InitialMaxStreamDataBidiLocal protocol.ByteCount @@ -358,6 +360,7 @@ func (e eventTransportParameters) MarshalJSONObject(enc *gojay.Encoder) { enc.StringKey("stateless_reset_token", fmt.Sprintf("%x", e.StatelessResetToken[:])) } } + enc.StringKey("initial_source_connection_id", connectionID(e.InitialSourceConnectionID).String()) enc.BoolKey("disable_active_migration", e.DisableActiveMigration) enc.FloatKeyOmitEmpty("max_idle_timeout", milliseconds(e.MaxIdleTimeout)) enc.Uint64KeyNullEmpty("max_udp_payload_size", uint64(e.MaxUDPPayloadSize)) diff --git a/qlog/qlog.go b/qlog/qlog.go index cdea9179d..0f6bbf904 100644 --- a/qlog/qlog.go +++ b/qlog/qlog.go @@ -179,6 +179,7 @@ func (t *tracer) recordTransportParameters(sentBy protocol.Perspective, tp *wire Owner: owner, SentBy: sentBy, OriginalDestinationConnectionID: tp.OriginalDestinationConnectionID, + InitialSourceConnectionID: tp.InitialSourceConnectionID, StatelessResetToken: tp.StatelessResetToken, DisableActiveMigration: tp.DisableActiveMigration, MaxIdleTimeout: tp.MaxIdleTimeout, diff --git a/qlog/qlog_test.go b/qlog/qlog_test.go index 4ea4ad1ba..251374431 100644 --- a/qlog/qlog_test.go +++ b/qlog/qlog_test.go @@ -184,6 +184,7 @@ var _ = Describe("Tracer", func() { MaxIdleTimeout: 321 * time.Millisecond, StatelessResetToken: &[16]byte{0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x00}, OriginalDestinationConnectionID: protocol.ConnectionID{0xde, 0xad, 0xc0, 0xde}, + InitialSourceConnectionID: protocol.ConnectionID{0xde, 0xad, 0xbe, 0xef}, ActiveConnectionIDLimit: 7, }) entry := exportAndParseSingle() @@ -193,6 +194,7 @@ var _ = Describe("Tracer", func() { ev := entry.Event Expect(ev).To(HaveKeyWithValue("owner", "local")) Expect(ev).To(HaveKeyWithValue("original_destination_connection_id", "deadc0de")) + Expect(ev).To(HaveKeyWithValue("initial_source_connection_id", "deadbeef")) Expect(ev).To(HaveKeyWithValue("stateless_reset_token", "112233445566778899aabbccddeeff00")) Expect(ev).To(HaveKeyWithValue("max_idle_timeout", float64(321))) Expect(ev).To(HaveKeyWithValue("max_udp_payload_size", float64(1234)))