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
a81365ece8
Merge pull request #3639 from lucas-clemente/remove-version-parameter
...
remove version parameter from constructors where they are not needed
2023-01-18 01:10:05 -08:00
Marten Seemann
00624f623d
refactor the framer to remove the version param from the constructor
2023-01-18 21:49:27 +13:00
Marten Seemann
4bb9f29b55
refactor the packet packer to remove the version param from constructor
2023-01-18 21:35:01 +13:00
Marten Seemann
56985cbfd1
refactor the packet unpacker to remove version param from constructor
2023-01-18 20:53:45 +13:00
Marten Seemann
d4a0793b6a
remove unused version parameter from streams map constructor
2023-01-18 20:52:00 +13:00
Marten Seemann
d972a5e8f2
remove unused version parameter from stream constructor
2023-01-18 20:52:00 +13:00
Marten Seemann
0f352f2653
remove unused version parameter from receive stream constructor
2023-01-18 20:51:59 +13:00
Marten Seemann
1646fd545e
refactor send stream to remove version from constructor
2023-01-18 20:51:59 +13:00
Marten Seemann
ef28f4667f
refactor frame parser to remove version parameter from constructor
2023-01-18 20:51:58 +13:00
Marten Seemann
582edae63d
refactor retransmissionQueue to remove version param from constructor
2023-01-18 20:50:17 +13:00
Marten Seemann
5c7d120b8f
remove unused version parameter form the connIDGenerator
2023-01-18 20:50:17 +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
b77d8570df
pass payload around by value in the packet packer ( #3648 )
2023-01-17 22:53:05 -08:00
Marten Seemann
4d9ab7b604
Merge pull request #3636 from lucas-clemente/early-conn
...
make ConnectionState usable during the handshake
2023-01-17 22:29:08 -08:00
Marten Seemann
c20b541dbb
avoid allocating a shortHeaderPacket struct in the PackPacket path ( #3647 )
2023-01-18 10:04:35 +13: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
3d4bbc28ba
Merge pull request #3644 from lucas-clemente/short-header-packing
...
use a separate code path for handling short header packets
2023-01-17 01:08:54 -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
384ad9b2ae
don't allocate a wire.ExtendedHeader for short header packets
2023-01-17 21:53:39 +13:00
Marten Seemann
518fd1c877
separate long and short header packets in the coalescedPacket
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
87f51d33dc
move the packet buffer out of the shortHeaderPacket struct
2023-01-17 21:53:39 +13:00
Marten Seemann
ec9a6e7a99
introduce a shortHeaderPacket type and use it in packet packer
2023-01-17 21:53:39 +13:00
Marten Seemann
3e7bad5efc
use separate append functions for long and short header packets
2023-01-17 21:53:39 +13:00
Marten Seemann
108f152181
split the packet packing function
2023-01-17 21:53:39 +13:00
Marten Seemann
54d8ab39bd
refactor slice handling when encrypting a packet
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
d72aa25fb8
split the logging function for short and long header packets
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
9e5f92b561
return a coalesced packet when packing a probe packet
...
The coalesced packet will only consist of a single packet, but this will
make the refactoring easier.
2023-01-17 21:53:04 +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
5141739d57
fix flaky send queue test ( #3668 )
2023-01-16 23:35:15 +13:00
Marten Seemann
a2e52e31a8
fix flaky counting of 0-RTT packets in integration test ( #3669 )
2023-01-16 23:34:45 +13:00
Marten Seemann
0480237ca6
add integration tests for Listen and ListenEarly
2023-01-05 16:37:08 +13:00
Marten Seemann
45b489b6f6
make ConnectionState usable during the handshake
2023-01-05 16:37:07 +13: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
07918469bc
use ed25519 instead of RSA keys in integration tests ( #3661 )
2023-01-04 07:06:34 +13:00
Marten Seemann
97550b4817
fix flaky datagram queue test ( #3650 )
2023-01-04 07:05:39 +13:00
Marten Seemann
2b7bce86cd
use the generic linked list for the token store ( #3654 )
2023-01-04 07:04:39 +13:00
Marten Seemann
71f9182de6
update golang.org/x packages to tagged versions ( #3628 )
2023-01-04 07:02:49 +13:00
Avi Rosenberg
cf1aff0492
http3: simplify if condition in roundtripper ( #3658 )
...
Signed-off-by: Avi Rosenberg <avrumi96@gmail.com >
Signed-off-by: Avi Rosenberg <avrumi96@gmail.com >
2023-01-01 12:20:44 -08: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