Marten Seemann
8e7a4fe13f
fix flaky stream cancelation integration test
2021-01-20 12:38:41 +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
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