1696 Commits

Author SHA1 Message Date
Benjamin Saunders 851daec044 Implement simple API 2019-09-28 11:54:08 -07:00
Benjamin Saunders 9c4b21d1e8 Refactor interop tool 2019-09-28 10:23:26 +02:00
Benjamin Saunders eef7900280 Run CI on nightly 2019-09-28 10:23:26 +02:00
stammw f5e014dae1 h3: std futures 2019-09-28 10:23:26 +02:00
Benjamin Saunders 82b9455caf Use multithreaded tokio runtime for server example
Illustrates our support for more typical tokio patterns
2019-09-28 10:23:26 +02:00
Benjamin Saunders d07dc907ad Update for async/await 2019-09-28 10:23:26 +02:00
Benjamin Saunders 399aa2f95a Respect congestion control while handshaking
Not sure why we weren't doing this, but as far as I can tell it's
required.
2019-09-25 09:00:35 +02:00
Benjamin Saunders 0dc23afb85 Test tail loss recovery under congestion 2019-09-25 09:00:35 +02:00
Benjamin Saunders c011e239f5 Draft 23 handshake retransmit, data-bearing probes
Modifies our probe strategy to retransmit in-flight data rather than
sending a PING frame. This gives us a chance of accelerated loss
recovery and allows adoption of the new draft's simplified handshake
retransmit logic.
2019-09-25 09:00:35 +02:00
Dirkjan Ochtman 2afe7f597d Update initial salt and QUIC version to draft 23 2019-09-23 12:25:08 -07:00
Benjamin Saunders 03c3013a52 Draft 23 initial_rtt and PTO 2019-09-22 11:52:20 +02:00
Benjamin Saunders 19c7744c88 Less confusing server behavior on empty Initial 2019-09-22 11:52:20 +02:00
Benjamin Saunders bb81d7eac8 Relax RTT update validation per current reliability draft 2019-09-22 11:52:20 +02:00
Benjamin Saunders 0e6e15ec54 Apply transport parameter grease 2019-09-22 11:52:20 +02:00
Benjamin Saunders 1c825640da Add successful ALPN negotiation test 2019-09-19 08:34:35 +02:00
Benjamin Saunders 9cbf6ea936 Use a valid ALPN configuration in 0-RTT rejection test 2019-09-19 08:34:35 +02:00
Benjamin Saunders 148e549e8b NEW_TOKEN from a client is a PROTOCOL_VIOLATION 2019-09-19 08:34:35 +02:00
Benjamin Saunders 3b01662324 Retransmit 0-RTT on receiving Retry
Receipt of a Retry packet indicates that the server will not process
any data until it receives our next Initial, so previously sent 0-RTT
data is almost certainly lost, bar unlikely reordering. Immediately
retransmitting it is therefore a free performance win.
2019-09-19 08:34:35 +02:00
Benjamin Saunders 38666e799c Enable ECN on migration even if we'd previously given up, NATs aside 2019-09-19 08:34:35 +02:00
Benjamin Saunders 60f0d6c7fa Ack Delay must only be used for intentional delays
We currently always attempt to send acknowledgements immediately.
2019-09-19 08:34:35 +02:00
Benjamin Saunders 0efdce97f9 Recover congestion/rtt state after path validation failure 2019-09-19 08:34:35 +02:00
Benjamin Saunders ac2540651f Improve handling of double migration 2019-09-19 08:34:35 +02:00
Benjamin Saunders 26b01e9662 Don't increase the congestion window on unvalidated paths
Improves our compliance with the defenses against peer address
spoofing in the draft.
2019-09-19 08:34:35 +02:00
Benjamin Saunders 4d065b9028 Update comments 2019-09-19 08:34:35 +02:00
Benjamin Saunders acfdb48899 Draft 23 stateless resets 2019-09-18 07:29:34 +02:00
Benjamin Saunders 22895c559e Implement off-path packet forwarding countermeasure 2019-09-18 07:29:34 +02:00
Benjamin Saunders 6c7889d06b Don't initiate migrations due to reordered packets 2019-09-18 07:29:34 +02:00
Benjamin Saunders e0634cc229 Don't close the connection due to an illegal migration
See https://github.com/quicwg/base-drafts/pull/2893.
2019-09-18 07:29:34 +02:00
Benjamin Saunders e3c9fca34e Fix bad behavior opening streams on a closed connection
The low-level API would unintuitively appear to succeed until the
window is exhausted, at which point the high-level API would yield
futures that would never resolve.
2019-09-18 06:52:44 +02:00
dependabot-preview[bot] 0fd2419e0f Update rcgen requirement from 0.6 to 0.7
Updates the requirements on [rcgen](https://github.com/est31/rcgen) to permit the latest version.
- [Release notes](https://github.com/est31/rcgen/releases)
- [Changelog](https://github.com/est31/rcgen/blob/master/CHANGELOG.md)
- [Commits](https://github.com/est31/rcgen/compare/v0.6.0...v0.7.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-15 22:17:20 -07:00
dependabot-preview[bot] 37de74603c Update rcgen requirement from 0.5 to 0.6
Updates the requirements on [rcgen](https://github.com/est31/rcgen) to permit the latest version.
- [Release notes](https://github.com/est31/rcgen/releases)
- [Changelog](https://github.com/est31/rcgen/blob/master/CHANGELOG.md)
- [Commits](https://github.com/est31/rcgen/compare/v0.5.0...v0.6.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-13 07:01:56 +02:00
stammw 5881196211 H3: Simpler examples 2019-09-10 09:21:51 +02:00
stammw 69a4977267 H3: move some common example code into a shared module 2019-09-10 09:21:51 +02:00
stammw 297c99a9aa H3: minor readabilty tweak 2019-09-10 09:21:51 +02:00
stammw 36dfee6ea7 H3: let client close connection gracefully 2019-09-10 09:21:51 +02:00
stammw accb344fe0 H3: rename Response and Request Builders 2019-09-10 09:21:51 +02:00
stammw 3bd0c6969d H3: prevent extra copy when sending DataFrame 2019-09-10 09:21:51 +02:00
stammw d6b696c192 H3: stream request body from client 2019-09-10 09:21:51 +02:00
stammw 07cc1cc5ae H3: helper function to build response 2019-09-10 09:21:51 +02:00
stammw 6950e350ea H3: introduce builder pattern for client request 2019-09-10 09:21:51 +02:00
stammw 436f1cd511 H3: make sending response error management more ergonomic 2019-09-10 09:21:51 +02:00
stammw 6d6763da03 H3: refactor client with SendHeaders 2019-09-10 09:21:51 +02:00
stammw 2e7ef52d0d H3: use SendHeaders to send trailers in SendResponse 2019-09-10 09:21:51 +02:00
stammw 0459854acb H3: fix tail buffer ignored in BodyReader 2019-09-10 09:21:51 +02:00
stammw fdd801c6e9 H3: refactor server code to integrate BodyWriter 2019-09-10 09:21:51 +02:00
stammw 9b212aaef5 H3: BodyWriter, AsyncWrite implementation 2019-09-10 09:21:51 +02:00
stammw df4880a936 H3: Sending headers gets it's own future 2019-09-10 09:21:51 +02:00
Benjamin Saunders 77b47504b2 s/Directionality/Dir/ 0.4.0 2019-09-08 07:57:44 +02:00
Benjamin Saunders 6433d4aff6 Don't bother copying empty slices
If a chunk of data ends at `self.offset` exactly, we can discard it
immediately.
2019-09-07 19:51:06 +02:00
stammw 23dcf2cf90 H3: partial DataFrame decoding implementation 2019-09-06 17:12:10 +02:00