-
Notifications
You must be signed in to change notification settings - Fork 15
add support for RFC 9297 Capsule Protocol #490
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
base: main
Are you sure you want to change the base?
Conversation
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.
Pull Request Overview
This PR adds support for the Capsule Protocol from RFC 9297 by defining a new http namespace for qlog events. The changes extend the existing HTTP/3 qlog event schema to include capsule-related events for logging capsule creation and parsing operations.
- Added a new
httpnamespace with events for capsule protocol operations - Updated abstract and introduction to reflect expanded scope beyond HTTP/3
- Defined CDDL schemas for capsule events and data types
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
| {{!H3-DATAGRAM=RFC9297}}), as well as the Capsule Protocol defined in | ||
| {{!H3-DATAGRAM=RFC9297}}. |
Copilot
AI
Oct 14, 2025
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.
Both references point to the same RFC 9297. The second reference should clarify that it's specifically about the Capsule Protocol within RFC 9297, or use a more descriptive reference name like 'CAPSULE-PROTOCOL' to distinguish it from the H3-DATAGRAM reference.
| point. It can be extended to support additional capsule types. | ||
|
|
||
| ~~~~~~ | ||
| ; The HTTPCapsule is any key-value map (e.g., JSON object) |
Copilot
AI
Oct 14, 2025
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.
The comment indicates 'any key-value map' but the CDDL definition restricts keys to text type only. The comment should be updated to reflect this constraint: '; The HTTPCapsule is a key-value map with text keys (e.g., JSON object)'
| ; The HTTPCapsule is any key-value map (e.g., JSON object) | |
| ; The HTTPCapsule is a key-value map with text keys (e.g., JSON object) |
| extensions ({{!EXTENDED-CONNECT=RFC9220}}, {{!H3_PRIORITIZATION=RFC9218}}, and | ||
| {{!H3-DATAGRAM=RFC9297}}). | ||
| {{!H3-DATAGRAM=RFC9297}}), as well as the Capsule Protocol defined in | ||
| {{!H3-DATAGRAM=RFC9297}}. |
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.
We could probably make this part clearer with something like
extensions: Extended CONNECT ({{!EXTENDED-CONNECT=RFC9220}}), PRIORITY_UPDATE ({{Section 7 of !PRIORITIZATION=RFC9218}}), and HTTP/3 Datagrams {{Section 2.1 of !DGRAM-AND-CAPSULE=RFC9297}}). It also defines a schema for the HTTP Capsule Protocol ({{Section 3 of DGRAM-AND-CAPSULE}}.
|
The design aspects of this look good to me. We just need to answer the scoping question to see whether it lives in this document or not. |
Fixes #486.
This turned out to be more text than I expected, but it's mostly just copy-pasted from the respective HTTP/3 section.