What ships in this release

Setup Wizard (end-to-end first-run)

Fresh install → first-run URL in the install banner → 7-step wizard:

  1. Platform Settings — hostname, timezone, admin email, NTP
  2. DPDK Bind — drag NICs from Kernel to VPP column. Mgmt-port lock refuses to bind any PCI function on the same slot as the management interface (protects your SSH session).
  3. CPU Pinning — auto-computed on mount using the NUMA node of the NICs you just bound; the data plane never lands on a different socket than its NICs.
  4. Data Plane — pick uplink and access interfaces from the VPP-bound set.
  5. Plans / IP Pools / Authentication / Captive Portal / TLS
  6. Review & Apply — one click, all sections applied. A clean run lands 7/7 green.

Management plane (QuantumTouch)

  • Dashboard, Topology, Sessions, Health, Audit (with rev_id chips, deep-link from events to point-in-time timeline, and "return to live"), Hardware
  • Subscribers, AAA (Local), Pools & DNS, Subscriber Plans, Portal Config, Vouchers, Edge Routers, Dataplane
  • API Keys management (mint, revoke, roles, scoping)
  • Snapshots (settings + state, hash-verified, MERGE + REPLACE restore modes)
  • Two-layer security:
    • Machine-to-machine — the bootstrap admin API key, plus per-service keys the shim and captive portal use to reach the controller over authenticated HTTPS
    • User login — QuantumTouch's own auth (password policy, optional MFA, session management, audit log, LDAP + passkey/WebAuthn + SAML supported)

Control plane (Quantum Controller)

See Appendix A for the full controller team notes. Headline:

  • Local AAA — no RADIUS server required. Two modes: open (accept-all) and gated (per-line policy keyed on DHCP Option 82 identity).
  • 1,000 concurrent-subscriber cap in the VPP plugin (tamper-resistant, plugin-side).
  • DHCP lease-expiry timers independent of session/idle timeouts.
  • Plan-edit propagationPUT /bng/plans/{name} re-rates every live session on that plan in place.
  • Auth required by default — Bearer API keys, hashed at rest, role-based (read_only / read_write / admin_only).

Data plane (VPP)

  • Line-rate forwarding on tested NICs (see NIC compatibility matrix below)
  • NUMA-aware CPU pinning — auto-fill picks main + workers from the same socket as the bound NICs. Cross-NUMA data-plane pinning is a well-known throughput killer; the wizard now steers you away from it by default.
  • Per-core worker threads on isolated CPUs (GRUB isolcpus set from wizard's selections)
  • 1 GB hugepages (default 8 × 1G)

Captive portal

  • Local mode — bng-portal.service on :8088/, ships enabled and Bearer-authenticated to the shim
  • Voucher-based redemption supported
  • External-URL redirect mode requires you to host your own portal (see Known limitations)

Observability

  • Prometheus TSDB (14-day default retention) scraping /metrics every 5s
  • Dashboards for sessions, DHCP reply-path, session-cap headroom
  • Sticky event history with RESOLVED badge, start/end/duration
  • CPE fleet simulator via quantumtest (harness for load and churn testing; separate repo)