Configuration

Interfaces

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

The following configuration allows to overwrite the global default interface link settings.

{ "interfaces": {} }

Attribute

Description

Default

io-mode

IO mode

packet_mmap_raw

io-slots

IO slots (ring size)

4096

qdisc-bypass

Bypass the kernel’s qdisc layer

true

tx-interval

TX polling interval in milliseconds

1.0

rx-interval

RX polling interval in milliseconds

1.0

tx-threads

Number of TX threads per interface link

0 (main thread)

rx-threads

Number of RX threads per interface link

0 (main thread)

capture-include-streams

Include traffic streams in the capture

true

mac-modifier

Third byte of access session MAC address (0-255)

0

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.

The default tx-interval and rx-interval of 1.0 (1ms) allows precise timestamps and high throughput. Those values can be further increased (e.g. 0.1) for higher throughput or decreased (e.g. 5.0) for lower system load.

It might be also needed to increase the io-slots from the default value of 4096 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.

Network Interfaces

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

Attribute

Description

Default

interface

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

address

Local network interface IPv4 address

gateway

Gateway network interface IPv4 address

address-ipv6

Local network interface IPv6 address (implicitly /64)

gateway-ipv6

Gateway network interface IPv6 address (implicitly /64)

vlan

Network interface VLAN

0 (untagged)

gateway-mac

Optional set gateway MAC address manually

gateway-resolve-wait

Sessions will not start until gateways are resolved

true

isis-instance-id

Assign interface to ISIS instance

isis-level

ISIS interface level

3

isis-p2p

ISIS P2P interface

true

isis-l1-metric

ISIS level 1 interface metric

10

isis-l2-metric

ISIS level 2 interface metric

10

Access Interfaces

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

Attribute

Description

Default

interface

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

network-interface

Select the corresponding network interface for this session

type

Set access type (pppoe or ipoe)

pppoe

vlan-mode

Set VLAN mode 1:1 or N:1

1:1

qinq

Set outer VLAN ethertype to QinQ (0x88a8)

false

outer-vlan-min

Outer VLAN minimum value

0 (untagged)

outer-vlan-max

Outer VLAN maximum value

0 (untagged)

outer-vlan

Set outer-vlan-min/max equally

inner-vlan-min

Inner VLAN minimum value

0 (untagged)

inner-vlan-max

Inner VLAN maximum value

0 (untagged)

inner-vlan

Set inner-vlan-min/max equally

third-vlan

Add a fixed third VLAN (most inner VLAN)

0 (untagged)

address

Static IPv4 base address (IPoE only)

ppp-mru

Overwrite PPP MRU (PPPoE only)

address-iter

Static IPv4 base address iterator (IPoE only)

gateway

Static IPv4 gateway address (IPoE only)

gateway-iter

Static IPv4 gateway address iterator (IPoE only)

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

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

ipcp

De-/activate PPP IPCP

ip6cp

De-/activate PPP IP6CP

ipv4

De-/activate IPv4

ipv6

De-/activate IPv6

dhcp

De-/activate DHCP

dhcpv6

De-/activate DHCPv6

igmp-autostart

Overwrite IGMP autostart

igmp-version

Overwrite IGMP protocol version (1, 2 or 3)

stream-group-id

Stream group identifier

access-line-profile-id

Access-line-profile identifier

cfm-cc

De-/activate EOAM CFM CC (IPoE only)

false

cfm-level

Set EOAM CFM maintenance domain level

0

cfm-ma-id

Set EOAM CFM maintenance association identifier

0

cfm-ma-name

Set EOAM CFM maintenance association short name

i1-start

Iterator for usage in strings {i1}

1

i1-step

Iterator step per session

1

i2-start

Iterator for usage in strings {i2}

1

i2-step

Iterator step per session

1

monkey

Enable monkey testing

false

A10NSP Interfaces

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

Attribute

Description

Default

interface

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

qinq

Set outer VLAN ethertype to QinQ (0x88a8)

false

mac

Optional set gateway interface address manually

Sessions

{ "sessions": {} }

Attribute

Description

Default

count

Sessions (PPPoE + IPoE)

1

max-outstanding

Max outstanding sessions

800

start-rate

Setup request rate in sessions per second

400

stop-rate

Teardown request rate in sessions per second

400

iterate-vlan-outer

Iterate on outer VLAN first

false

start-delay

Wait N seconds after all interfaces are resolved before starting sessions

0

autostart

Start sessions automatically

true

monkey-autostart

Start monkey testing automatically if enabled

true

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

Therefore the following configuration 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 iterate-vlan-outer enabled.

