-
Notifications
You must be signed in to change notification settings - Fork 1
H2C frame types and HPACK integration #4
Copy link
Copy link
Closed
Labels
area/protocolProtocol parsing / detectionProtocol parsing / detectionphase/0-foundationPhase 0: Foundation componentsPhase 0: Foundation componentsplatform/portableCross-platform codeCross-platform codepriority/critical-pathBlocks other milestone workBlocks other milestone worksize/L~3-5 days of work~3-5 days of work
Milestone
Description
Summary
HTTP/2 cleartext (H2C) frame handling and HPACK header compression. Engine-agnostic.
Deliverables
- Frame type definitions (DATA, HEADERS, PRIORITY, RST_STREAM, SETTINGS, PUSH_PROMISE, PING, GOAWAY, WINDOW_UPDATE, CONTINUATION)
- SETTINGS frame negotiation (SETTINGS_MAX_CONCURRENT_STREAMS, SETTINGS_INITIAL_WINDOW_SIZE, etc.)
- HEADERS/DATA frame processing
- RST_STREAM and GOAWAY handling
- PING/PONG for connection health
- WINDOW_UPDATE flow control
- Stream state machine (idle → open → half-closed → closed)
- HPACK integration via
golang.org/x/net/http2/hpack - Port from
old_celeris/internal/h2/(frame, stream, transport)
Tests
- H2C connection preface exchange (
PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n) - SETTINGS negotiation and acknowledgment
- HPACK encode/decode round-trip
- Stream state transitions (full lifecycle)
- Flow control window management
- GOAWAY graceful shutdown
- RST_STREAM error handling
- Concurrent streams (up to SETTINGS_MAX_CONCURRENT_STREAMS)
SDD Reference
Sections 5.4, 5.7
Dependencies
Depends on #1
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
area/protocolProtocol parsing / detectionProtocol parsing / detectionphase/0-foundationPhase 0: Foundation componentsPhase 0: Foundation componentsplatform/portableCross-platform codeCross-platform codepriority/critical-pathBlocks other milestone workBlocks other milestone worksize/L~3-5 days of work~3-5 days of work