Marten Seemann
c7d3aeea3d
move the transport parameter stream limit check to the parser
2020-12-18 13:00:33 +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
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
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
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
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
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
5a0ce24265
Merge pull request #2909 from lucas-clemente/qlog-generic-event
...
add a generic Debug() function to the connection tracer
2020-12-06 09:50:25 +07:00
Marten Seemann
ff1f433c36
add a generic Log() function to the connection tracer
2020-12-06 09:33:38 +07:00
Marten Seemann
5048006fc1
Merge pull request #2913 from lucas-clemente/remove-quictrace
...
remove support for quic-trace
2020-12-06 09:23:06 +07:00
Marten Seemann
eae8ad2fbb
Merge pull request #2887 from lucas-clemente/reduce-num-ack-ranges
...
reduce the maximum number of ACK ranges
2020-12-05 23:18:43 +07:00
Marten Seemann
02b700804f
remove support for quic-trace
2020-12-05 23:13:45 +07:00
Marten Seemann
1ade038211
Merge pull request #2899 from lucas-clemente/dont-allocate-for-acked-packets
...
don't allocate for acked packets
2020-12-05 21:08:44 +07:00
Marten Seemann
1beb6f9649
Merge pull request #2898 from lucas-clemente/dont-allocate-for-lost-packets
...
avoid allocating when detecting lost packets
2020-12-05 21:05:45 +07:00
Marten Seemann
95334202c5
fix decoding of packet numbers in different packet number spaces
...
When QUIC abandoned the "stream 0" design, it introduced separate
packet number spaces for packets with different encryption levels.
Packet number compression now also works per packet number space.
The current code doesn't lead to any problems if the peer starts sending
with packet number 0, as we only exchange a few packets in the Initial
and the Handshake packet number space and there's nothing to compress.
It might lead to problems if the peer starts with a large packet number
in one space (which is allowed by the spec), and then starts with a
small packet number in another packet number space.
2020-12-03 23:35:27 +07:00
Marten Seemann
8d14d762e5
cache the slice used when detecting acked packets
2020-11-22 11:39:28 +07:00
Marten Seemann
fb6a536adb
add a unit test for ACK of skipped packet detection
2020-11-22 11:02:48 +07:00
Marten Seemann
85fd5a2ec5
avoid allocating when detecting lost packets
2020-11-22 10:50:49 +07:00
Marten Seemann
ec55b6d9de
rename loop variable
2020-11-22 10:48:12 +07:00
Marten Seemann
655632b116
avoid duplicate mutex locking when reading data
2020-11-20 15:45:38 +07:00
Marten Seemann
5352cd509b
remove unnecessary mutex locking in the stream flow controller
2020-11-20 15:29:55 +07:00
Marten Seemann
33c7588b18
reduce the maximum number of ACK ranges
2020-11-20 13:43:38 +07:00
Marten Seemann
2c975bca54
always use a 2-byte encoding for the packet length of Long Header packets
2020-11-14 17:39:31 +07:00
Marten Seemann
653a107606
implement a function to encode a varint using a fixed length
2020-11-14 16:08:18 +07:00
Marten Seemann
d0cdfc8926
Merge pull request #2865 from lucas-clemente/flow-control-replace-rwmutex
...
replace the RWMutex with a Mutex in the flow controller
2020-11-11 10:45:11 +07:00
Marten Seemann
23e4d15283
Merge pull request #2861 from lucas-clemente/no-viable-path-error
...
add the NO_VIABLE_PATH error
2020-11-10 20:50:40 +07:00
Marten Seemann
3a06c188f6
replace the RWMutex with a Mutex in the flow controller
2020-11-07 10:12:46 +07:00
Marten Seemann
0c2f562411
allow an amplification factor of 3.x
2020-11-06 14:16:11 +07:00
Marten Seemann
96ac98a862
add the NO_VIABLE_PATH error
2020-11-06 12:35:49 +07:00
Marten Seemann
30c91149c2
fill out the http.Response.TLS field
2020-11-02 11:29:42 +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
Marten Seemann
ff639a4d81
Merge pull request #2847 from lucas-clemente/http3-server-multiple-versions
...
set the ALPN based on the QUIC version in the HTTP3 server
2020-10-30 15:12:36 +07:00
Marten Seemann
6d00bdff3f
Merge pull request #2841 from lucas-clemente/pad-server-initials
...
pad datagrams containing ack-eliciting Initial packets sent by the server
2020-10-30 15:12:03 +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
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
876ccd899b
CONNECTION_CLOSE frames are not ack-eliciting
2020-10-25 13:22:33 +07:00