7.0 KiB
gateway-qualification Specification
Purpose
Define the deterministic processing, impairment, pacing, and evidence boundaries for qualifying a frozen Phase 3C gateway candidate.
Requirements
Requirement: Fixed media processing qualification
The qualification harness SHALL drive pinned-mTLS Apollo management, encrypted
RTSP, ENet, and provider UDP through native source validation, readUDPMedia,
recovery/FEC, byte/count/latency-bounded production queues, the production fair
pacer, Protocol complete-frame fragmentation, Verse framing/QUIC, and an
independent bounded client reassembler for 1080p60 H.264 at 20 Mbps, 1440p120
HEVC at 50 Mbps, and 4K60 HEVC at 80 Mbps. The source fixture SHALL emit
deterministic variable-size complete encoded frames at the named 60/120 FPS
rate, preserve exact target bytes over each fixed interval, and include bounded
larger keyframes without codec operation. After a recorded warm-up, the frozen
candidate SHALL run each profile for ten wall-clock minutes, preserve every
frame's bytes and boundary, retain every monotonic processing sample plus
bounded provider-queue observations, and report frame count, frame rate,
bitrate, min, median, p90, p95, p99, max, mean, standard deviation, and measured
batched monotonic-clock overhead and method. Processing begins at complete
provider-frame receipt and ends at QUIC handoff, excluding client transit and
pacing. Queue delay SHALL measure provider-queue residence, processing SHALL
measure gateway work before pacing, and pacing delay SHALL measure scheduler
waiting. Native video queues SHALL retain at most 16 complete frames, 4 MiB,
and 250 milliseconds; audio and event queues SHALL remain independently bounded
at 16 units. CPU, heap, allocations, and goroutines SHALL be measured from the
isolated gateway process only; CPU SHALL be actual OS user plus system
consumption and MUST NOT include idle wall capacity or unrelated parent
fixture/client work. Successive profiles SHALL use independent resource-counter
baselines. Any bypass, payload or frame-boundary mutation, frame-rate/count
mismatch, wall-duration violation, bitrate outside both lower and upper bounds,
unexplained clean-path loss, zero or unbounded clock overhead, or p95 above 5
ms SHALL fail.
Scenario: Healthy fixed profile
- WHEN a frozen candidate runs one fixed profile for the normative duration in the isolated qualification command
- THEN the harness emits compressed raw frame/path and gateway-process resource samples plus a summary tied to the exact command, CPU scope, timing-overhead method, topology, source commit, immutable Protocol version, environment, and payload hash
Scenario: Processing gate failure
- WHEN any production path stage lacks a per-frame observation, stage accounting does not balance, payload or frame boundaries change, duration, frame-rate, frame-count, or bitrate bounds fail, measured p95 exceeds 5 ms, parent work changes gateway CPU, idle capacity is reported as consumed CPU, or timing overhead is absent
- THEN the qualification command exits unsuccessfully without recording a passing candidate
Requirement: Bounded impairment qualification
The harness SHALL run exactly the baseline, latency, jitter, loss, reorder, and constrained Section 7.2 profiles once by applying fixed-seed impairment at the source-shaped provider network boundary while traffic concurrently traverses the production gateway path. Baseline SHALL cover all three media profiles and the other profiles SHALL cover 1080p60. The harness MUST NOT serialize a complete provider-to-client traversal per source unit. Reorder-off profiles SHALL preserve source order through an ordered delay queue whose catch-up is limited to one media serialization interval; the fixed-seed applied-delay distribution and jitter observed after ordered traversal SHALL be reported separately. Loss-only traffic SHALL NOT gain implicit reorder. Reorder-on profiles SHALL inject and record only the fixed bounded reorder pattern. Each source unit SHALL have one attributable outcome across source emission, injected drop, native provider/FEC handling, bounded queue replacement, gateway forwarding, QUIC send/receive, and public-client delivery. Each artifact SHALL retain raw impairment and queue observations and record tool version, exact command/configuration, environment, candidate commit, immutable Protocol version, direction, queue discipline, topology, fixed seed, observed one-way latency, acknowledged Apollo ENet RTT, applied and observed jitter, injected and unexplained loss, reorder, throughput, drops, and capacity-step statistics.
Scenario: Complete six-profile run
- WHEN the frozen candidate runs impairment qualification
- THEN one result exists for each named profile, configured and observed impairment axes remain separately attributable, reorder-off profiles preserve source order, RTT comes from real request/response acknowledgement timing, and raw statistics come from actual traversal
Scenario: Clean production traversal
- WHEN 10,000 source packets traverse a zero-loss baseline profile
- THEN stage accounting identifies every packet and fails on any unexplained loss while each fixed media bitrate remains within its reviewed healthy-path contract
Scenario: Unsupported or unbounded configuration
- WHEN a profile name, packet count, queue bound, loss, reorder, or bandwidth step falls outside the fixed catalog
- THEN the harness rejects it before allocating or running traffic
Requirement: Fairness and cap qualification
The harness SHALL exercise the production fair pacer with eight equal-tier synthetic sessions for the required 60-second virtual interval, retain every per-flow and aggregate observation, report every share error and Jain's fairness index, and fail above 10% share error. It SHALL apply 25% and 50% capacity steps, measure convergence of observed allocation rather than first delivery, fail convergence beyond ten virtual seconds, and fail aggregate egress above 105% of the cap over any rolling five-second window.
Scenario: Equal-tier and capacity-step evidence
- WHEN the frozen candidate runs scheduler qualification
- THEN the artifact contains raw per-flow bytes, aggregate-cap series, share errors, Jain's index, measured allocation convergence, and rolling cap observations derived from the production pacer
Requirement: Honest qualification boundary
Qualification artifacts SHALL contain no provider endpoint, credential, clipboard text, input payload, secret, or raw media content and SHALL make no claim of live Apollo/macOS/firewall interoperability. The harness SHALL add no codec operation, production dependency, cgo, sidecar, direct provider route, or duplicate processing/impairment simulator. Deterministic smoke evidence SHALL remain distinct from the single normative run on the frozen immutable consumer candidate.
Scenario: Deterministic evidence publication
- WHEN qualification completes
- THEN the manifest labels fake-provider, path impairment, and local processing evidence separately and leaves live interoperability deferred-owner-e2e