Test scenario definition
In the current release, it is possible to supply a configuration file
in JSON format for running your tests.
Configuration file example
Using ByteBlower Ports
{ "$schema": "https://api.byteblower.com/test-framework/json/test-cases/docsis-atp/mulpi-v4-0/ll-04-40/part1/config-schema.json", "server": "byteblower-server.example.com", "nsi": { "name": "NSI", "interface": "nontrunk-1", "ipv4": "10.1.1.125", "netmask": "255.255.255.0", "gateway": "10.1.1.1" }, "cpe": { "name": "CPE", "interface": "trunk-1-7", "ipv4": "dhcp", "nat": true } }
In the following sections, we will provide a detailed explanation of the structure and all parameters in the JSON configuration file.
Structure
A quick short reference for the structure:
{
"server": "<bb_server_name_or_ip:str>",
"meeting_point": "<bb_meeting_point_name_or_ip:str>",
"cpe": {
"name": "<source_name:str>",
"interface": "<bb_interface_name:str>",
"mac": "<mac_address:str>",
"uuid":"<endpoint_uuid:str>",
"ipv4": "<ipv4_address:str>|dhcp|true",
"netmask": "<ipv4_address:str>",
"gateway": "<ipv4_address:str>",
"nat": "<nat_resolution:bool>",
"ipv6": "dhcp|slaac|true"
},
"nsi": {
"name": "<destination_name:str>",
"interface": "<bb_interface_name:str>",
"mac": "<mac_address:str>",
"uuid":"<endpoint_uuid:str>",
"ipv4": "<ipv4_address:str>|dhcp|true",
"netmask": "<ipv4_address:str>",
"gateway": "<ipv4_address:str>",
"nat": "<nat_resolution:bool>",
"ipv6": "dhcp|slaac|true"
}
}
JSON schema
The complete structure and documentation of the file is available in Configuration file JSON schema , and documented below.
Server
ByteBlower server address |
||
Host name or IP address of the ByteBlower Server. |
||
type |
string |
|
oneOf |
format |
hostname |
format |
ipv4 |
|
format |
ipv6 |
|
Traffic endpoints
The "cpe" and "nsi" blocks define ByteBlower ports
(simulated hosts) at a given ByteBlower interface. Where a ByteBlower
interface is the physical connection on either the non-trunking interface
(direct connection at a ByteBlower server) or a trunking interface
(connection at a physical port on the ByteBlower switch).
Each port supports IPv4 address assignment using static IPv4 configuration or DHCP. IPv6 address configuration is possible through DHCPv6 or Stateless autoconfiguration (SLAAC).
When an (IPv4) port is located behind a NAT gateway, then the test framework will perform additional setup flow steps to resolve the NAT’s public IPv4 address and UDP port (when required).
Configuration parameters for a ByteBlower Port or Endpoint
Configuration parameters for a ByteBlower Port or Endpoint |
||||||
type |
object |
|||||
properties |
||||||
|
Name of this ByteBlower traffic endpoint. |
|||||
(typically |
||||||
type |
string |
|||||
|
Name of the physical ByteBlower interface where this ByteBlower port is created. |
|||||
ByteBlower Port only. Mutually exclusive with |
||||||
type |
string |
|||||
pattern |
^(nontrunk[-][0-9]+|trunk[-][0-9]+[-][0-9]+)$ |
|||||
|
Device identifier of the ByteBlower Endpoint. |
|||||
ByteBlower Endpoint only. Mutually exclusive with Note Using an Endpoint also requires the |
||||||
type |
string |
|||||
anyOf |
format |
uuid |
||||
pattern |
^[0-9a-zA-Z]$ |
|||||
|
MAC address for the ByteBlower port |
|||||
ByteBlower Port only. Default: Auto-generated MAC address Note When using Byteblower Endpoint, the device’s mac address will be used |
||||||
type |
string |
|||||
examples |
00:1A:2B:3C:4D:5E |
|||||
00-1A-2B-3C-4D-5E |
||||||
001A.2B3C.4D5E |
||||||
pattern |
^([0-9A-Fa-f]{2}([-:])){5}[0-9A-Fa-f]{2}$|^([0-9A-Fa-f]{4}\.){2}[0-9A-Fa-f]{4}$ |
|||||
|
VLAN (stack) configuration |
|||||
List of VLAN configurations for single VLAN or VLAN stack. See details in VLAN configuration. |
||||||
Note Not supported by ByteBlower Endpoint. |
||||||
type |
array |
|||||
items |
#/$defs/vlan |
|||||
|
IPv4 addressing method |
|||||
Enable IPv4 on this traffic endpoint. |
||||||
Supports the following values:
Default: Note For ByteBlower Endpoint, you must specify either |
||||||
oneOf |
type |
string |
||||
oneOf |
IPv4 automatic address configuration |
|||||
enum |
dhcp |
|||||
IPv4 address for the ByteBlower Port |
||||||
format |
ipv4 |
|||||
Use IPv4 on the ByteBlower Endpoint |
||||||
type |
boolean |
|||||
|
Netmask of the IPv4 network. |
|||||
Default: Assigned by DHCP or Note
|
||||||
type |
string |
|||||
format |
ipv4 |
|||||
|
Gateway of the IPv4/IPv6 network. |
|||||
Set the (default) gateway for IPv4 network or preferred router for IPv6 network Default: Assigned by DHCP or none for static IPv4 address configuration. Note
|
||||||
type |
string |
|||||
oneOf |
format |
ipv4 |
||||
format |
ipv6 |
|||||
|
Define whether this port is located behind a NAT gateway. |
|||||
Defaults to Note Enabled by default for ByteBlower Endpoint. |
||||||
type |
boolean |
|||||
|
IPv6 addressing method |
|||||
Enable IPv6 on this traffic endpoint. |
||||||
Supports the following values:
Default: undefined. Note For ByteBlower Endpoint, you must specify either |
||||||
oneOf |
IPv6 automatic address configuration |
|||||
type |
string |
|||||
enum |
dhcp, slaac |
|||||
List of IPv6 addresses |
||||||
type |
array |
|||||
items |
type |
object |
||||
properties |
||||||
|
IPv6 address |
|||||
type |
string |
|||||
format |
ipv6 |
|||||
|
IPv6 address prefix length (0-128) |
|||||
maximum |
128 |
|||||
minimum |
0 |
|||||
oneOf |
type |
string |
||||
type |
integer |
|||||
Use IPv6 on the ByteBlower Endpoint |
||||||
type |
boolean |
|||||
|
Define whether this port is located behind a gateway that blocks IPv6 inbound traffic. |
|||||
Defaults to Note IPv6 only. When enabled, inbound traffic will be allowed. Enabled by default for ByteBlower Endpoint. |
||||||
type |
boolean |
|||||
VLAN configuration
type |
object |
|
properties |
||
|
VLAN protocol ID (TPID). |
|
Default value is:
Note Configuration of the VLAN protocol ID (TPID) requires ByteBlower Server version >= 2.20.0. |
||
type |
integer |
|
maximum |
65535 |
|
minimum |
0 |
|
|
VLAN ID (12-bit; 0-4095) |
|
type |
integer |
|
maximum |
4095 |
|
minimum |
0 |
|
|
3 bits defining the VLAN PCP bits. Default: 0 |
|
type |
integer |
|
maximum |
3 |
|
minimum |
0 |
|
|
1-bit flag. Default: 0 |
|
type |
integer |
|
maximum |
1 |
|
minimum |
0 |
|