Skip to content

Configuration reference#

Every configurable field, addressed by the CLI path used with set and delete. The same paths back the web UI configuration editor and the GET /api/v1/config/schema endpoint, so all three surfaces agree by construction.

Fields marked secret are stored encrypted and read back as a redaction placeholder — show configuration and | display set never disclose them.

Sections#

accounting#

Path Type Accepted values Description
accounting driver String servicebus, radius Accounting driver (servicebus or radius)
accounting interim-interval Int — Accounting interim interval in seconds
accounting radius max-buffer-size Int — RADIUS accounting max buffer size
accounting radius transport-vrf String <configured VRF name> VRF for accounting RADIUS transport
accounting servicebus connection-string String — Azure Service Bus connection string (secret)
accounting servicebus max-batch-size Int — Max messages per Service Bus batch
accounting servicebus max-buffer-size Int — Maximum records buffered to local disk when Service Bus is unreachable
accounting servicebus max-retries Int — Send attempts before a batch is buffered locally
accounting servicebus nas-client-type String — NAS client type reported in each accounting record
accounting servicebus nas-identifier String — NAS identifier reported in each accounting record
accounting servicebus nas-ip-address IpV4Address — NAS IP address reported in each accounting record
accounting servicebus queue-name String — Service Bus queue name
accounting servicebus send-timeout Int — Per-batch send timeout in seconds
accounting servicebus source String — Source name stamped on records, identifying this appliance fleet
accounting servicebus source-instance String — Instance name stamped on records, identifying this box

accounting radius server <host>#

RADIUS accounting servers (empty = reuse auth servers, port+1)

A keyed list: set accounting radius server <host> <field> <value> creates or updates an entry; delete accounting radius server <host> removes the whole entry.

Field Type Accepted values Description
port Int — RADIUS server UDP port
secret String — RADIUS shared secret (secret)
weight Int — Load-balancing weight

address-pool#

address-pool <name>#

Dynamic address pool referenced by name from AAA (Framed-Pool, Framed-IPv6-Pool, Delegated-IPv6-Prefix-Pool)

A keyed list: set address-pool <name> <field> <value> creates or updates an entry; delete address-pool <name> removes the whole entry.

Field Type Accepted values Description
announce String (list) — Subnets announced into BGP as an aggregate (adds the subnet if absent). Must be off for IPv4 in a VRF translated by on-box CGN
delegation-length Int — Prefix length delegated to each subscriber (ipv6-pd only, 16-64)
description String — Free-text description
exclude String (list) — An address or prefix inside the pool's subnets that is never allocated
family String ipv4, ipv6-wan, ipv6-pd What the pool hands out: ipv4 (/32s), ipv6-wan (a /64 per subscriber) or ipv6-pd (delegated prefixes)
subnet String (list) — A subnet this appliance allocates from (CIDR, host bits zero). Removing one disconnects the sessions holding addresses in it
vrf String <configured VRF name> VRF the pool's addresses live in; empty = the default table

alerting#

Path Type Accepted values Description
alerting bus kinds String alarm, event, both Kinds the bus sink accepts: alarm|event|both
alerting bus min-severity String critical, major, minor, warning, info Severity floor for the bus sink (default info)
alerting bus queue-name String — Azure Service Bus queue for alert notifications
alerting bus transport-vrf String <configured VRF name> VRF metadata for the bus sink
alerting enabled Bool — Run the alerting subsystem (alarm manager + sink fan-out)
alerting rate-limit events-per-minute Int — Global transient-event flood cap (per alarm ID)
alerting sinks String (list) syslog, snmp, webhook, smtp, bus Enabled delivery sinks (multi-select): syslog|snmp|webhook|smtp
alerting smtp from String — Envelope From address
alerting smtp host String — External SMTP server hostname
alerting smtp kinds String alarm, event, both Kinds the SMTP sink accepts: alarm|event|both
alerting smtp min-severity String critical, major, minor, warning, info Severity floor for the SMTP sink (default critical)
alerting smtp password String — SMTP AUTH password (secret) (secret)
alerting smtp port Int — SMTP port: 25|587|465|custom
alerting smtp subject String — Subject template ({severity}/{id}/{state})
alerting smtp timeout Int — SMTP send timeout in seconds
alerting smtp tls-mode String none, starttls, implicit TLS mode: none|starttls|implicit
alerting smtp tls-verify Bool — Verify the SMTP server's TLS certificate
alerting smtp to String (list) — Recipient address(es)
alerting smtp transport-vrf String <configured VRF name> VRF the SMTP socket egresses from
alerting smtp username String — SMTP AUTH username (empty = no auth)
alerting snmp kinds String alarm, event, both Kinds the SNMP sink accepts: alarm|event|both
alerting snmp min-severity String critical, major, minor, warning, info Severity floor for the SNMP trap sink (default minor)
alerting snmp transport-vrf String <configured VRF name> VRF the SNMP trap socket egresses from (sink default)
alerting spool-size Int — Per-sink in-memory alert spool (drop-oldest)
alerting syslog kinds String alarm, event, both Kinds the syslog sink accepts: alarm|event|both
alerting syslog min-severity String critical, major, minor, warning, info Severity floor for the syslog sink (default info = all)
alerting syslog transport-vrf String — VRF used to reach the syslog sink for alerts
alerting webhook auth-secret String — Bearer auth token added as Authorization header (secret) (secret)
alerting webhook kinds String alarm, event, both Kinds the webhook sink accepts: alarm|event|both
alerting webhook method String POST, GET HTTP method: POST (JSON body) or GET (query string)
alerting webhook min-severity String critical, major, minor, warning, info Severity floor for the webhook sink (default major)
alerting webhook timeout Int — Per-request timeout (seconds)
alerting webhook tls-verify Bool — Verify the receiver's TLS certificate
alerting webhook transport-vrf String <configured VRF name> VRF the webhook socket egresses from
alerting webhook url String — Webhook target URL

alerting alarm <id>#

Per-alarm threshold/severity overrides

A keyed list: set alerting alarm <id> <field> <value> creates or updates an entry; delete alerting alarm <id> removes the whole entry.

Field Type Accepted values Description
disabled Bool — Disable this alarm entirely
high-water Int — Raise threshold (%)
low-water Int — Clear threshold (%)
severity String critical, major, minor, warning, info Override severity

