Skip to main content

Operational Mode Commands

Complete reference for all commands in operational mode (abng>).

show subscribers

Display active subscriber sessions.

Syntax

show subscribers [detail [<id>] | pppoe | dhcp | summary]

Variants

CommandDescription
show subscribersList all active sessions in table format
show subscribers detail <id>Show full details for a single session
show subscribers detailShow full details for every active session
show subscribers pppoeList only PPPoE sessions
show subscribers dhcpList only DHCP/IPoE sessions
show subscribers summaryShow session count summary

The detail view includes per-session accounting (Bytes In / Bytes Out).

Output Examples

Table View

abng> show subscribers
┌────┬───────┬──────────┬───────────────┬────────────┬──────────┬────────┐
│ ID │ Type │ Username │ IP Address │ Interface │ Speed D/U│ State │
├────┼───────┼──────────┼───────────────┼────────────┼──────────┼────────┤
│ 1 │ PPPoE │ user1 │ 203.0.113.10 │ ppp0 │ 100M/40M │ Active │
│ 2 │ DHCP │ - │ 203.0.113.20 │ eth1.111.5 │ 50M/20M │ Active │
└────┴───────┴──────────┴───────────────┴────────────┴──────────┴────────┘
Showing 2 active session(s)

Detail View

abng> show subscribers detail 1
Session ID: 1
Type: PPPoE
Username: user1
MAC Address: aa:bb:cc:dd:ee:ff
IP Address: 203.0.113.10
Interface: eth1.111.500.100
PPP Interface: ppp0
Overhead Profile: pppoe_ethernet
Acct-Session-Id: abng-1709312400-1
State: Active
Speed Down: 100M
Speed Up: 40M
Bytes In: 1.2 GB
Bytes Out: 350.4 MB
CGNAT: No (public IP)

With no <id>, show subscribers detail prints the same full detail block for every active session, separated by a divider:

abng> show subscribers detail
Session ID: 1
Type: PPPoE
...
────────────────────────────────────────────────
Session ID: 2
Type: DHCP
...

If there are no active sessions it prints No active subscribers.

Summary View

abng> show subscribers summary
Session Summary:
Total active: 42
PPPoE: 38
DHCP: 4

Filtering

# Show only PPPoE sessions
abng> show subscribers pppoe

# Show only DHCP sessions
abng> show subscribers dhcp

# Filter with pipe
abng> show subscribers | match user1
abng> show subscribers | count

show interfaces

Display all network interfaces on the system.

Syntax

show interfaces

Output

abng> show interfaces
┌──────────┬──────────┬─────────────┬──────────┬──────────┐
│ Name │ State │ IP Address │ MTU │ RX/TX │
├──────────┼──────────┼─────────────┼──────────┼──────────┤
│ eth0 │ UP │ 10.255.0.1 │ 1500 │ 1.2G/850M│
│ eth1 │ UP │ — │ 1500 │ 45.3G/12G│
│ eth2 │ UP │ 10.255.0.2 │ 1500 │ 2.1G/1.8G│
│ lo │ UP │ 127.0.0.1 │ 65536 │ 0/0 │
└──────────┴──────────┴─────────────┴──────────┴──────────┘

show vlans

Display dynamic VLAN interfaces created by demux.

Syntax

show vlans

Output

abng> show vlans
┌──────────────────────┬──────────┬──────────────┬──────────┐
│ Interface │ State │ Sessions │ Idle │
├──────────────────────┼──────────┼──────────────┼──────────┤
│ eth1.111.500.100 │ UP │ 1 │ 0s │
│ eth1.111.500.101 │ UP │ 1 │ 0s │
│ eth1.111.500.102 │ UP │ 0 │ 245s │
│ eth1.111.500.103 │ UP │ 2 │ 0s │
└──────────────────────┴──────────┴──────────────┴──────────┘
Showing 4 dynamic VLAN interface(s)

show routes

Display the routing table.

Syntax

show routes

Output

abng> show routes
┌──────────────────┬──────────┬──────────────┬──────────┬──────────┐
│ Destination │ Gateway │ Interface │ Protocol │ Metric │
├──────────────────┼──────────┼──────────────┼──────────┼──────────┤
│ 203.0.113.10/32 │ — │ ppp0 │ connected│ 0 │
│ 203.0.113.20/32 │ — │ eth1.111.5 │ connected│ 0 │
│ 10.0.0.0/8 │ 10.255.0 │ eth2 │ bgp │ 100 │
│ 0.0.0.0/0 │ 10.255.0 │ eth2 │ bgp │ 100 │
└──────────────────┴──────────┴──────────────┴──────────┴──────────┘

show bgp

Display BGP routing state.

Syntax

show bgp [summary]

Output

abng> show bgp summary
BGP Router ID: 10.255.0.1
Local AS: 64512

Neighbor Remote AS State Uptime Sent/Rcvd
10.255.0.254 64500 Established 14d 3h 1,247/1,245
10.255.0.253 64500 Established 7d 12h 623/621

show ospf

Display OSPF routing state.

Syntax

show ospf

Output

abng> show ospf
OSPF Router ID: 10.255.0.1
Area 0.0.0.0:
Interfaces: 2
Neighbors: 1
Routes: 42

show qos

Display the per-session applied QoS policy (CAKE shaping).

Syntax

