Configuration

The BNG Blastert configuration is presented as a JSON file. This configuration must include at least one interface function.

{
    "interfaces": {
        "network": {
            "interface": "eth2",
            "address": "10.0.0.10/24",
            "gateway": "10.0.0.2"
        }
    }
}

In order to minimize the size of this configuration, you have the option to relocate the stream definitions to a separate file. However, it’s important to note that both the streams specified in the main configuration file and the additional streams configuration file will be applied. This approach proves particularly beneficial when conducting tests that involve an extensive number of traffic streams, numbering in the millions. By separating the streams into distinct files, you can maintain a more organized and manageable configuration while ensuring that the combined streams are effectively utilized in your testing scenarios. This flexibility in configuration empowers you to handle large-scale traffic simulations with ease.

bngblaster -C config.json -T streams.json

Variables

Some configuration attributes like username, password, agent-remote-id, agent-circuit-id, or cfm-ma-name support variable substitution. The variable {session-global} will be replaced with the actual session-id starting from 1 and incremented for every new session. The variable {session} is incremented per-interface section. The variables {outer-vlan} and {inner-vlan} will be replaced with the corresponding VLAN identifier or 0 if not defined. The two variables {i1} and {i2} are configurable per-interface sections with user-defined start values and steps.

{
    "username": "user{session-global}@rtbrick.com",
    "agent-circuit-id": "0.0.0.0/0.0.0.0 eth {outer-vlan}:{inner-vlan}",
    "agent-remote-id": "DEU.RTBRICK.{i1}",
    "i1-start": 10000,
    "i1-step": 2
}

Interfaces

The BNG Blaster interfaces are explained detailed in the interfaces section.

{ "interfaces": {} }

Attribute

Description

io-mode

IO mode.
The supported IO modes are listed with bngblaster -v
but except packet_mmap_raw all other modes are currently
considered experimental. In the default mode (packet_mmap_raw)
all packets are received in a Packet MMAP ring buffer and sent
directly through RAW packet sockets.
Default: packet_mmap_raw

io-slots

IO slots (ring size).
It might be also needed to increase the io-slots to
reach the desired throughput. The actual meaning of IO slots
depends on the selected IO mode. For Packet MMAP, it defines the
maximum number of packets in the ring buffer.
Default: 4096

io-burst

IO burst (packets).
Default: 256 Range: 1 to 65535

qdisc-bypass