alerting snmp destination <host>#

SNMP trap/inform receivers

A keyed list: set alerting snmp destination <host> <field> <value> creates or updates an entry; delete alerting snmp destination <host> removes the whole entry.

Field Type Accepted values Description
auth-password String — v3 auth passphrase (secret) (secret)
auth-protocol String none, md5, sha v3 auth protocol: none|md5|sha
community String — v2c community string (secret) (secret)
engine-boots Int — v3 authoritative engine boots
engine-id String — v3 authoritative engine ID (hex)
inform Bool — Send INFORM (acknowledged) instead of TRAP
port Int — UDP port (trap default 162)
priv-password String — v3 privacy passphrase (secret) (secret)
priv-protocol String none, aes v3 privacy protocol: none|aes
transport-vrf String <configured VRF name> Per-destination VRF override
user String — v3 USM security user
version String 2c, 3 SNMP version: 2c|3

alerting webhook header <name>#

Custom HTTP request headers

A keyed list: set alerting webhook header <name> <field> <value> creates or updates an entry; delete alerting webhook header <name> removes the whole entry.

Field Type Accepted values Description
value String — Header value

api-rate-limit#

Path Type Accepted values Description
api-rate-limit control burst Int — Tight bucket for capture, config and restart controls: maximum burst tokens
api-rate-limit control requests-per-minute Int — Tight bucket for capture, config and restart controls: refill tokens per minute
api-rate-limit default burst Int — Default /api/v1 request bucket: maximum burst tokens
api-rate-limit default requests-per-minute Int — Default /api/v1 request bucket: refill tokens per minute
api-rate-limit enabled Bool — Enable post-auth /api/v1 request rate limiting
api-rate-limit heavy-read burst Int — Tighter bucket for expensive table dumps and streams: maximum burst tokens
api-rate-limit heavy-read requests-per-minute Int — Tighter bucket for expensive table dumps and streams: refill tokens per minute

auth#

Path Type Accepted values Description
auth database cache-refresh-interval Int — Auth database cache refresh interval in seconds
auth database connection-string String — Database connection string for auth (secret)
auth driver String database, radius Authentication driver (database or radius)
auth radius coa-allowed-source IpAddress (list) — RADIUS CoA allowed source IPs
auth radius coa-port Int — RADIUS CoA listening port
auth radius coa-secret String — RADIUS CoA shared secret (secret)
auth radius dead-after-failures Int — Mark RADIUS server dead after N failures
auth radius max-retries Int — RADIUS max retries
auth radius nas-identifier String — RADIUS NAS identifier
auth radius nas-ip-address IpV4Address — RADIUS NAS IP address
auth radius option82-encoding String bbf-vsa, nas-port-id, calling-station-suffix How the Option-82 circuit-id is carried (bbf-vsa|nas-port-id|calling-station-suffix)
auth radius probe-interval Int — RADIUS probe interval in milliseconds
auth radius rate-attribute-mode String auto, strict, bbf, mikrotik, netavo Which rate-limit attribute family to honour (auto|strict|bbf|mikrotik|netavo)
auth radius timeout Int — RADIUS authentication timeout in milliseconds
auth radius transport-vrf String <configured VRF name> VRF for RADIUS transport

auth radius server <host>#

RADIUS authentication servers

A keyed list: set auth radius server <host> <field> <value> creates or updates an entry; delete auth radius server <host> removes the whole entry.

Field Type Accepted values Description
port Int — RADIUS server UDP port
secret String — RADIUS shared secret (secret)
weight Int — Load-balancing weight

binding-persistence#

Path Type Accepted values Description
binding-persistence enabled Bool — Persist subscriber bindings so they survive a control-plane restart
binding-persistence path String — Path to the binding database
binding-persistence sweep-interval Int — How often expired bindings are swept, in seconds

capture#

Path Type Accepted values Description
capture default-destination-ip IpAddress — Default GRE mirror destination IP
capture mirror-allowlist String (list) — Destinations a GRE capture mirror may be sent to. Empty = no restriction; a populated list is what stops capture being used to exfiltrate subscriber traffic
capture source-ip IpAddress — GRE mirror source IP

cgn#

Path Type Accepted values Description
cgn default-vrf-ip-group String — CGN IP group translating subscribers in the default table (per-VRF: routing vrf <name> cgn-ip-group)
cgn enabled Bool — Run the carrier-grade NAT engine (restart required)
cgn logger driver String (list) — Explicit CGN traceability logger. Leaving this unset creates no logger; syslog is best-effort/lossy and is not a durable compliance record
cgn logger servicebus connection-string String — Azure Service Bus connection string for CGN compliance records (secret)
cgn logger servicebus queue-name String — Service Bus queue for CGN compliance records
cgn logger spool-size Int — Per-driver in-memory event spool (events)
cgn logger syslog-sink String — Named logging syslog sink used when cgn logger driver includes syslog
cgn max-bindings Int — Maximum concurrent NAT bindings (subscribers)
cgn max-flows Int — Maximum tracked NAT flows (conntrack ceiling)

cgn ip-group <name>#

CGNAT public IP groups (pools)

A keyed list: set cgn ip-group <name> <field> <value> creates or updates an entry; delete cgn ip-group <name> removes the whole entry.

Field Type Accepted values Description
auto-learn String (list) — Auto-learn sources as "prefix" or "vrf:prefix"
binding-timeout Int — Auto-learned binding inactivity timeout (seconds)
bypass-prefixes String (list) — Inside IPv4 prefixes that bypass NAT (CIDR)
chunk-size Int — Ports per allocation chunk (power of two, 64-1024)
description String — Free-text description
outside-vrf String <configured VRF name> Outside (public) VRF; empty = default table
port-cap Int — Per-binding port cap (multiple of chunk-size, max 8 chunks)
public-subnets String (list) — Public IPv4 subnets (CIDR)
quarantine-seconds Int — Freed port-block hold-down (seconds)
setups-per-sec Int — Per-binding flow-setup rate limit (0 = unlimited)
timeout icmp Int — ICMP flow timeout (seconds)
timeout tcp-established Int — TCP established flow timeout (seconds)
timeout tcp-transitory Int — TCP transitory flow timeout (seconds)
timeout udp Int — UDP flow timeout (seconds)

dataplane#

