Skip to content

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

Ostinato Performance Benchmarking 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.1in 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

Ostinato Performance Benchmarking Topology - 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 and tester.device.rx_port should be set to same value
  • tester.tx_ip MUST be specified - this will be used as the source IP in the generated test traffic
  • tester.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 specified
  • tester.[rx/tx]_gateway MUST be specified but are don't care and not used
  • tester.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
Back to top