Commit Graph

5851 Commits

Author SHA1 Message Date
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
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
d2512193da qerr: include role (remote / local) in error string representations (#3629) v0.31.1 2022-12-08 19:58:52 +13:00
Marten Seemann
8d496ebb5e introduce a type for the stateless reset key (#3621) v0.31.0 2022-11-16 14:11:25 -08:00
cliffc-spirent
b8447041bb limit the exponential PTO backoff to 60s (#3595) 2022-11-15 15:42:35 -08:00
Marco Munizaga
f2d3cb8f43 expose the QUIC version of a connection (#3620)
* Expose the QUIC version of a connection via connection state

* Update interface.go

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

* Finish rename

* gofmt

* Use public type for version number

Co-authored-by: Marten Seemann <martenseemann@gmail.com>
2022-11-15 14:59:49 -08:00
Stojan Dimitrovski
7b211d6574 expose function to convert byte slice to a connection ID (#3614) 2022-11-13 07:46:29 -08:00
kixelated
9540d0fed2 use go run for mockgen, goimports and ginkgo (#3616) 2022-11-11 02:11:41 -08:00
Toby
2de4af00d0 fix client SNI handling (#3613)
* fix: client sni handling

* chore: add comment
2022-11-07 01:52:22 -08:00
Toby
5fe9f9bd89 chore: fix multiple typos in comments (#3612)
* chore: fix multiple typos I run into

* Update conn_id_generator_test.go

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

* Update internal/ackhandler/sent_packet_handler_test.go

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

Co-authored-by: Marten Seemann <martenseemann@gmail.com>
2022-11-06 10:59:16 -08:00
Marten Seemann
df762b7552 use the new zero-allocation control message parsing function from x/sys (#3609) 2022-11-04 04:36:46 -07:00
Marten Seemann
76761598e9 http3: add support for parsing and writing HTTP/3 capsules (#3607) 2022-11-03 10:34:01 -07:00
David Brouwer
047f9b6ffa http3: add request to response (#3608) 2022-11-02 13:39:34 -07:00
Marten Seemann
af30cef57c fix availability signaling of the send queue (#3597) v0.30.0 2022-10-22 12:09:40 +01:00
Marten Seemann
e496120c76 http3: add a ConnectionState method to the StreamCreator interface (#3600) 2022-10-22 02:52:30 -07:00
Marten Seemann
85fbfb9405 http3: add a Context method to the StreamCreator interface (#3601) 2022-10-22 02:51:24 -07:00
Marten Seemann
1283a1f215 rename the variable in quic.Config.AllowConnectionWindowIncrease (#3602) 2022-10-21 03:49:03 -07:00
Marten Seemann
b025344e71 fix usage of deprecated Ginkgo flag 2022-10-19 09:09:05 +01:00
Marten Seemann
f78683abb6 update qpack to v0.3.0 (#3593) 2022-10-12 06:00:58 -07:00
Marten Seemann
52ab2454f7 fix version of Ginkgo installed on CI (#3591) 2022-10-11 13:41:22 -07:00
Marten Seemann
423f5dcf6c Merge pull request #3589 from lucas-clemente/update-ginkgo-v2
migrate to Ginkgo v2, remove benchmark test
2022-10-11 22:03:09 +03:00
Marten Seemann
192ae3437b don't drop more than 10 consecutive packets in drop test (#3584) 2022-10-11 05:44:07 -07:00
Marten Seemann
870fbe7ab0 migrate to Ginkgo v2 2022-10-11 16:38:44 +04:00
Marten Seemann
c9a878858e remove the benchmark test suite 2022-10-11 16:38:18 +04:00
Marten Seemann
ee013d9d23 use a monotonous timer for the connection (#3570)
There's no point in having the timer fire multiple times for the same
timestamp. By using a monotonuos timer we avoid busy-looping in cases where the
timer fires, but we can't actually send a packet.
2022-10-11 05:36:10 -07:00
Marten Seemann
2b5d1281c1 http3: add http3.Server.ServeQUICConn to serve a single QUIC connection (#3587) 2022-10-11 05:07:24 -07:00
Marten Seemann
c75bf49422 http3: expose ALPN values (#3580) 2022-10-11 04:27:49 -07:00
Marten Seemann
fe277dc663 log the size of buffered packets (#3571) 2022-10-11 02:27:26 -07:00
Marten Seemann
438942b888 ackhandler: reject duplicate packets in ReceivedPacket (#3568)
Before we process a packet, IsPotentiallyDuplicate is called.
This should filter out all duplicates before the reach ReceivedPacket.
2022-10-11 02:27:10 -07:00
Marten Seemann
597e00549d update qtls to versions that include the ec_point_formats fix (#3583)
The new qtls versions contain the standard library fix for
https://github.com/golang/go/issues/49126.
2022-10-11 02:26:25 -07:00
Marten Seemann
d03f9c2a4f reduce max DATAGRAM frame size, so that DATAGRAMs fit in IPv6 packets (#3581) 2022-10-11 02:26:10 -07:00
Marten Seemann
1f6a9ecafd use a Peek / Pop API for the datagram queue (#3582) 2022-10-11 02:25:17 -07:00
shade34321
a905648480 http3: handle ErrAbortHandler when the handler panics (#3575)
* Handle abort like the stdlib does

* Using the sentinel value from the stdlib instead of redefining.

* we return before logging out

* Added test to hand abort handler

* Added in two tests but apparently only saved the first one.

* remove one test case because it wasn't needed
2022-10-09 07:50:04 -07:00
Marten Seemann
424a66389c http3: fix double close of chan when using DontCloseRequestStream (#3561) 2022-09-23 03:10:25 -07:00
Marten Seemann
17761bf35f qlog: rename key_retired to key_discarded (#3463) 2022-09-09 06:39:49 -07:00
Marten Seemann
2b54aeac2d Merge pull request #3545 from lucas-clemente/simplify-ack-only-packing
simplify packing of ACK-only packets
2022-09-09 14:00:07 +03:00
Marten Seemann
d1d9f49ed4 Merge pull request #3547 from lucas-clemente/pool-ack-frames
use a sync.Pool for ACK frames
2022-09-09 11:56:15 +03:00
Marten Seemann
818768df38 remove the MaybePackAckPacket from the packet packer 2022-09-09 11:39:25 +03:00
Marten Seemann
7bc2ba6b81 simplify packing of long header ACK-only packets 2022-09-09 11:39:25 +03:00
Marten Seemann
2873125c15 move packing of ACK-only short header packets to composeNextPacket 2022-09-09 11:39:25 +03:00
Marten Seemann
c57ea6f276 prioritize sending ACKs over sending new DATAGRAM frames (#3544) 2022-09-09 01:38:38 -07:00
Marten Seemann
63764c429c use a sync.Pool for ACK frames 2022-09-06 14:41:13 +03:00