Commit Graph

230 Commits

Author SHA1 Message Date
Marten Seemann
443c6148b6 protocol: add string representation for ECN values (#4008) 2023-08-18 17:17:37 -07:00
Marten Seemann
21388c86bb drop support for draft-29 (#3903) 2023-06-21 04:06:44 -07:00
Marten Seemann
7d8db149b6 introduce a buffer pool for large buffers (20k) 2023-06-02 18:35:02 +03: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
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
1f57d4e789 protocol: remove VersionTLS, used during the gQUIC -> TLS 1.3 transition (#3764) 2023-04-19 07:24:34 -07:00
Marten Seemann
f36690ae9c protocol: remove VersionWhatever, previously used for testing (#3763) 2023-04-19 06:19:27 -07: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
870fbe7ab0 migrate to Ginkgo v2 2022-10-11 16:38:44 +04: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
4cbb4f8114 remove ConnectionID.Equal function
Connection IDs can now be compared with ==.
2022-08-29 11:30:32 +03:00
Marten Seemann
1aced95d41 use an array instead of a byte slice for Connection IDs 2022-08-29 11:30:31 +03:00
Marten Seemann
53412e9ba3 trace arbitrary length Connection IDs for Version Negotiation packets 2022-08-29 10:58:33 +03:00
Marten Seemann
21b9ef03be add a type for arbitrary length Connection IDs, and parsing function
RFC 8999 allows Connection IDs of up to 255 bytes. Current QUIC versions
only use up to 20 bytes.
2022-08-29 10:58:33 +03:00
João Oliveirinha
66f6fe0b71 add support for providing a custom Connection ID generator via Config (#3452)
* Add support for providing a custom ConnectionID generator via Config

This work makes it possible for servers or clients to control how
ConnectionIDs are generated, which in turn will force peers in the
connection to use those ConnectionIDs as destination connection IDs  when sending packets.

This is useful for scenarios where we want to perform some kind
selection on the QUIC packets at the L4 level.

* add more doc

* refactor populate config to not use provided config

* add an integration test for custom connection ID generators

* fix linter warnings

Co-authored-by: Marten Seemann <martenseemann@gmail.com>
2022-08-24 04:06:16 -07:00
Marten Seemann
bad60f3c27 add the version number for QUIC v2 2022-05-25 15:50:04 +02:00
Marten Seemann
d5961e9d60 update docs to reflect that we support RFC 9221 (Unreliable Datagrams) (#3382) 2022-04-25 04:10:51 -07:00
Marten Seemann
4b17343631 rename the session to connection 2022-03-27 12:50:14 +01:00
Marten Seemann
e71c236232 rename the Session to Connection 2022-03-27 11:27:23 +01:00
Marten Seemann
f51cc93770 drop support for QUIC draft version 32 and 34 2021-07-06 09:50:10 -07:00
Marten Seemann
876bc493cd Merge pull request #3213 from lucas-clemente/remove-retire-bug-compat-mode
remove the RetireBugBackwardsCompatibilityMode
2021-07-06 09:47:18 -07:00
Marten Seemann
9520f242e9 remove unused StripGreasedVersions function
Such a function would defeat the purpose of greasing. Fortunately, we didn't
actually use it anywhere.
2021-06-27 15:00:28 -07:00
Marten Seemann
b2857b5442 remove the RetireBugBackwardsCompatibilityMode 2021-06-26 15:49:02 -07:00
Marten Seemann
68da2c4468 add support for QUIC v1, RFC 9000 2021-05-29 11:56:14 -07:00
Marten Seemann
6b771df453 add support for QUIC v1 2021-05-01 10:05:29 +07:00
Marten Seemann
f5238bf7b1 move the ApplicationErrorCdoe to the qerr package 2021-05-01 09:38:49 +07:00
Marten Seemann
b57a1095c5 update the packet numbers in decoding test to the ones from the draft 2021-04-02 17:06:04 +07:00
Marten Seemann
a15cfd6871 make the initial connection flow control window configurable 2021-03-10 15:04:38 +08:00
Marten Seemann
d9434f523e make the initial stream flow control window configurable 2021-03-10 14:58:15 +08:00
Marten Seemann
db9807d779 Merge pull request #2966 from lucas-clemente/increase-max-datagram-frame-size
increase the maximum size of DATAGRAM frames
2021-03-10 12:08:00 +08:00
Marten Seemann
82ac6dcf6d rename MaxReceivePacketSize to MaxPacketBufferSize
We use the same buffer size for sending and receiving packets.
2021-03-03 12:00:14 +08:00
Marten Seemann
eea0b1eacd rename MaxPacketSizeIPv{4,6} to InitialPacketSizeIPv{4,6} 2021-03-03 12:00:14 +08:00
Marten Seemann
3e8e6b2e36 fix documentation of the default MaxReceiveConnectionFlowControlWindow 2021-03-01 11:33:42 +08:00
Marten Seemann
be4dc49114 fix documentation of the default MaxReceiveStreamFlowControlWindow 2021-03-01 11:33:15 +08:00
Marten Seemann
fd724f8d16 Merge pull request #3036 from lucas-clemente/no-0x-in-conn-id
log connection IDs without the 0x prefix
2021-02-13 19:33:03 +08:00
Marten Seemann
d5025b1373 add a version number for draft-34 2021-02-11 09:46:00 +08:00
Marten Seemann
6ece64d8a5 log connection IDs without the 0x prefix 2021-02-11 09:45:40 +08:00
Marten Seemann
86cec07568 remove the Max0RTTQueueLen and the MaxUndecrytablePackets by 1
Using values below a power of 2 might improve memory allocation.
2021-01-09 13:35:19 +08:00
Marten Seemann
ef87f15ecb increase the maximum size of DATAGRAM frames 2020-12-30 12:53:33 +08:00
Marten Seemann
9693a46d31 Merge pull request #2162 from lucas-clemente/datagram
implement the datagram draft
2020-12-17 11:22:40 +07:00
Marten Seemann
486738981f Merge pull request #2905 from lucas-clemente/improve-packet-number-generator
various improvements to the packet number generator
2020-12-15 10:15:31 +07:00
Marten Seemann
4c0f0c47eb Merge pull request #2930 from lucas-clemente/handshake-idle-timeout
introduce a quic.Config.HandshakeIdleTimeout, remove HandshakeTimeout
2020-12-15 08:35:44 +07:00
Marten Seemann
d226f70cd7 allow up to 20 byte for the initial connection IDs 2020-12-14 11:32:43 +07:00
Marten Seemann
98145368cd implement receiving of DATAGRAM frames 2020-12-09 15:31:23 +07:00
Marten Seemann
fdaac4f32e send the max_datagram_frame_size transport parameter 2020-12-09 15:31:23 +07:00
Marten Seemann
d6eff22f9a introduce a sentinel ByteCount value 2020-12-09 15:31:23 +07:00
Marten Seemann
595f6f814a introduce a quic.Config.HandshakeIdleTimeout, remove HandshakeTimeout 2020-12-08 16:12:39 +07:00
Marten Seemann
431dff2172 reduce the number of skipped packet numbers for long connections 2020-12-06 12:54:39 +07:00
Marten Seemann
33c7588b18 reduce the maximum number of ACK ranges 2020-11-20 13:43:38 +07:00
Marten Seemann
2839cbdcff make it possible to set VersionTLS to a draft version
Go doesn't allow duplicate cases in a switch statement.
2020-11-02 11:29:42 +07:00