Skip to content

Conversation

@marten-seemann
Copy link
Collaborator

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.

@marten-seemann marten-seemann requested review from Copilot and removed request for LPardue, lnicco and rmarx October 14, 2025 14:49
Copy link

Copilot AI left a 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 http namespace 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.

Comment on lines +75 to +76
{{!H3-DATAGRAM=RFC9297}}), as well as the Capsule Protocol defined in
{{!H3-DATAGRAM=RFC9297}}.
Copy link

Copilot AI Oct 14, 2025

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.

Copilot uses AI. Check for mistakes.
point. It can be extended to support additional capsule types.

~~~~~~
; The HTTPCapsule is any key-value map (e.g., JSON object)
Copy link

Copilot AI Oct 14, 2025

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)'

Suggested change
; 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)

Copilot uses AI. Check for mistakes.
Comment on lines 74 to +76
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}}.
Copy link
Member

@LPardue LPardue Oct 19, 2025

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}}.

@LPardue
Copy link
Member

LPardue commented Oct 19, 2025

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

define logging for Capsules

3 participants