Commit Graph

5259 Commits

Author SHA1 Message Date
Marten Seemann
aea8f7345b make sure the server is stopped before closing all server sessions 2021-01-25 15:28:42 +08:00
Marten Seemann
f1500db062 Merge pull request #3016 from lucas-clemente/increase-send-queue-capacity
increase the size of the send queue
2021-01-23 20:27:19 +08:00
Marten Seemann
b98882d748 Merge pull request #3015 from lucas-clemente/prioritize-receiving-packets
prioritize receiving packets over sending out more packets
2021-01-23 19:39:40 +08:00
Marten Seemann
a1fb80df1b Merge pull request #3017 from lucas-clemente/h3-reenable-key-updates
reenable key updates for HTTP/3
2021-01-23 19:35:58 +08:00
Marten Seemann
bf28ded0bc Merge pull request #3011 from lucas-clemente/fix-undecryptable-packet-error-handling
check for errors after handling each previously undecryptable packet
2021-01-23 19:35:36 +08:00
Marten Seemann
a65b9eedd0 Merge pull request #3013 from lucas-clemente/fix-flaky-streams-map-test
fix flaky streams map test on Windows
2021-01-23 19:35:00 +08:00
Marten Seemann
e1ab2b0cbb Merge pull request #3014 from lucas-clemente/fix-flaky-cancellation-test
fix flaky stream cancelation integration test
2021-01-23 19:34:17 +08:00
Marten Seemann
3cba36b16b Merge pull request #3018 from lucas-clemente/preallocate-payload-frames
preallocate a slice of one frame when packing a packet
2021-01-23 19:33:59 +08:00
Marten Seemann
e59ea9d5f5 preallocate a slice of one frame when packing a packet
The majority of packets will contain only one STREAM frame.  We should make
sure that we don't need to grow the slice in the common case.
2021-01-20 17:52:32 +08:00
Marten Seemann
e4dab7fb37 reenable key updates for HTTP/3
Chrome was recently updated to v88, which is able to handle key updates
correctly.
2021-01-20 14:51:42 +08:00
Marten Seemann
37337597bd increase the size of the send queue 2021-01-20 14:45:18 +08:00
Marten Seemann
281e8ca7c0 prioritize receiving packets over sending out more packets 2021-01-20 12:47:56 +08:00
Marten Seemann
8e7a4fe13f fix flaky stream cancelation integration test 2021-01-20 12:38:41 +08:00
Marten Seemann
08f7cceea2 fix flaky streams map test on Windows 2021-01-20 11:45:06 +08:00
Marten Seemann
ccf8f6c0f4 check for errors after handling each previously undecryptable packet 2021-01-20 10:37:04 +08:00
Marten Seemann
53b1cbb501 Merge pull request #3010 from lucas-clemente/allow-acks-when-pacing-limited
allow sending of ACKs when pacing limited
2021-01-19 20:21:18 +08:00
Marten Seemann
e1b609cd18 Merge pull request #3004 from lucas-clemente/fix-qlog-payload-length
fix qlogging of the packet payload length
2021-01-19 17:03:42 +08:00
Marten Seemann
2c2b758dee allow sending of ACKs when pacing limited
An endpoint that is only receiving data won't have an accurate estimate
of the congestion window, and therefore derive a very low pacing
frequency.
In this situation it still needs to be able to send frequent ACKs to the
peer in order to allow full utilization of the bandwidth. We therefore
need to allow ACKs even when pacing-limited.
2021-01-19 11:49:31 +08:00
Marten Seemann
bd48ae50ed fix qlogging of the packet payload length 2021-01-19 11:09:34 +08:00
Marten Seemann
26039f20a5 Merge pull request #3007 from lucas-clemente/fix-flaky-mitm-test
corrupt more ACKs in the MITM test
2021-01-19 11:08:28 +08:00
Marten Seemann
70fe7be603 corrupt more ACKs in the MITM test 2021-01-18 19:48:16 +08:00
Marten Seemann
492429aed5 Merge pull request #3005 from lucas-clemente/fix-flaky-key-update-test
fix flaky key update integration test
2021-01-18 18:50:56 +08:00
Marten Seemann
bef8207bf6 fix flaky key update integration test 2021-01-18 15:44:09 +08:00
Marten Seemann
99220e15fc Merge pull request #3003 from lucas-clemente/fix-stream-cancellation
immediately complete streams that were canceled, drop retransmissions
2021-01-18 10:30:50 +08:00
Marten Seemann
06dfb86822 Merge pull request #2971 from lucas-clemente/send-queue-non-blocking
stop generating new packets when the send queue is full
2021-01-17 16:43:47 +08:00
Marten Seemann
a7f1615c4b Merge pull request #2993 from lucas-clemente/response-writer-data-streamer
allow access to the underlying quic.Stream from a http.ResponseWriter
2021-01-17 16:43:14 +08:00
Marten Seemann
b81a6f875b don't generate new packets when the send queue is full 2021-01-17 16:18:17 +08:00
Marten Seemann
f1c6421845 introduce an interface for the send queue, use a mock in session tests 2021-01-17 16:18:17 +08:00
Marten Seemann
e9848fadf9 remove stay print statement from session test 2021-01-17 16:18:03 +08:00
Marten Seemann
b5615db612 complete a stream that has frames in flight if it is canceled 2021-01-17 15:54:33 +08:00
Marten Seemann
3154a3a6d7 Merge pull request #2984 from lucas-clemente/process-all-received-packets
allow receiving of multiple packets before sending a packet
2021-01-17 14:40:25 +08:00
Marten Seemann
868127b6b4 Merge pull request #2940 from lucas-clemente/packet-number-skipping-cryptographic-random
use cryptographic random for determining skipped packet numbers
2021-01-17 14:38:16 +08:00
Marten Seemann
35939b25a9 allow access to the underlying quic.Stream from a http.ResponseWriter 2021-01-17 14:35:21 +08:00
Marten Seemann
219ced5437 allow receiving of multiple packets before sending a packet
By draining the channel holding received packets, we reduce the number
of spurious ACKs we send. We also make sure that sending and receiving
packets is balanced, as we allow sending of a large number of packets
(if we have cwnd available and the pacing frequency is high enough).
2021-01-17 14:26:12 +08:00
Marten Seemann
4bdccca0cf Merge pull request #2980 from lucas-clemente/fix-pacing-deadline-interpretation
fix interpretation of time.Time{} as a pacing deadline
2021-01-16 14:08:27 +08:00
Marten Seemann
33d058f4ee fix interpretation of time.Time{} as a pacing deadline
The pacer returns the zero value of time.Time when a packet can be sent
immediately. The session uses the zero value to unset the pacing
deadline.
2021-01-16 13:35:21 +08:00
Marten Seemann
85980abced Merge pull request #2991 from lucas-clemente/qlog-restored-transport-parameters
qlog restored transport parameters
2021-01-16 13:32:27 +08:00
Marten Seemann
9993e2c9f6 Merge pull request #2982 from lucas-clemente/pkg-go-dev-badge
use a pkg.go.dev instead of a GoDoc badge
2021-01-15 17:15:07 +08:00
Marten Seemann
60805d887f implement qlogging of the parameters_restored event 2021-01-15 17:14:41 +08:00
Marten Seemann
d04662a964 add a RestoredTransportParameters method to the logging interface 2021-01-15 17:13:46 +08:00
Marten Seemann
96dbfbc320 Merge pull request #2988 from lucas-clemente/fix-undecryptable-packet-handling
introduce a separate queue for undecryptable packets
2021-01-15 17:13:00 +08:00
Marten Seemann
a5c20b8a38 Merge pull request #2992 from lucas-clemente/improve-go-generate-comparison-output
use a text-based comparison in the go-generate workflow
2021-01-15 17:07:15 +08:00
Marten Seemann
eea89a521d Merge pull request #2994 from lucas-clemente/golangci-lint-extra-job
run golangci-lint in a separate job
2021-01-15 17:06:50 +08:00
Marten Seemann
fdbd5baed5 Merge pull request #2990 from lucas-clemente/improve-zero-rtt-queue
improve 0-RTT queue
2021-01-15 17:06:35 +08:00
Marten Seemann
cafa7c45d0 Merge pull request #2995 from lucas-clemente/simplify-tp-parsing-switch
simplify switch statement in the transport parameter parser
2021-01-15 17:05:59 +08:00
Marten Seemann
b50933737d Merge pull request #2996 from lucas-clemente/remove-unneeded-overflow-check
remove unneeded overflow check when parsing the max_ack_delay
2021-01-15 17:04:01 +08:00
Marten Seemann
460f7883b0 Merge pull request #2998 from lucas-clemente/remove-unneeded-app-data-packets-check
remove unneeded check in receivedPacketHandler.IsPotentiallyDuplicate
2021-01-15 17:03:43 +08:00
Marten Seemann
c430c27910 Merge pull request #2997 from lucas-clemente/qlog-max-datagram-frame-size
qlog the max_datagram_frame_size transport parameter
2021-01-15 17:03:26 +08:00
Marten Seemann
5eaf327e06 Merge pull request #2987 from lucas-clemente/qlog-draft-02-fixes
qlog draft-02 fixes
2021-01-15 16:57:35 +08:00
Marten Seemann
4f598e0cdc Merge pull request #2981 from lucas-clemente/fix-flaky-qlog-test
fix flaky qlog test
2021-01-15 16:57:18 +08:00