Path Type Accepted values Description
dataplane command-ring-name String — POSIX shared-memory name of the CP->DP command ring
dataplane control-punt-limits aggregate-pps Int — Box-wide aggregate control-punt cap across all tiers (0 disables the tier; unset leaves the data-plane default)
dataplane control-punt-limits global-pps Int — Box-wide control-punt cap for traffic not bound to a port/peer/circuit (0 disables the tier; unset leaves the data-plane default)
dataplane control-punt-limits per-circuit-pps Int — Box-wide control-punt cap per subscriber circuit (0 disables the tier; unset leaves the data-plane default)
dataplane control-punt-limits per-peer-pps Int — Box-wide control-punt cap per protocol peer (0 disables the tier; unset leaves the data-plane default)
dataplane control-punt-limits per-port-pps Int — Box-wide control-punt cap per ingress port (0 disables the tier; unset leaves the data-plane default)
dataplane fib-sync-enabled Bool — Mirror kernel/FRR routes into the data-plane FIB. On by default and required for forwarding in ipc mode — an escape hatch, not an opt-in
dataplane ipsec-egress-prefix String — Prefix whose egress traffic is handed to the IPsec path
dataplane l2tp-local-ip IpV4Address — Local IPv4 address the data plane sources L2TP from
dataplane lcore-map String — Data-plane worker core map, e.g. "2,3,4,5" (read by the C data plane)
dataplane max-sessions Int — Maximum subscriber sessions
dataplane max-sessions-per-port Int — Maximum concurrent sessions one ingress port may hold (0 = unlimited). Fairness backstop: without it one access node can fill the whole session table and deny bring-up to every other port
dataplane max-sessions-per-s-vlan Int — Maximum concurrent sessions under one (port, S-VLAN) — i.e. one access node or OLT parent tag (0 = unlimited). For QinQ access where many C-VLANs share an S-VLAN
dataplane mode String mock, dpdk, afxdp Data plane mode (mock, dpdk, afxdp)
dataplane punt-ring-name String — POSIX shared-memory name of the DP->CP punt ring
dataplane socket-mem String — DPDK hugepage memory per NUMA socket in MB, as a string per DPDK convention
dataplane state-shm-name String — POSIX shared-memory name of the data-plane session table (read-only to the CP)
dataplane tx-ring-name String — POSIX shared-memory name of the CP->DP transmit ring

dataplane network-interface <name>#

A network-facing data-plane port, keyed by interface name or PCI address

A keyed list: set dataplane network-interface <name> <field> <value> creates or updates an entry; delete dataplane network-interface <name> removes the whole entry.

Field Type Accepted values Description
access-protocol String (list) — Access encapsulations expected on this port. Declaring them lets the data plane spread unhashable traffic (PPPoE/QinQ/L2TP) that hardware RSS cannot
ifname String — Kernel interface name (AF_XDP and mock backends)
label String — Operator label shown in the UI and interface table, e.g. "MS3 NNI 2"
mtu Int — Port MTU
pci String — PCI address of a DPDK-bound port, e.g. 0000:3b:00.0
punt-address String — Address assigned to the port's punt TAP, which is what FRR runs its adjacencies on (the DP-bound port is invisible to the kernel)
rx-queues Int — Receive queues to configure on the port
spray String on, off, auto Software RSS dispatch for traffic hardware RSS cannot hash: on, off, or auto

dataplane subscriber-interface <name>#

A subscriber-facing data-plane port, keyed by interface name or PCI address

A keyed list: set dataplane subscriber-interface <name> <field> <value> creates or updates an entry; delete dataplane subscriber-interface <name> removes the whole entry.

Field Type Accepted values Description
access-protocol String (list) — Access encapsulations expected on this port. Declaring them lets the data plane spread unhashable traffic (PPPoE/QinQ/L2TP) that hardware RSS cannot
ifname String — Kernel interface name (AF_XDP and mock backends)
label String — Operator label shown in the UI and interface table, e.g. "MS3 NNI 2"
mtu Int — Port MTU
pci String — PCI address of a DPDK-bound port, e.g. 0000:3b:00.0
punt-address String — Address assigned to the port's punt TAP, which is what FRR runs its adjacencies on (the DP-bound port is invisible to the kernel)
rx-queues Int — Receive queues to configure on the port
spray String on, off, auto Software RSS dispatch for traffic hardware RSS cannot hash: on, off, or auto

frr#

Path Type Accepted values Description
frr conf-path String — Path to frr.conf
frr daemons-path String — Path to the FRR daemons file
frr enable-kernel-mpls Bool — Enable the kernel MPLS data path so zebra can program the label table
frr manage Bool — Let the control plane own frr.conf and /etc/frr/daemons. Off leaves both files alone — routing must then be configured by hand
frr mpls-platform-labels Int — Size of the kernel MPLS label space (net.mpls.platform_labels)
frr reload-method String vtysh, restart How configuration is applied: vtysh (hot-apply) or restart. A change to the IGP daemon set forces a restart either way — vtysh cannot start or stop a daemon
frr zapi-socket-path String — Path to zebra's ZAPI socket, used to inject subscriber routes

licensing#

Path Type Accepted values Description
licensing licence-id String — Licence identifier issued by the licensing server
licensing mode String — Licensing mode. A verified lease promotes the effective mode to online regardless (doc 27 §27.9.3), so this cannot be used to disable enforcement
licensing offline-licence-path String — Path to a signed offline licence file, for air-gapped deployments
licensing role String — Licensing role of this appliance in a redundant pair
licensing server-url String — Licensing server base URL
licensing state-directory String — Directory holding lease and telemetry state
licensing telemetry String — How much telemetry is reported. show licensing telemetry prints exactly what would be sent

logging#

Path Type Accepted values Description
logging sources alerting enabled Bool — Enable this log source class
logging sources alerting min-severity String debug, info, notice, warning, error, critical Minimum severity accepted from this source class
logging sources alerting spool-size Int — Reserved queue size for this source class
logging sources cgn-traceability enabled Bool — Enable this log source class
logging sources cgn-traceability min-severity String debug, info, notice, warning, error, critical Minimum severity accepted from this source class
logging sources cgn-traceability spool-size Int — Reserved queue size for this source class
logging sources events enabled Bool — Enable this log source class
logging sources events min-severity String debug, info, notice, warning, error, critical Minimum severity accepted from this source class
logging sources events spool-size Int — Reserved queue size for this source class
logging sources host-logs enabled Bool — Enable this log source class
logging sources host-logs min-severity String debug, info, notice, warning, error, critical Minimum severity accepted from this source class
logging sources host-logs spool-size Int — Reserved queue size for this source class
logging sources host-logs units String (list) frr, kernel, bng-dataplane Host log streams to ship: frr, kernel, bng-dataplane