{
    "outer-vlan-min": 1,
    "outer-vlan-max": 2,
    "inner-vlan-min": 3,
    "inner-vlan-max": 4
}

IPoE

{ "ipoe": {} }

Attribute

Description

Default

ipv6

Enable/disable IPv6

true (enabled)

ipv4

Enable/disable IPv4

true (enabled)

arp-timeout

Initial ARP timeout/retry interval in seconds

1

arp-interval

Periodic ARP interval in seconds (0 means disabled)

300

PPPoE

{ "pppoe": {} }

Attribute

Description

Default

session-time

Max PPPoE session time in seconds

0 (infinity)

reconnect

Automatically reconnect sessions if terminated

false

discovery-timeout

PPPoE discovery (PADI and PADR) timeout in seconds

5

discovery-retry

PPPoE discovery (PADI and PADR) max retry

10

service-name

PPPoE discovery service name

host-uniq

PPPoE discovery host-uniq

false

vlan-priority

VLAN PBIT for all PPPoE/PPP control traffic

0

PPP

{ "ppp": {} }

Attribute

Description

Default

mru

Define the maximum receive unit proposed via PPP

1492

PPP Authentication

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

Attribute

Description

Default

username

Username

user{session-global}@rtbrick.com

password

Password

test

timeout

Authentication request timeout in seconds

5

retry

Authentication request max retry

30

protocol

This value can be set to PAP or CHAP to reject the other protocol

allow PAP and CHAP

PPP LCP

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

Attribute

Description

Default

conf-request-timeout

LCP configuration request timeout in seconds

5

conf-request-retry

LCP configuration request max retry

10

keepalive-interval

LCP echo request interval in seconds (0 means disabled)

30

keepalive-retry

PPP LCP echo request max retry

3

start-delay

PPP LCP initial request delay in milliseconds

0

ignore-vendor-specific

Ignore LCP vendor-specific requests

false

connection-status-message

Accept LCP connection status messages

false

PPP IPCP (IPv4)

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

Attribute

Description

Default

enable

This option allows to enable or disable the IPCP protocol

true

request-ip

Include IP-Address with 0.0.0.0 in initial LCP configuration request

true

request-dns1

Request Primary DNS Server Address (option 129)

true

request-dns2

Request Secondary DNS Server Address (option 131)

true

conf-request-timeout

IPCP configuration request timeout in seconds

5

conf-request-retry

IPCP configuration request max retry

10

PPP IP6CP (IPv6)

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

Attribute

Description

Default

enable

This option allows to enable or disable the IP6CP protocol

true

conf-request-timeout

IP6CP configuration request timeout in seconds

5

conf-request-retry

IP6CP configuration request max retry

10

DHCP

{ "dhcp": {} }

Attribute

Description

Default

enable

This option allows to enable or disable DHCP

false

broadcast

DHCP broadcast flag

false

timeout

DHCP timeout in seconds

5

retry

DHCP retry

10

release-interval

DHCP release interval

1

release-retry

DHCP release retry

3

tos

IPv4 TOS for all DHCP control traffic

0

vlan-priority

VLAN PBIT for all DHCP control traffic

0

DHCPv6

{ "dhcpv6": {} }

Attribute

Description

Default

enable

This option allows to enable or disable DHCPv6

true

rapid-commit

DHCPv6 rapid commit (2-way handshake)

true

timeout

DHCPv6 timeout in seconds

5

retry

DHCPv6 retry

10

IGMP

{ "igmp": {} }

Attribute

Description

Default

autostart

Automatically join after the session is established

true

version

IGMP protocol version (1, 2 or 3)

3

combined-leave-join

Combine leave and join records within a single IGMPv3 report

true

start-delay

Delay between session established and initial IGMP join in seconds

1

group

Multicast group base address (e.g. 239.0.0.1)

0.0.0.0 (disabled)

group-iter

Multicast group iterator

0.0.0.1

group-count

Multicast group count

1

source

Multicast source address (e.g. 1.1.1.1)

0.0.0.0 (ASM)

zapping-interval

IGMP channel zapping interval in seconds

0 (disabled)

zapping-count

Define the number of channel changes before starting the view duration

0 (disabled)

view-duration

Define the view duration in seconds

0 (disabled)

send-multicast-traffic

Generate multicast traffic

false

multicast-traffic-autostart

Automatically start multicast traffic

true

multicast-traffic-length

Multicast traffic IP length

76

multicast-traffic-tos

Multicast traffic TOS priority

0

multicast-traffic-pps

Multicast traffic PPS per group

1000

network-interface

Multicast traffic source interface

max-join-delay

Maximum join delay in milliseconds

0 (disabled)

