Commit Graph

181 Commits

Author SHA1 Message Date
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
Marten Seemann
8752576f26 run gofumpt, enable the gofumpt linter 2020-10-26 09:33:35 +07:00
Marten Seemann
598f975024 Merge pull request #2831 from lucas-clemente/draft-32
prepare for draft-32
2020-10-25 22:45:43 +07:00
Marten Seemann
5b80c49582 Merge pull request #2825 from lucas-clemente/update-aead-limit
update the invalid packet limit for AES
2020-10-25 22:44:20 +07:00
Marten Seemann
e1f56127df only use the conn ID backwards compatibility mode with draft-29 2020-10-22 20:33:17 +07:00
Marten Seemann
6684aded0c add version constants for draft-29 and draft-32 2020-10-22 20:33:16 +07:00
Marten Seemann
14a5aa831d increase UDP receive buffer size 2020-10-19 10:42:44 +07:00
Marten Seemann
eff36f3057 update the invalid packet limit for AES 2020-10-16 10:51:05 +07:00
Marten Seemann
0615d92ede only send Version Negotiation packets for packets larger than 1200 bytes 2020-10-08 16:22:39 +07:00
Marten Seemann
d5a30225ce use a uint8 to represent the key phase bit 2020-10-06 15:27:56 +07:00
Marten Seemann
cc21f7c648 remove unused protocol.PacketNumberLenInvalid 2020-10-05 13:17:06 +07:00
Marten Seemann
bbd9fa4862 remove the EncryptionUnspecified enum value 2020-10-05 13:17:06 +07:00
Marten Seemann
a063500d73 use a package-level variable to set the key update frequency 2020-09-22 19:55:52 +07:00
Marten Seemann
ea3d32394d read the ECN bits 2020-09-15 10:51:22 +07:00
Marten Seemann
fa4f0a9e7a keep track of ECN counts on received packets 2020-09-14 17:01:34 +07:00
Marten Seemann
45246dad22 count number of failed decryptions, error when lifetime-limit is reached 2020-09-14 14:07:56 +07:00
Marten Seemann
12c9427f43 save dummy packets in the packet history when skipping packet numbers 2020-09-11 11:01:30 +07:00
Marten Seemann
dc3d5618fc use a uint8 for the EncryptionLevel 2020-09-07 14:36:18 +07:00
Marten Seemann
d476067f65 fix overflow of the max_ack_delay when parsing transport parameters 2020-08-20 13:49:33 +07:00
Marten Seemann
a1bb39d6ab introduce a protocol.StatelessResetToken 2020-07-10 19:55:20 +07:00
Marten Seemann
543c1049dd increase the minimum pacing delay to 1ms 2020-06-15 10:14:55 +07:00
Marten Seemann
e7208219a9 reduce the length of the unprocessed packet chan in the session 2020-05-09 09:14:19 +07:00
Marten Seemann
73937e8753 Merge pull request #2349 from lucas-clemente/coalesced-packets
implement sending of coalesced packets
2020-02-20 16:53:33 +07:00
Marten Seemann
5aad7cae5d send coalesced packets 2020-02-20 16:42:56 +07:00
Marten Seemann
643f0b4c67 drop incoming packets when the server's receive queue is full 2020-02-15 16:43:00 +07:00
Marten Seemann
ba095dd3ff delete 0-RTT queues if no Initial is received within 100ms 2020-02-15 15:44:09 +07:00
Marten Seemann
2b7133a6e2 implement a queue for 0-RTT packets 2020-02-15 15:44:08 +07:00
Marten Seemann
8cde4ab638 refactor how session tickets are sent
Previously, RunHandshake() would send the session tickets. Now, the
session initiates the sending of the session ticket. This simplifies the
setup a bit, and it will make it possible to include the RTT estimate in
the session ticket without accessing the RTTStats concurrently.
2020-02-10 17:42:09 +07:00
Marten Seemann
31e4691ffd move congestion controller related constants to the congestion package 2020-01-22 14:40:14 +07:00
Marten Seemann
b1f8b8f25d increase the maximum congestion window to 10000 packets 2020-01-14 16:34:34 +07:00
Marten Seemann
b1fc984306 add a 0-RTT encryption level 2019-12-30 18:39:21 +04:00
Marten Seemann
bd94f21ab0 send keep alive PINGs at least every 20 seconds 2019-11-10 11:06:38 +07:00
Marten Seemann
9f5df74bd1 add a test that protocol.MaxStreamCount has the correct value 2019-11-08 11:42:24 +07:00
Marten Seemann
121795977d implement issuing and retiring of connection IDs 2019-11-05 11:00:07 +07:00
Marten Seemann
011642e471 update the connection ID after sending 10000 packets 2019-11-05 10:59:21 +07:00
Marten Seemann
37600e049d implement the active_connection_id_limit transport parameter 2019-11-05 10:59:21 +07:00
Julien Salleyron
f110af917b Remove QUIC version hint 2019-10-21 17:18:02 +02:00
Julien Salleyron
3c08c885ae Handle new version format 2019-10-13 22:50:53 +02:00
Marten Seemann
5ea33cd31e implement a buffer pool for STREAM frames 2019-09-04 16:55:30 +07:00
Marten Seemann
d02fd5178a adjust the minimum size for stateless resets to the new header format 2019-08-31 12:33:53 +07:00
Marten Seemann
9221149194 simplify how the largest acked is passed to the ackhandler 2019-08-21 14:40:38 +07:00
Marten Seemann
475ba63164 never keep track of more than 500 ACK ranges
This is achieved by deleting the oldest ACK ranges when receiving a
packet that creates a new ACK range such that this limit is exceeded.
2019-08-05 06:55:22 +07:00
Marten Seemann
dc33db1c18 implement the new header format 2019-07-09 13:04:40 +07:00
Marten Seemann
a2a4a216de introduce an absolute key phase, use it for key updates 2019-06-30 17:36:09 +07:00
Marten Seemann
5a9c593463 rename the KeyPhase to KeyPhaseBit 2019-06-30 17:36:09 +07:00
Marten Seemann
a09c045324 initiate a key update after sending / receiving 100000 packets 2019-06-27 10:54:54 +08:00
Marten Seemann
14a31d49a0 add a type for the key phase and use it for header parsing and writing 2019-06-22 20:01:18 +08:00
Marten Seemann
d495b4bada remove unused function GetPacketNumberLength 2019-06-21 20:13:59 +08:00
Marten Seemann
453aa23553 use a varint for the error code in the CONNECTION_CLOSE frame 2019-06-14 17:35:40 +08:00
Marten Seemann
857e4ae9a9 use stream numbers, not stream ids, in the stream maps 2019-06-05 20:01:51 +08:00