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