Commit graph

890 commits

Author SHA1 Message Date
Marten Seemann
fdaac4f32e send the max_datagram_frame_size transport parameter 2020-12-09 15:31:23 +07:00
Marten Seemann
fd41e8fa62 reject DATAGRAM frames if datagram support is not enabled 2020-12-09 15:31:23 +07:00
Marten Seemann
231bc918d4 implement packing of DATAGRAM frames 2020-12-09 15:31:23 +07:00
Marten Seemann
e951646fb6 tell if a peer supports DATAGRAM frames in the ConnectionState 2020-12-09 15:31:23 +07:00
Marten Seemann
356c69944e return a quic.ConnectionState from Session.ConnectionState() 2020-12-09 15:31:23 +07:00
Marten Seemann
021f70aac5 implement the max_datagram_frame_size transport parameter 2020-12-09 15:31:23 +07:00
Marten Seemann
ca671ac325 remove unnecessary call to time.Now() when sending a packet 2020-12-06 09:25:19 +07:00
Marten Seemann
02b700804f remove support for quic-trace 2020-12-05 23:13:45 +07:00
Marten Seemann
afe287e1e0
Merge pull request #2897 from lucas-clemente/immediately-delete-stateless-reset-tokens
immediately remove reset tokens when retiring a connection ID
2020-12-04 10:14:28 +07:00
Marten Seemann
33e818f5e9 log sent packet before logging its congestion / loss recovery effects 2020-11-29 12:30:01 +07:00
Marten Seemann
05066ae877 immediately remove reset tokens when retiring a connection ID 2020-11-22 10:21:20 +07:00
Marten Seemann
0d5de40d45 only trace dropped 0-RTT packets when a tracer is set 2020-11-11 17:13:56 +07:00
Marten Seemann
3cd8b30ea6
Merge pull request #2856 from lucas-clemente/conn-id-update-handshake-completion
wait until the handshake is complete before updating the connection ID
2020-11-10 20:52:09 +07:00
Marten Seemann
e8a9888f25
Merge pull request #2857 from lucas-clemente/fix-spa-conn-id-handling
only check the SCID for Initial packets
2020-11-10 20:51:28 +07:00
Marten Seemann
0c2f562411 allow an amplification factor of 3.x 2020-11-06 14:16:11 +07:00
Marten Seemann
337e2171ef only check the SCID for Initial packets
There's no risk that Handshake packets could be injected by an attacker.
2020-11-02 16:24:02 +07:00
Marten Seemann
80534c0944 wait until the handshake is complete before updating the connection ID 2020-11-02 16:21:38 +07:00
Marten Seemann
676d43a5e9 remove incorrect log line about retirement of preferred address conn ID 2020-11-02 16:08:12 +07:00
Marten Seemann
c968b18a21 select the H3 ALPN based on the QUIC version in use (for the H3 server) 2020-10-29 13:44:23 +07:00
Marten Seemann
8752576f26 run gofumpt, enable the gofumpt linter 2020-10-26 09:33:35 +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
145e7b10d0
Merge pull request #2811 from lucas-clemente/fix-first-key-update
allow the first key update immediately after handshake confirmation
2020-10-06 20:23:19 +07:00
Marten Seemann
55a07c34ee add the exhaustive linter 2020-10-05 13:47:57 +07:00
Marten Seemann
b9090d71ae rename cryptoSetup.DropHandshakeKeys() to SetHandshakeConfirmed() 2020-09-30 12:14:16 +07:00
Marten Seemann
b4636469fa refactor confirmation of the handshake 2020-09-30 12:05:33 +07:00
Marten Seemann
e0cfbd86d5 fix logging of received Retry packets 2020-09-25 15:23:40 +07:00
Marten Seemann
9d4b4f6bf0 check that the peer updated its keys when acknowledging a key update 2020-09-15 13:37:48 +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
a528c4c4da close session on errors unpacking errors other than decryption errors 2020-09-09 23:59:24 +07:00
Marten Seemann
89417ab5ca simplify the connection, rename it to sendConn 2020-08-09 19:24:04 +07:00
Marten Seemann
8db76ab9c2 only arm the application data PTO timer after the handshake is confirmed 2020-07-27 16:40:21 +07:00
Marten Seemann
741dc28d74 move the RTTStats to the utils package
The RTTStats are used by the logging package. In order to instrument the
congestion package, the RTTStats can't be part of that package any more
(to avoid an import loop).
2020-07-23 11:53:08 +07:00
Marten Seemann
0d4aa4b34f introduce a function receivedPacket.Size() 2020-07-15 19:30:10 +07:00
Marten Seemann
a1bb39d6ab introduce a protocol.StatelessResetToken 2020-07-10 19:55:20 +07:00
Marten Seemann
0ef1b2f92e pass around the stateless reset token directly, not pointers to it
Benchmarks show that it's actually faster to make a copy of this 16 byte
array than passing around a pointer to it.
2020-07-10 19:44:57 +07:00
Marten Seemann
1f676c2a6c use an errors.As comparison to detect stateless resets in the session 2020-07-10 19:43:54 +07:00
Marten Seemann
f93708aca8 introduce a logging.CloseReason to log the reason a session was closed
This also allows us to get rid of the ReceivedStatelessReset() method.
2020-07-10 19:23:32 +07:00
Marten Seemann
7d6ce4ea45 rename the logging.CloseReason to TimeoutReason 2020-07-10 19:17:21 +07:00
Marten Seemann
f16d474e7c
Merge pull request #2664 from lucas-clemente/move-versions-out-of-the-header
move the SupportedVersions slice out of the wire.Header
2020-07-10 18:24:46 +07:00
Marten Seemann
61d8e111b1 don't send write error in CONNECTION_CLOSE frames 2020-07-09 18:09:20 +07:00
Marten Seemann
993d71fd56 move the SupportedVersions slice out of the wire.Header 2020-07-09 12:05:33 +07:00
Marten Seemann
25db2166dd enforce that a conn ID is not retired in a packet that uses that conn ID 2020-07-08 12:06:57 +07:00
Marten Seemann
ed120f670c add logging aliases for frames, create a logging.STREAM and CRYPTO frame 2020-07-06 09:21:32 +07:00
Marten Seemann
fa07078d81 rename DataBlockedFrame.DataLimit to MaximumData 2020-07-02 16:41:43 +07:00
Marten Seemann
f4519cfd32 rename MaxDataFrame.ByteOffset to MaximumData 2020-07-02 16:41:43 +07:00
Marten Seemann
4121ea84f4 rename the logging.Tracer to ConnectionTracer 2020-07-01 16:57:01 +07:00
Marten Seemann
7f6eca84da replace the logging.Export() method by a Close() method 2020-07-01 16:54:44 +07:00
Marten Seemann
7fdace490c rename qlogger (member) variables to tracer 2020-07-01 16:53:45 +07:00
Marten Seemann
78ba619a0b split the qlog package into a logging and a qlog package 2020-07-01 16:49:24 +07:00