Commit graph

6406 commits

Author SHA1 Message Date
Marten Seemann
5dd6d91c11 send and track packets with ECN markings 2023-09-11 20:31:50 +07:00
Marten Seemann
f919473598 add support for writing the ECN control message (Linux, macOS) 2023-09-11 20:31:49 +07:00
Marten Seemann
a7f807856c
randomize the serialization order of control frames (#4069)
* randomize the serialization order of control frames

* add comment for packetPacker.appendPacketPayload
2023-09-10 21:49:29 -07:00
Marten Seemann
abfe1ef548
remove Config.MaxRetryTokenAge, set it to the handshake timeout (#4064)
There is no good reason to manually set the validity period for Retry
tokens. Retry tokens are only valid on a single connection during the
handshake, so it makes sense to limit their validity to the configured
handshake timeout.
2023-09-10 13:53:12 +07:00
Marten Seemann
e1fcac3e46
set the handshake timeout to twice the handshake idle timeout (#4063) 2023-09-09 06:12:37 -07:00
Marten Seemann
54b76ceb3e
ackhandler: use the receive time of the Retry packet for RTT estimation (#4070) 2023-09-09 06:12:19 -07:00
Marten Seemann
dc0369cad4
remove TLS post-handshake message reassembly logic (#4073)
Go 1.21.1 was released, which fixed the bug that made this workaround
necessary.
2023-09-06 21:27:03 -07:00
Marten Seemann
6cac231f6a
update qtls-go1-20 to v0.3.4 (#4068) 2023-09-06 09:02:33 -07:00
Marten Seemann
591d864e5e
ci: update GitHub checkout and setup-go actions to v4 (#4067) 2023-09-05 03:47:05 -07:00
Marten Seemann
96b1943cf5
ackhandler: rename variables to follow RFC 9002 terminology (#4062) 2023-09-03 21:45:41 -07:00
Ameagari
6cde43785f
integration tests: fix connection timeout in 0-RTT test (#4060) 2023-09-01 19:40:35 -07:00
Marten Seemann
090e505aa9
move GSO control message handling to the oobConn (#4056)
* move GSO control message handling to the oobConn

* disable OOB test on Windows

* improve GSO tests

* update ooConn.WritePacket comment
2023-08-31 00:49:27 -07:00
Marten Seemann
d7334c16e7
move the DisableVersionNegotiationPackets flag to the Transport (#4047)
* move the DisableVersionNegotiationPackets flag to the Transport

* add an integration test for DisableVersionNegotiationPackets
2023-08-30 23:33:40 -07:00
Gaukas Wang
66db44d7c8
sync: upstream quic-go v0.38.1
This is a merge commit.
2023-08-28 16:59:30 -06:00
Gaukas Wang
9b03bc282c
fix: uquic sync error
...so that uquic build/test shall pass and examples shall work again.
2023-08-28 16:53:19 -06:00
Gaukas Wang
856bc02b8f
Merge branch 'upstream' into sync-upstream 2023-08-28 14:12:03 -06:00
Gaukas Wang
3d09353796
Update README.md
fix the incorrect link to quic-go
2023-08-28 11:19:19 -06:00
Marten Seemann
2797f85fc0
switch from unmaintained golang/mock to go.uber.org/mock (#4050) 2023-08-28 02:23:55 -07:00
Marten Seemann
8f34488c76
fix flaky version negotiation connection unit test (#4052) 2023-08-26 21:53:07 -07:00
Marten Seemann
8963306987
ci: fix syntax error in integration test workflow (#4048) 2023-08-26 18:23:26 +07:00
Marten Seemann
e058f56643
ci: fix integration test running with and without GSO (#4043) 2023-08-24 18:23:44 -07:00
Marten Seemann
d22854641a
remove the port from the hostname used for tls.Config.ServerName (#4046) 2023-08-24 17:53:02 -07:00
Marten Seemann
f633dca488
update qtls to v0.3.3 (#4044) 2023-08-22 20:36:33 -07:00
Jean-Francois Giorgi
8d91ad9fcd
move QUIC_GO_DISABLE_GSO check out of init (#4041)
* move QUIC_GO_DISABLE_GSO test out of init().

* Update sys_conn_helper_linux.go

---------

Co-authored-by: Marten Seemann <martenseemann@gmail.com>
2023-08-22 20:12:08 -07:00
WeidiDeng
824fd8a2f2
http3: automatically add content-length for small responses (#3989)
* response writer: add content-length automatically when response is small enough and doesn't call Flush

* fix comment

* add integration test

* Update http3/response_writer.go

* Update integrationtests/self/http_test.go

---------

Co-authored-by: Marten Seemann <martenseemann@gmail.com>
2023-08-20 20:31:22 -07:00
Marten Seemann
ced65c0ddc
wire: always set the QUIC bit for Version Negotiation packets (#3991)
* wire: always set the QUIC bit for Version Negotiation packets

* Update internal/wire/version_negotiation_test.go
2023-08-20 19:55:57 -07:00
Marten Seemann
f689a5d023
ci: build interop Docker image for pushes to master, and for releases (#4035)
* ci: build interop Docker image for pushes to master, and tag releases

* use self-hosted runner to build Docker image

* Apply suggestions from code review

Co-authored-by: Piotr Galar <piotr.galar@gmail.com>

* Update .github/workflows/build-interop-docker.yml

Co-authored-by: Piotr Galar <piotr.galar@gmail.com>

* build the correct commit

* Update .github/workflows/build-interop-docker.yml

---------

Co-authored-by: Piotr Galar <piotr.galar@gmail.com>
2023-08-20 19:48:03 -07:00
Marten Seemann
fe3c4f271d
add a method to retrieve non-QUIC packets from the Transport (#3992) 2023-08-19 01:19:17 -07:00
Ameagari
6880f88089
save the max_datagram_frame_size transport parameter in the session ticket (#4013)
* Add MaxDatagramFrameSize parameter in session ticket

* fix gofumpt issues

* Update integrationtests/self/zero_rtt_test.go

Co-authored-by: Marten Seemann <martenseemann@gmail.com>

* fix: correct comparsion of max_datagram_frame_size

* test: use constant MaxDatagramFrameSize for session ticket test

* fix grammar

---------

Co-authored-by: Marten Seemann <martenseemann@gmail.com>
2023-08-18 19:16:16 -07:00
Marten Seemann
443c6148b6
protocol: add string representation for ECN values (#4008) 2023-08-18 17:17:37 -07:00
Marten Seemann
5c5db8cc59
reassemble post-handshake TLS messages before passing them to crypto/tls (#4038) 2023-08-18 17:16:57 -07:00
Marten Seemann
501cc21c4b
expose crypto/tls errors on the TransportError (#4015) 2023-08-18 03:01:49 -07:00
Marten Seemann
f7f4872bb9
Merge pull request #4005 from quic-go/gso-detection
enable GSO, disable if sending fails for a particular address
2023-08-18 13:01:23 +07:00
Marten Seemann
3822dae9bb
handshake fuzzer: fix setting of cipher suites (#4037) 2023-08-16 22:26:36 -07:00
Marten Seemann
5200f27dcf add QUIC_GO_DISABLE_GSO env to disable GSO 2023-08-16 22:09:30 +07:00
Marten Seemann
3a3169551b detect kernel GSO support 2023-08-16 22:09:30 +07:00
Marten Seemann
4122eb7a7d disable GSO if sending fails for a particular remote address 2023-08-16 22:09:29 +07:00
Marten Seemann
83c00a574d
ci: also run integration tests on Windows and macOS (#3987) 2023-08-16 07:21:48 -07:00
Marten Seemann
51d257d608
handshake fuzzer: fix TLS handshake sequence (#4033)
There were two problems with the existing code:
1. The transport parameters were rejected due to an invalid value for
   ActiveConnectionIDLimit, causing the handshake to fail.
2. Handshake messages were passed in at the wrong encryption level,
   leading to consistent handshake failures.
2023-08-16 06:55:44 -07:00
Marten Seemann
ca3842d6c8
automatically set the tls.Config.ServerName if unset (#4032) 2023-08-16 06:54:42 -07:00
Marten Seemann
4f696569a2
store the server port as an int, not a string, in HTTP tests (#3959) 2023-08-16 04:59:11 -07:00
Marten Seemann
2e7ea9119c
add OSS-Fuzz badge to README (#3942) 2023-08-16 04:58:07 -07:00
Gaukas Wang
2cf9a8b684
Update README.md 2023-08-15 23:00:48 -06:00
Gaukas Wang
d55cdaf54d
Add files via upload 2023-08-15 22:56:50 -06:00
Gaukas Wang
7cc5b8918f
new: uQUIC logo 2023-08-15 22:50:10 -06:00
Marten Seemann
bda01bc489
handshake: use the correct hash function for TLS_AES_256_GCM_SHA384 (#4031) 2023-08-15 20:09:01 -07:00
Marten Seemann
1d848392bc
ignore QUICConn.SendSessionTicket error if session tickets are disabled (#4030) 2023-08-15 19:53:41 -07:00
Marten Seemann
70f3f44a09
http3: remove leftover ALPN constant for draft-29 (#4027) 2023-08-13 19:36:01 -07:00
Egon Elbre
b65ed61fea
integrationtests: fix proxy test on Windows (#4023) 2023-08-13 01:43:28 -07:00
Gaukas Wang
6d525c0e31
fix: broken links to issues
some links are pointing to gaukas/uquic, which was once the root repository but moved here. Since gaukas/uquic is now a fork, URL redirects are no more and we need to manually update the links.
2023-08-11 22:29:00 -06:00