show qos

Output

Each row is one shaped session. Down/Up are the configured rates, Profile is the overhead profile applied to CAKE, OH is the overhead in bytes, and IFB is the per-session ingress (upstream) IFB device.

abng> show qos
┌────┬──────────────┬─────────────┬──────┬──────┬────────────────┬────┬───────┐
│ ID ┆ Username ┆ Interface ┆ Down ┆ Up ┆ Profile ┆ OH ┆ IFB │
│ 1 ┆ - ┆ sub0.1234.2 ┆ 250M ┆ 100M ┆ ipoe_ethernet ┆ 22 ┆ ifb1 │
│ 10 ┆ testuser@isp ┆ ppp0 ┆ 250M ┆ 100M ┆ pppoe_ethernet ┆ 34 ┆ ifb10 │
└────┴──────────────┴─────────────┴──────┴──────┴────────────────┴────┴───────┘
2 session(s) with QoS applied

For DHCP/IPoE sessions the interface is the demux VLAN (e.g. sub0.1234.2); for PPPoE it is the ppp interface (e.g. ppp0). Subscribers with no rate plan are left unmetered and do not appear here.

show qos statistics

Display live per-session, per-direction throughput from the CAKE qdiscs.

Syntax

show qos statistics
show qos stats

stats is an alias for statistics.

Output

Each session has two rows: ▼ down (egress to the subscriber) and ▲ up (ingress from the subscriber). Rate is the configured rate, Current is the throughput as a 5-second average, Transferred is total bytes, and Dropped and Backlog come from the CAKE qdisc.

abng> show qos statistics
┌────┬──────────────┬─────────────┬────────┬──────┬─────────┬─────────────┬─────────┬─────────┐
│ ID ┆ Username ┆ Interface ┆ Dir ┆ Rate ┆ Current ┆ Transferred ┆ Dropped ┆ Backlog │
│ 1 ┆ - ┆ sub0.1234.2 ┆ ▼ down ┆ 250M ┆ 46Kbps ┆ 3.1 MB ┆ 0 ┆ 0 │
│ ┆ ┆ ┆ ▲ up ┆ 100M ┆ 1Kbps ┆ 2.1 KB ┆ 0 ┆ 0 │
└────┴──────────────┴─────────────┴────────┴──────┴─────────┴─────────────┴─────────┴─────────┘
2 session(s) with QoS applied

Idle directions show 0bps for Current. The throughput numbers are sampled and cached by abng-qos every 5 seconds, so this is a fast in-memory read rather than a per-call tc invocation. The same counters are also available directly via tc -s qdisc show dev <iface> and over SNMP.

show system

Display system information.

Syntax

show system

Output

abng> show system
Product: AthenaBNG
Version: 0.1.0
Hostname: AthenaBNG-01
Router ID: 10.255.0.1
Uptime: 14d 3h 22m
Active Sessions: 1,247
PPPoE: 1,200
DHCP: 47
Dynamic VLAN Ints: 1,247
QoS Rules Applied: 1,247
CPU Usage: 12.3%
Memory Usage: 3.2 GB / 8 GB

show configuration

Display the running configuration.

Syntax

show configuration [commands]

Variants

CommandDescription
show configurationShow config as YAML
show configuration commandsShow config as set commands

Output — YAML Format

abng> show configuration
system:
hostname: AthenaBNG-01
router_id: 10.255.0.1
timezone: Australia/Brisbane
log_level: info

interfaces:
management: eth0
subscriber_trunk: eth1
upstream: eth2

pppoe:
enabled: true
ac_name: AthenaBNG
mtu: 1492
...

Output — Set Commands Format

abng> show configuration commands
set system hostname "AthenaBNG-01"
set system router_id "10.255.0.1"
set system timezone "Australia/Brisbane"
set system log_level "info"
set interfaces management "eth0"
set interfaces subscriber_trunk "eth1"
set interfaces upstream "eth2"
set pppoe enabled true
set pppoe ac_name "AthenaBNG"
set pppoe mtu 1492
...

show version

Display software version information.

Syntax

show version

Output

abng> show version
AthenaBNG v0.1.0
Build: release
Compiled: 2024-03-13T10:30:00Z

monitor subscribers

Monitor subscriber session events in real-time.

Syntax

monitor subscribers

Output

abng> monitor subscribers
[Live session monitor — press Ctrl+C to stop]

{"event": "session_up", "id": 1, "username": "user1", "type": "pppoe", ...}
{"event": "session_up", "id": 2, "username": "user2", "type": "dhcp", ...}
{"event": "rate_change", "id": 1, "down": "100M", "up": "40M", ...}
{"event": "session_down", "id": 1, "username": "user1", "reason": "logout", ...}

Press Ctrl+C to stop monitoring.

request subscriber disconnect

Disconnect a subscriber session.

Syntax

request subscriber disconnect <session_id>
request subscriber disconnect interface <interface_name>

Examples

# Disconnect by session ID
abng> request subscriber disconnect 1
Session 1 disconnected successfully.

# Disconnect by interface
abng> request subscriber disconnect interface ppp0
Session 1 disconnected successfully.

ping

Ping from the BNG (not yet implemented).

Syntax

ping <destination>

traceroute

Traceroute from the BNG (not yet implemented).

Syntax

traceroute <destination>

Next Steps