Skip to content

Commit f9726a9

Browse files
committedDec 19, 2023
quic: fix packet size logging
The qlog schema puts packet sizes as part of a "raw" field of type RawInfo, not in the packet_sent/packet_received event. Move to the correct location. Change-Id: I4308d4bdb961cf83e29af014b60f50ed029cb915 Reviewed-on: https://go-review.googlesource.com/c/net/+/550797 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Jonathan Amsterdam <jba@google.com>
1 parent c337daf commit f9726a9

File tree

3 files changed

+18
-8
lines changed

3 files changed

+18
-8
lines changed
 

‎internal/quic/conn_send.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ func (c *Conn) maybeSend(now time.Time) (next time.Time) {
7676
logSentPacket(c, packetTypeInitial, pnum, p.srcConnID, p.dstConnID, c.w.payload())
7777
}
7878
if c.logEnabled(QLogLevelPacket) && len(c.w.payload()) > 0 {
79-
c.logPacketSent(packetTypeInitial, pnum, p.srcConnID, p.dstConnID, c.w.payload())
79+
c.logPacketSent(packetTypeInitial, pnum, p.srcConnID, p.dstConnID, c.w.packetLen(), c.w.payload())
8080
}
8181
sentInitial = c.w.finishProtectedLongHeaderPacket(pnumMaxAcked, c.keysInitial.w, p)
8282
if sentInitial != nil {
@@ -108,7 +108,7 @@ func (c *Conn) maybeSend(now time.Time) (next time.Time) {
108108
logSentPacket(c, packetTypeHandshake, pnum, p.srcConnID, p.dstConnID, c.w.payload())
109109
}
110110
if c.logEnabled(QLogLevelPacket) && len(c.w.payload()) > 0 {
111-
c.logPacketSent(packetTypeHandshake, pnum, p.srcConnID, p.dstConnID, c.w.payload())
111+
c.logPacketSent(packetTypeHandshake, pnum, p.srcConnID, p.dstConnID, c.w.packetLen(), c.w.payload())
112112
}
113113
if sent := c.w.finishProtectedLongHeaderPacket(pnumMaxAcked, c.keysHandshake.w, p); sent != nil {
114114
c.idleHandlePacketSent(now, sent)
@@ -139,7 +139,7 @@ func (c *Conn) maybeSend(now time.Time) (next time.Time) {
139139
logSentPacket(c, packetType1RTT, pnum, nil, dstConnID, c.w.payload())
140140
}
141141
if c.logEnabled(QLogLevelPacket) && len(c.w.payload()) > 0 {
142-
c.logPacketSent(packetType1RTT, pnum, nil, dstConnID, c.w.payload())
142+
c.logPacketSent(packetType1RTT, pnum, nil, dstConnID, c.w.packetLen(), c.w.payload())
143143
}
144144
if sent := c.w.finish1RTTPacket(pnum, pnumMaxAcked, dstConnID, &c.keysAppData); sent != nil {
145145
c.idleHandlePacketSent(now, sent)

‎internal/quic/packet_writer.go

+5
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,11 @@ func (w *packetWriter) datagram() []byte {
4747
return w.b
4848
}
4949

50+
// packet returns the size of the current packet.
51+
func (w *packetWriter) packetLen() int {
52+
return len(w.b[w.pktOff:]) + aeadOverhead
53+
}
54+
5055
// payload returns the payload of the current packet.
5156
func (w *packetWriter) payload() []byte {
5257
return w.b[w.payOff:]

‎internal/quic/qlog.go

+10-5
Original file line numberDiff line numberDiff line change
@@ -148,8 +148,6 @@ func (c *Conn) logConnectionClosed() {
148148
}
149149

150150
func (c *Conn) logLongPacketReceived(p longPacket, pkt []byte) {
151-
pnumLen := 1 + int(pkt[0]&0x03)
152-
length := pnumLen + len(p.payload)
153151
var frames slog.Attr
154152
if c.logEnabled(QLogLevelFrame) {
155153
frames = c.packetFramesAttr(p.payload)
@@ -162,7 +160,9 @@ func (c *Conn) logLongPacketReceived(p longPacket, pkt []byte) {
162160
slog.Uint64("flags", uint64(pkt[0])),
163161
slogHexstring("scid", p.srcConnID),
164162
slogHexstring("dcid", p.dstConnID),
165-
slog.Int("length", length),
163+
),
164+
slog.Group("raw",
165+
slog.Int("length", len(pkt)),
166166
),
167167
frames,
168168
)
@@ -180,14 +180,16 @@ func (c *Conn) log1RTTPacketReceived(p shortPacket, pkt []byte) {
180180
slog.String("packet_type", packetType1RTT.qlogString()),
181181
slog.Uint64("packet_number", uint64(p.num)),
182182
slog.Uint64("flags", uint64(pkt[0])),
183-
slog.String("scid", ""),
184183
slogHexstring("dcid", dstConnID),
185184
),
185+
slog.Group("raw",
186+
slog.Int("length", len(pkt)),
187+
),
186188
frames,
187189
)
188190
}
189191

190-
func (c *Conn) logPacketSent(ptype packetType, pnum packetNumber, src, dst, payload []byte) {
192+
func (c *Conn) logPacketSent(ptype packetType, pnum packetNumber, src, dst []byte, pktLen int, payload []byte) {
191193
var frames slog.Attr
192194
if c.logEnabled(QLogLevelFrame) {
193195
frames = c.packetFramesAttr(payload)
@@ -204,6 +206,9 @@ func (c *Conn) logPacketSent(ptype packetType, pnum packetNumber, src, dst, payl
204206
scid,
205207
slogHexstring("dcid", dst),
206208
),
209+
slog.Group("raw",
210+
slog.Int("length", pktLen),
211+
),
207212
frames,
208213
)
209214
}

0 commit comments

Comments
 (0)