logging sink <name>#

Named log-export sink registry

A keyed list: set logging sink <name> <field> <value> creates or updates an entry; delete logging sink <name> removes the whole entry.

Field Type Accepted values Description
destination String — Collector host, address or URL for this sink
enabled Bool — Whether this sink exports anything (a disabled sink stays resolvable by name)
max-message-bytes Int — Maximum encoded syslog event size before truncation
min-severity String debug, info, notice, warning, error, critical Sink severity floor
port Int — Collector port
protocol String udp, tcp, tls Transport protocol for syslog sinks: udp, tcp or tls
sources String (list) events, alerting, cgn-traceability, host-logs Streams sent to this sink: events, alerting, cgn-traceability, host-logs
tls ca-file String — CA bundle used to verify the remote TLS certificate
tls certificate-file String — Client certificate file for mutual TLS
tls key-file String — Client private key file for mutual TLS
tls server-name String — TLS SNI/verification name when the destination is an IP
tls verify Bool — Verify the remote TLS certificate where the transport uses TLS
transport-vrf String <configured VRF name> Linux VRF device for the collector socket; DNS still uses the host resolver
type String — Sink type. Supported now: syslog; future types keep this shape

management#

Path Type Accepted values Description
management gateway String — Default gateway to move into the management VRF
management interface String — Management interface to isolate into a VRF. Unset leaves host networking untouched
management table-id Int — Route table id for the host management VRF
management vrf String — Name of the host management VRF

protocols#

Path Type Accepted values Description
protocols dhcp default-lease-time Int — Default DHCP lease time in seconds
protocols dhcp gateway-mac MacAddress — DHCP gateway MAC address
protocols dhcp options acs-url String — DHCP ACS URL (TR-069)
protocols dhcp options aftr-name String — DS-Lite AFTR name (DHCPv6 option 64)
protocols dhcp options domain-name String — DHCP domain name option
protocols dhcp options domain-search String (list) — DHCP domain search list
protocols dhcp options domain-search-v6 String (list) — DHCPv6 domain search list
protocols dhcp options mtu Int — DHCP MTU option
protocols dhcp options ntp-server IpV4Address (list) — DHCP NTP servers
protocols dhcp options ntp-server-v6 IpV6Address (list) — DHCPv6 NTP servers
protocols dhcp options provisioning-code String — DHCP provisioning code
protocols dhcp server-ip IpV4Address — DHCP server IP address
protocols ipoe enabled Bool — Terminate IPoE (DHCP-learned) subscribers
protocols ipoe lease-seconds Int — DHCP lease time offered to IPoE subscribers
protocols ipoe server-duid String — DHCPv6 server DUID
protocols ipoe server-ip IpV4Address — Address the DHCP server answers from
protocols ipoe server-mac MacAddress — MAC used as the gateway for IPoE subscribers
protocols ipoe username-mode String — How a subscriber identity is derived from the circuit (TR-101 Option 82 fields)
protocols l2tp auth-protocol String pap, chap, mschapv2 PPP authentication to negotiate with the subscriber
protocols l2tp cdn-delay-after-lcp-terminate-ms Int — Milliseconds to wait for the LAC's own CDN after a subscriber LCP Terminate before sending ours (0 = immediately); applied live
protocols l2tp challenge-peer Bool — Require the peer to answer the tunnel authentication challenge
protocols l2tp debug-avp-dump Bool — Log every AVP of each incoming SCCRQ/ICRQ/ICCN (secrets masked) to see what a LAC sends; applied live
protocols l2tp enabled Bool — Terminate L2TP as an LNS
protocols l2tp host-name String — Hostname sent in the L2TP SCCRQ/SCCRP — the LAC may match on it
protocols l2tp icrq-burst-per-source Int — Inbound ICRQ token-bucket burst per source IP in sessions
protocols l2tp max-half-open-tunnels Int — Maximum L2TP tunnels still awaiting SCCCN
protocols l2tp max-icrq-per-second-per-source Double — Maximum inbound ICRQ setup rate per source IP in sessions per second
protocols l2tp max-sessions Int — Maximum concurrent L2TP sessions (unset = data-plane session table size)
protocols l2tp max-sessions-per-source Int — Maximum concurrent L2TP sessions from one source IP
protocols l2tp max-sessions-per-tunnel Int — Maximum concurrent L2TP sessions on one tunnel
protocols l2tp max-tunnels Int — Maximum concurrent L2TP tunnels
protocols l2tp max-tunnels-per-source Int — Maximum concurrent L2TP tunnels from one source IP
protocols l2tp ppp-echo-interval-seconds Int — Seconds between PPP LCP Echo-Requests to each L2TP subscriber (0 = off); applied live
protocols l2tp ppp-gateway-ip IpV4Address — Gateway address presented to PPP subscribers on this LNS
protocols l2tp ppp-max-missed-echoes Int — Unanswered LCP Echo-Requests before an L2TP subscriber is torn down; applied live
protocols l2tp reject-called-number-pattern String — Regex of Called-Number values to reject at call setup
protocols l2tp route-replies-via-fib Bool — Route L2TP control replies via the FIB rather than back down the receiving path
protocols l2tp single-session-per-user Bool — Replace a user's existing L2TP session (Stop cause 13 + CDN) when the same user authenticates again in the same VRF, e.g. mobile SIMs behind a LAC that restarts; applied live
protocols l2tp tunnel-mtu Int — MTU applied to L2TP tunnels
protocols l2tp tunnel-secret String — Shared secret for tunnel authentication (default for all listeners) (secret)
protocols pppoe ac-cookie-enabled Bool — Enable AC cookie in PPPoE
protocols pppoe ac-cookie-lifetime Int — AC cookie lifetime in seconds
protocols pppoe ac-name String — PPPoE Access Concentrator name
protocols pppoe enabled Bool — Enable PPPoE server
protocols pppoe l2tp-local-endpoint-ip IpV4Address — Local endpoint the PPPoE LAC sources L2TP tunnels from
protocols pppoe max-sessions Int — Maximum PPPoE sessions
protocols pppoe padi-bucket-capacity Double — Per-circuit PADI token-bucket burst in packets
protocols pppoe padi-bucket-refill-per-second Double — Per-circuit PADI token-bucket refill rate in packets per second
protocols pppoe service-name String — PPPoE service name
protocols soft-l2tp enabled Bool — Use the kernel L2TP path with veth listeners
protocols soft-l2tp remove-on-stop Bool — Tear the veth listeners down when the control plane stops

