Commit Graph

6970 Commits

Author SHA1 Message Date
4238c0fe48 merge upstream 2025-11-18 17:42:33 +03:00
Marten Seemann
be2a6229c4 http3: send SETTINGS_MAX_FIELD_SECTION_SIZE in the SETTINGS frame (#5431)
* http3/qlog: implement qlogging of SETTINGS_MAX_FIELD_SECTION_SIZE

* http3: send SETTINGS_MAX_FIELD_SECTION_SIZE in the SETTINGS frame
2025-11-16 14:45:27 +01:00
Marten Seemann
e46470d68f qlogwriter: fix storing of event schemas (#5430)
HTTP/3 qlogging (and qlogging for any other application protocol) only
works if the event schemas are stored.
2025-11-14 09:44:33 +01:00
gr1ffon
4ba42a8456 replace repo v0.56.1 v0.56.2 2025-11-14 04:04:40 +03:00
gr1ffon
7b3ed68ceb make some fields public 2025-11-14 03:40:56 +03:00
dependabot[bot]
a839e42b78 ci: bump golangci/golangci-lint-action from 8 to 9 (#5426)
Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 8 to 9.
- [Release notes](https://github.com/golangci/golangci-lint-action/releases)
- [Commits](https://github.com/golangci/golangci-lint-action/compare/v8...v9)

---
updated-dependencies:
- dependency-name: golangci/golangci-lint-action
  dependency-version: '9'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-10 08:25:27 +01:00
Marten Seemann
eb7fcf5637 qlog: split the PTO count updates ouf of the MetricsUpdated event (#5421)
* qlog: split the PTO count updates ouf of the MetricsUpdated event

This allows us to not use pointers for all member variables of both
events.

* ackhandler: avoid spurious call to GetCongestionWindow
v0.56.0
2025-11-04 18:13:06 +01:00
Marten Seemann
4930f90307 qlog: rework the ConnectionClosed event (#5417) 2025-11-03 16:12:13 +01:00
Marten Seemann
a6de3e42b3 ackhandler: fix qlogging of RTT values (#5418) 2025-11-02 18:53:30 +01:00
Marten Seemann
a882b9a003 use synctest for the stateless reset tests (#5415) 2025-11-01 17:58:37 +01:00
Marten Seemann
d3211a4193 qlog: rename owner to initiator (#5416)
Owner was renamed to Initiator in draft-ietf-qlog-quic-events-11.
2025-11-01 17:30:18 +01:00
Marten Seemann
7646b74b22 use synctest in handshake RTT tests (#5414) 2025-11-01 11:19:34 -04:00
Marten Seemann
b25c128993 ci: update golangci-lint to v2.6.0 (#5412)
* ci: update golangci-lint to v2.6.0

* supress synctest linter warning
2025-10-30 22:18:03 +01:00
dependabot[bot]
d526a3f58a ci: bump actions/upload-artifact from 4 to 5 (#5411)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 5.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-30 16:26:47 +01:00
Marten Seemann
2d4ba22218 quicvarint: improve panic message for numbers larger 2^62 (#5410) 2025-10-30 15:24:10 +01:00
Marten Seemann
cf010814fa ci: use gcassert to check that quicvarint.Len is inlined (#5409) 2025-10-24 22:03:00 +02:00
Copilot
57f5dcb28f fix flaky TestServerTransportClose (#5407)
* Initial plan

* Fix TestServerTransportClose race condition by accepting conn1 before dialing conn2

Co-authored-by: marten-seemann <1478487+marten-seemann@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: marten-seemann <1478487+marten-seemann@users.noreply.github.com>
2025-10-24 18:24:01 +02:00
Copilot
9a7936d2ca fix flaky TestConnectionUnpackFailureDropped (#5382)
* Initial plan

* Fix flaky TestConnectionUnpackFailureDropped by adding synctest.Wait

Co-authored-by: marten-seemann <1478487+marten-seemann@users.noreply.github.com>

* formatting

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: marten-seemann <1478487+marten-seemann@users.noreply.github.com>
Co-authored-by: Marten Seemann <martenseemann@gmail.com>
2025-10-24 17:47:19 +02:00
Marten Seemann
f2b845a2f5 use synctest for the timeout tests (#5403) 2025-10-24 12:51:09 +02:00
Marten Seemann
44db8994c9 use synctest for the datagram test (#5398) 2025-10-23 19:32:01 +02:00
Marten Seemann
49d41dc218 use synctest for the handshake drop test (#5397)
This test used to take 15-30s locally, and even more on CI. It now runs in less than 1ms.
2025-10-23 16:56:35 +02:00
Marten Seemann
756bdc0104 use synctest for the packet drop test (#5393) 2025-10-21 16:28:11 +02:00
Marten Seemann
c0611d2f56 use simnet in CONNECTION_CLOSE retransmission test (#5395)
* use simnet in CONNECTION_CLOSE retransmission test

* fix race
2025-10-20 08:44:09 +02:00
Marten Seemann
cb7f6adea0 use synctest for transport tests (#5391)
* use synctest for transport tests

* disable TestTransportReplaceWithClosed on Go 1.24
2025-10-19 09:51:01 +02:00
Marten Seemann
7772755df2 add simnet package to simulate a net.PacketConn in memory (#5385)
* Implement simnet

* simnet: remove separate license

* simnet: remove go.mod, use standard require package

* simnet: add README

* simnet: use synctest wrapper in tests

* simnet: minor code cleanup

* simnet: expose Packet.Data

* simnet: explose Simnet.Router

* simnet: remove SimpleFirewallRouter

* simnet: remove stray fmt.Println in tests

* fix deadline check for write deadlines

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* simnet: fix SetReadDeadline logic

---------

Co-authored-by: Marco Munizaga <git@marcopolo.io>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-18 09:19:46 +02:00
Marten Seemann
f07d6939d0 congestion: avoid overflows when calculating pacer budget (#5390)
* congestion: prevent uint64 overflow in pacer

This should never happen for bandwidths even remotely possible in
real-world scenarios, but it’s better to be safe.

* congestion: add a benchmark test for the pacer

* add a comment
2025-10-17 07:30:07 +02:00
Marten Seemann
42b198b8d1 use default RTT (100ms) for 0-RTT if no prior estimate (#5388)
* utils: initialize the {Smoothed, Latest, Min}RTT to 100ms

* utils: use time.Duration.Nanoseconds instead of uint64

No functional change expected.

* congestion: better check to avoid division by zero
2025-10-16 09:32:46 +02:00
Marten Seemann
5e5100b40c http3: add the qlog event schema to trace header (#5383) 2025-10-15 06:02:05 +02:00
Marten Seemann
378d867241 http3: qlog reserved, unsupported and unknown frames (#5381) 2025-10-12 14:11:54 +02:00
Marten Seemann
b7d987f5e4 http3: qlog the frame length and payload length of parsed frames (#5380) 2025-10-12 10:58:32 +02:00
Marten Seemann
ce12204bc3 http3: qlog sent and received SETTINGS frames (#5379)
* http3: implement qlog serialization for SETTINGS frames

* http3: qlog sent and received SETTINGS frames
2025-10-12 07:16:37 +02:00
Marten Seemann
cd4b1307db http3: move qlogging of frames into the frame parser (#5378) 2025-10-12 06:40:24 +02:00
Marten Seemann
ed194a0c5e http3: qlog sent and received DATAGRAMs (#5375) 2025-10-11 14:14:06 +02:00
Marten Seemann
f330d0e257 http3: qlog sent and received GOAWAY frames (#5376) 2025-10-11 13:20:01 +02:00
FS
6c4abb9c14 README: update OSS-Fuzz link (#5377)
oss-fuzz issues has been migrated to issues.oss-fuzz.com and the project field is not searcheable.
2025-10-11 11:38:25 +02:00
Marten Seemann
7796175c64 http3: add basic client-side qlog support (#5374) 2025-10-11 10:13:49 +02:00
Marten Seemann
53d246840d http3: fix qlog encoding of frame_parsed and frame_created events (#5372) 2025-10-11 09:48:05 +02:00
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
ae909aeb72 jsontext: add support for encoding null (#5371) 2025-10-11 07:08:06 +02:00
Marten Seemann
ca05442ab9 http3: add basic server-side qlog support (#5367)
* add Conn.QlogTrace

* http3: add basic qlog support on the server side
2025-10-10 12:35:58 +02:00
Marten Seemann
fb232c81ee ci: include OS and Go version in Codecov test report upload (#5370) 2025-10-10 09:45:25 +02:00
Marten Seemann
fb4188379e fix qlogging of the short header payload length (#5365) 2025-10-09 14:17:55 +02:00
Marten Seemann
8d1b4811c4 qlog: privatize Encode methods of non-Event structs (#5364) 2025-10-09 14:12:19 +02:00
Marten Seemann
03a99447fd ackhandler: fix qlogging of alarm timer expiration time (#5363) 2025-10-09 10:21:06 +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
33af12712e qlogwriter: implement the draft-12 trace header (#5360) 2025-10-08 16:21:35 +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
c9d3778fe0 use synctest in more connection tests (#5357)
No functional change expected.
2025-10-06 14:49:04 +02:00
Marco Munizaga
73e8240bd3 ci: remove 386 (32 bit x86) (#5352)
The last 386 cpu was from 20 years ago (Pentium 4)
2025-10-06 07:23:09 +02:00