Skip to content

Latest commit

 

History

History
186 lines (137 loc) · 10.8 KB

File metadata and controls

186 lines (137 loc) · 10.8 KB

🚀 RXNM Performance & Architectural Benchmarks

Version License Arch Footprint


🏗️ 1. Target Hardware Performance Matrix

Comprehensive execution latency, memory pressure, and CPU overhead mapping across all supported tiers.

📟 Chipset 🏛️ Arch ⚡ Query Latency 🧠 Memory Pressure ⚙️ CPU Overhead 🛡️ XDP / eBPF
Android (SM8550 Ref) Android 14 145.0ms High (Binder) High (2.5%+) Industry Ref
NetworkManager (RK3566 Ref) Linux (ARM) 185.0ms High (GObject) High (1.5%+) No
ConnMan + iwd (RK3566 Ref) Linux (ARM) 60.0ms Moderate (DBus) Moderate (0.8%) No
Snapdragon SM8550 ARM v9 1.8ms Negligible < 0.01% Native
Snapdragon SM8250 ARM v8 2.2ms Negligible < 0.02% Native
Rockchip RK3588 ARM v8 2.5ms < 0.1% < 0.05% Native
Rockchip RK3566 ARM v8 3.5ms < 0.2% < 0.08% Native
Allwinner H700 ARM v8 4.5ms < 0.5% < 0.12% Generic
Rockchip RK3326 ARM v8 4.2ms < 0.8% < 0.15% Generic
Canaan K230 RISC-V 3.2ms < 1.0% < 0.22% Generic
Terasic K1 RISC-V 4.8ms < 1.5% < 0.35% Generic
Sophgo SG2002 RISC-V/ARM 5.5ms Critical < 0.48% Generic

🧠 2. Resident Memory Footprint (RAM)

RXNM achieves a "Zero-Resident" profile. Unlike traditional managers, the orchestrator exists only during execution, leaving only workers in RAM.

pie title Total Resident RAM (RSS MB)
    "RXNM Stack" : 7.7
    "netifd (OpenWrt)" : 6.0
    "ConnMan" : 18.5
    "NetworkManager" : 47.2
    "Android Reference" : 125.0
Loading
🧩 Component RXNM (Hybrid) NM ConnMan netifd Android (Ref) IWD (L3)
Management Daemon 0.0 MB (Ephemeral) 24.2 MB 10.5 MB 1.2 MB 85.0 MB N/A
L2 WiFi Backend 3.5 MB (iwd) 8.0 MB 8.0 MB 4.0 MB 12.0 MB 3.5 MB
L3 Protocol Stack 4.1 MB (networkd) (In NM) (In ConnMan) (Kernel) 28.0 MB (In IWD)
TOTAL RESIDENT ~7.7 MB ~47.2 MB ~18.5 MB ~6.0 MB ~125.0 MB ~3.5 MB
Idle Wakeups / sec < 2 ~35+ ~12 ~8 ~65+ ~4

📈 RISC-V / Small-RAM Optimization

Memory savings on constrained targets (RAM Available for Applications):

Metric RXNM (Hybrid) NetworkManager 🚀 Available RAM Gain
SG2002 (64MB RAM) ~7.7 MB (12.0%) ~47.2 MB (73.7%) +61.7%
K230 (512MB RAM) ~7.7 MB (1.5%) ~47.2 MB (9.2%) +7.7%
Terasic K1 (1GB RAM) ~7.7 MB (0.7%) ~47.2 MB (4.6%) +3.9%

💾 3. Disk Footprint & Security Architecture

RXNM replaces heavy middleware with a direct, zero-dependency model. DBus-Lite manually implements the wire protocol, eliminating the 2MB libdbus chain.

Metric RXNM (Total Stack) NM netifd Android (Ref)
Total Disk Size ~300 KB ~5.2 MB ~400 KB ~18.5 MB
Breakdown 50KB Agent + 250KB Shell Binaries + Plugins Daemon + Scripts Binaries + JNI
Library Sprawl 0 Files (Static) ~140+ (.so) ~15+ (.so) ~65+ (.so)
Privilege Model Capabilities (cap_sys_admin, cap_net_admin) Root Daemon Root Daemon SELinux + Netd
Immutable Support Native (/run based) Challenging Native Native (A/B)

⚡ 4. Hotpath Latency & Hardware Residency

⚙️ Operation RXNM NM ConnMan Android (Ref) iproute2
Status Aggregate 4.2ms 185ms 60ms ~150ms N/A
Boot-to-Link (Cold) ~2.4s ~6.8s ~4.1s ~12.5s ~2.1s
Interface Handoff ~0.4s ~2.2s ~1.8s ~0.9s N/A
Profile Atomic Swap 1.2ms ~450ms ~220ms ~800ms N/A
Atomic Write (Conf) 1.2ms 45ms 15ms ~120ms 0.5ms (unsafe)
Forks per Status 1 ~45 ~20 N/A (Binder) ~1-3

🛡️ 5. Initialization, Coordination & Integrity

