code wiki / _hdl_build / nx_room_red.nx

nx_room_red.nx source

↩ module page · 85 lines · 4521 B

1// nx_room_red.nx -- X-ROOM (overseas-grade): sovereign DETERMINISTIC REDUNDANT AUDIO 2// (RFC 2198 RED). Each packet piggybacks a COPY of an earlier packet's payload (offset 3// back by `r`), so an isolated loss is recovered from the redundant copy carried `r` 4// packets later -- no retransmit (fatal at 250ms overseas RTT), at the cost of extra 5// bytes. Complements FEC: RED is cheap for sparse isolated loss; FEC covers bursts. 6// 7// RECOVERY: payload[i] is available iff packet i survived (primary) OR packet i+r 8// survived (it carries payload[i] as its redundant copy). A burst longer than r leaves 9// a hole (the honest limit -> that is where nx_room_fec takes over). 10// 11// EXCEED axis (honest) vs no-redundancy: deterministic recovery of isolated losses with 12// ZERO retransmit + a TUNABLE offset (recovery span vs added latency), audit-replayable, 13// sovereign. HONEST SCOPE: single-level RED (one redundant copy / offset r); multi-level 14// RED + payload-size accounting = deeper rung. 15// 16// main() is the SELF-VALIDATING GATE. Evidence -> knowledge/status/room_red.log. 17// license_tier: ORIGINAL 18import "nx_syscalls.nx" 19 20const RED_LOG: *u8 = "knowledge/status/room_red.log" 21 22func rw(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 } 23func rwn(fd: i64, v: i64) -> i64 { let bb: *u8 = sys_mmap(28); var m: i64=v; if m<0 {m=0-m; sys_write(fd,"-" as *u8,1)}; let t: *u8 = sys_mmap(28); var k: i64=0; if m==0 {t[0]=48;k=1}; while m>0 {t[k]=(48+(m%10)) as u8; m=m/10; k=k+1}; var i: i64=0; while i<k {bb[i]=t[k-1-i]; i=i+1}; sys_write(fd, bb, k); return 0 } 24 25// count payloads that are UNRECOVERABLE under RED offset `r` (r=0 => no redundancy). 26func red_unrecoverable(lost: *i64, N: i64, r: i64) -> i64 { 27 var unrec: i64 = 0 28 var i: i64 = 0 29 while i < N { 30 if lost[i] == 1 { 31 var recovered: i64 = 0 32 if r > 0 { if i + r < N { if lost[i + r] == 0 { recovered = 1 } } } 33 if recovered == 0 { unrec = unrec + 1 } 34 } 35 i = i + 1 36 } 37 return unrec 38} 39 40func main() -> i64 { 41 let N: i64 = 16 42 let lost: *i64 = sys_mmap(8 * N) as *i64 43 let R: i64 = 2 44 var ok: i64 = 1 45 46 // --- A: ISOLATED losses (3,7,11) spaced > offset -> RED recovers ALL, no-RED recovers none --- 47 var i: i64 = 0 48 while i < N { lost[i] = 0; i = i + 1 } 49 lost[3]=1; lost[7]=1; lost[11]=1 50 let unrec_red: i64 = red_unrecoverable(lost, N, R) 51 let unrec_nored: i64 = red_unrecoverable(lost, N, 0) // redundancy disabled (the baseline) 52 if unrec_red != 0 { ok = 0 } // every isolated loss recovered from its redundant copy 53 if unrec_nored != 3 { ok = 0 } // without RED all 3 are holes 54 if unrec_red >= unrec_nored { ok = 0 } // RED strictly beats no-redundancy on isolated loss 55 56 // --- B: BURST longer than the offset (5,6,7,8) -> RED partially recovers, leaves a hole 57 // (the HONEST limit where FEC complements RED) --- 58 i = 0 59 while i < N { lost[i] = 0; i = i + 1 } 60 lost[5]=1; lost[6]=1; lost[7]=1; lost[8]=1 61 let unrec_burst: i64 = red_unrecoverable(lost, N, R) 62 if unrec_burst == 0 { ok = 0 } // RED is NOT magic: a burst > r leaves holes (honest) 63 if unrec_burst >= 4 { ok = 0 } // but it still recovers the tail (better than nothing) 64 65 // --- tamper: offset 0 on scenario A -> redundancy gone -> degrades to all-holes (3) --- 66 i = 0 67 while i < N { lost[i] = 0; i = i + 1 } 68 lost[3]=1; lost[7]=1; lost[11]=1 69 let unrec_tamper: i64 = red_unrecoverable(lost, N, 0) 70 if unrec_tamper != 3 { ok = 0 } // the redundant copy is load-bearing 71 72 rw(1, "ROOMREDGATE isolated_red_unrec=" as *u8); rwn(1, unrec_red); rw(1, " isolated_nored_unrec=" as *u8); rwn(1, unrec_nored) 73 rw(1, " burst_unrec=" as *u8); rwn(1, unrec_burst); rw(1, " tamper_unrec=" as *u8); rwn(1, unrec_tamper) 74 if ok == 1 { rw(1, " verdict=GREEN\n" as *u8) } else { rw(1, " verdict=RED\n" as *u8) } 75 76 let lf: i64 = sys_openat_append(RED_LOG, 420) 77 if lf >= 0 { 78 rw(lf, "ROOMREDGATE isolated_red_unrec=" as *u8); rwn(lf, unrec_red); rw(lf, " isolated_nored_unrec=" as *u8); rwn(lf, unrec_nored) 79 rw(lf, " burst_unrec=" as *u8); rwn(lf, unrec_burst); rw(lf, " tamper_unrec=" as *u8); rwn(lf, unrec_tamper) 80 if ok == 1 { rw(lf, " verdict=GREEN\n" as *u8) } else { rw(lf, " verdict=RED\n" as *u8) } 81 sys_close(lf) 82 } 83 if ok == 1 { sys_exit(0) } else { sys_exit(1) } 84 return 0 85}