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 |
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
| 🧩 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 |
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% |
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) |
| ⚙️ 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 |
| 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.
| 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 |
| 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 |
| 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 | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |
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% |
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. |
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.
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