protocols l2tp listener <name>#

An L2TP listener: one endpoint, optionally in its own VRF. Unset fields inherit the protocols l2tp defaults

A keyed list: set protocols l2tp listener <name> <field> <value> creates or updates an entry; delete protocols l2tp listener <name> removes the whole entry.

Field Type Accepted values Description
auth-protocol String pap, chap, mschapv2 PPP authentication for this listener
challenge-peer Bool — Require tunnel authentication
endpoint-ip IpV4Address — Local address the listener binds
ipsec Bool — Require the tunnel to arrive over IPsec
ppp-gateway-ip IpV4Address — Gateway presented to PPP subscribers
reject-called-number-pattern String — Regex of Called-Number values this listener rejects
tunnel-mtu Int — MTU for tunnels on this listener
tunnel-secret String — Shared secret for this listener (secret)
vrf-name String <configured VRF name> VRF the listener's endpoint lives in

protocols soft-l2tp listener <name>#

A kernel L2TP veth listener

A keyed list: set protocols soft-l2tp listener <name> <field> <value> creates or updates an entry; delete protocols soft-l2tp listener <name> removes the whole entry.

Field Type Accepted values Description
endpoint-ip IpV4Address — Address the listener terminates tunnels on
kernel-address String — Address configured on the kernel side of the veth pair

routing#