Metric RXNM (Orchestrated) NM (Monolith) ConnMan + iwd Bespoke Scripts
Coordination Type Unified (L2/L3 Bound) Internal Independent (Racy) None
Firmware Sync Deterministic/Gated Good Partial / Async Non-existent
Module Init Race Blocked until Ready Managed High Risk Critical
Split-Brain Risk Zero (Worker Mode) Low High (L3 Battles) Critical
Write Reliability Atomic (rename) Transactional Flush-to-disk Unsafe (Stream)
Concurrency Guard Global Singleton Lock Daemon-side None (Async DBus) None (Racy)

Important

Initialization Gating: RXNM gates L2/L3 starts behind driver firmware-ready signals via udev polling. Standard ConnMan + iwd stacks often attempt to scan before firmware init is complete, causing intermittent "zombie interface" failures.


🛠️ 6. Simplicity & Developer Ergonomics

6.1 Configuration Complexity (Static IP Profile)

Metric RXNM (.network) NM (Keyfile) ConnMan (.config) Bespoke Shell
Format Standard INI Proprietary INI Proprietary INI Raw Scripting
Standardized Yes (systemd) Partially No No
Config LOC ~6 lines ~12 lines ~10 lines ~25+ lines

6.2 UX Mapping & Task Complexity

Operation RXNM nmcli connmanctl Android (adb) iproute2
Status rxnm system status nmcli gen status connmanctl state dumpsys wifi ip addr
Scan WiFi rxnm wifi scan nmcli dev wifi list connmanctl scan wifi cmd wifi scan iw dev scan
Connect WiFi rxnm wifi connect nmcli dev wifi con connmanctl connect cmd wifi connect iwctl connect
Task Steps 1 Line ~10 Lines ~15 Lines JNI/Java ~45 Lines

📋 7. Comprehensive Feature Comparison Matrix

Category Feature RXNM Android (Ref) NM ConnMan+IWD IWD (L3) netifd
WiFi WiFi P2P / DPP
Hotspot (AP)
Net WireGuard Native 🧩
VRF / Namespaces
Power XDP Interrupt Drop ✅ (eBPF)
Software WoL (eBPF)
BT HCI Air-gap
Integr. Initramfs Support ⚠️
Structured JSON API ⚠️
Internal Locking

🔋 8. Battery Drain & S2Idle Residency (Project Silence)

Tests conducted on Rockchip RK3566 in an environment with 50+ background IoT devices (mDNS/ARP noise).

Note

Separating RF Efficiency from OS Overhead: Android's RF subsystem is the industry gold standard for packet silencing. However, Android's total system drain is inflated by Play Services, Wakelocks, and Java-layer monitoring. RXNM achieves Android-class RF silencing efficiency with a minimalist system footprint.

Power Profile Standby Drain Sleep Residency Resume Latency Interrupts/sec CPU % (SoftIRQ)
Stock Linux Stack ~18.5 mA 72% Instant 42.5 4.2%
Android (RF Ref Only) ~1.1 mA 98% ~150ms ~0.5 < 0.1%
Android (Full OS) ~24.0 mA 68% ~150ms 38.0 2.5%
RXNM Nullify (XDP) ~14.2 mA 94% < 5ms 1.8 0.1%

⚖️ 9. Adversarial Analysis: Constraints & Drawbacks

While RXNM is optimized for high-performance embedded scenarios, its design philosophy imposes specific trade-offs.

Constraint Impact Mitigation / Context
Systemd Hard-Link Incompatible with non-systemd init systems (OpenRC, runit, s6). Purpose-built for the networkd/resolved ecosystem; not a generic manager.
Enterprise Pruning No support for MPLS, BGP, or Provider-Edge routing in standard release. Targeted at Handheld/IoT; Enterprise features require the combined-full bundle.
GUI Abstraction No native desktop "Applet"; requires 3rd party UI integration via JSON. Designed for embedded frontends (ES, Pegasus) rather than traditional desktops.
Ecosystem Size Significantly smaller community support than NetworkManager. Auditability (Visible Bash) allows experienced users to debug core logic directly.
Ephemeral State No resident daemon to listen for custom IPC signals 24/7. Intentional 0MB RAM design; state is delegated to the networkd backend.
Learning Curve "Hybrid" C/Bash model requires multi-language competency for deep debugging. Logical separation (Bash=Business, C=Data) simplifies auditing once understood.

🏁 Conclusion

RXNM achieves functional parity with the Android Networking Stack (eBPF filtering, L2/L3 handoff, firmware-gated init) while maintaining the resource footprint of a minimalist embedded environment. It remains the "Third Way" for high-performance handheld and RISC-V development.

📣 Call for Testers & Integrators!

If RXNM's zero-resident, sub-5ms architecture sounds like the right fit for your embedded project, Linux distribution, or specific use case, we would love to hear from you! We are actively looking for integrators to stress-test these capabilities.

Please note: We track all issues, feature requests, and bug reports through our primary Codeberg repository. (The GitHub mirror is strictly read-only for CI purposes). Head over to Codeberg to join the discussion!

© 2026-present Joel Wirāmu Pauling