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