1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
//! QUIC v1 (RFC 9000) — transport layer over UDP, secured by TLS 1.3 keys
//! per RFC 9001. Includes RFC 9002 loss recovery + congestion control and
//! RFC 9221 unreliable datagram extension.
//!
//! This module is sans-I/O: the engine takes wire datagrams via `feed`
//! and produces wire datagrams via `pop`. The host wires it to a
//! `UdpSocket`.
//!
//! Phase 1 shipped the pure data-structure foundations: varint, packet
//! numbers, the frame codec, and the transport parameters. Phase 2 added
//! per-direction Initial + handshake keys plus the long/short header
//! codec and header-protection wrappers (RFC 9001 §5). Phase 3 added the
//! TLS-QUIC seam (`QuicHooks` trait, `EngineMode::Quic`).
//!
//! Phase 4 (this module) glues the previous three phases into the
//! [`QuicConnection`] state machine: per-level CRYPTO reassembly, ACK
//! emission, PADDING on the client's first datagram, PTO-driven Initial /
//! Handshake retransmission, in-process loopback handshake to completion.
//! Streams, full RFC 9002, Retry, key update, and DATAGRAM are deferred
//! to later phases per the master plan.
// QUIC v1 is shipped but pre-interop (several follow-ups remain before
// interop testing). A number of parsed-but-not-yet-consumed packet/header
// fields, ACK/version-negotiation codec helpers, ECN counters, PnSet query
// methods, and reserved RFC 9000 stream-state variants are intentionally
// retained for that pending work and for protocol-completeness/auditability
// against the RFCs. Rather than scatter per-item `#[allow]`s, dead_code is
// suppressed module-wide here; revisit and tighten once interop work lands.
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub
pub use ;
pub use StreamId;
pub use TransportParameters;