Skip to main content

Architecture Overview

High-level system design and component interactions.

System Architecture​

AthenaBNG is a multi-process, event-driven broadband network gateway built on Linux with Rust daemons and Python services.

Component Roles​

Management Plane​

  • CLI (abng-cli) — Interactive shell for operators
  • REST API — Programmatic management interface
  • SNMP Agent — Integration with NOC systems

Control Plane​

  • abngd — Core orchestrator (session management, config, IPC)
  • abng-demux — Dynamic VLAN interface creation
  • abng-qos — Traffic shaping orchestration

Data Plane​

  • accel-ppp — PPPoE termination
  • abng-dhcpd — DHCP/IPoE termination
  • nftables — CGNAT steering
  • FRRouting — BGP/OSPF routing

Data Flow​

Session Establishment (PPPoE)​

Session Termination​

IPC Protocol​

All components communicate with abngd via JSON-RPC 2.0 over Unix domain socket at /opt/athena-bng/run/abngd.sock.

Request:

{
"jsonrpc": "2.0",
"method": "show.subscribers",
"params": {},
"id": 1
}

Response:

{
"jsonrpc": "2.0",
"result": [...],
"id": 1
}

Configuration Flow​

Service Dependencies​

Systemd Target​

All services are managed via AthenaBNG.target:

sudo systemctl start AthenaBNG.target
sudo systemctl stop AthenaBNG.target
sudo systemctl status AthenaBNG.target

Next Steps​