Skip to content

Perf-Bench (RFC 2544)

Ostinato Perf-Bench is an automated test suite for RFC 2544.

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 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.

Layer 2 DUT or back-to-back loopback topology?

Configure the tx_ip and rx_ip in the same subnet to avoid ARP/NDP errors. Here's an example -

tester:
    . . .
    tx_ip: '198.18.1.2'
    tx_gateway: '198.18.1.3'
    rx_ip: '198.19.1.3'
    rx_gateway: '198.19.1.2'

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

Test Report

The RFC 2544 test results are available as a PDF report after the tests finish. Here's a sample test report -

Your browser can't display PDFs. Download the PDF.

Supported RFC 2544 Tests

RFC Section RFC Test Name Supported
26.1 Throughput
26.2 Latency
26.3 Frame Loss Rate
26.4 Back-to-Back Frames
26.5 System Recovery
26.6 Reset
Back to top