Commit Graph

5892 Commits

Author SHA1 Message Date
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