001 / LINUX KERNEL · eBPF · RUST

Sodama

A record of rewriting a production datapath in Rust: kernel boundaries, eBPF map contracts, reproducible evidence and explicit limits.

STATUS PRODUCTION-TESTED

Can a production network datapath be rewritten end to end in Rust while keeping byte-exact rule-compiler parity with its Go reference, and making performance and stability claims reproducible?

Sodama is an independent Rust rewrite of dae’s core datapath, not an official dae project. The kernel side keeps seven TC classifiers and one sk_skb offload-verdict program, with fourteen BTF maps carrying shared state. Userspace owns configuration parsing, rule compilation, DNS, TCP/UDP forwarding, protocol behavior and hot reload.

Map layouts and single-writer discipline are treated as architectural contracts rather than implementation details. This is not a language-migration demo; it is an engineering record of kernel boundaries, resource governance and operational safety.

A three-month long-running production test kept RSS resident at 68 MB, with no observed memory growth or memory step. Reload acknowledgement fell from an observed 19–34 seconds to 0.74 seconds. No C remains in the datapath; 268/268 unit tests and the netns/QEMU regression matrix passed.

These numbers belong to a specific version, environment and traffic mix. They do not support a “bounded memory” or “permanently stable” claim. The test hardware, kernel version, commit SHA and full traffic profile are not yet part of the public record.

8EBPF PROGRAMS14BTF MAPS268/268UNIT TESTS

AYA-EBPF / AYA / AXUM / LEPTOS → WASM / NETNS / QEMU

Read related note→ ← Back to selected work→