New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
http3: change code point for HTTP datagrams to RFC 9297 #3588
Conversation
I'm hesitant to merge this PR. First of all, we don't actually support this RFC. We support QUIC DATAGRAMs, but not HTTP/3 DATAGRAMs. Second, Chrome's WebTransport implementation does some datagram support detection (not sure if QUIC or H3), and refuses to establish a WebTransport connection if datagrams are disabled, so we'd have to be extra careful not to break things there. |
Capsule support has been merged in #3607, just adding it here for context. |
@kokes Sorry for the long delay. Can you please rebase? |
Rebased. |
Codecov Report
@@ Coverage Diff @@
## master #3588 +/- ##
==========================================
+ Coverage 82.80% 82.84% +0.04%
==========================================
Files 147 147
Lines 14758 14758
==========================================
+ Hits 12220 12226 +6
+ Misses 2036 2031 -5
+ Partials 502 501 -1
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. I have a longer branch with a fully working RFC 9297 and this is what was needed to interop with hyper/h3 for RFC 9297.
Our WASM Webtransport interoperability tests previously used Chrome 112. This Chrome version fails to connect to go-libp2p with quic-go v0.38.0. See libp2p/go-libp2p#2506 for failure. This is due to quic-go v0.38.0 moving to the updated code point for HTTP datagrams. See quic-go/quic-go#3588 for details. This commit upgrades our interop tests to use Chrome 115.
Our WASM Webtransport interoperability tests previously used Chrome 112. This Chrome version fails to connect to go-libp2p with quic-go v0.38.0. See libp2p/go-libp2p#2506 for failure. This is due to quic-go v0.38.0 moving to the updated code point for HTTP datagrams. See quic-go/quic-go#3588 for details. This commit upgrades our interop tests to use Chrome 115. Pull-Request: #4383.
I found a few references to HTTP/3 Datagrams that seem to be out of date. The referred doc has been superseeded by RFC 9297, so I updated the links and changed a few error/frame type values that have changed since the draft (see the draft where it says "note that this will switch to a lower value before publication").
I have not updated the README to say quic-go supports RFC 9297 as I don't know if it's the case, especially since I don't see any references to Quarter Stream IDs for instance.