Marten Seemann
cc59aa0d2e
fix evalution of DEBUG flag in integration test workflow
2021-03-19 10:49:45 +08:00
Marten Seemann
522cad0ba8
Merge pull request #3089 from lucas-clemente/rename-flow-control-configs
...
rename config values for flow control limits
2021-03-17 17:49:18 +08:00
Marten Seemann
e5a83e1409
Merge pull request #3086 from lucas-clemente/accept-0rtt-on-stream-limit-increase
...
allow 0-RTT resumption if the server's stream limit was increased
2021-03-16 23:15:55 +08:00
Marten Seemann
7ea53e6c2c
rename the Config values for Max{Stream, Connection}ReceiveWindow
2021-03-16 23:15:18 +08:00
Marten Seemann
354bbb0e2e
rename the Config values for Initial{Stream, Connection}ReceiveWindow
2021-03-16 23:15:18 +08:00
Marten Seemann
f51eff48e9
Merge pull request #3093 from lucas-clemente/improve-packet-info
...
cache the serialized OOB in the conn, not in the packet info
2021-03-16 22:18:25 +08:00
Marten Seemann
74730c0083
Merge pull request #3094 from lucas-clemente/pktinfo-codepoint
...
use code points from x/sys/unix for PKTINFO syscalls
2021-03-16 22:18:02 +08:00
Marten Seemann
5073e300a6
Merge pull request #3092 from lucas-clemente/version-negotiation-failure-logging
...
make it possible to detect version negotiation failures in logging, fix qlogging of those
2021-03-16 22:17:34 +08:00
Marten Seemann
59eb3ed2fb
Merge pull request #3083 from lucas-clemente/configure-initial-flow-control-window
...
make the initial stream / connection flow control windows configurable
2021-03-16 22:17:08 +08:00
Marten Seemann
1d2756f9f7
Merge pull request #3085 from lucas-clemente/client-hold-tp-until-handshake-completion
...
only apply server's transport parameters after handshake completion
2021-03-16 22:16:46 +08:00
Marten Seemann
213304b597
Merge pull request #3087 from lucas-clemente/fix-update-send-window-doc
...
fix documentation for baseFlowController.UpdateSendWindow
2021-03-16 22:16:23 +08:00
Marten Seemann
8f42b1e45d
Merge pull request #3091 from lucas-clemente/http3-response-content-length
...
set the Content-Length for HTTP/3 responses
2021-03-16 22:16:09 +08:00
Marten Seemann
6102a9b308
Merge pull request #3088 from lucas-clemente/update-flow-control-for-0rtt-streams
...
update the flow control windows of streams opened in 0-RTT
2021-03-16 22:15:53 +08:00
Marten Seemann
4f94be16ee
use code points from x/sys/unix
2021-03-16 14:43:35 +08:00
Marten Seemann
162cb16b31
cache the serialized OOB in the conn, not in the packet info
...
We're allocating a lot of packetInfo structs during the lifetime of a
connection. It's better to keep that struct as small as possible.
2021-03-16 14:04:15 +08:00
Marten Seemann
1186a3ed79
fix file name for the oobConn tests
2021-03-16 13:52:46 +08:00
Marten Seemann
e9ea484aa4
Merge pull request #3067 from rs/packetinfo
...
Use the correct source IP when binding multiple IPs
2021-03-16 10:05:17 +08:00
Olivier Poitrey
eb6bdfdfc1
Use the correct source IP when binding multiple IPs
...
When the server is listening on multiple interfaces or interfaces with
multiple IPs, the outgoing datagrams are sometime delivered with the
wrong source IP address.
In order to fix that, each quic connection needs to extract the
destination IP (and optionally interface id) of the received datagrams,
and set it as source IP (and interface) on the sent datagrams.
On most platforms, this can be done using ancillary data with recvmsg()
and sendmsg(). Some of the machinery for this is already there for ECN,
this change extends it to read the destination IP info and write it to
the outgoing packets.
Fix #1736
2021-03-16 00:50:05 +01:00
Marten Seemann
d468a79339
fix qlogging of version mismatches on the connection_closed event
2021-03-15 13:36:49 +08:00
Marten Seemann
5208845191
introduce a logging.CloseReason for version negotiation errors
2021-03-15 13:36:45 +08:00
Marten Seemann
29f02e1bda
set the Content-Length for HTTP/3 responses
2021-03-15 13:09:09 +08:00
Marten Seemann
7cd4dea764
update the flow control windows of streams opened in 0-RTT
...
The server might have increased the initial flow control window. We need
to make sure to inform all streams opened during during the 0-RTT
period.
2021-03-12 15:09:50 +08:00
Marten Seemann
c27f5a55b3
rename sendStream.handleMaxStreamDataFrame to updateSendWindow
2021-03-12 13:36:23 +08:00
Marten Seemann
48a457601d
fix documentation for baseFlowController.UpdateSendWindow
2021-03-11 21:59:53 +08:00
Marten Seemann
3588cddd43
allow 0-RTT resumption if the server's stream limit was increased
2021-03-11 21:37:40 +08:00
Marten Seemann
3bce408c8d
Merge pull request #3074 from lucas-clemente/fix-0rtt-queue-race
...
fix race condition when receiving 0-RTT packets
2021-03-11 21:36:04 +08:00
Marten Seemann
2bd316b89e
store 0-RTT queues in the packet handler map
...
This prevents a race condition between receiving of 0-RTT packets and
the creation of new session.
2021-03-11 21:16:50 +08:00
Marten Seemann
ecc86aa1ab
refactor session creation in the server
2021-03-11 21:05:41 +08:00
Marten Seemann
bab0384444
use a tracer to check for received 0-RTT packet in 0-RTT integration tests
2021-03-11 21:05:41 +08:00
Marten Seemann
7042ef8f8f
simplify 0-RTT integration tests
2021-03-11 21:05:41 +08:00
Marten Seemann
7676e455c5
add a function to tell if a packet is a 0-RTT packet
2021-03-11 21:05:41 +08:00
Marten Seemann
b2c2e4940f
Merge pull request #3066 from lucas-clemente/zero-rtt-rejection
...
require the application to handle 0-RTT rejection
2021-03-11 21:04:14 +08:00
Marten Seemann
d970a1027d
only apply server's transport parameters after handshake completion
...
On the client side, 0-RTT packets have to be sent using the old
transport parameters. We're only allowed to use the updated values for
1-RTT packets.
2021-03-11 18:58:22 +08:00
Marten Seemann
a15cfd6871
make the initial connection flow control window configurable
2021-03-10 15:04:38 +08:00
Marten Seemann
d9434f523e
make the initial stream flow control window configurable
2021-03-10 14:58:15 +08:00
Marten Seemann
9dcb56b76f
Merge pull request #2893 from lucas-clemente/clean-up-workflow
...
clean up the GitHub Action unit test workflow
2021-03-10 12:32:37 +08:00
Marten Seemann
f7bb5c9551
Merge pull request #3059 from lucas-clemente/github-actions-debug
...
add a debug option to the GitHub Action integrationtest workflow
2021-03-10 12:31:23 +08:00
Marten Seemann
af284030e9
clean up the GitHub Action unit test workflow
2021-03-10 12:23:03 +08:00
Marten Seemann
20018c836b
Merge pull request #3081 from mengelbart/datagram-queue-deadlock
...
add an internal queue to signal that a datagram frame has been dequeued
2021-03-10 12:21:06 +08:00
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
Mathis Engelbart
bcc7baf111
add an internal queue to signal that a datagram frame has been dequeued
2021-03-09 18:53:20 +01:00
Marten Seemann
f8313d868f
return an Err0RTTRejected when the server rejects a 0-RTT connection
2021-03-09 18:02:12 +08:00
Marten Seemann
97ab014479
don't retransmit 0-RTT packets when 0-RTT is rejected
2021-03-09 17:59:49 +08:00
Marten Seemann
8b63039664
add a function to reset the streams map after 0-RTT rejection
2021-03-09 17:59:49 +08:00
Marten Seemann
a04a0072fb
add a function to reset the connection flow controller
2021-03-09 17:59:48 +08:00
Marten Seemann
c741b6fc09
drop STREAM and *_BLOCKED frames from queue when 0-RTT is rejected
2021-03-09 17:59:11 +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