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 Endpoint

    {
        "server":"byteblower-server.example.com.",
        "meeting_point": "byteblower-meeting-point.example.com.",
        "dut": {
            "name": "DUT",
            "interface": "trunk-1-2",
            "ipv4": "192.168.5.2",
            "netmask": "255.255.255.0",
            "gateway": "192.168.5.254"
        },
        "wlan_stations": [
            {
                "name": "STA1",
                "uuid": "017d7da0-9724-4459-a037-bcec9acf577a",
                "ipv4": true
            },
            {
                "name": "STA2",
                "uuid": "9956866a-03a7-43c8-9cb9-8d3570d8c6a4",
                "ipv4": true
            },
            {
                "name": "STA3",
                "uuid": "4d9a5fdb-32b4-4523-ace9-5972518de13b",
                "ipv4": 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>",
    "dut": {
        "name": "<traffic_endpoint_name:str>",
        "interface": "<bb_interface_name:str>",
        "ipv4": "<ipv4_address:str>|dhcp",
        "netmask": "<ipv4_address:str>",
        "gateway": "<ipv4_address:str>",
        "nat": "<nat_resolution:bool>",
        "ipv6": "dhcp|slaac"
    },
    "wlan_stations": [
        {
            "name": "<traffic_endpoint_name:str>",
            "uuid":"<endpoint_uuid:str>",
            "ipv4": true,
            "ipv6": true
        },
        {
            "name": "<traffic_endpoint_name:str>",
            "uuid":"<endpoint_uuid:str>",
            "ipv4": true,
            "ipv6": true
        },
        {
            "name": "<traffic_endpoint_name:str>",
            "uuid":"<endpoint_uuid:str>",
            "ipv4": true,
            "ipv6": 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

Meeting point

ByteBlower meeting point address

Host name or IP address of the ByteBlower meeting point.

Added in version 1.0.0: Support for ByteBlower Endpoint.

type

string

oneOf

format

hostname

format

ipv4

format

ipv6

Traffic endpoints

The "dut" and "wlan_stations" blocks define the traffic endpoints.

The "dut" is a ByteBlower port connected to the LAN of the DUT. A ByteBlower port is a simulated host 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 flow setup steps to resolve the NAT gateway’s public IPv4 address and UDP port (when required).

The "wlan_stations" define the connections to ByteBlower Endpoints. The ByteBlower Endpoints run on hosts connected to the WLAN stations involved in the test. The configuration is in the order of appearance in the test scenario definition: STA1, STA2 and STA3.

They can be configured by:

  1. Providing the meeting point address and the UUID of the endpoint.

  2. Setting the IPv4 or IPv6 parameter to true.

WLAN station configuration parameters

List of traffic endpoint configurations for STA1, STA2 and STA3

type

array

items

#/$defs/port

maxItems

3

minItems

3

Configuration parameters for a ByteBlower Port or Endpoint

Configuration parameters for a ByteBlower Port or Endpoint

type

object

properties

  • name

Name of this ByteBlower traffic endpoint.

(typically Source for the tester entity, and Destination for the NUT).

type

string

  • interface

Name of the physical ByteBlower interface where this ByteBlower port is created.

ByteBlower Port only. Mutually exclusive with "uuid".

type

string

pattern

^(nontrunk[-][0-9]+|trunk[-][0-9]+[-][0-9]+)$

  • uuid

Device identifier of the ByteBlower Endpoint.

ByteBlower Endpoint only. Mutually exclusive with "interface".

Note

Using an Endpoint also requires the "meeting_point" to be provided and "ipv4" or "ipv6" set to true for this port configuration.

Added in version 1.0.0: Support for ByteBlower Endpoint.

type

string

anyOf

format

uuid

pattern

^[0-9a-zA-Z]$

  • vlans

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

IPv4 addressing method

Enable IPv4 on this traffic endpoint.

Supports the following values:

  • IPv4 address for static IPv4 IP address (ByteBlower Port only).

  • "dhcp" for dynamic IPv4 address allocation (ByteBlower Port only).

  • true: To use the IPv4 address(es) of the system (ByteBlower Endpoint only).

Default: "dhcp" (ByteBlower Port) or undefined (ByteBlower Endpoint).

Note

For ByteBlower Endpoint, you must specify either "ipv4": true or "ipv6": true.

Changed in version 1.0.0: Support for ByteBlower Endpoint.

oneOf

type

string

oneOf

enum

dhcp

format

ipv4

type

boolean

  • netmask

Netmask of the IPv4 network.

Default: Assigned by DHCP or 255.255.255.0 for static IPv4 address configuration.

Note

  • Will be supported for IPv6 once manual address configuration is supported.

  • Not supported by ByteBlower Endpoint.

type

string

format

ipv4

  • gateway

(Default) Gateway of the IPv4 network.

Default: Assigned by DHCP or none for static IPv4 address configuration.

Note

  • Will be supported for IPv6 once manual address configuration is supported.

  • Not supported by ByteBlower Endpoint.

type

string

format

ipv4

  • nat

Define whether this port is located behind a NAT gateway.

Defaults to false.

Note

Enabled by default for ByteBlower Endpoint.

type

boolean

  • ipv6

IPv6 addressing method

Enable IPv6 on this traffic endpoint.

Supports the following values:

  • "dhcp": to let the port perform DHCPv6 (ByteBlower Port only)

  • "slaac": to let the port perform stateless address auto-configuration (ByteBlower Port only).

  • true: To use the IPv6 address(es) of the system (ByteBlower Endpoint only).

Default: undefined.

Note

For ByteBlower Endpoint, you must specify either "ipv4": true or "ipv6": true.

Changed in version 1.0.0: Support for ByteBlower Endpoint.

oneOf

type

string

oneOf

enum

dhcp, slaac

format

ipv6

type

boolean

VLAN configuration

type

object

properties

  • protocol_id

VLAN protocol ID (TPID).

Default value is:

  • "0x8100" for a single VLAN configuration

  • "0x88a8" for the outer VLAN(s) in a VLAN stack configuration

  • "0x8100" for the most inner VLAN in a VLAN stack configuration.

Note

Configuration of the VLAN protocol ID (TPID) requires ByteBlower Server version >= 2.20.0.

type

integer

maximum

65535

minimum

0

  • id

VLAN ID (12-bit; 0-4095)

type

integer

maximum

4095

minimum

0

  • priority

3 bits defining the VLAN PCP bits. Default: 0

type

integer

maximum

3

minimum

0

  • drop_eligible

1-bit flag. Default: 0

type

integer

maximum

1

minimum

0