Perf-Bench¶
Warning
Ostinato Perf-Bench is in early-access phase - feature-incomplete and limited testing.
You need docker to run Ostinato Perf-Bench.
Test Topology¶
PerfBench acts as a controller in the Ostinato Architecture and therefore can be run on a different host or on the same host running the drone. In case of the latter specify the tester device as localhost
or 127.0.0.1
in the test config YAML (see below).
Single Tx/Rx port with remote loopback is also supported.
How to Install¶
Un-archive the contents and import the docker image.
$ tar zxvf ostinato-perfbench-<VERSION>.tgz
$ cd ostinato-perfbench-<VERSION>
$ docker load -i docker-ostinato-perfbench-<VERSION>.tgz
How to Run¶
Create the test config YAML file perfbench.yml
. A sample is shown below -
tester:
# Specify the ostinato-agent (aka drone) details
device:
host: tg-drone
description: 'Linux 1G drones'
tx_port: 'enp0s8'
rx_port: 'enp0s9'
# Specify TX/RX IP and Gateway IP for the tester tx/rx_ports
# If the DUT is directly connected to the tester, the gateway IPs should
# be configured on the DUT
tx_ip: '198.18.1.2'
tx_gateway: '198.18.1.1'
rx_ip: '198.19.1.2'
rx_gateway: '198.19.1.1'
To run the Perf-Bench container, use the shell script -
$ ./perfbench.sh [optional params]
If running on Windows, use perfbench.bat
instead.
Use -h
to see the list of available options and parameters
At the end of the run, a PDF report is generated.
Single Tx/Rx port with Remote Loopback¶
To test a single port remote loopback topology as shown above, you should set up perfbench.yml
as follows -
tester.device.tx_port
andtester.device.rx_port
should be set to same valuetester.tx_ip
MUST be specified - this will be used as the source IP in the generated test traffictester.rx_ip
MUST be specified - this will be used as the destination IP in the generated test traffic. Even if the remote port does not have an IP address assigned and does the loopback at layer 2, a dummy IP must still be specifiedtester.[rx/tx]_gateway
MUST be specified but are don't care and not usedtester.remote_mac
, if specified, will be used as the destination Mac in the generated test traffic; otherwise, a random Mac will be used. This mac is expected to be of the remote port