code wiki / (root) / nx_pathstripe.nx

nx_pathstripe.nx

buildroot/runtime/nx_pathstripe.nx

4358 B111 linesdepth 4pulls 4 transitivereach 1 importersview sourcekind library
docsdependenciesstructsconstsfunctions

about

nx_pathstripe.nx -- the RELIABILITY pillar: multi-path STRIPING with seamless protection switching (SMPTE 2022-7 / IEEE 802.1CB FRER, re-implemented from spec). Promotes nx_mediapath from best-path SELECTION to best-K STRIPING: each packet is sent over the top-K quality paths with a global sequence number; the receiver DEDUPES and REORDERS by seq, so a loss on any one path is instantly covered by another copy -- ZERO recovery time (no retransmit RTT, unlike ARQ). This is the critical-grade exceed beyond SRT 1+1, matching RIST any-N. Pure/deterministic receiver core -> KAT-able offline. Integer-only, sovereign (composes nx_mediapath + nx_linkqual; raw syscalls only). Combines with nx_fec_xor: stripe FEC repair symbols across paths so two lossy paths reconstruct one clean stream (next increment). license_tier: ORIGINAL

dependencies 1 imports · 1 importers

nx_mediapath.nx nx_pathstripe.nx nx_pathstripe_test.nx

imports: nx_mediapath.nx

imported by: nx_pathstripe_test.nx

structs

60struct StripeRx { base: i64, delivered: i64, lost: i64 }

consts

61const STRIPE_RX_BYTES: i64 = 24

functions

23func stripe_select_topk(flows: *i64, n: i64, k: i64, out_idx: *i64) -> i64
called by 1: main calls 1: lq_score
49func stripe_k_for_loss(loss_pct: i64, n_paths: i64) -> i64
called by 1: main
63func stripe_rx_init(rx: *StripeRx, slots: *i64, w: i64) -> i64
called by 1: main
71func stripe_rx_arrive(rx: *StripeRx, slots: *i64, w: i64, seq: i64) -> i64
called by 2: feed_pathmain
81func stripe_rx_drain(rx: *StripeRx, slots: *i64, w: i64, log: *i64) -> i64
called by 2: feed_pathmain
98func stripe_rx_finalize(rx: *StripeRx, slots: *i64, w: i64, n: i64, log: *i64) -> i64
called by 1: main