Skip to content

Overview

Netvyn BNG is a clean-slate, multi-ISP carrier-grade broadband network gateway written in C on DPDK. Userspace forwarding, no kernel data path, multi-core and lock-free, NUMA-aware, auto-scaling from 16 to 64 cores on a single binary. All behaviour is runtime-configured — nothing customer-specific is compiled in.

What the daemon does

It terminates subscriber sessions (PPPoE and IPoE), authenticates and accounts them via RADIUS, applies CGNAT and stateful firewalling, shapes traffic with hierarchical QoS, and emits regulator-grade compliance logs — all with a run-to-completion fast path that is provably free of allocation, locks and syscalls.

Supported platforms

FreeBSD 14.3 is the primary platform; Linux with systemd is also supported. The auto-scaling planner covers 16 to 64 cores from one binary.

text
OS          FreeBSD 14.3 (primary) / Linux (systemd)
CPU         x86-64, 16-64 cores (auto-scaling planner)
Data plane  DPDK 25.11 (symbols target 22.11+)
NICs        DPDK-supported; SR-IOV / passthrough for line rate
Memory      hugepages (1 GB recommended in production)

Quick start

Build, run, then configure. The topology planner auto-assigns MAIN, CONTROL and WORKER roles from the EAL coremask and logs the full plan at startup — confirm that plan before going further.

shell
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
meson setup build && ninja -C build

./build/bng -l 0-15 -n 4 --

bng-cli
  <Netvyn-BNG> system-view
  [Netvyn-BNG] ...
  [Netvyn-BNG] commit
  [Netvyn-BNG] save