Ethernet throughput testing using Spirent

There are some Linux open source tools like iperf, netperf can be used to generate ethernet tarrfic for throughput testing. Those tools can get a ballpark number only. There are vendors like IXIA, Spirent, which design the dedicate measurement tools. For the last few days, as I’m evaluating the different software architecture for the next routing platform I’m going to work on this year, I used Spirent SPT-9000A to perform ethernet throughput testing.

Spirent Test Center

Testing Setup Topology

Before we get into how to use Spirent to do the testing, we must introduce the setup topology below:

Spirent Test topology

1. Spirent chassis

This is the heart of testing setup. It has an ethernet interface for management, which is used to comminucate to Spirent test center application, Spirent lab server. It mutiple slots to host mutiple testing modules. Each slot has multiple ports, which will generate/receive ethernet traffic.

2. Laptop/Desktop running Windows OS

It needs to have “Spirent TestCenter” application suites installed under Windows. It includes applications:

  • Spirent TestCenter Application: this is the application which can connect to Spirent chassis, and perform the testing.
  • Spirent TestCenter Session Manager: this is the application which connect to Spirent Lab Server, and create sessions, lauch TestCenter application to perform the testing. Most importantly, after testing session is started running, Test Center application can be closed, and chose "keep testing running" before Test Center application quit.
  • Spirent TestCenter Results Reporter: it generates testing result. It can be PDF file, or excel sheet.
  • 3. Lab Server

    This is a Fedora virtual machine from Spirent. This virtual machine is hosted inside VirtualBox, which runs inside UCS server, which has Redhat Enterprise Linux 6.8 running.

    4. Unit Under Testing (UUT)

    UUT’s ethernet interfaces will be connected to the respective ports in one of module inserted in one slot.

    There are two ways to run testing:

  • From Windows laptop/desktop, launch Spirent TestCenter application directly, connect to Spirent Chassis, do the testing, then close Spirent Test Center after the testing is completed.
  • Spirent test app

  • From Windows laptop/desktop, launch Spirent TestCenter session manager, connect to Spirent Lab Server, then create a session inside Session Manager. Double click the session, this will launch Spirent Test Center Application indirectly, set up the testing, start it. The session will be saved in Spirent Lab Server. After testing is started, even Spirent Test Center application is closed, the testing session can still run as long as the user chose to leave the session running during closing Spirent Test Center Application. This is one advantage by using Spirent Lab Server. There is another advantage, if there are many testing sessions are required for the whole organization/group, the someone can creates many sessions as needed (e.g. label each session associated with different engineer's user ID). After the sessions are created, each engineer can launch his/her Spirent Test Center Session manager, and start his/her own session respectively. This can be a very scalabe solution.
  • Spirent session mgr

    Basic concepts for Spirent test center application:

    Chassis:

    This means the Spirent test physical box, which has an ethernet interface which is for Spirent Test Center or Lab Server to communicate to. You need to know the IP address of the Chassis. After launch the application, the first thing you need to do is to connect to chassis by clicking “Chassis” toolbar button, or menu “Action->Chassis”, then you need input Chassis IP address.

    Port:

    The modules (generates testing traffic) are inserted into respective slots. Each module has many ports (e.g. 12 ports). These are physcial ethernet ports, either with RJ-45 or SFP as connector. After connected to Chassis, you can reserve the ports allocated for your testing. The selected ports will be shown under “All Ports” folder in the left navigation tree.

    Device:

    The device is a logical entity created inside Spirent Test Center application to emulate different host, router etc. Each port can have mutiple devices. However I use one device per port only to keep it simple. The device can be created by “Wizards” -> Devices -> Create Devices. Here you need specify the device IP address, gateway IP address etc. The created devices will be shown under “All Devices” folder in the left navigation tree.

    Spirent wizards

    Traffic stream:

    The traffic stream is to define how the testing traffic is to be generayed, from which source device to destination device, plus packet size, pattern. The traffic can be created by “Wizards” -> Traffic -> Create traffic. The created traffic streams will be shown under “All Stream Blocks”

    Traffic generator:

    After traffic stream created, it will be assigned to respective ports. From the traffic generator, the traffic load can be specified.

    Benchmark testing:

    There are standards like RFC 2544, RFC 2899, which defines how to perform benchmark testing. Spirent supports that.E.g. Under “Wizards->Benchmarking-> RFC 2544”. This can simply the testing a lot. It also let you create device, traffic, define benchmark testing traffic range etc.

    Demo

    Please watch the following two videos for actual testing steps using Spirent Test Center Application.

    Spirent ir809 cable

    Perform testing by pumping 700mbps with packet size 1024 bytes from Spirent port 7 to port 8, bi-directions.

    Port 7 (IP address: 30.30.30.2/24) is connected to IR809 GE0(IP address: 30.30.30.1/24); Port 8 (IP address: 30.30.30.2/24) is connected to IR809 GE1 (IP address: 40.40.40.2/24)

    Perform RFC 2544 Benchmarking testing by starting with 700mbps with packet size 1024 bytes and IMIX from Spirent port 7 to port 8, bi-directions.

    Enjoy!