Marten Seemann
74be4d2755
add a function to set the UDP send buffer size
...
This function is the equivalent to the function used to set the UDP
receive buffer size. It's so similar that code generation is used to
make a copy of the setReceiveBuffer function.
2023-05-08 14:35:21 +03:00
Marten Seemann
07ad2cbee2
remove Tracer from Config, put ConnectionTracer constructor there
2023-05-02 15:56:49 +02:00
Marten Seemann
7a0ef5f867
make Config.Allow0RTT a bool, not a callback
2023-05-02 15:56:49 +02:00
Marten Seemann
86a1234c87
make EarlyListener a struct, not an interface
2023-05-01 14:41:16 +02:00
Marten Seemann
94829edf35
congestion: fix overflow when calculating the pacing budget ( #3796 )
2023-05-01 05:32:20 -07:00
Marten Seemann
c9a2f79b1c
simplify mockgen usage for private interfaces ( #3769 )
2023-04-19 07:57:00 -07:00
Marten Seemann
379e7ec848
Merge pull request #3745 from quic-go/aggressive-key-updates
...
initiate the first key update after sending / receiving 100 packets
2023-04-19 16:28:33 +02:00
Marten Seemann
e7751de92e
qtls: fix cipher suite selection for ClientHellos ( #3751 )
2023-04-19 07:26:47 -07: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
a519d827d1
wire: use a dedicated rand.Rand for greasing transport parameters ( #3758 )
...
rand.Seed is deprecated since Go 1.20. This change also reduces
(potential) lock contention when obtaining random numbers / bytes.
2023-04-19 06:21:25 -07:00
Marten Seemann
f36690ae9c
protocol: remove VersionWhatever, previously used for testing ( #3763 )
2023-04-19 06:19:27 -07:00
Marten Seemann
969b5dc131
add a handshake test for post-quantum-size ClientHellos ( #3759 )
...
Post-quantum ClientHellos typically are larger than 1 MTU and will
therefore need to be split across multiple packets.
2023-04-19 06:01:43 -07:00
Marten Seemann
7a393315bd
wire: use constants for frame types ( #3739 )
2023-04-19 05:58:31 -07:00
Marten Seemann
eb05964942
wire: speed up identification of 0-RTT packets ( #3761 )
2023-04-19 05:50:57 -07:00
Marten Seemann
da26f91905
wire: correctly parse multi-byte frame types ( #3736 )
2023-04-19 05:42:23 -07:00
Marten Seemann
b03585160f
handshake: initiate the first key update after 100 packets
2023-03-31 18:20:49 +09:00
Marten Seemann
1ebd359b20
handshake: remove unnecessary member variable from updatableAEAD
2023-03-28 22:50:21 +09:00
Marten Seemann
af6c19617c
handshake: add benchmark tests for packet sealing, opening and rolling keys
2023-03-28 22:46:57 +09:00
Marten Seemann
56a6d8d35b
ci: update golangci-lint to v1.52.2, update Go version ( #3740 )
...
* ci: update golangci-lint to v1.52.2, update Go version
* run gofumpt
2023-03-27 22:55:26 -07:00
Marten Seemann
23f4565108
qtls: don't set the tls.Config.CipherSuites for cipher suite tests ( #3726 )
...
* qtls: don't set the tls.Config.CipherSuites for cipher suite tests
* use qtls versions that don't allow setting of tls.Config.CipherSuites
2023-03-26 06:56:41 -07:00
Marten Seemann
a4b0265628
use a chan instead of a context in Connection.HandshakeComplete ( #3709 )
2023-03-26 06:51:56 -07:00
Marten Seemann
41ddaa0262
attach the QUIC version to context returned by ClientHelloInfo.Context ( #3721 )
2023-03-26 22:26:14 +09:00
zoltan-kiss-cujo
b7384a4404
quicv2: fix TLS extension type ( #3710 )
...
* quicv2: fix TLS extension type
* Update internal/handshake/tls_extension_handler.go
Co-authored-by: Marten Seemann <martenseemann@gmail.com >
---------
Co-authored-by: Marten Seemann <martenseemann@gmail.com >
2023-02-15 14:17:31 -08:00
Marten Seemann
0ac5d1c149
reduce the size of messageChan channel in the crypto setup ( #3664 )
2023-02-13 13:55:49 -08:00
Marten Seemann
04c3fd0756
deprecate quicvarint.Write in favor of quicvarint.Append ( #3690 )
2023-02-13 02:52:25 -08:00
Marten Seemann
dee98638a4
use atomic.Bool from the standard library
2023-02-04 17:44:57 +13:00
Marten Seemann
f42357f096
drop qtls support for Go 1.18
2023-02-04 17:44:54 +13:00
Marten Seemann
3d9380ec3c
reject invalid active_connection_id_limit transport parameter values ( #3687 )
2023-02-01 17:03:19 -08:00
Marten Seemann
58cedf7a4f
rename module, adjust import paths to quic-go/quic-go ( #3680 )
2023-01-21 19:53:57 -08:00
Marten Seemann
9488539a49
update imports to use qtls and qpack from quic-go GitHub organization ( #3676 )
2023-01-20 13:42:54 -08:00
Marten Seemann
ef28f4667f
refactor frame parser to remove version parameter from constructor
2023-01-18 20:51:58 +13:00
Marten Seemann
3affa1d911
ackhandler: remove unused version parameter from constructor
2023-01-18 20:50:17 +13:00
Marten Seemann
576d85cd3d
add support for Go 1.20 ( #3641 )
2023-01-17 23:22:36 -08:00
Marten Seemann
2aa71ff76b
use a sync.Pool for ackhandler.Frames ( #3656 )
2023-01-17 23:15:02 -08:00
Marten Seemann
c24fbb094c
refactor header writing to append to a byte slice ( #3646 )
...
This avoids having to allocate a bytes.Buffer.
2023-01-17 01:56:06 -08:00
Marten Seemann
86edf7fd4b
remove the LongHeader field from the wire.Header
2023-01-17 21:53:39 +13:00
Marten Seemann
aca052dc7c
stop using the ExtendedHeader for parsing short header packets in tests
2023-01-17 21:53:39 +13:00
Marten Seemann
e89fc1152b
stop using the ExtendedHeader for writing short header packets in tests
2023-01-17 21:53:39 +13:00
Marten Seemann
124e597cf9
add a function to write short headers
2023-01-17 21:53:39 +13:00
Marten Seemann
4bf50901e8
add a function to determine the length of a short header
2023-01-17 21:53:39 +13:00
Marten Seemann
24be84cd00
introduce separate tracing calls for sent long and short header packets
2023-01-17 21:53:37 +13:00
Marten Seemann
7ad58d2426
Merge pull request #3655 from lucas-clemente/linked-list-pool
...
use a sync.Pool to reduce allocation of linked list elements
2023-01-16 03:14:37 -08:00
Marten Seemann
b52d34008f
add Allow0RTT opt in the quic.Config to control 0-RTT on the server side ( #3635 )
2023-01-04 16:18:11 -08:00
Marten Seemann
421893b1c4
only call tls.CipherSuiteName if logging is on, reducing allocations ( #3632 )
...
tls.CipherSuiteName calls tls.CipherSuites, which in turn allocates a
large slice of values. We only need the name when we're logging, and
doing so, reduces the amount of allocations (and therefore garbage
created) during a QUIC handshake by roughly 5%.
2023-01-03 13:21:17 -08:00
Marten Seemann
7fbcbf7ac6
update QUIC v2 support to draft-ietf-quic-v2-08 ( #3631 )
2023-01-04 07:07:06 +13:00
Marten Seemann
d9665c632e
use a sync.Pool to reduce allocation of linked list elements
...
Especially the sentPacketHistory linked list shows up in allocation
profiles, since a new list element is allocated for every single packet
we send.
Using a pool for the receiving path, as well as for the frame sorter, is
less critical, since we're tracking ranges there instead of individual
packets / frames, but it doesn't hurt either.
The other occurrences where we use a linked list (connection ID tracking
and the token store) are used so rarely (a few times over the lifetime
of the connection) that using a pool doesn't make any sense there.
2022-12-30 19:24:56 +13:00
Marten Seemann
dd30a02627
ackhandler: remove the packet list element from the correct list
2022-12-30 18:35:26 +13:00
Marten Seemann
d2512193da
qerr: include role (remote / local) in error string representations ( #3629 )
2022-12-08 19:58:52 +13:00
cliffc-spirent
b8447041bb
limit the exponential PTO backoff to 60s ( #3595 )
2022-11-15 15:42:35 -08:00
kixelated
9540d0fed2
use go run for mockgen, goimports and ginkgo ( #3616 )
2022-11-11 02:11:41 -08:00