Commit Graph

5132 Commits

Author SHA1 Message Date
Marten Seemann
c7d3aeea3d move the transport parameter stream limit check to the parser 2020-12-18 13:00:33 +07:00
Marten Seemann
6217ec55fd remove stray comment in the streams map 2020-12-18 12:34:04 +07: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
c20a9247e1 Merge pull request #2937 from lucas-clemente/fix-bytes-in-flight-tracing-after-ack
fix logging of bytes_in_flight when receiving an ACK
2020-12-16 10:21:57 +07:00
Marten Seemann
25ffbbe4d8 Merge pull request #2939 from lucas-clemente/trace-dropped-packets-due-to-chan-overflow
trace when a packet is dropped because the receivedPackets chan is full
2020-12-16 10:21:28 +07:00
Marten Seemann
7c2e938684 trace when a packet is dropped because the receivedPackets chan is full 2020-12-15 15:20:13 +07:00
Marten Seemann
d3abf0ec3f fix logging of bytes_in_flight when receiving an ACK
The tracing call needs to be issued after subtracting acknowledged and
lost packets from the bytes_in_flight.
2020-12-15 12:04:12 +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
be476d90e0 Merge pull request #2936 from lucas-clemente/initial-conn-ids
allow up to 20 byte for the initial connection IDs
2020-12-14 23:39:51 +07:00
Marten Seemann
a769e8221b Merge pull request #2932 from lucas-clemente/undecryptable-packets-allocation
reduce memory footprint of undecryptable packet handling
2020-12-14 23:36:03 +07:00
Marten Seemann
4f84c1b85a Merge pull request #2934 from lucas-clemente/use-buffer-for-retries
use a buffer from the pool for composing Retry packets
2020-12-14 23:35:29 +07:00
Marten Seemann
f410eadb2c Merge pull request #2935 from lucas-clemente/release-buffer-on-connection-close
release the packet buffer after sending a CONNECTION_CLOSE in the server
2020-12-14 23:31:46 +07:00
Marten Seemann
019850efd6 use a buffer from the pool for composing Retry packets 2020-12-14 11:55:42 +07:00
Marten Seemann
fb995161e7 release the packet buffer after sending a CONNECTION_CLOSE in the server 2020-12-14 11:51:09 +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
c8626d89e5 assert that no undecryptable packets are queueud after the handshake 2020-12-11 12:17:04 +07:00
Marten Seemann
02139a4743 delete the slice of undecrytable packets when the handshake completes 2020-12-11 12:13:21 +07:00
Marten Seemann
736af5698a don't preallocate a slice for undecryptable packets
Under normal conditions, we don't expect to receive any undecryptable
packets. We expect to receive a few when there's packet loss and / or
reordering during the handshake, but even in that case the number will
most likely be smaller than protocol.MaxUndecryptablePackets.
2020-12-11 12:12:17 +07:00
Marten Seemann
1728a6c90c add an integration test for datagram transfers 2020-12-09 15:47:24 +07:00
Marten Seemann
98145368cd implement receiving of DATAGRAM frames 2020-12-09 15:31:23 +07:00
Marten Seemann
791f896f80 implement sending of datagrams 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
fd41e8fa62 reject DATAGRAM frames if datagram support is not enabled 2020-12-09 15:31:23 +07:00
Marten Seemann
913ddc5081 add a quic.Config option for DATAGRAM frames 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
c47ccab930 implement a datagram queue 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
d6eff22f9a introduce a sentinel ByteCount value 2020-12-09 15:31:23 +07:00
Marten Seemann
c4de242751 add a MaxDataLen function for DATAGRAM frames 2020-12-09 15:31:23 +07:00
Marten Seemann
0582228e00 make it possible to log DATAGRAM frames 2020-12-09 15:31:23 +07:00
Marten Seemann
eefd2b73f7 implement parsing and writing of the DATAGRAM frames 2020-12-08 20:16:32 +07:00
Marten Seemann
595f6f814a introduce a quic.Config.HandshakeIdleTimeout, remove HandshakeTimeout 2020-12-08 16:12:39 +07:00
Marten Seemann
deacefdd34 Merge pull request #2891 from lucas-clemente/move-integration-tests-to-github-actions
move integration tests to GitHub Actions, disable Travis
2020-12-08 16:02:48 +07:00
Marten Seemann
02bdce9c05 move integration tests to GitHub Actions, disable Travis 2020-12-08 15:17:17 +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
416d88990b only skip packet numbers in the application data packet number space 2020-12-06 12:54:39 +07:00
Marten Seemann
e8e6c7b47e use non-cryptographic random to generate skipped packet numbers 2020-12-06 12:54:39 +07:00
Marten Seemann
325bc1694d Merge pull request #2927 from lucas-clemente/avoid-syscall
use golang.org/x/sys/unix instead of syscall
2020-12-06 12:19:23 +07:00
Marten Seemann
2525abb2c5 Merge pull request #2921 from lucas-clemente/qlog-connection-closed
add support for the connection_closed qlog event
2020-12-06 12:14:38 +07:00
Marten Seemann
f59cd928f8 use golang.org/x/sys/unix instead of syscall 2020-12-06 12:06:15 +07:00
Marten Seemann
2bf6c6aea4 add support for the connection_closed qlog event 2020-12-06 12:01:54 +07:00
Marten Seemann
2a52a9f9f0 Merge pull request #2863 from lucas-clemente/qlog-token-logging
qlog tokens in NEW_TOKEN frames, Retry packets and Initial packets
2020-12-06 11:44:02 +07:00
Marten Seemann
b83e156e9f log tokens in NEW_TOKEN frames, Retry packets and Initial packets 2020-12-06 11:26:37 +07:00
Marten Seemann
b623a10b54 Merge pull request #2758 from lucas-clemente/qlog-packet-type
qlog the packet_type as part of the packet header, not the event itself
2020-12-06 11:20:03 +07:00
Marten Seemann
a7ddb348d4 Merge pull request #2736 from lucas-clemente/qlog-ndjson
use the new, streaming-friendly NDJSON-based qlog encoding
2020-12-06 11:19:39 +07:00
Marten Seemann
dd93d9640c use the new, streaming-friendly NDJSON-based qlog encoding 2020-12-06 11:04:13 +07:00
Marten Seemann
4f557317a0 qlog the packet_type as part of the packet header, not the event itself 2020-12-06 10:51:21 +07:00