Architecture at a glance

Plane Component What it does Where it lives
Management QuantumTouch (bng-deploy) The web UI + REST API operators use. Flask + gunicorn. Port 8443 (HTTPS)
Control Quantum Controller Source of truth for subscribers, sessions, DHCP leases, AAA state. Docker container, port 3000 (HTTPS, 127.0.0.1 only)
Data VPP + tuned DPDK Line-rate packet forwarding with a per-subscriber 3-color policer (trTCM). Kernel-adjacent, one main core + N workers pinned to isolcpus
Bridge vpp-bridge Go daemon that translates controller decisions into VPP CLI operations and vice versa. systemd unit

Traffic path for a subscriber packet:

CPE  →  Access NIC (VPP)  →  BNG plugin (policer + session lookup)  →  Uplink NIC (VPP)  →  Core router
                                    ↑
                                    Controller (via vpp-bridge) — session install, plan lookup

DHCP path:

CPE DHCP DISCOVER → Access NIC (VPP) → BNG plugin punts → vpp-bridge → Controller
                                                                            ↓
                                                                        AAA lookup (Local or RADIUS)
                                                                            ↓
Controller crafts OFFER → back down the stack → CPE

The Community Edition license caps concurrent sessions at 1000. That's shown in the header pill and in the Sessions "over time" chart.

For a deeper theory-of-operation (packet path, state ownership, DHCP/AAA state machines), see ../theory-of-operation.md — that document is for engineers integrating against QuantumBNG; this one is for operators running it.