Path Type Accepted values Description
routing asn Int — Local autonomous system number
routing enable-vrf-ipv6 Bool — Carry IPv6 inside VRFs (VPNv6 / 6VPE). Kernel-forwarded deployments set this false; global-table IPv6 is unaffected either way
routing hostname String — Hostname FRR announces (also the RADIUS NAS-Identifier fallback)
routing igp interface String (list) — Interfaces the IGP runs on. Loopbacks (lo/loop/dummy) are made passive; the rest are point-to-point core links and also carry LDP
routing igp isis level String level-1, level-2-only, level-1-2 IS-IS level (instance is-type and each core link's circuit-type)
routing igp isis net String — IS-IS ISO NET address, e.g. 49.0001.0102.5525.5001.00
routing igp ospf area String — Default OSPF area for every IGP interface, as a dotted quad (0.0.0.0) or an integer (0)
routing igp ospf enable-ospfv3 Bool — Run OSPFv3 (ospf6d) for IPv6 alongside OSPFv2. Unset follows dual-stack — on whenever router-id6 is set
routing igp ospf interface-area String (list) — Per-interface OSPF area override, as "interface:area" (e.g. core1:0.0.0.7). Interfaces without an override use routing igp ospf area
routing igp protocol String isis, ospf, none Interior gateway protocol. Changing this restarts FRR — a routing daemon cannot be started or stopped by a configuration reload
routing management-network address String — Management interface address in CIDR form, e.g. 10.20.2.11/25
routing management-network gateway-ip String — Next-hop for a default route inside the management VRF's table; unset = connected-subnet reachability only
routing management-network interface String — Physical interface to enslave into the isolated out-of-band management VRF
routing originate-default-route Bool — Originate an IPv4 default route (0.0.0.0/0) into BGP in the default (global) table
routing originate-default-route-vrfs String (list) <configured VRF name> VRFs to originate an IPv4 default route into (standalone-CGN inside VRFs)
routing router-id IpV4Address — IPv4 router id — also the loopback /32 the IGP advertises and the address BGP sources sessions from
routing router-id6 IpV6Address — IPv6 loopback /128; setting it makes the box dual-stack (IS-IS multi-topology or OSPFv3, plus BGP ipv6-unicast). Unset = IPv4 only

routing cpe-gre-circuit <id>#

One CPE/SIM's GRE tunnel and the PE-CE eBGP session inside it. The kernel device name is derived from this id (a SIM reference does not fit in a 15-character interface name)

A keyed list: set routing cpe-gre-circuit <id> <field> <value> creates or updates an entry; delete routing cpe-gre-circuit <id> removes the whole entry.

Field Type Accepted values Description
bfd Bool — Enable BFD on the session — a mobile path can black-hole while the tunnel stays administratively up
clamp-mss Bool — Clamp forwarded TCP MSS to the route MTU. On by default because PMTUD is unreliable across tunnels
description String — Free text, rendered as the FRR neighbor description (defaults to the id)
key Int — GRE key (RFC 2890) — endpoint hygiene on shared transport, not security
listener-id String — Which routing gre-tunnel-listener this circuit's tunnel terminates on
local-tunnel-address String — Our inner point-to-point address in CIDR form, e.g. 172.31.40.0/31
maximum-prefix Int — Cap on prefixes accepted from this CPE, so one misbehaving site cannot fill the customer VRF's table
mtu Int — Tunnel MTU (0 leaves the kernel's GRE default)
peer-asn Int — The CPE's autonomous system number
remote String — The CPE's outer (carrier-side) IP address
remote-tunnel-address String — The CPE's inner address — also the BGP neighbor address (no prefix length)
vrf String <configured VRF name> Customer VRF — both the tunnel device and the BGP peer live here

routing gre-tunnel-listener <id>#

A shared local endpoint that CPE GRE tunnels terminate on — the outer 'local' address every circuit referencing it is built with

A keyed list: set routing gre-tunnel-listener <id> <field> <value> creates or updates an entry; delete routing gre-tunnel-listener <id> removes the whole entry.

Field Type Accepted values Description
local-address String — Our outer (underlay) address every circuit on this listener uses as the tunnel's local endpoint
ttl Int — Outer TTL applied to every tunnel on this listener
underlay-interface String — Pin the tunnels' underlay routing to this device. Set it whenever circuits are enslaved to a VRF, or the outer packet is looked up in the customer's table instead of the underlay's

routing interface <name>#

A locally-provisioned interface the appliance creates at startup: dummy, vlan, gre, or an existing physical NIC it configures but never creates

A keyed list: set routing interface <name> <field> <value> creates or updates an entry; delete routing interface <name> removes the whole entry.

Field Type Accepted values Description
address String (list) — Addresses in CIDR form, IPv4 or IPv6
clamp-mss Bool — gre only: clamp forwarded TCP MSS to the route MTU. On by default because PMTUD is unreliable across tunnels
key Int — gre only: GRE key (RFC 2890) — endpoint hygiene, not security
local String — gre only: local outer endpoint (unset lets the kernel pick)
mac MacAddress — physical only: pin this name to the NIC with this MAC via a systemd .link file, so the name survives reboots and NIC re-enumeration
mtu Int — Interface MTU (0 leaves the kernel default)
parent String — vlan only: parent device
pin-via String — gre only: pin a host route for the tunnel endpoint via this underlay gateway, so a route learned through the tunnel can never claim the tunnel's own endpoint (recursion collapse)
remote String — gre only: remote outer tunnel endpoint
ttl Int — gre only: outer TTL
type String dummy, vlan, physical, gre dummy (created), vlan (802.1Q sub-interface), physical (existing NIC, never created), or gre (MPLS-capable tunnel)
vlan-id Int — vlan only: 802.1Q tag
vrf String <configured VRF name> VRF to enslave the interface into; enslaving flushes addresses

routing peer <address>#

iBGP peer (route reflector or PE) — keyed by IPv4 address

A keyed list: set routing peer <address> <field> <value> creates or updates an entry; delete routing peer <address> removes the whole entry.

Field Type Accepted values Description
bfd Bool — Enable BFD on the session — the only fast liveness signal on a statically-routed tunnel with no IGP
description String — Free-text peer description
vpn-only Bool — Activate only the vpnv4/vpnv6 address-families, never ipv4/ipv6 unicast — a remote-PE spoke that keeps its own internet

routing static-route <prefix>#

Static route rendered into frr.conf (family inferred from the prefix). Routes with a src hint are installed by the provisioner as kernel routes instead

A keyed list: set routing static-route <prefix> <field> <value> creates or updates an entry; delete routing static-route <prefix> removes the whole entry.

Field Type Accepted values Description
dev String — Egress interface (via and/or dev is required)
src String — Source-address hint. Routes with this set are installed as kernel routes, not rendered into frr.conf (FRR 10.3 has no working src mechanism), so BGP cannot resolve next-hops over them
via String — Next-hop address (via and/or dev is required)

routing vrf <name>#

L3VPN VRF — becomes a Linux VRF device, so the name is bound by IFNAMSIZ (15 chars, no whitespace or '/')

A keyed list: set routing vrf <name> <field> <value> creates or updates an entry; delete routing vrf <name> removes the whole entry.

Field Type Accepted values Description
cgn-ip-group String — CGN IP group translating subscribers in this VRF (on-box CGN). The VRF's IPv4 address pools are then private and must not be announced
export-rt String (list) — Route targets exported from this VRF
gateway-ip IpV4Address — IPv4 gateway address the BNG owns inside this VRF
gateway-ipv6 IpV6Address — IPv6 gateway address the BNG owns inside this VRF
import-rt String (list) — Route targets imported into this VRF
l2tp-endpoint-ip IpV4Address — L2TP tunnel endpoint address inside this VRF (LNS role)
rd String — Route distinguisher, e.g. 65000:10
table-id Int — Linux route-table id for the VRF. Required — a VRF left at 0 silently fails to create its device and breaks FibSync mapping

security#

Path Type Accepted values Description
security dp-socket-path String — Socket path for data plane
security drop-capabilities Bool — Drop Linux capabilities after startup
security ipc-socket-path String — IPC socket path for control plane
security service-group String — Service group name
security service-user String — Service user name
security socket-file-mode Int — Socket file permission mode (decimal)
security validate-socket-ownership Bool — Validate socket file ownership

snmp#

Path Type Accepted values Description
snmp agentx-perms String — Permissions applied to the AgentX socket
snmp agentx-socket-path String — AgentX socket the subagent connects to
snmp community String — SNMPv2c read-only community string (secret)
snmp conf-path String — Path to the generated snmpd configuration
snmp enabled Bool — Run the SNMP AgentX subagent
snmp listen-address String (list) — Agent listen endpoints (e.g. udp:127.0.0.1:161); empty auto-derives
snmp manage Bool — Render and own /etc/snmp/snmpd.conf
snmp sample-interval Int — Data-plane counter sample interval in seconds
snmp sys-contact String — SNMP sysContact string
snmp sys-location String — SNMP sysLocation string

snmp ro-community <community>#

Read-only community grants for remote pollers

A keyed list: set snmp ro-community <community> <field> <value> creates or updates an entry; delete snmp ro-community <community> removes the whole entry.

Field Type Accepted values Description
sources String (list) — Allowed source CIDRs/IPs (a v6 source renders rocommunity6)

source-vrf-rule#

source-vrf-rule <name>#

Source-subnet VRF classification: route a source subnet arriving in an ingest VRF into a target VRF with no NAT

A keyed list: set source-vrf-rule <name> <field> <value> creates or updates an entry; delete source-vrf-rule <name> removes the whole entry.

Field Type Accepted values Description
ingest-vrf String <configured VRF name> The VRF traffic arrives in before classification
source-subnet String (list) — Source CIDRs that route into target-vrf
target-vrf String <configured VRF name> The VRF matching traffic is routed into (no NAT)

subscribers#

Path Type Accepted values Description
subscribers default-pools ipv4-pool String — IPv4 pool for local subscribers with no static IPv4 and no pool of their own
subscribers default-pools ipv6-pd-pool String — IPv6 PD pool for local subscribers with no static delegated prefix and no pool of their own
subscribers default-pools ipv6-wan-pool String — IPv6 WAN pool for local subscribers with no static IPv6 WAN and no pool of their own

subscribers ipoe <circuit>#

Local IPoE (DHCP) subscribers, keyed by access circuit (portP.V / portP.S.V, or an Option-82 circuit-id)

A keyed list: set subscribers ipoe <circuit> <field> <value> creates or updates an entry; delete subscribers ipoe <circuit> removes the whole entry.

Field Type Accepted values Description
additional-routes String (list) — Extra site prefixes routed to the subscriber (CIDR)
dns-1 IpV4Address — Primary IPv4 DNS server
dns-2 IpV4Address — Secondary IPv4 DNS server
dns-v6-1 IpV6Address — Primary IPv6 DNS server
dns-v6-2 IpV6Address — Secondary IPv6 DNS server
download-burst Int — Download burst override (KB); unset = rate-proportional
download-rate Int — Download rate (kbit/s)
download-rate-pps Int — Download packet rate (pps); 0 = unlimited
framed-ip IpV4Address — IPv4 address (omit for v6-only)
framed-ipv6 IpV6Address — IPv6 WAN address (omit for v4-only)
ipv4-pool String — Dynamic IPv4 address pool, used when no framed-ip is set (else subscribers default-pools)
ipv6-pd-length Int — Delegated prefix length (1-64)
ipv6-pd-pool String — Dynamic IPv6 delegated-prefix pool, used when no ipv6-pd-prefix is set
ipv6-pd-prefix IpV6Address — Delegated IPv6 prefix
ipv6-wan-pool String — Dynamic IPv6 WAN pool (a /64 per subscriber), used when no framed-ipv6 is set
plan-name String — Service plan name
service-id String — Accounting subject id (GUID); optional
service-type String broadband, sim, ethernet Kind of service the service-id names (broadband, sim, ethernet); default broadband
upload-burst Int — Upload burst override (KB); unset = rate-proportional
upload-rate Int — Upload rate (kbit/s)
upload-rate-pps Int — Upload packet rate (pps); 0 = unlimited
vrf String <configured VRF name> VRF the subscriber terminates in; empty = global table

subscribers ppp <username>#

Local PPP subscribers (username/password; LNS-terminated L2TP and PPPoE-local)

A keyed list: set subscribers ppp <username> <field> <value> creates or updates an entry; delete subscribers ppp <username> removes the whole entry.

Field Type Accepted values Description
additional-routes String (list) — Extra site prefixes routed to the subscriber (CIDR)
dns-1 IpV4Address — Primary IPv4 DNS server
dns-2 IpV4Address — Secondary IPv4 DNS server
dns-v6-1 IpV6Address — Primary IPv6 DNS server
dns-v6-2 IpV6Address — Secondary IPv6 DNS server
download-rate Int — Download rate (kbit/s)
download-rate-pps Int — Download packet rate (pps); 0 = unlimited
framed-ip IpV4Address — IPv4 address (omit for v6-only)
framed-ipv6 IpV6Address — IPv6 WAN address (omit for v4-only)
ipv4-pool String — Dynamic IPv4 address pool, used when no framed-ip is set (else subscribers default-pools)
ipv6-pd-length Int — Delegated prefix length (1-64)
ipv6-pd-pool String — Dynamic IPv6 delegated-prefix pool, used when no ipv6-pd-prefix is set
ipv6-pd-prefix IpV6Address — Delegated IPv6 prefix
ipv6-wan-pool String — Dynamic IPv6 WAN pool (a /64 per subscriber), used when no framed-ipv6 is set
password String — PPP password (PAP/CHAP shared secret) (secret)
plan-name String — Service plan name
service-id String — Accounting subject id (GUID); optional
service-type String broadband, sim, ethernet Kind of service the service-id names (broadband, sim, ethernet); default broadband
upload-rate Int — Upload rate (kbit/s)
upload-rate-pps Int — Upload packet rate (pps); 0 = unlimited
vrf String <configured VRF name> VRF the subscriber terminates in; empty = global table

subscribers pppoe <circuit>#

Local PPPoE wholesale subscribers (relayed to remote L2TP endpoints), keyed by access circuit (portP.V / portP.S.V, or an Option-82 circuit-id)

A keyed list: set subscribers pppoe <circuit> <field> <value> creates or updates an entry; delete subscribers pppoe <circuit> removes the whole entry.

Field Type Accepted values Description
service-id String — Accounting subject id (GUID); optional
tunnel-endpoint String (list) — Remote LNS endpoint: "address [port N] [vrf NAME] [secret S] [assignment-id ID] [priority N]" (quote the whole value)

syslog#

Path Type Accepted values Description
syslog enabled Bool — Deprecated alias for logging sink syslog enabled — export the appliance event stream
syslog port Int — Deprecated alias for logging sink syslog port — syslog collector port
syslog server IpAddress — Deprecated alias for logging sink syslog destination — syslog collector address

system#

Path Type Accepted values Description
system cli admin-socket-path String — Unix socket the bng-cli relay connects to
system cli admin-socket-peer-uid Int — UID required of the socket's peer; the relay is rejected if it does not match
system cli admin-socket-relay-user String — User the SSH ForceCommand relay runs as
system cli host-key-path String — Path to SSH host key
system cli idle-timeout Int — CLI idle timeout in minutes
system cli max-sessions Int — Maximum concurrent CLI sessions
system cli serial-console-baud Int — Serial console baud rate (8N1)
system cli serial-console-device String — Serial device for the console (e.g. /dev/ttyS0; ttyS1 for IPMI SOL)
system cli serial-console-enabled Bool — Run the local CLI on the appliance serial port (restart required)
system cli ssh-enabled Bool — Enable SSH for CLI access
system cli ssh-listen-address IpAddress — SSH listen address
system cli ssh-port Int — SSH port for CLI
system cli telnet-enabled Bool — Enable Telnet for CLI access
system cli telnet-listen-address IpAddress — Telnet listen address
system cli telnet-port Int — Telnet port for CLI

system login user <name>#

Login users

A keyed list: set system login user <name> <field> <value> creates or updates an entry; delete system login user <name> removes the whole entry.

Field Type Accepted values Description
authentication encrypted-password String — Encrypted password hash (secret)
authentication passkey String (list) — An enrolled passkey, as "credential-id public-key [label]". Written by enrolment; set it only to restore a backup. Delete revokes it
authentication ssh-key String (list) — Authorized SSH key in authorized_keys form, e.g. "ssh-ed25519 AAAAC3Nz…" (quote the whole value)
authentication totp-secret String — TOTP shared secret. Normally written by enrolment; settable so a seed can be restored from backup. Masked on read (secret)
class String super-user, operator, read-only User class
full-name String — User full name

walled-garden#

Path Type Accepted values Description
walled-garden captive-dns-interception-enabled String — Enable data-plane captive DNS interception for restricted sessions
walled-garden captive-dns-ttl Int — TTL for data-plane captive DNS answers
walled-garden captive-portal-ip IpAddress — IPv4 address the data-plane captive DNS responder answers with (the portal, not a resolver)
walled-garden captive-portal-ip-v6 IpV6Address — IPv6 address the data-plane captive DNS responder answers AAAA queries with
walled-garden dns-server IpV4Address (list) — Walled garden DNS servers
walled-garden dns-server-v6 IpV6Address (list) — Walled garden IPv6 DNS servers
walled-garden domain-name String — Walled garden domain name
walled-garden lease-time Int — Walled garden lease time in seconds
walled-garden max-allocations-per-port-s-vlan Int — Maximum concurrent walled-garden temporary pool allocations per access port/S-VLAN
walled-garden temp-pool-cidr String — Temporary IPv4 pool CIDR for unknown subscribers
walled-garden temp-pool-gateway IpV4Address — Temporary pool gateway IP
walled-garden vrf-name String <configured VRF name> Walled garden VRF name

web-ui#

Path Type Accepted values Description
web-ui appliance-name String — Name shown in the UI header and used to tell appliances apart in the fleet view
web-ui auth allow-self-service-device-tokens Bool — Whether signed-in operators may mint revocable 90-day sliding device tokens for themselves (secret)
web-ui auth lockout max-attempts Int — Failed sign-ins before an account is locked out
web-ui auth lockout window Int — Window the failed-attempt count is measured over, in minutes
web-ui auth passkey mode String — Whether passkeys are off, a second factor, or may replace the password
web-ui auth session-state-path String — Where session state is persisted so logins survive a control-plane restart
web-ui auth session-timeout Int — Idle timeout for a UI session, in minutes
web-ui auth tacacs auth-type String — TACACS+ authentication type
web-ui auth tacacs authorize-service String — Service name presented in the TACACS+ authorization request
web-ui auth tacacs command-accounting-enabled Bool — Emit TACACS+ START/STOP accounting for each TACACS+ CLI command
web-ui auth tacacs command-authorization-fallback String — Fallback on TACACS+ command authorization error: local or deny
web-ui auth tacacs enabled Bool — Authenticate management users against TACACS+
web-ui auth tacacs per-command-authorization-enabled Bool — Authorize each TACACS+ CLI command before execution
web-ui auth tacacs role-attribute String — Attribute carrying the user's role in the authorization reply
web-ui auth tacacs role-map String (list) — Maps a TACACS+ attribute value to a Netavo role, as "match:role"
web-ui auth tacacs secret String — TACACS+ shared secret (secret)
web-ui auth tacacs timeout Int — TACACS+ request timeout in milliseconds
web-ui auth tacacs transport-vrf String — VRF used to reach the TACACS+ servers
web-ui auth totp-mode String — Whether TOTP is off, optional or required
web-ui demo Bool — Serve fabricated demo data instead of live state. For demonstrations only — never on an appliance carrying traffic
web-ui enabled Bool — Serve the web management UI and REST API
web-ui hostname String — Hostname the UI presents and issues certificates for
web-ui tls custom cert-path String — Path to the operator-supplied certificate (PEM)
web-ui tls custom key-path String — Path to the operator-supplied private key (PEM)
web-ui tls mode String self-signed, custom Certificate source: self-signed or an operator-supplied pair
web-ui tls self-signed store-path String — Where the generated self-signed certificate is kept
web-ui trusted-proxy String (list) — Proxies whose X-Forwarded-For may be believed. Trusting the wrong hop lets a client spoof its source address past IP-based restrictions

web-ui auth oidc provider <name>#

An OIDC identity provider for management-plane SSO (doc 33)

A keyed list: set web-ui auth oidc provider <name> <field> <value> creates or updates an entry; delete web-ui auth oidc provider <name> removes the whole entry.

Field Type Accepted values Description
client-id String — OAuth client id
client-secret String — OAuth client secret (secret)
display-name String — Label shown on the sign-in button
enabled Bool — Offer this provider on the sign-in page
fetch-user-info Bool — Call the userinfo endpoint when the id token lacks the needed claims
groups-claim String — Claim carrying group membership
issuer String — Issuer URL; discovery hangs off it
redirect-uri String — Redirect URI registered with the provider; must match exactly
role-map String (list) — Maps a group claim value to a Netavo role, as "match:role"
scope String (list) — Scopes requested at authorization
username-claim String — Claim used as the username

web-ui auth tacacs server <host>#

A TACACS+ server, tried in configuration order

A keyed list: set web-ui auth tacacs server <host> <field> <value> creates or updates an entry; delete web-ui auth tacacs server <host> removes the whole entry.

Field Type Accepted values Description
port Int — TACACS+ port

web-ui auth token <name>#

A named API bearer token. The token itself is never stored — only its hash, which is what token-hash sets and which is masked on read

A keyed list: set web-ui auth token <name> <field> <value> creates or updates an entry; delete web-ui auth token <name> removes the whole entry.

Field Type Accepted values Description
created-utc String — UTC time the token was created
device-user String — Local user authenticated by a self-service device token
label String — Operator-facing label for a self-service device token
last-used-utc String — UTC time the token last authenticated successfully
role String — Role the token is granted
token-hash String — Hash of the bearer token (secret)

web-ui listener <address>#

An address the web UI binds, optionally inside a VRF

A keyed list: set web-ui listener <address> <field> <value> creates or updates an entry; delete web-ui listener <address> removes the whole entry.

Field Type Accepted values Description
port Int — TCP port
vrf String <configured VRF name> VRF the listener binds inside

web-ui peer <name>#

Another appliance this one proxies to in the fleet view

A keyed list: set web-ui peer <name> <field> <value> creates or updates an entry; delete web-ui peer <name> removes the whole entry.

Field Type Accepted values Description
allow-untrusted Bool — Accept the peer's certificate without validating it. Only for a lab — it removes the protection the fingerprint pin provides
api-token String — Bearer token used to authenticate to the peer (secret)
cert-fingerprint String — Expected TLS certificate fingerprint — how a self-signed peer is pinned
url String — Base URL of the peer's API

487 configurable fields across 23 sections (29 keyed lists).