code wiki / (root) / nx_room_l4s_gate.nx

nx_room_l4s_gate.nx

buildroot/runtime/nx_room_l4s_gate.nx

7632 B140 linesdepth 4pulls 4 transitivereach 0 importersview sourcekind gate/prooftopic room
docsdependenciesstructsconstsfunctions

about

nx_room_l4s_gate.nx -- LIVE GATE for the L4S dual-signal congestion controller. Proves the cross-path robustness exceed: ONE controller (react to ECN mark OR delay setpoint) stays latency-bounded across BOTH an ECN-capable bottleneck AND a dumb-FIFO (non-ECN) bottleneck -- where each SINGLE signal fails on one of the two paths. the two path types x the controllers: A = L4S dual on ECN-capable path -> tight (ECN arm dominates, ~K) B = L4S dual on dumb-FIFO path -> bounded (delay arm holds, ~KD) Ce = ECN-only on ECN-capable path -> fine (its native path) Cf = ECN-only on dumb-FIFO path -> BLOAT (BLIND: never marks) <- the gap L4S closes Dd = delay-only on ECN-capable path -> looser (no explicit mark, sits at KD) criteria: 1 A util >= 90% (L4S keeps the ECN link full) 2 A q_p99 <= 3*K (L4S TIGHT on the ECN path) 3 B util >= 90% (L4S keeps the FIFO link full) 4 B q_p99 <= 3*KD (L4S BOUNDED on the FIFO path = graceful) 5 Cf q_p99 >= 3*B q_p99 (ECN-only BLOATS on FIFO -- the blind spot) 6 Ce util>=90% AND Ce q_p99 <= 3*K (ECN-only is fine on its native path => the failure is PATH-SPECIFIC, not ECN broken) 7 Dd q_p99 >= A q_p99 + 4 (the ECN arm genuinely TIGHTENS vs delay-only) 8 telemetry error == 0 on every run (NC liar-kill: reported queue == true queue) expect_exit: 0 license_tier: ORIGINAL

dependencies 1 imports · 0 importers

nx_room_l4s.nx nx_room_l4s_gate.nx

imports: nx_room_l4s.nx

imported by: nobody (leaf or entry point)

call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown

main gp gn l4s_run show gp ↻ gn ↻ chk gp ↻ sys_openat_append fw fn2

structs

none

consts

none

functions

27func gp(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(1, s, n); return 0 }
called by 3: chkshowmain
28func fw(fd: i64, s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(fd, s, n); return 0 }
called by 1: main
29func gn(v: i64) -> i64
called by 2: showmain
39func fn2(fd: i64, v: i64) -> i64
called by 1: main
48func chk(name: *u8, ok: i64) -> i64
called by 1: main calls 1: gp
52func show(tag: *u8, m: *CcMetrics) -> i64
called by 1: main calls 2: gpgn
58func main() -> i64