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 currentlyconsidered 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
|
Links
The link configuration is optional and allows to define per interface link configurations. An explicit link configuration with the global default settings is automatically generated if no link is defined for interface links referenced by interface functions.
{ "interfaces": { "links": [] } }
Attribute |
Description |
---|---|
interface |
Interface name (e.g. eth0, …).
|
description |
Interface description.
|
mac |
Overwrite the MAC address.
Default: physical interface MAC address
|
lag-interface |
Add interface/link to LAG group.
|
lacp-priority |
LACP interface priority.
Default: 32768
|
tx-cpuset |
Optionally pin TX threads to CPU cores (cpuset). This is required
for DPDK only.
|
rx-cpuset |
Optionally pin RX threads to CPU cores (cpuset). This is required
for DPDK only.
|
io-mode |
Overwrite the IO mode.
|
io-burst |
Overwrite the IO burst.
|
io-slots |
Overwrite the IO slots (ring size).
|
io-slots-tx |
Overwrite the TX IO slots (ring size).
|
io-slots-rx |
Overwrite the RX IO slots (ring size).
|
qdisc-bypass |
Overwrite the kernel’s qdisc layer configuration.
|
tx-interval |
Overwrite the TX polling interval in milliseconds.
|
rx-interval |
Overwrite the RX polling interval in milliseconds.
|
tx-threads |
Overwrite the number of TX threads per interface link.
|
rx-threads |
Overwrite the number of RX threads per interface link.
|
Link Aggregation (LAG)
{ "interfaces": { "lag": [] } }
Attribute |
Description |
---|---|
interface |
LAG interface name (e.g. lag0, …).
|
lacp |
Enable LACP.
Default: false
|
lacp-timeout-short |
Enable LACP short timeout (3x1s)
Default: false (3x30s)
|
lacp-system-priority |
LACP system priority.
Default: 32768
|
lacp-system-id |
LACP system identifier
Default: 02:ff:ff:ff:ff:00
|
lacp-min-active-links |
Define the minimum number of active links.
Default: 0
|
lacp-max-active-links |
Limit the maximum number of active links.
Default: 255
|
mac |
LAG interface MAC address.
Default: 02:ff:ff:ff:ff:<interface-id>
|
Note
Multithreaded TX is not supported for LAG member interfaces!
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 |
Username.
Default: user{session-global}@rtbrick.com
|
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
[RFC6221](https://datatracker.ietf.org/doc/html/rfc6221).
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
|