PPPoE Termination
Full PPPoE session lifecycle management for broadband subscribers — from Discovery to teardown.
Overview
AthenaBNG terminates PPPoE sessions using accel-ppp, a high-performance PPP server integrated into the BNG orchestration layer. Every PPPoE session gets:
- RADIUS authentication and authorization
- Per-session QoS (CAKE-based traffic shaping)
- Real-time RADIUS accounting
- CoA support for mid-session policy changes
- Clean teardown with proper accounting on disconnect
Session Lifecycle
- PADI — Subscriber sends PPPoE Active Discovery Initiation
- VLAN creation — abng-demux creates the subscriber VLAN interface
- PADO — accel-ppp responds with Active Discovery Offer
- PADR/PADS — Session established at PPPoE layer
- LCP — Link Control Protocol negotiation
- Authentication — RADIUS Access-Request (PAP or CHAP)
- IPCP — IP address assignment from RADIUS Framed-IP-Address
- Session active — QoS applied, accounting started, routes injected
- Teardown — PADT or timeout, accounting stopped, QoS removed
RADIUS Integration
Authentication
Every PPPoE session is authenticated via RADIUS:
- User-Name — Subscriber username (from PPP authentication)
- Calling-Station-Id — Subscriber MAC address
- NAS-Port-Id — VLAN interface name (e.g., "trunk0.200.100")
- NAS-Identifier — BNG hostname
Authorization
RADIUS Access-Accept controls session parameters:
| Attribute | Purpose |
|---|---|
| Framed-IP-Address | Subscriber IP (/32) |
| Framed-IP-Netmask | Subnet mask |
| Session-Timeout | Max session duration |
| Idle-Timeout | Idle disconnect timer |
| Athena-Rate-Down | Download rate (bps) |
| Athena-Rate-Up | Upload rate (bps) |
| Athena-Overhead-Profile | QoS overhead compensation |
Accounting
Full RFC 2866 accounting with:
- Acct-Input/Output-Octets — Traffic counters
- Acct-Input/Output-Gigawords — For counters exceeding 4 GiB
- Acct-Input/Output-Packets — Packet counters
- Acct-Session-Time — Session duration
- Acct-Terminate-Cause — Reason for disconnect
CoA / Disconnect
RADIUS Change of Authorization (RFC 5176):
- Rate changes — Update download/upload speeds mid-session without disconnecting
- Session disconnect — Administratively terminate a session
- Attribute updates — Modify session parameters in real time
Performance
- Thousands of concurrent PPPoE sessions per server
- Sub-second session setup (PADI → IP assignment)
- Zero-downtime rate changes via CoA
- Graceful shutdown with NAS-Reboot accounting for all active sessions
Configuration
pppoe:
enabled: true
ac_name: "AthenaBNG"
service_name: "*"
interface_patterns:
- "trunk0.*"
mtu: 1492
mru: 1492
lcp_echo_interval: 30
lcp_echo_failure: 3