Per default, join and leave requests are sent using dedicated reports. The option combined-leave-join 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!

If send-multicast-traffic is true, 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. This traffic starts automatically, which can be suppressed by setting multicast-traffic-autostart to false. The length, TOS and packets per second (PPS) can be controlled with the corresponding options.

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 and 1.1.1.1,239.0.0.5.

If max-join-delay is configured, the final report includes how often the measured join delay is above this threshold.

L2TPv2 Server (LNS)

{ "l2tp-server": [] }

Attribute

Description

Default

name

Mandatory L2TP LNS server hostname (AVP 7)

address

Mandatory L2TP server address

secret

Tunnel secret

receive-window-size

Control messages receive window size

16

max-retry

Control messages max retry

5

congestion-mode

Control messages congestion mode

default

hello-interval

Set hello interval

30

data-control-priority

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

false

data-length

Set length bit for all data packets

false

data-offset

Set offset bit with offset zero for all data packets

false

control-tos

L2TP control traffic (SCCRQ, ICRQ, …) TOS priority

0

data-control-tos

Set the L2TP tunnel TOS priority (outer IPv4 header) for all non-IP data packets (LCP, IPCP, …)

0

lcp-padding

Add fixed padding to LCP packets send from LNS

0

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.

Traffic

{ "traffic": {} }

Attribute

Description

Default

autostart

Automatically start traffic

true

stop-verified

Automatically stop traffic streams if verified

false

max-burst

Stream flow burst size in packets

16

stream-rate-calculation

Enable stream rate calculation

true

The option stream-rate-calculation should be set to false if massive streams (> 1M) are defined but per-stream live rate statistics are not required.

Traffic-Streams

{ "streams": {} }

Attribute

Description

Default

name

Mandatory stream name

stream-group-id

Stream group identifier

0 (raw)

type

Mandatory stream type (ipv4, ipv6 or ipv6pd)

direction

Mandatory stream direction (upstream, downstream or both)

both

source-port

Overwrite the default source port

65056

destination-port

Overwrite the default destination port

65056

ipv4-df

Set IPv4 DF bit

true

priority

IPv4 TOS / IPv6 TC

0

vlan-priority

VLAN priority

0

length

Layer 3 (IP header + payload) traffic length (76 - 9000)

128

pps

Stream traffic rate in packets per second

1

bps

Stream traffic rate in bits per second (layer 3)

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)

access-ipv6-source-address

Overwrite the access IPv6 source address (client)

threaded

Run those streams in separate threads

false

thread-group

Assign this stream to thread group (1-255)

0 (thread per stream)

max-packets

Send a burst of N packets and stop

0 (infinity)

start-delay

Wait N seconds after the session is established before starting

0

tx-label1

MPLS send (TX) label (outer label)

tx-label1-exp

EXP bits of the first label (outer label)

0

tx-label1-ttl

TTL of the first label (outer label)

255

tx-label2

MPLS send (TX) label (inner label)

tx-label2-exp

EXP bits of the first label (inner label)

0

tx-label2-ttl

TTL of the first label (inner label)

255

rx-label1

Expected receive MPLS label (outer label)

rx-label2

Expected receive MPLS label (inner label)

For L2TP downstream traffic, the IPv4 TOS is applied to the outer IPv4 and inner IPv4 header.

The pps option supports also float numbers like 0.1, or 2.5 PPS and has priority over bps where the second is only a helper to calculate the pps based on given bps and length.

The options access-ipv4-source-address and access-ipv6-source-address can be used to test the BNG RPF functionality with traffic sent from source addresses different than those assigned to the client.

Session-Traffic

{ "session-traffic": {} }

Attribute

Description

Default

autostart

Automatically start session traffic after the session is established

true

ipv4-pps

Autogenerate bidirectional IPv4 traffic between a network interface and all sessions

0 (disabled)

ipv4-label

Send downstream IPv4 traffic with the specified MPLS label

0 (unlabeled)

ipv4-address

Overwrite network interface IPv4 address

network interface address

ipv6-pps

Generate bidirectional IPv6 traffic between a network interface and all sessions

0 (disabled)

ipv6-label

Send downstream IPv6 traffic with the specified MPLS label

0 (unlabeled)

ipv6-address

Overwrite network interface IPv6 address

network interface address

ipv6pd-pps

Generate bidirectional IPv6PD (delegated prefix) traffic between a network interface and all sessions

0 (disabled)

Access-Line

{ "access-line": {} }

Attribute

Description

Default

agent-circuit-id

Agent-Circuit-Id

agent-remote-id

Agent-Remote-Id

rate-up

Actual Data Rate Upstream

rate-down

Actual Data Rate Downstream

