Marten Seemann
21544085e1
Merge pull request #3878 from quic-go/single-ack-receiving
...
use a single ACK frame in the receive path
2023-06-02 18:06:06 +03:00
Marten Seemann
a595d34557
use a single ACK frame in the receive path
2023-06-02 17:21:46 +03:00
Marten Seemann
0438eada95
use ackhandler.Frame directly, not as a pointer, remove its sync.Pool ( #3835 )
2023-06-02 04:56:18 -07:00
Marten Seemann
f8d24ef1e9
don't use closures for passing OnLost and OnAcked STREAM frame callbacks ( #3833 )
2023-06-02 04:14:04 -07:00
Marten Seemann
215ba85db4
ackhandler: simplify sentPacketHandler.SentPacket ( #3847 )
...
No functional change expected.
2023-06-02 02:59:46 -07:00
Glonee
f1f42d8d90
use a ring buffer in the framer ( #3857 )
...
* implement and use ringbuffer in framer
* Add comments for ring buffer
Co-authored-by: Marten Seemann <martenseemann@gmail.com >
---------
Co-authored-by: Marten Seemann <martenseemann@gmail.com >
2023-06-01 11:53:37 -07:00
Marten Seemann
fce0261c34
wire: apply the default value for the active_connection_id_limit ( #3806 )
2023-05-28 11:45:46 -07:00
Marten Seemann
378e3c8b74
wire: save ECN counts on the ACK frame ( #3829 )
2023-05-28 16:36:38 +03:00
Marten Seemann
02013caaa4
rttstats: don't set initial RTT after having obtained a measurement ( #3852 )
2023-05-28 15:09:25 +03:00
Sukun
cb3453db25
fix comment claiming ParseConnectionID reuses the data slice ( #3848 )
2023-05-21 07:54:50 -07:00
Marten Seemann
cf267ff7d7
optimize memory layout of ackhandler.Packet ( #3844 )
...
Before: 88 bytes. After: 80 bytes.
2023-05-19 10:03:24 +03:00
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