Marten Seemann
115e8ee5d7
qlog: use PathEndpointInfo in connection_started ( #5368 )
...
* qlog: use PathEndpointInfo in connection_started
* correctly deal with dual-stack addresses
2025-10-11 07:55:38 +02:00
Marten Seemann
8d1b4811c4
qlog: privatize Encode methods of non-Event structs ( #5364 )
2025-10-09 14:12:19 +02:00
Marten Seemann
e0f9663be4
qlogwriter: pass the event time to Event.Encode ( #5362 )
...
This is needed for events such as recovery:loss_timer_updated, which
contain the timer expiration timestamp encoded as a difference from the
event time.
2025-10-09 07:57:14 +02:00
Marten Seemann
c26e86c547
qlogwriter: add support for event_schemas in the trace header ( #5361 )
2025-10-09 06:07:23 +02:00
Marten Seemann
c2131eb595
qlog: split serializiation and event definitions, remove logging abstraction ( #5356 )
...
* qlog: implement a Trace and a Writer struct
* qlog: rename Trace to FileSeq
* split qlog trace writer and QUIC qlog events into separate packages
* use the new qlog.Recorder instead of the logging.ConnectionTracer
2025-10-08 05:53:02 +02:00
Marten Seemann
e6d5d960e3
qlog: implement a minimal jsontext-like JSON encoder ( #5353 )
...
* qlog: use fork of encoding/json/jsontext instead of unmaintained gojay
* implement a minimal jsontext-compatible encoder
* qlogtext: improve fuzz test
* qlog: simplify JSON encoding error handling
* qlog: make use of jsontext.Bool
2025-10-06 06:48:40 +02:00
Marten Seemann
7c1ce0efe2
ackhandler: track lost packets and detect spurious losses ( #5355 )
...
* ackhandler: implement a lost packet tracker
* logging: add ConnectionTracer.DetectedSpuriousLoss event
* ackhandler: detect spurious losses
* qlog: add support for logging spurious packet loss
* ackhandler: delete lost packets after detecting spurios loss
* guard against slice index underflow
2025-10-03 09:59:50 +02:00
Marten Seemann
6dcac15a12
qlog: merge event category and name ( #5329 )
...
This follows a (not so recent) change to the qlog specification.
2025-09-07 11:40:45 +02:00
Marten Seemann
2dfd4dd6bf
qlog: add a benchmark for the ConnectionTracer ( #5328 )
...
This test aims to benchmark a somewhat realistic scenario of a QUIC
connection that sends packets and receives acknowledgments.
2025-09-07 11:16:26 +02:00
Marten Seemann
66e5c5ebaa
replace interface{} with any ( #5290 )
...
No functional change expected.
2025-08-16 07:21:18 +02:00
Marten Seemann
69cbb6ec5b
qlog: add support for ACK_FREQUENCY and IMMEDIATE_ACK frames ( #5276 )
2025-08-04 10:00:02 +02:00
Marten Seemann
aa22706d78
ci: enable the nolintlint linter ( #5221 )
...
This linter helps us find unneeded nolint statements.
2025-06-11 06:52:21 +02:00
Marten Seemann
45e0d5fc7d
qlog: add support for reset_stream_at frame and transport parameter ( #5160 )
2025-05-28 09:43:42 +02:00
Marten Seemann
7e3d668981
qlog: fix logging of unset addresses in preferred_address transport parameter ( #4986 )
2025-03-16 04:07:20 +01:00
Marten Seemann
108b6603c8
ackhandler: implement timer logic for path probe packets ( #4940 )
...
* remove unused bool return value from sentPacketHandler.getPTOTimeAndSpace
* ackhandler: implement timer logic for path probing packets
Path probe packets are treated differently from regular packets: The new
path might have a vastly different RTT than the original path.
Path probe packets are declared lost 1s after they are sent. This value
can be reduced, once implement proper retransmission logic for lost path
probes.
* ackhandler: declare path probes lost on OnLossDetectionTimeout
2025-01-28 06:10:44 +01:00
Marten Seemann
5c545cac23
qlog: fix logging of packets_in_flight on the metrics_updated event ( #4895 )
...
Resetting this value to 0 needs to be logged.
2025-01-21 00:18:29 +08:00
Marten Seemann
5dbb46dcc1
utils: remove unused now parameter from RTTStats.UpdateRTT ( #4780 )
2024-12-22 14:50:31 +08:00
Marten Seemann
33183297dd
qlog: simplify QLOGDIR test by using t.Setenv and t.TempDir ( #4745 )
...
* qlog: simplify QLOGDIR test by using t.Setenv
* use testing.T.TempDir
2024-12-05 10:38:23 +08:00
Marten Seemann
363533dc7a
remove the Token field from the StatelessResetError ( #4740 )
...
There's nothing the application could possibly do with this value.
2024-12-02 13:57:46 +08:00
Marten Seemann
aed4d8df0c
ci: disable the unparam linter for tests ( #4738 )
2024-12-01 12:27:32 +08:00
Marten Seemann
d5d75921c8
qlog: remove deprecated DefaultTracer function ( #4697 )
2024-10-13 23:50:47 -07:00
Marten Seemann
7a10ed602d
utils: remove unused methods and constructor from RTTStats ( #4672 )
2024-09-12 00:55:57 -07:00
Marten Seemann
e52027f496
qlog: migrate tests away from Ginkgo ( #4640 )
...
* qlog: migrate tests away from Ginkgo
* ci: don't run prealloc linter on test files
2024-09-11 00:28:28 -07:00
Marten Seemann
d1f9af4cc6
implement qlog JSONSEQ format, bump qlog version ( #4609 )
2024-08-03 20:19:51 -07:00
Marten Seemann
f96923b5b2
logging: rename VersionNumber to Version ( #4621 )
2024-08-03 19:32:11 -07:00
Marten Seemann
29550811b4
remove trivial IPv4 helper function ( #4591 )
2024-07-21 14:50:03 -07:00
Marten Seemann
cc9a5ee744
qlog: rename DefaultTracer to DefaultConnectionTracer ( #4556 )
2024-06-05 03:50:01 -07:00
Marten Seemann
e41d1f9dd7
logging / qlog: add support for DPLPMTUD ( #4517 )
...
* logging / qlog: add support for DPLPMTUD
* improve the MTU discovery integration test
2024-05-14 02:37:54 -07:00
Marten Seemann
55c05aceed
qlog: log sent packets outside of a QUIC connection
2024-03-09 19:32:15 +09:30
Marten Seemann
aff90a6ffa
qlog: log sent Version Negotiation packets
2024-03-09 19:32:15 +09:30
Marten Seemann
3a7a53fdb9
qlog: log packet drops outside of a QUIC connection
2024-03-09 19:32:15 +09:30
Marten Seemann
2abbd41806
qlog: introduce a basic tracer for non-connection events
2024-03-09 19:32:15 +09:30
Marten Seemann
ab17a5df6a
qlog: rename generation to key_phase on key_updated and key_discarded ( #4315 )
2024-02-07 18:04:23 -08:00
Marten Seemann
225d2a3926
qlog: disentangle the ConnectionTracer from the qlog writer ( #4300 )
...
The qlog writer simply records events, puts them into a channel, and
consumes these events in a separate Go routine (by serializing them).
The ConnectionTracer is the one generating those events.
2024-02-02 02:00:15 -08:00
Marten Seemann
0344401de5
qlog: rename qlog.go to connection_tracer.go ( #4301 )
2024-02-02 01:45:51 -08:00
Marten Seemann
f3c4be6b01
qlog: remove unneeded mutex from the ConnectionTracer ( #4299 )
...
Events are appended to a channel, which is able to handle concurrect writes.
2024-02-01 15:57:07 -08:00
Marten Seemann
fbaa941ea1
protocol: rename VersionNumber to Version ( #4295 )
2024-01-31 21:57:33 -08:00
Benedikt Spies
2cd9ed38f1
qlog: add a default tracer that writes to QLOGDIR ( #4233 )
...
* add qlog default tracer which writes to QLOGDIR
* gofumpt
* add qlog default tracer which writes to QLOGDIR
* fix flaky tests
* Update README.md
Co-authored-by: Marten Seemann <martenseemann@gmail.com >
* Update README.md
Co-authored-by: Marten Seemann <martenseemann@gmail.com >
* Update README.md
Co-authored-by: Marten Seemann <martenseemann@gmail.com >
* Update README.md
Co-authored-by: Marten Seemann <martenseemann@gmail.com >
---------
Co-authored-by: Marten Seemann <martenseemann@gmail.com >
2024-01-12 03:11:53 -08:00
Marten Seemann
8cad3d2ea5
wire: use netip.AddrPort to encode the IPs in the Preferred Address ( #4232 )
2024-01-02 21:56:25 -08:00
Benedikt Spies
31a677cacd
qlog: add support for alpn_information event ( #4216 )
...
* qlog chosen alpn
* qlog chosen alpn
* qlog: fix capitalization of ALPN
---------
Co-authored-by: Marten Seemann <martenseemann@gmail.com >
2023-12-25 21:02:47 -08:00
Marten Seemann
3bf2e19d0d
logging: pass the packet number to ConnectionTracer.DroppedPacket ( #4171 )
...
In most cases the packet number is not known when a packet is dropped,
but it's useful to log the packet number when dropping a duplicate
packet.
2023-11-17 04:11:16 -08:00
Marten Seemann
9b82196578
make the logging.Tracer and logging.ConnectionTracer a struct ( #4082 )
2023-09-16 04:58:51 -07:00
Marten Seemann
d52e9f35bc
ackhandler: detect ECN mangling ( #4080 )
...
* ackhandler: detect ECN mangling
Mangling means that a path is re-marking all ECN-marked packets as CE.
* ackhandler: only detect ECN mangling once all testing packets were sent
2023-09-11 23:18:33 -07:00
Marten Seemann
ffe6546833
add tracing and qlogging of state transitions for ECN validation
2023-09-11 20:31:50 +07:00
Marten Seemann
ad63e2a40a
trace and qlog the ECN marking on sent and received packets
2023-09-11 20:31:50 +07:00
Marten Seemann
07ad2cbee2
remove Tracer from Config, put ConnectionTracer constructor there
2023-05-02 15:56:49 +02:00
Marten Seemann
1f57d4e789
protocol: remove VersionTLS, used during the gQUIC -> TLS 1.3 transition ( #3764 )
2023-04-19 07:24:34 -07:00
Marten Seemann
3ebdd1df5e
qlog: move the quic-go version to the configuration field ( #3735 )
2023-04-19 06:06:19 -07:00
Marten Seemann
11f493381f
qlog: use version_mismatch trigger on transport:connection_closed event ( #3724 )
2023-03-26 22:24:30 +09:00
Marten Seemann
58cedf7a4f
rename module, adjust import paths to quic-go/quic-go ( #3680 )
2023-01-21 19:53:57 -08:00