Commit Graph

5235 Commits

Author SHA1 Message Date
Marten Seemann
bef8207bf6 fix flaky key update integration test 2021-01-18 15:44:09 +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
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
Marten Seemann
c5b610f6a5 remove unneeded check in receivedPacketHandler.IsPotentiallyDuplicate
The application data packet number space is never dropped.
2021-01-11 16:56:34 +08:00
Marten Seemann
ec2b9f47ca qlog the max_datagram_frame_size transport parameter 2021-01-11 16:19:05 +08:00
Marten Seemann
2e5c43bef0 remove unneeded overflow check when parsing the max_ack_delay 2021-01-11 15:57:47 +08:00
Marten Seemann
8e94f08ee5 simplify switch statement in the transport parameter parser 2021-01-11 15:29:00 +08:00
Marten Seemann
ec3482d261 run golangci-lint in a separate job 2021-01-11 14:58:56 +08:00
Marten Seemann
018b7dc76d use a text-based comparison in the go-generate workflow 2021-01-09 17:32:53 +08:00
Marten Seemann
86cec07568 remove the Max0RTTQueueLen and the MaxUndecrytablePackets by 1
Using values below a power of 2 might improve memory allocation.
2021-01-09 13:35:19 +08:00
Marten Seemann
7a301aae3d dequeue all 0-RTT packets to the session in one go 2021-01-09 13:34:05 +08:00
Marten Seemann
26565b023b introduce a separate queue for undecryptable packets
We should prioritize the decryption of previously undecryptable packets,
every time a new encryption level becomes available. This is achieved
by introducing a separate queue instead of just putting the packets back
into the receivedPackets channel.
This also allows us to only count every received packet once for the
amplification limit.
2021-01-07 12:58:17 +08:00
Marten Seemann
f28db16df4 fix packet_type logging for packet_lost, packet_dropped and packet_buffered 2021-01-07 11:18:18 +08:00
Marten Seemann
84af90f2f8 qlog the packet size in the newly introduced RawInfo 2021-01-07 11:02:00 +08:00
Marten Seemann
d1c5297c0b Merge pull request #2983 from lucas-clemente/gofumpt-limit-to-go-files
only run gofumpt on .go files in pre-commit hook
2021-01-06 11:05:44 +08:00
Marten Seemann
a6c767183c only run gofumpt on .go files in pre-commit hook 2021-01-06 10:48:41 +08:00
Marten Seemann
4653549266 fix outdated comment for the http3.Server 2021-01-05 11:21:44 +08:00
Marten Seemann
345e6e0ac9 use a pkg.go.dev instead of a GoDoc badge 2021-01-04 15:57:51 +08:00
Marten Seemann
4c079b9ede Merge pull request #2978 from lucas-clemente/fix-openstreamsync-cancelation-test
make the OpenStreamSync cancelation test less flaky
2021-01-04 15:32:19 +08:00
Marten Seemann
b022d04b0f make the OpenStreamSync cancelation test less flaky 2021-01-04 15:12:49 +08:00
Marten Seemann
405297ba8d fix flaky qlog test 2021-01-04 14:29:47 +08:00
Marten Seemann
6a7f1de261 Merge pull request #2979 from lucas-clemente/pre-commit-hook
add some useful pre-commit hooks
2021-01-03 21:00:51 +08:00
Marten Seemann
12571e3668 add a pre-commit hook that check that files are properly gofumpt-ed 2021-01-02 18:27:18 +08:00
Marten Seemann
c4789ccb28 add a pre-commit hook that checks that tests are not focussed 2021-01-02 18:02:20 +08:00
Marten Seemann
d9c7467b56 Merge pull request #2973 from lucas-clemente/publicize-varint
publicize QUIC varint reading and writing
2021-01-02 12:05:53 +08:00
Marten Seemann
5e7fb50223 Merge pull request #2962 from lucas-clemente/skip-scheme-check
add a http3.RoundTripOpt to skip the request scheme check
2021-01-02 12:05:19 +08:00
Marten Seemann
c78634df38 add a http3.RoundTripOpt to skip the request scheme check
Otherwise, we'll only be able to issue https requests. This is what we
usually want, but for MASQUE support, the URL will be of the form
masque://example.org.
2021-01-02 10:21:18 +08:00