Bypass the kernel’s qdisc layer.
It’s currently not recommended to change the default (issue #206)!
Default: true

tx-interval

TX polling interval in milliseconds.
Default: 0.1 Range: 0.0001 to 1000

rx-interval

RX polling interval in milliseconds.
Default: 0.1 Range: 0.0001 to 1000

tx-threads

Number of TX threads per interface link.
Default: 0 (main thread)

rx-threads

Number of RX threads per interface link.
Default: 0 (main thread)

capture-include-streams

Include traffic streams in the capture.
Default: false

mac-modifier

Third byte of access session MAC address (0-255). This option
allows to run multiple BNG Blaster instances with disjoint session
MAC addresses.
Default: 0

Network Interfaces

{ "interfaces": { "network": [] } }

Attribute

Description

interface

Parent interface/link name (e.g. eth0, …).

address

Local IPv4 address (e.g. 10.0.0.1/24).

gateway

Default gateway IPv4 address.

address-ipv6

Local IPv6 address (e.g. fc66::1/64).

gateway-ipv6

Default gateway IPv6 address.

ipv6-router-advertisement

Send IPv6 router advertisements (ICMPv6 RA).
Default: true

mtu

MTU size.
Default: 1500 Range: 64 - 9000

vlan

Network interface VLAN.
Default: 0 (untagged)

gateway-mac

Optional set default gateway MAC address manually. Per default
this MAC address is resolved via ARP/ND.

gateway-resolve-wait

Sessions and protocols will not start until gateways are resolved.
Default: true

isis-instance-id

Assign the interface to an ISIS instance.

isis-level

ISIS interface level.
Default: 3 Range: 1 - 3

isis-p2p

ISIS P2P interface.
Default: true

isis-l1-metric

ISIS level 1 interface metric.
Default: 10

isis-l2-metric

ISIS level 2 interface metric.
Default: 10

isis-l1-priority

ISIS level 1 interface priority.
Default: 10

isis-l2-priority

ISIS level 2 interface priority.
Default: 10

ospfv2-instance-id

Assign the interface to an OSPFv2 instance.

ospfv2-type

OSPFv2 interface type (p2p or broadcast).
Default: broadcast

ospfv2-metric

OSPFv2 interface metric.
Default: 10

ospfv3-instance-id

Assign the interface to an OSPFv3 instance.

ospfv3-type

OSPFv3 interface type (p2p or broadcast).
Default: broadcast

ospfv3-metric

OSPFv3 interface metric.
Default: 10

ldp-instance-id

Assign the interface to a LDP instance.

Access Interfaces

{ "interfaces": { "access": [] } }

Attribute

Description

interface

Parent interface/link name (e.g. eth0, …).

network-interface

Select the corresponding network interface for those sessions.
Default: first network interface from configuration

a10nsp-interface

Select the corresponding A10NSP interface for those sessions.
Default: first a10nsp interface from configuration

type

Set access type (pppoe or ipoe).
Default: pppoe

vlan-mode

Set VLAN mode to 1:1 or N:1.
Default: 1:1

qinq

Set outer VLAN ethertype to QinQ (0x88a8).
Default: false

outer-vlan-min

Outer VLAN minimum value.
Default: 0 (untagged)

outer-vlan-max

Outer VLAN maximum value.
Default: 0 (untagged)

outer-vlan-step

Outer VLAN step (iterator).
Default: 1

outer-vlan

Set outer-vlan-min/max equally.

inner-vlan-min

Inner VLAN minimum value.
Default: 0 (untagged)

inner-vlan-max

Inner VLAN maximum value.
Default: 0 (untagged)

inner-vlan-step

Inner VLAN step (iterator).
Default: 1

inner-vlan

Set inner-vlan-min/max equally.

third-vlan

Add a static third VLAN (most inner VLAN).
Default: 0 (untagged)

ipv4

Set false to deactivate IPv4.

ipv6

Set false to deactivate IPv6.

address

Static IPv4 base address (IPoE only).

address-iter

Static IPv4 base address iterator (IPoE only).
Default: 0.0.0.0

gateway

Static IPv4 gateway address (IPoE only).

gateway-iter

Static IPv4 gateway address iterator (IPoE only).
Default: 0.0.0.0

cfm-cc

Enable EOAM CFM CC (IPoE only).
Default: false

cfm-level

Set EOAM CFM maintenance domain level.
Default: 0 Range: 0 - 7

cfm-ma-id

Set EOAM CFM maintenance association identifier.
Default: 0 Range: 0 - 65535

cfm-ma-name

Set EOAM CFM maintenance association short name (string).

username

Overwrite the username from the authentication section.

password

Overwrite the password from the authentication section.

authentication-protocol

Overwrite the username from the authentication section.

agent-circuit-id

Overwrite the agent-circuit-id from the access-line section.

agent-remote-id

Overwrite the agent-remote-id from the access-line section.

access-aggregation-circuit-id

Overwrite the access-aggregation-circuit-id from the
access-line section.

rate-up

Overwrite the rate-up from the access-line section.

rate-down

Overwrite the rate-down from the access-line section.

dsl-type

Overwrite the dsl-type from the access-line section.

ppp-mru

Overwrite PPP MRU (PPPoE only).

ipcp

Overwrite PPP IPCP enable option (PPPoE only).

ip6cp

Overwrite PPP IP6CP enable option (PPPoE only).

dhcp

Overwrite DHCP enable option.

dhcpv6

Overwrite DHCPv6 enable option.

dhcpv6-ldra

Overwrite DHCPv6 LDRA option.

igmp-autostart

Overwrite IGMP autostart option.

igmp-version

Overwrite IGMP protocol version (1, 2, or 3).

session-group-id

Set session group identifier.
Default: 0 Range: 0 - 65535

stream-group-id

Set stream group identifier.
Default: 0 Range: 0 - 65535

access-line-profile-id

Set access-line-profile identifier.
Default: 0 Range: 0 - 65535

i1-start

Iterator {i1} start value.
Default: 1 Range: 0 - 4294967295

i1-step

Iterator {i1} step per session.
Default: 1 Range: 0 - 4294967295

i2-start

Iterator {i2} start value.
Default: 1 Range: 0 - 4294967295

i2-step

Iterator {i2} step per session.
Default: 1 Range: 0 - 4294967295

monkey

Enable monkey testing.
Default: false

A10NSP Interfaces

The L2BSA specification defines two interfaces. The so-called U interface (User Interface) at the customer location and the A10-NSP interface (A10 Network Service Provider) between the service provider networks.

The BNG Blaster A10NSP interface emulates such a layer two provider interface. This interface type accepts all DHCPv4 and PPPoE sessions were received to verify forwarding and header enrichment.

{ "interfaces": { "a10nsp": [] } }

Attribute

Description

interface

Parent interface/link name (e.g. eth0, …).

qinq

Set outer VLAN ethertype to QinQ (0x88a8).
Default: false

mac

Optional set gateway interface address manually.
Default: parent interface/link MAC address

Sessions

{ "sessions": {} }

Attribute

Description

count

Sessions (PPPoE + IPoE).
Default: 1

max-outstanding

Max outstanding sessions.
Default: 800

start-rate

Setup request rate in sessions per second.
Default: 400

stop-rate

Teardown request rate in sessions per second.
Default: 400

start-delay

Wait N seconds after all interfaces are resolved
before starting sessions.
Default: 0

reconnect

Automatically reconnect sessions (PPPoE and IPoE).
Default: false

autostart

Start sessions automatically.
Default: true

monkey-autostart

Start monkey testing automatically if enabled.
Default: true

iterate-vlan-outer

Iterate on outer VLAN first.
Per default, sessions are created by iteration over the
inner VLAN range first and outer VLAN second. Which can be
changed with this option to iterate on the outer VLAN first
and inner VLAN second.

Assuming the following configuration:
“outer-vlan-min”: 1
“outer-vlan-max”: 2
“inner-vlan-min”: 3
“inner-vlan-max”: 4
This generates the sessions on VLAN (outer:inner)
1:3, 1:4, 2:3, 2:4 per default or alternative
1:3, 2:3, 1:4, 2:4 with this option enabled.

Default: false

IPoE

{ "ipoe": {} }

Attribute

Description

ipv6

Enable/disable IPv6.
Default: true (enabled)

ipv4

Enable/disable IPv4.
Default: true (enabled)

arp-timeout

Initial ARP timeout/retry interval in seconds.
Default: 1

arp-interval

Periodic ARP interval in seconds (0 means disabled).
Default: 300

PPPoE

{ "pppoe": {} }

Attribute

Description

session-time

Max PPPoE session time in seconds.
Default: 0 (infinity)

reconnect

Automatically reconnect sessions if terminated.
Default: false

discovery-timeout

PPPoE discovery (PADI and PADR) timeout in seconds.
Default: 5

discovery-retry

PPPoE discovery (PADI and PADR) max retry.
Default: 10

service-name

PPPoE discovery service name.
Default:

host-uniq

PPPoE discovery host-uniq.
Default: false

max-payload

PPP-Max-Payload (RFC4638).
Default: 0 (disabled)

vlan-priority

VLAN PBIT for all PPPoE/PPP control traffic.
Default: 0

PPP

{ "ppp": {} }

Attribute

Description

mru

Define the maximum receive unit proposed via PPP.
Default: 1492 Range: 1 - 65535

PPP Authentication

{ "ppp": { "authentication": {} } }

Attribute

Description

username

password

Password.
Default: test

timeout

Authentication request timeout in seconds.
Default: 5

retry

Authentication request max retry.
Default: 30

protocol

This value can be set to PAP or CHAP to reject
the other protocol.
Default: allow both PAP and CHAP

PPP LCP

{ "ppp": { "lcp": {} } }

Attribute

Description

conf-request-timeout

LCP configuration request timeout in seconds.
Default: 5

conf-request-retry

LCP configuration request max retry.
Default: 10

keepalive-interval

LCP echo request interval in seconds (0 means disabled).
Default: 30

keepalive-retry

PPP LCP echo request max retry.
Default: 3

start-delay

PPP LCP initial request delay in milliseconds.
Default: 0

ignore-vendor-specific

Ignore LCP vendor-specific requests.
Default: false

connection-status-message

Accept LCP connection status messages.
Default: false

PPP IPCP (IPv4)

{ "ppp": { "ipcp": {} } }

Attribute

Description

enable

This option allows to enable or disable the IPCP protocol
Default: true

request-ip

Include IP-Address with 0.0.0.0 in the initial IPCP
configuration request.
Default: true

request-dns1

Request primary DNS server address (option 129).
Default: true

request-dns2

Request secondary DNS server address (option 131).
Default: true

conf-reject-ignore

Ignore configuration reject messages.
Default: false

conf-request-timeout

IPCP configuration request timeout in seconds
Default: 5

conf-request-retry

IPCP configuration request max retry.
Default: 10

PPP IP6CP (IPv6)

{ "ppp": { "ip6cp": {} } }

Attribute

Description

enable

This option allows to enable or disable the IP6CP protocol.
Default: true

conf-request-timeout

IP6CP configuration request timeout in seconds.
Default: 5

conf-request-retry

IP6CP configuration request max retry.
Default: 10

DHCP

{ "dhcp": {} }

Attribute

Description

enable

This option allows enabling or disabling DHCP.
Default: true

broadcast

DHCP broadcast flag.
Default: false

timeout

DHCP timeout in seconds.
Default: 5

retry

DHCP retry.
Default: 10

release-interval

DHCP release interval.
Default: 1

release-retry

DHCP release retry.
Default: 3

tos

IPv4 TOS for all DHCP control traffic.
Default: 0

vlan-priority

VLAN PBIT for all DHCP control traffic.
Default: 0

access-line

Add access-line attributes like Agent-Remote/Circuit-Id.
Default: true

DHCPv6

{ "dhcpv6": {} }

Attribute

Description

enable

This option allows enabling or disabling DHCPv6.
Default: true

ia-na

This option allows enabling or disabling DHCPv6 IA_NA.
Default: true

ia-pd

This option allows enabling or disabling DHCPv6 IA_PD.
Default: true

rapid-commit

DHCPv6 rapid commit (2-way handshake).
Default: true

timeout

DHCPv6 timeout in seconds.
Default: 5

retry

DHCPv6 retry.
Default: 10

access-line

Add access-line attributes like Agent-Remote/Circuit-Id.
Default: true

ldra

This option allows enabling or disabling LDRA.
DHCPv6 LDRA (Lightweight DHCPv6 Relay Agent) is defined in
Adding access-line information like Agent-Remote-Id or
Agent-Circuit-Id should be used with LDRA enabled only.
Default: false

IGMP

{ "igmp": {} }

Attribute

Description

autostart

Automatically join after the session is established.
Default: true

start-delay

Delay between session established and initial IGMP join in seconds.
Default: 1

version

IGMP protocol version (1, 2, or 3).
Default: 3

combined-leave-join

Per default, join and leave requests are sent using dedicated
reports. This option allows the combination of leave and join
records within a single IGMPv3 report using multiple group records.
This option applies to the IGMP version 3 only!
Default: true

group

Multicast group base address (e.g. 239.0.0.1).
If group is set to 293.0.0.1 with group-iter of 0.0.0.2,
source 1.1.1.1 and group-count 3, the result are the following
three groups (S.G):
1.1.1.1,239.0.0.1, 1.1.1.1,239.0.0.3, 1.1.1.1,239.0.0.5
Default: 0.0.0.0 (disabled)

group-iter

Multicast group iterator.
Default: 0.0.0.1

group-count

Multicast group count.
Default: 1

source

Multicast source address (e.g. 1.1.1.1).
Default: 0.0.0.0 (ASM)

zapping-interval

IGMP channel zapping interval in seconds.
Default: 0 (disabled)

zapping-count

Define the number of channel changes before starting
the view duration.
Default: 0 (disabled)

zapping-wait

Wait for multicast traffic before zapping to the next channel.
Default: false

view-duration

Define the view duration in seconds.
Default: 0 (disabled)

max-join-delay

Maximum join delay in milliseconds.
If configured, the final report includes how often
the measured join delay is above this threshold.
Default: 0 (disabled)

send-multicast-traffic

If enabled, the BNG Blaster generates multicast traffic on the
network interface based on the specified group and source
attributes mentioned before. This traffic includes some special
signatures for faster processing and more detailed analysis.
Default: false

multicast-traffic-length

Multicast traffic IP length.
Only applicable with send-multicast-traffic enabled!
Default: 76

multicast-traffic-tos

Multicast traffic TOS priority.
Only applicable with send-multicast-traffic enabled!
Default: 0

multicast-traffic-pps

Multicast traffic PPS (packets-per-second) per group.
Only applicable with send-multicast-traffic enabled!
Default: 1000

network-interface

Multicast traffic source interface.
Only applicable with send-multicast-traffic enabled!
Default: first network interface from configuration

L2TPv2 Server (LNS)

{ "l2tp-server": [] }

Attribute

Description

name

Mandatory L2TP LNS server hostname (AVP 7)

address

Mandatory L2TP server address.

secret

Tunnel secret.

receive-window-size

Control messages receive window size.
Default: 16 Range: 1 - 65535

max-retry

Control messages max retry.
Default: 5 Range: 1 - 65535

congestion-mode

Control messages congestion mode (default, slow or aggressive).
The BNG Blaster supports different congestion modes for the
reliable delivery of control messages. The default mode is
described in RFC2661 appendix A (Control Channel Slow Start and
Congestion Avoidance). The mode slow uses a fixed control window
size of 1 where aggressive sticks to max permitted based on peer
received window size.
Default: default

hello-interval

Set hello interval.
Default: 30 Range: 1 - 65535

data-control-priority

Set the priority bit in the L2TP header for all non-IP data
packets (LCP, IPCP, …).
Default: false

data-length

Set length bit for all data packets.
Default: false

data-offset

Set offset bit with offset zero for all data packets.
Default: false

control-tos

Set L2TP control traffic (SCCRQ, ICRQ, …) TOS priority.
Default: 0 Range: 0 - 255

data-control-tos

Set the L2TP tunnel TOS priority (outer IPv4 header) for all
non-IP data packets (LCP, IPCP, …).
Default: 0 Range: 0 - 255

lcp-padding

Add fixed padding to LCP packets send from LNS.
Default: 0 Range: 0 - 65535

client-auth-id

Add optional check based on client-auth-id to support multiple
LNS server configurations with the same IP address.

Traffic

{ "traffic": {} }

Attribute

Description

autostart

Automatically start traffic globally.
This option control the initial state of the global
signal to control transmission of traffic streams.
Default: true

stop-verified

Automatically stop traffic streams if verified.
Default: false

stream-autostart

Enable stream autostart.
Default: true

stream-rate-calculation

Enable stream rate calculation.
This option should be set to false if massive
streams (e.g. more than 1M) are defined but
per-stream live rate statistics are not required.
Default: true

stream-delay-calculation

Enable stream delay calculation.
This option should be set to false if massive
streams (e.g. more than 1M) are defined but
per-stream delay measurements are not required.
Default: true

stream-burst-ms

This option controls the maximum burst size per
stream, measured in milliseconds. It regulates
how data is sent in bursts over a stream within the
specified time interval. Setting this option
determines the balance between throughput consistency
and burst behavior. The value directly influences the
distribution of traffic bursts within a stream,
affecting how closely the stream rate adheres to the
desired target. A smaller burst size can lead to
smoother traffic, reducing the risk of micro-bursts,
but may result in the stream rate falling below the
intended target. A larger burst size increases the
risk of micro-bursts. This value should be based
on the tolerance for traffic bursts and the required
stream rate. Testing different values is recommended
to find the optimal balance between maintaining the
target rate and preventing large bursts.
Default: 100 Range: 1 - 1000

multicast-traffic-autostart

Automatically start multicast traffic.
Default: true

udp-checksum

Enable UDP checksums.
Default: false

reassemble-fragments

Enable reassembly of fragmented IPv4 stream packets.
Currently, this is restricted to BBL stream traffic
only!
Default: false

Traffic-Streams

{ "streams": {} }

Attribute

Description

name

Mandatory stream name.

stream-group-id

Stream group identifier.
Default: 0 (raw)

type

Mandatory stream type (ipv4, ipv6, or ipv6pd).

direction

Stream direction (upstream, downstream, or both).
Default: both

autostart

Enable stream autostart.
Default: true

source-port

Overwrite the default source port.
For bidirectional streams (direction both), this is applied
as source port in upstream and destination port in downstream.
Default: 65056 Range: 0 - 65535

destination-port

Overwrite the default destination port.
For bidirectional streams (direction both), this is applied
as destination port in upstream and source port in downstream.
Default: 65056 Range: 0 - 65535

ipv4-df

Set IPv4 DF bit.
Default: true

priority

IPv4 TOS / IPv6 TC.
For L2TP downstream traffic, the IPv4 TOS is applied
to the outer IPv4 and inner IPv4 header.
Default: 0 Range: 0 - 255

vlan-priority

VLAN priority.
Default: 0 Range: 0 - 7

length

Layer 3 (IP header + payload) traffic length.
Default: 128 Range: 76 - 9000

ttl

TTL.
Default: 64 Range: 0 - 255

pps

Stream traffic rate in packets per second.
This value supports also float numbers like 0.1 or 2.5.
In example 0.1 means one packet every 10 seconds.
Default: 1.0

bps

Stream traffic rate in bits per second (layer 3).
PPS has priority over bps where the second is only a helper
to calculate the actual PPS based on given bps and length.
The resulting rate in bps is the layer 3 rate because length
is also the layer 3 length (IP header + payload).
It is also supported to put the capital letters K (Kilo),
M (Mega) or G (Giga) in front of bps for better readability.
For example, "Gbps": 1
which is equal to "bps": 1000000000.

pps-upstream

Optionally overwrite PPS in upstream to support bidirectional
streams with different rates for upstream and downstream.

bps-upstream

Optionally overwrite bps in upstream to support bidirectional
streams with different rates for upstream and downstream.

setup-interval

Set optional setup interval in seconds. If set, sent max 1
packet per setup interval until stream becomes verified.
After setup is done, the actual rate will be applied.
For bidirectional streams (direction both), this requires both
directions to be verified.
Default: 0 (disabled) Range: 0 - 900

a10nsp-interface

Select the corresponding A10NSP interface for this stream.

network-interface

Select the corresponding network interface for this stream.

network-ipv4-address

Overwrite network interface IPv4 address.

network-ipv6-address

Overwrite network interface IPv6 address.

destination-ipv4-address

Overwrite the IPv4 destination address.

destination-ipv6-address

Overwrite the IPv6 destination address.

access-ipv4-source-address

Overwrite the access IPv4 source address (client).
This option can be used to test the BNG RPF functionality
with traffic sent from source addresses different than those
assigned to the client.

access-ipv6-source-address

Overwrite the access IPv6 source address (client).
This option can be used to test the BNG RPF functionality
with traffic sent from source addresses different than those
assigned to the client.

max-packets

Send a burst of N packets and stop.
Default: 0 (infinity)

start-delay

Wait N seconds after the session is established
before starting the traffic stream.
Default: 0

tx-label1

MPLS send (TX) label (outer label).

tx-label1-exp

EXP bits of the first label (outer label).
Default: 0

tx-label1-ttl

TTL of the first label (outer label).
Default: 255

tx-label2

MPLS send (TX) label (inner label).

tx-label2-exp

EXP bits of the second label (inner label).
Default: 0

tx-label2-ttl

TTL of the second label (inner label).
Default: 255

rx-label1

Expected receive MPLS label (outer label).

rx-label2

Expected receive MPLS label (inner label).

ldp-ipv4-lookup-address

Dynamically resolve outer label.

ldp-ipv6-lookup-address

Dynamically resolve outer label.

nat

Enable NAT support.
Default: false

raw-tcp

Send RAW TCP traffic (UDP-like traffic with TCP header).
Default: false

Session-Traffic

{ "session-traffic": {} }

Attribute

Description

autostart

Automatically start session traffic as soon as the
corresponding session is established.
Default: true

ipv4-pps

Autogenerate bidirectional IPv4 traffic
between a network interface and all sessions.
Default: 0 (disabled)

ipv4-label

Send downstream IPv4 traffic with the specified MPLS label.
Default: 0 (unlabeled)

ipv4-address

Overwrite network interface IPv4 address.
Default: network interface address

ipv6-pps

Generate bidirectional IPv6 traffic
between a network interface and all sessions.
Default: 0 (disabled)

ipv6-label

Send downstream IPv6 traffic with the specified MPLS label.
Default: 0 (unlabeled)

ipv6-address

Overwrite network interface IPv6 address
Default: network interface address

ipv6pd-pps

Generate bidirectional IPv6PD (delegated prefix) traffic
between a network interface and all sessions.
Default: 0 (disabled)

Access-Line

This feature is designed to simulate various access line attributes defined by the Broadband Forum, which are subsequently employed in protocols such as PPPoE discovery, DHCPv4, and DHCPv6 packets.

The values defined in access-line section apply globally but can be overwritten in the access interface section. The strings agent-remote-id, agent-circuit-id, and access-aggregation-circuit-id support variable substitution.

{ "access-line": {} }

Attribute | Description

agent-circuit-id | | Agent-Circuit-Id (string).

agent-remote-id

Agent-Remote-Id (string).

access-aggregation-circuit-id

Access-Aggregation-Circuit-ID-ASCII (string).

rate-up

Actual Data Rate Upstream.
Default: 0 Range: 0 - 4294967295

rate-down

Actual Data Rate Downstream.
Default: 0 Range: 0 - 4294967295

dsl-type

DSL-Type.
Default: 0 Range: 0 - 4294967295

Attributes with values set to zero will be automatically excluded, making it impossible to send attributes with a zero value. In other words, any attribute that has a value of zero will not be included in the corresponding packets.

In the context of DHCPv6, access line attributes, as well as Agent-Remote-Id or Agent-Circuit-Id, are exclusively permitted in DHCPv6 relay-forward messages as dictated by RFC. By default, BNG Blaster includes these attributes in other DHCPv6 messages, even if this deviates from RFC guidelines. Therefore, the DHCPv6 configuration section provides the option to either disable access-line attributes or, as an alternative, enable LDRA (Lightweight DHCPv6 Relay Agent).

Access-Line-Profiles

Attributes within the access-line-profiles are treated analogous to those within the access-line section but they provide the capability to apply different profiles to each access interface.

{ "access-line-profiles": [] }

Attribute

Description

access-line-profile-id

Mandatory access-line-profile identifier.
Range: 1 - 65535

act-up

Actual Data Rate Upstream.
This value is overwritten by rate-up.
Default: 0 Range: 0 - 4294967295

act-down

Actual Data Rate Downstream.
This value is overwritten by rate-down
Default: 0 Range: 0 - 4294967295

min-up

Minimum Data Rate Upstream.
Default: 0 Range: 0 - 4294967295

min-down

Minimum Data Rate Downstream.
Default: 0 Range: 0 - 4294967295

att-up

Attainable DataRate Upstream.
Default: 0 Range: 0 - 4294967295

att-down

Attainable DataRate Downstream.
Default: 0 Range: 0 - 4294967295

max-up

Maximum Data Rate Upstream.
Default: 0 Range: 0 - 4294967295

max-down

Maximum Data Rate Downstream.
Default: 0 Range: 0 - 4294967295

min-up-low

Min Data Rate Upstream.in low power state
Default: 0 Range: 0 - 4294967295

min-down-low

Min Data Rate Downstream.in low power state
Default: 0 Range: 0 - 4294967295

max-interl-delay-up

Max Interleaving Delay Upstream.
Default: 0 Range: 0 - 4294967295

act-interl-delay-up

Actual Interleaving Delay Upstream.
Default: 0 Range: 0 - 4294967295

max-interl-delay-down

Max Interleaving Delay Downstream.
Default: 0 Range: 0 - 4294967295

act-interl-delay-down

Actual Interleaving Delay Downstream.
Default: 0 Range: 0 - 4294967295

data-link-encaps

Data Link Encapsulation
Default: 0 Range: 0 - 4294967295

dsl-type

DSL Type.
Default: 0 Range: 0 - 4294967295

pon-type

PON Access Type.
Default: 0 Range: 0 - 4294967295

etr-up

Expected Throughput (ETR) Upstream.
Default: 0 Range: 0 - 4294967295

etr-down

Expected Throughput (ETR) Downstream.
Default: 0 Range: 0 - 4294967295

attetr-up

Attainable Expected Throughput (ATTETR) Upstream.
Default: 0 Range: 0 - 4294967295

attetr-down

Attainable Expected Throughput (ATTETR) Downstream.
Default: 0 Range: 0 - 4294967295

gdr-up

Gamma Data Rate (GDR) Upstream.
Default: 0 Range: 0 - 4294967295

gdr-down

Gamma Data Rate (GDR) Downstream.
Default: 0 Range: 0 - 4294967295

attgdr-up

Attainable Gamma Data Rate (ATTGDR) Upstream.
Default: 0 Range: 0 - 4294967295

attgdr-down

Attainable Gamma Data Rate (ATTGDR) Downstream.
Default: 0 Range: 0 - 4294967295

ont-onu-avg-down

ONT/ONU Average Data Rate Downstream.
Default: 0 Range: 0 - 4294967295

ont-onu-peak-down

ONT/ONU Peak Data Rate Downstream.
Default: 0 Range: 0 - 4294967295

ont-onu-max-up

ONT/ONU Maximum Data Rate Upstream.
Default: 0 Range: 0 - 4294967295

ont-onu-ass-up

ONT/ONU Assured Data Rate Upstream.
Default: 0 Range: 0 - 4294967295

pon-max-up

PON Tree Maximum Data Rate Upstream.
Default: 0 Range: 0 - 4294967295

pon-max-down

PON Tree Maximum Data Rate Downstream.
Default: 0 Range: 0 - 4294967295

pon-access-line-version

This option allows to switch between the versions
00 (DRAFT-LIHAWI-00) and 04 (DRAFT-LIHAWI-04) of the RFC
draft-lihawi-ancp-protocol-access-extension.
Default: DRAFT-LIHAWI-04

The values specified for rate-up, rate-down and dsl-type defined in the access-line or interface section section take precedence over the definitions provided here.

ISIS

{ "isis": {} }

Attribute

Description

instance-id

ISIS instance identifier.

level

Level.
Default: 3 Range: 1 - 3

protocol-ipv4

Enable/disable IPv4 routing.
Default: true

protocol-ipv6

Enable/disable IPv6 routing.
Default: true

level1-auth-key

Level 1 authentication key.

level1-auth-type

Level 1 authentication type (simple or md5).

level1-auth-hello

Level 1 hello authentication.

level1-auth-csnp

Level 1 CSNP authentication.

level1-auth-psnp

Level 1 PSNP authentication.

level2-auth-key

Level 2 authentication key.

level2-auth-type

Level 2 authentication type (simple or md5).

level2-auth-hello

Level 2 hello authentication.

level2-auth-csnp

Level 2 CSNP authentication.

level2-auth-psnp

Level 2 PSNP authentication.

hello-interval

Hello interval in seconds.
Default: 10 Range: 1 - 65535

hello-padding

Enable/disable hello padding.
Default: false

hold-time

ISIS hold time in seconds.
Default: 30 Range: 1 - 65535

lsp-buffer-size

ISIS LSPBufferSize in bytes.
Default: 1492 Range: 128 - 9192

lsp-lifetime

ISIS LSP lifetime in seconds.
Default: 65535 Range: 330 - 65535

lsp-refresh-interval

ISIS LSP refresh interval in seconds.
Default: 300 Range: 1 - 65535

lsp-retry-interval

ISIS LSP retry interval in seconds.
Default: 5 Range: 1 - 65535

lsp-tx-interval

ISIS LSP TX interval in ms (time between LSP send windows).
Default: 10 Range: 1 - 65535

lsp-tx-window-size

ISIS LSP TX window size (LSP send per window).
Default: 1 Range: 1 - 65535

csnp-interval

ISIS CSNP interval in seconds.
Default: 30 Range: 1 - 65535

hostname

ISIS hostname.
Default: bngblaster

router-id

ISIS router identifier.
Default: 10.10.10.10

system-id

ISIS system identifier.
Default: 0100.1001.0010

area

ISIS area(s).
Default: 49.0001/24

sr-algo

ISIS SR algorithm(s), multiple possible.
Default: disabled Range: 0 - 255

sr-base

ISIS SR base.
Default: 0 Range: 0 - 1048575

sr-range

ISIS SR range.
Default: 0 Range: 0 - 1048575

sr-node-sid

ISIS SR node SID.
Default: 0 Range: 0 - 1048575

adjacency-sid-base

Enable Adjacency SID generation.
Default: disabled Range 256 - 4096

teardown-time

ISIS teardown time in seconds.
Default: 5 Range: 0 - 65535

ISIS External

{ "isis": { "external": {} } }

Attribute

Description

purge

Automatically purge all external LSP during teardown. This option
requires a reasonable teardown-time depending on the database size.
Default: true

auto-refresh

Automatically refresh all external LSP.
Default: false

mrt-file

MRT file

ISIS External Connections

{ "isis": { "external": { "connections": [] } } }

Attribute

Description

system-id

ISIS system identifier.

l1-metric

ISIS level 1 interface metric.
Default: 10

l2-metric

ISIS level 2 interface metric.
Default: 10

OSPF

{ "ospf": {} }

Attribute

Description

instance-id

OSPF instance identifier.

version

OSPF version.
Default: 2

auth-key

OSPF authentication key.

auth-type

OSPF authentication type (simple or md5).

hello-interval

OSPF hello interval in seconds.
Default: 10 Range: 1 - 65535

dead-interval

OSPF dead interval in seconds.
Default: 40 Range: 1 - 65535

lsa-retry-interval

OSPF LSA retry interval in seconds.
Default: 5 Range: 1 - 65535

hostname

OSPF hostname.
Default: bngblaster

router-id

OSPF router identifier.
Default: 10.10.10.10

router-priority

OSPF router priority.
Default: 64 Range: 0 - 255

area

OSPF area.
Default: 0.0.0.0

sr-base

OSPF SR base.
Default: 0 Range: 0 - 1048575

sr-range

OSPF SR range.
Default: 0 Range: 0 - 1048575

sr-node-sid

OSPF SR node SID.
Default: 0 Range: 0 - 1048575

teardown-time

OSPF teardown time in seconds.
Default: 5 Range: 0 - 65535

OSPF External

{ "ospf": { "external": {} } }

Attribute

Description

purge

Automatically purge all external LSA during teardown.
Default: true

mrt-file

OSPF MRT file.

OSPF External Connections

{ "ospf": { "external": { "connections": [] } } }

Attribute

Description

router-id

Mandatory remote router identifier.

metric

Optional interface metric.
Default: 10 Range: 0 - 4294967295

local-ipv4-address

Mandatory local IPv4 address (OSPFv2 only).

local-interface-id

Local interface identifier (OSPFv3 only).
Default: 1 (2, 3, …)

neighbor-interface-id

Remote interface identifier (OSPFv3 only).
Default: local-interface-id

LDP

{ "ldp": {} }

Attribute

Description

instance-id

LDP instance identifier.

keepalive-time

LDP session keepalive time in seconds.
The keepalive-time defines the local LDP session
keepalive timeout. Each LDP peer must calculate the
effective keepalive timeout by using the smaller of its
locally defined and received timeout in the PDU. The
value chosen indicates the maximum number of seconds
that may elapse between the receipt of successive PDUs
from the LDP peer on the session TCP connection. The
keepalive timeout is reset each time a PDU arrives. The
BNG Blaster will send keepalive messages at an interval
calculated by using the effective keepalive time divided
by 3. Assuming an effective keepalive time of of 15
seconds results in a keepalive interval of 5 seconds.
Default: 15 Range: 0 - 65535

hold-time

LDP hello hold time in seconds.
Default: 15 Range: 0 - 65535

teardown-time

LDP teardown time in seconds.
Default: 5 Range: 0 - 65535

hostname

LDP hostname.
Default: bngblaster

lsr-id

LDP LSR identifier.
Default: 10.10.10.10

ipv6-transport-address

LDP transport IPv6 address.
Setting a valid IPv6 address here enables LDP IPv6
hello and transport.

ipv4-transport-address

LDP transport IPv4 address.
Default: lsr-id

no-ipv4-transport

Disable/discard IPv4 LDP hello messages.

prefer-ipv4-transport

According to RFC7552, IPv6 is preferred over IPv4 which
can be changed with this option to prefer IPv4 transport
even if IPv6 is enabled.
Default: false

raw-update-file

LDP RAW update file.

BGP

{ "bgp": {} }

Attribute

Description

network-interface

BGP local interface (source interface).
Default: first network interface from configuration

local-address

BGP local IPv4/6 address (source address).
Default: network interface address

local-as

BGP local AS.
Default: 65000 Range: 0 - 4294967295

peer-address

Mandatory BGP peer IPv4/6 address.

peer-as

BGP peer AS.
Default: local AS Range: 0 - 4294967295

hold-time

BGP hold-time in seconds.
Default: 90 Range: 0 - 65535

id

BGP identifier.
Default: 1.2.3.4

tos

BGP IP TOS.
Default: 0 Range: 0 - 255

ttl

BGP IP TTL.
Default: 255 Range: 0 - 255

reconnect

Reconnect BGP session automatically.
Default: true

start-traffic

Start global traffic after RAW update finished.
If enabled, the control command traffic-start is automatically
executed as soon as the BGP RAW update has finished.
Default: false

teardown-time

BGP teardown time in seconds.
Default: 5 Range: 0 - 65535

raw-update-file

BGP RAW update file.

family

BGP families to be send in open message.
Default: ipv4/6-unicast, ipv4/6-labeled-unicast
Values:
ipv4-unicast, ipv6-unicast,
ipv4-multicast, ipv6-multicast,
ipv4-labeled-unicast, ipv6-labeled-unicast,
ipv4-vpn-unicast, ipv6-vpn-unicast,
ipv4-vpn-multicast, ipv6-vpn-multicast,
ipv4-flow, ipv6-flow, evpn

extended-nexthop

BGP extended-nexthop families to be send in open message.
Default: None
Values: ipv4-unicast, ipv4-vpn-unicast

HTTP-Client

{ "http-client": {} }

Attribute

Description

name

Mandatory HTTP client name.

http-client-group-id

Mandatory HTTP client identifier.
Range: 1 - 65535

url

Mandatory HTTP request URL.

destination-port

TCP destination port.
Default: 80 Range: 1 - 65535

autostart

Autostart HTTP client.
Default: true

start-delay

HTTP client start delay in seconds.
Default: 0

destination-ipv4-address

Destination IPv4 address.

destination-ipv6-address

Destination IPv6 address.

HTTP-Server

{ "http-server": {} }

Attribute

Description

name

Mandatory HTTP server name.

network-interface

Mandatory HTTP server network-interface.

port

Local TCP port.
Default: 80 Range: 1 - 65535

ipv4-address

Local IPv4 address.

ipv6-address

Local IPv6 address.

ICMP-Client

{ "icmp-client": {} }

Attribute

Description

icmp-client-group-id

ICMP client identifier.
This identifier is used to create ICMP clients for sessions.
Range: 1 - 65535

network-interface

ICMP client network-interface.
Use network-interface instead of icmp-client-group-id when
creating ICMP clients on a network interface. These two options
are mutually exclusive, but at least one of them is required.

destination-address

Mandatory destination IPv4 address.

source-address

Optional source IPv4 address.
Default: session/interface address

size

ICMP data size.
Default: 8 Range: 0 - 65507

interval

ICMP send interval in seconds.
Default: 1.0

count

ICMP requests to send before stopping.
Default: 0 (infinity)

results

ICMP request to track results for.
Default: 3 or count if set

ttl

IPv4 header TTL value.
Default: 64

tos

IPv4 header TOS value.
Default: 0

df

IPv4 header dont-fragement (DF) bit.
Default: false

autostart

Autostart ICMP client after session reconnects. This applies only
to ICMP clients that are bound to access sessions.
Default: true

start-delay

ICMP client start delay in seconds.
Default: 0