Commit Graph

5363 Commits

Author SHA1 Message Date
Marten Seemann
12a37cdcaf add a debug option to the GitHub Action integrationtest workflow 2021-03-10 12:11:13 +08:00
Marten Seemann
db9807d779 Merge pull request #2966 from lucas-clemente/increase-max-datagram-frame-size
increase the maximum size of DATAGRAM frames
2021-03-10 12:08:00 +08:00
Marten Seemann
eb3e100e80 Merge pull request #3079 from lucas-clemente/remove-broken-conn-id-len-0rtt-test
remove non-functioning 0-RTT test with different conn ID lengths
2021-03-09 17:44:40 +08:00
Marten Seemann
6440908f53 remove non-functioning 0-RTT test with different conn ID lengths 2021-03-09 17:27:10 +08:00
Marten Seemann
5a3fd58186 Merge pull request #3073 from lucas-clemente/reject-0rtt-before-transport-parameters
reject 0-RTT before handling transport parameters
2021-03-09 16:53:06 +08:00
Marten Seemann
bab88b4727 reject 0-RTT before handling transport parameters 2021-03-09 16:36:33 +08:00
Marten Seemann
3b6f118fda Merge pull request #3078 from lucas-clemente/remove-structs-equal
remove stray struct equality check
2021-03-09 16:30:30 +08:00
Marten Seemann
1113892489 remove stray struct equality check
This check was moved to qtls.
2021-03-09 16:17:41 +08:00
Marten Seemann
506281b904 Merge pull request #3058 from lucas-clemente/fix-0rtt-conn-id-issuing
fix issuing of connection IDs when dialing a 0-RTT connections
2021-03-09 16:11:17 +08:00
Marten Seemann
13ad4ce48b Merge pull request #3070 from lucas-clemente/fix-0rtt-rejected-on-hrr
only call the Rejected0RTT() callback on HRR when 0-RTT was tried
2021-03-09 16:08:57 +08:00
Marten Seemann
c802ebe026 Merge pull request #3060 from lucas-clemente/check-active-conn-id-limit-for-0rtt
only accept 0-RTT it the active_connection_id_limit didn't change
2021-03-09 15:58:53 +08:00
Marten Seemann
33037be2ed only call the Rejected0RTT() callback on HRR when 0-RTT was tried 2021-03-09 15:57:26 +08:00
Marten Seemann
f58b4560a3 Merge pull request #3072 from lucas-clemente/max-streams-frame-error
remove unused error return value from HandleMaxStreamsFrame
2021-03-09 15:45:32 +08:00
Marten Seemann
547de4cb51 Merge pull request #3068 from lucas-clemente/fix-flaky-accept-queue-test
fix flaky accept queue integration test
2021-03-09 15:44:33 +08:00
Marten Seemann
bd8e2412d9 Merge pull request #3069 from lucas-clemente/run-go-mod-tidy
use Go 1.16 in the linting workflow, run go mod tidy using Go 1.16
2021-03-09 15:43:42 +08:00
Marten Seemann
b8358dc2bb Merge pull request #3063 from lucas-clemente/dont-reset-qpack-streams
don't reset the QPACK encoder / decoder streams
2021-03-08 18:08:02 +08:00
Marten Seemann
8a0b1dd78d remove unused error return value from HandleMaxStreamsFrame 2021-03-07 12:36:50 +08:00
Marten Seemann
be7fe3306c Merge pull request #3071 from VinozzZ/master
remove incorrect logging for client side retry packet
2021-03-05 23:47:29 +08:00
Yingrong Zhao
4e1cca5d76 remove incorrect logging for client side retry packet 2021-03-05 09:49:56 -05:00
Marten Seemann
3a41dd00d3 use Go 1.16 in the linting workflow, run go mod tidy using Go 1.16 2021-03-05 13:28:37 +08:00
Marten Seemann
67503f9d41 fix flaky accept queue integration test 2021-03-05 11:55:45 +08:00
Kévin Dunglas
3b916f2e80 allow sending 1xx responses (#3047)
Currently, it's not possible to send informational responses such as 103 Early Hints or 102 Processing.

This patch allows calling WriteHeader() multiple times in order to send informational responses before the final one.
It follows the patch for HTTP/1 (golang/go#42597) and HTTP/2 (golang/net#96).

In conformance with RFC 8297, if the status code is 103 the current content of the header map is also sent. Its content is not removed after the call to WriteHeader() because the headers must also be included in the final response.

The Chrome and Fastly teams are starting a large-scale experiment to measure the real-life impact of the 103 status code.
Using Early Hints is proposed as a (partial) alternative to Server Push, which are going to be removed from Chrome: https://groups.google.com/a/chromium.org/g/blink-dev/c/K3rYLvmQUBY/m/21anpFhxAQAJ

Being able to send this status code from servers implemented using Go would help to see if implementing it in browsers is worth it.
2021-03-05 10:03:31 +08:00
Marten Seemann
6f32d2df1d don't reset the QPACK encoder / decoder streams
We don't need these streams, since our QPACK implementation doesn't use the
dynamic table yet. However, we MUST NOT close / reset these streams. Instead,
just ignore them.
2021-03-04 11:14:00 +08:00
Marten Seemann
f513437854 Merge pull request #3062 from lucas-clemente/fix-retry-draft-34
fix retry key and nonce for draft-34
2021-03-04 11:13:34 +08:00
Marten Seemann
048543bd50 set the TIMESCALE_FACTOR for integration tests on CircleCI and GitHub Actions 2021-03-04 10:45:27 +08:00
Marten Seemann
543d144690 Merge pull request #3028 from lucas-clemente/dplpmtud
implement DPLPMTUD
2021-03-03 23:04:22 +08:00
Marten Seemann
bd172b2a5a fix retry key and nonce for draft-34 2021-03-03 23:01:42 +08:00
Marten Seemann
35da77afd1 only accept 0-RTT it the active_connection_id_limit didn't change 2021-03-03 21:52:45 +08:00
Marten Seemann
10217a6f3b fix issuing of connection IDs when dialing a 0-RTT connections
When dialing a 0-RTT connection, the client first restores the transport
parameters from the original connection, and then applies the transport
parameters provided by the server on the new connections.
2021-03-03 14:10:06 +08:00
Marten Seemann
765d26f132 don't reduce the congestion window when a path MTU probe packet is lost 2021-03-03 12:00:52 +08:00
Marten Seemann
ac87292e87 start path MTU discovery when the handshake completes 2021-03-03 12:00:51 +08:00
Marten Seemann
cb1eab22de add a quic.Config option to disable Path MTU discovery 2021-03-03 12:00:14 +08:00
Marten Seemann
142071253d add a method to update the packer's max packet size 2021-03-03 12:00:14 +08:00
Marten Seemann
c6ae91a8cf introduce a mtuDiscoverer interface 2021-03-03 12:00:14 +08:00
Marten Seemann
04642c9e4d add a MTU discoverer that performs a binary search to determine the MTU 2021-03-03 12:00:14 +08:00
Marten Seemann
82ac6dcf6d rename MaxReceivePacketSize to MaxPacketBufferSize
We use the same buffer size for sending and receiving packets.
2021-03-03 12:00:14 +08:00
Marten Seemann
fb5a45ac53 implement a function to pack MTU probe packets 2021-03-03 12:00:14 +08:00
Marten Seemann
91a314258d use the actual maximum packet size in the pacer 2021-03-03 12:00:14 +08:00
Marten Seemann
dd8b21f264 use the actual maximum packet size in the Reno congestion controller 2021-03-03 12:00:14 +08:00
Marten Seemann
8895a79e30 initialize the slow start threshold to infinity 2021-03-03 12:00:14 +08:00
Marten Seemann
eea0b1eacd rename MaxPacketSizeIPv{4,6} to InitialPacketSizeIPv{4,6} 2021-03-03 12:00:14 +08:00
Marten Seemann
2c45f2b11d Merge pull request #3041 from lucas-clemente/send-immediately-before-handshake-completion
only read multiple packets at a time after handshake completion
2021-03-03 11:55:54 +08:00
Marten Seemann
aa012eca9a Merge pull request #3056 from lucas-clemente/fix-0rtt-key-export
update qtls to a version that doesn't exports 0-RTT when it's rejected
2021-03-03 11:42:34 +08:00
Marten Seemann
53270dde9e only read multiple packets at a time after handshake completion
It's more important that acknowledge packets in a timely manner before
handshake completion. On the server side, we should send out the HANDSHAKE_DONE
frame as soon as possible.
2021-03-03 11:33:00 +08:00
Marten Seemann
575cd3ceb6 update qtls to a version that doesn't export 0-RTT when it's rejected 2021-03-03 11:27:34 +08:00
Marten Seemann
74569a514b Merge pull request #3040 from lucas-clemente/improve-handshake-tests
make the certificate verificiation integration tests more explicit
2021-03-03 00:27:46 +08:00
Marten Seemann
ac16ee565b Merge pull request #3049 from lucas-clemente/mockgen-source-mode
update gomock to v1.5.0, use mockgen source mode
2021-03-02 21:27:48 +08:00
Marten Seemann
1c9977d8d6 Merge pull request #3054 from lucas-clemente/trace-dropped-0rtt-keys
trace dropping of 0-RTT keys
2021-03-02 21:27:32 +08:00
Marten Seemann
40bc7362ef Merge pull request #3042 from lucas-clemente/improve-timeout-test
improve timeout measurement in the timeout test
2021-03-02 21:27:02 +08:00
Marten Seemann
ca18ba6f81 Merge pull request #3052 from lucas-clemente/randomized-packet-receive-test
add a randomized test for the received_packet_history
2021-03-02 21:26:41 +08:00