# Systems Perspective Description Language — Network Routing & SDN (SPDL-NET) **Specification Document ID:** `SPDL-NET-SPEC-2026-v4.2` **Classification:** Open Epistemic Standard / Real-Time Zero-Heap Network Substrate **Principal Architect:** Asse van Nix | Systems Perspective Framework & Proof-Driven Architecture Group **Target Environment:** Zig 0.16.0 Freestanding · Linux XDP / eBPF · DPDK Hardware Data Plane · BGP/YANG Replacement **Applied Standards:** ISO/IEC 14977 EBNF · GBNF Maskable · RFC 4271 (BGP-4 Replacement) · RFC 6020/7950 (YANG Replacement) · RFC 8941 · Network Calculus --- ## 1. Epistemic Architecture: Why BGP and YANG/NETCONF Must Be Replaced 1. **BGP Route Leaks and Configuration Fragility:** BGP relies on loose text configuration scripts and regex filters. A single human or AI typo in an AS-path prepending policy can leak routes across Tier-1 boundaries, causing global internet outages. 2. **YANG/NETCONF Verbosity:** YANG data models produce deep, verbose XML/JSON configuration messages that overwhelm edge router processors and desynchronize SDN controllers from forwarding planes. **SPDL-NET** models network topology as a Directed Acyclic Graph (DAG) verified by Tarjan’s algorithm, preventing routing loops at build-time. --- ## 2. Physical Invariants, DAEs & Mathematical Proof Gates ``` SPDL-NET NETWORK CALCULUS ┌─────────────────────────────────────────────────────────────────────────────┐ │ TRAFFIC ARRIVAL CURVE & BOUNDED BUFFER BACKLOG (Network Calculus) │ │ alpha(t) = rho * t + sigma, Q(t) <= sigma + rho * T_delay <= Q_max │ ├─────────────────────────────────────────────────────────────────────────────┤ │ ROUTING GRAPH ACYCLICITY PROOF INVARIANT │ │ forall C in SCC(G_route), |C| == 1 (Zero-Loop Forwarding Guarantee) │ ├─────────────────────────────────────────────────────────────────────────────┤ │ LINK CONGESTION CONTROL BARRIER FUNCTION │ │ h_cong(B_util) = 0.95 - (Throughput_bps / Link_Capacity_bps) >= 0 │ └─────────────────────────────────────────────────────────────────────────────┘ ``` --- ## 3. Formal ISO/IEC 14977 EBNF Grammar ```ebnf NetManifest = { Line } ; Line = [ Whitespace ] , ( Comment | NetRecord ) , Newline ; Whitespace = { " " | "\t" | "\r" } ; Newline = "\n" | "\r\n" ; Comment = "#" , { AnyChar - Newline } ; NetRecord = "(I) @NET_INVARIANT" , " " , InvariantFields | "(A) @ROUTER_NODE" , " " , NodeFields | "(D) @FORWARDING_EDGE" , " " , EdgeFields | "(B) @CONGESTION_BARRIER", " " , CongestionFields | "(M) @PEERING_POLICY" , " " , PeeringFields | "(T) @LINK_OBSERVER" , " " , ObserverFields ; InvariantFields = "id:" , Token , " max_fib_entries:" , Integer , " jitter_max_us:" , Integer , " alloc_policy:ZERO_HEAP" ; NodeFields = "id:" , Token , " as_number:" , Integer , " loopback_ip:" , Token ; EdgeFields = "from:" , Token , " to:" , Token , " prefix:" , Token , " metric:" , Integer ; CongestionFields = "id:" , Token , " interface:" , Token , " max_util_pct:" , Number ; PeeringFields = "id:" , Token , " peer_as:" , Integer , " type:" , PeerClass , " export_filter:" , Token ; PeerClass = "TRANSIT" | "PEER_SETTLEMENT_FREE" | "CUSTOMER" ; ObserverFields = "id:" , Token , " iface:" , Token , " rx_mbps:" , Number , " tx_mbps:" , Number , " drop_ratio:" , Number ; Token = Letter , { Letter | Digit | "_" | "-" | "." | "/" } ; Number = [ "-" ] , Digit , { Digit } , [ "." , { Digit } ] ; Integer = [ "-" ] , Digit , { Digit } ; Letter = "A".."Z" | "a".."z" ; Digit = "0".."9" ; AnyChar = ? Any valid Unicode code point ? ; ``` --- ## 4. GBNF Structured Sampling Grammar ```gbnf root ::= NetRecord "\n" NetRecord ::= "(I) @NET_INVARIANT" " " InvariantFields | "(A) @ROUTER_NODE" " " NodeFields | "(D) @FORWARDING_EDGE" " " EdgeFields | "(B) @CONGESTION_BARRIER" " " CongestionFields | "(M) @PEERING_POLICY" " " PeeringFields | "(T) @LINK_OBSERVER" " " ObserverFields InvariantFields ::= "id:" [A-Za-z0-9_-]+ " max_fib_entries:" [0-9]+ " jitter_max_us:" [0-9]+ " alloc_policy:ZERO_HEAP" NodeFields ::= "id:" [A-Za-z0-9_-]+ " as_number:" [0-9]+ " loopback_ip:" [A-Za-z0-9_./-]+ EdgeFields ::= "from:" [A-Za-z0-9_-]+ " to:" [A-Za-z0-9_-]+ " prefix:" [0-9./]+ " metric:" [0-9]+ CongestionFields ::= "id:" [A-Za-z0-9_-]+ " interface:" [A-Za-z0-9_-]+ " max_util_pct:" [0-9.]+ PeeringFields ::= "id:" [A-Za-z0-9_-]+ " peer_as:" [0-9]+ " type:" ("TRANSIT"|"PEER_SETTLEMENT_FREE"|"CUSTOMER") " export_filter:" [A-Za-z0-9_-]+ ObserverFields ::= "id:" [A-Za-z0-9_-]+ " iface:" [A-Za-z0-9_-]+ " rx_mbps:" [0-9.]+ " tx_mbps:" [0-9.]+ " drop_ratio:" [0-9.]+ ``` --- ## 5. Production SPDL-NET Manifest Exemplar ```spdl # ============================================================================== # SPDL-NET v4.2 MANIFEST: AUTONOMOUS CORE BORDER ROUTER (AS64512) # Engine: Zero-Heap eBPF/XDP FIB Ingestion | Standards: Network Calculus # ============================================================================== (I) @NET_INVARIANT id:INV-CORE-ROUTER max_fib_entries:2000000 jitter_max_us:15 alloc_policy:ZERO_HEAP # --- ROUTER IDENTITY --- (A) @ROUTER_NODE id:RTR_BORDER_01 as_number:64512 loopback_ip:10.254.0.1 # --- NETWORK TOPOLOGY DAG EDGES (ACYCLIC) --- (D) @FORWARDING_EDGE from:RTR_BORDER_01 to:PEER_UPSTREAM prefix:0.0.0.0/0 metric:10 (D) @FORWARDING_EDGE from:RTR_BORDER_01 to:INTERNAL_DC prefix:10.0.0.0/8 metric:5 # --- CAPACITY & BUFFER BARRIERS --- (B) @CONGESTION_BARRIER id:BAR_ETH0_UTIL interface:eth0 max_util_pct:90.0 # --- VERIFIED PEERING POLICY --- (M) @PEERING_POLICY id:PEER_TIER1 peer_as:1299 type:TRANSIT export_filter:FILTER_LOCAL_ORIGIN # --- LINK PERFORMANCE TELEMETRY --- (T) @LINK_OBSERVER id:TEL_ETH0 iface:eth0 rx_mbps:8420.5 tx_mbps:7120.2 drop_ratio:0.00001 ``` --- ## 6. Standards Compliance Matrix ``` ╔═════════════════════════════════╦══════════════════════╦═════════════════════════════════════════════════════╗ ║ Dimension │ Verification Standard│ Enforced Implementation Evidence ║ ╠═════════════════════════════════╬══════════════════════╬═════════════════════════════════════════════════════╣ ║ Loop-Free Route Invariant │ Graph Theory (DAG) │ Tarjan's SCC validates |C| = 1 on FIB commitment. ║ ║ Deterministic Buffer Non-Flow │ Network Calculus │ Max backlog Q <= Q_max verified by SMT solver. ║ ║ Zero-Heap Ingestion │ eBPF / XDP Target │ Sub-15us parsing without dynamic heap allocation. ║ ║ Autonomous Safe Synthesis │ GBNF Structured Mask │ Eliminates route leak syntax errors. ║ ╚═════════════════════════════════╩══════════════════════╩═════════════════════════════════════════════════════╝ ```