Draft
Conversation
BAT (Bidirectional Attestation Test) is a simple echo protocol for testing HTTP Datagrams (RFC 9297) implementations. Modeled after SiDUCK (draft-pardue-quic-siduck), BAT provides: - Simple echo service over HTTP CONNECT - Support for QUIC DATAGRAM frames (HTTP/3) - Support for DATAGRAM Capsules (all HTTP versions) - Protocol identifier: bat-00 - Testing tool for HTTP Datagram interoperability
Add first-class HTTP Datagram support for HTTP/3, aligned with RFC 9297. The implementation handles QUIC DATAGRAM transport as well as Capsule Protocol encapsulation when datagrams cannot fit the QUIC path, providing a complete end-to-end feature for this new extension. Core stream and connection logic now parses and emits HTTP Datagram frames and capsules per RFC 9297 rules, including Quarter Stream ID handling and strict error signaling.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR adds first-class WebTransport over HTTP/3 support to lsquic, including
transport pieces needed to run real applications (devious baton), plus
HTTP Datagram integration and RESET_STREAM_AT plumbing.
What this delivers
1) WebTransport support (major feature)
include/lsquic_wt.hfor:lsquic_webtransport_if)baton wired as the first concrete application.
2) HTTP Datagram integration
3) RESET_STREAM_AT plumbing
Protocol / draft alignment
while retaining compatibility needed for interop with draft-14 style peers where practical.
Tooling and application support
bin/and integration withhttp_serverbaton mode.Validation
test_wtand baton flows exercised.Why this is a single PR
This is intentionally a feature PR, not a refactor-only PR:
WebTransport requires coordinated changes across public API, stream/conn internals,
HTTP Datagram handling, settings negotiation, and application wiring.
Issue references