dsl-type

DSL-Type

Access-Line-Profiles

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

Attribute

Description

Default

access-line-profile-id

Mandatory access-line-profile identifier

act-up

Actual Data Rate Upstream

0

act-down

Actual Data Rate Downstream

0

min-up

Minimum Data Rate Upstream

0

min-down

Minimum Data Rate Downstream

0

att-up

Attainable DataRate Upstream

0

att-down

Attainable DataRate Downstream

0

max-up

Maximum Data Rate Upstream

0

max-down

Maximum Data Rate Downstream

0

min-up-low

Min Data Rate Upstream in low power state

0

min-down-low

Min Data Rate Downstream in low power state

0

max-interl-delay-up

Max Interleaving Delay Upstream

0

act-interl-delay-up

Actual Interleaving Delay Upstream

0

max-interl-delay-down

Max Interleaving Delay Downstream

0

act-interl-delay-down

Actual Interleaving Delay Downstream

0

data-link-encaps

Data Link Encapsulation

0

dsl-type

DSL Type

0

pon-type

PON Access Type

0

etr-up

Expected Throughput (ETR) Upstream

0

etr-down

Expected Throughput (ETR) Downstream

0

attetr-up

Attainable Expected Throughput (ATTETR) Upstream

0

attetr-down

Attainable Expected Throughput (ATTETR) Downstream

0

gdr-up

Gamma Data Rate (GDR) Upstream

0

gdr-down

Gamma Data Rate (GDR) Downstream

0

attgdr-up

Attainable Gamma Data Rate (ATTGDR) Upstream

0

attgdr-down

Attainable Gamma Data Rate (ATTGDR) Downstream

0

ont-onu-avg-down

ONT/ONU Average Data Rate Downstream

0

ont-onu-peak-down

ONT/ONUPeak Data Rate Downstream

0

ont-onu-max-up

ONT/ONU Maximum Data Rate Upstream

0

ont-onu-ass-up

ONT/ONU Assured Data Rate Upstream

0

pon-max-up

PON Tree Maximum Data Rate Upstream

0

pon-max-down

PON Tree Maximum Data Rate Downstream

0

Attributes with values set to 0 will not be sent.

The values for rate-up, rate-down and dsl-type defined in the access-line or interface section has priority over those defined here.

ISIS

{ "isis": {} }

Attribute

Description

Default

instance-id

ISIS instance identifier

level

ISIS level

3

overload

ISIS overload

false

protocol-ipv4

Enable/disable IPv4

true

protocol-ipv6

Enable/disable IPv6

true

level1-auth-key

ISIS level 1 authentication key

level1-auth-type

ISIS level 1 authentication type (simple or md5)

disabled

level2-auth-key

ISIS level 2 authentication key

level2-auth-type

ISIS level 2 authentication type (simple or md5)

disabled

hello-interval

ISIS hello interval in seconds

10

hello-padding

ISIS hello padding

false

holding-time

ISIS holding time in seconds

30

lsp-lifetime

ISIS LSP lifetime in seconds

65535

lsp-refresh-interval

ISIS LSP refresh interval in seconds

300

lsp-retry-interval

ISIS LSP retry interval in seconds

5

lsp-tx-interval

ISIS LSP TX interval in ms (time between LSP send windows)

10

lsp-tx-window-size

ISIS LSP TX window size (LSP send per window)

1

csnp-interval

ISIS CSNP interval in seconds

30

hostname

ISIS hostname

bngblaster

router-id

ISIS router identifier

10.10.10.10

system-id

ISIS system identifier

0100.1001.0010

area

ISIS area(s)

49.0001/24

sr-base

ISIS SR base

sr-range

ISIS SR range

sr-node-sid

ISIS SR node SID

teardown-time

ISIS teardown time in seconds

5

ISIS External

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

Attribute

Description

Default

mrt-file

ISIS MRT file

ISIS External Connections

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

Attribute

Description

Default

system-id

ISIS system identifier

l1-metric

ISIS level 1 interface metric

10

l2-metric

ISIS level 2 interface metric

10

BGP

{ "bgp": {} }

Attribute

Description

Default

network-interface

BGP local interface (source interface)

first network interface

local-ipv4-address

BGP local IPv4 address (source address)

network interface address

local-as

BGP local AS

65000

peer-ipv4-address

BGP peer address

peer-as

BGP peer AS

local AS

holdtime

BGP holdtime in seconds

90

id

BGP identifier

1.2.3.4

reconnect

BGP reconnect

true

start-traffic

BGP starts global traffic after RAW update

false

teardown-time

BGP teardown time in seconds

5

raw-update-file

BGP RAW update file