“Can I use a whitebox switch to run Ostinato?”
This is a question we are often asked.
The appeal is obvious.
- High speed ports (10/25/40/50/100G) for higher throughput
- High port-density for more test ports
- Inexpensive
In this post we will examine and answer this question.
Dedicated traffic generator hardware
Industry standard traffic generators from the likes of Ixia (now Keysight), Spirent and Xena are vertically integrated solutions that include software, hardware and firmware. This makes these solutions useful but also very expensive.
You can use Ostinato on inexpensive COTS hardware to create a similar solution. Ostinato’s controller-agent architecture enables the agent to be deployed on dedicated hardware typically running Linux which can be controlled by the GUI controller running on a user’s Windows or Mac laptop/desktop.
The dedicated hardware used by most customers is a standard x86 server with multiple NICs running Linux. You can also use multi-port firewall hardware appliances or even a Raspberry Pi.
🛠️ If you intend to use a dedicated hardware for Ostinato, you need to size and spec out your system carefully - reach out to us for guidance.
So, can we use a 32x100G whitebox switch to run Ostinato?
The short answer is - if you want to use for performance testing, NO; if you want to use for functional testing, MAYBE.
Let’s break down the reasons why.
Note that this applies not just to Ostinato but any software network traffic generator that you may want to run on a whitebox switch.
What is a whitebox switch?
Traditionally, network switches (L2 or L3) are built by major vendors like Cisco, Juniper, Arista, etc. and are sold as a complete package of hardware, a proprietary network operating system (NOS) and a service contract.
A whitebox switch is a network switch that is not branded by a major vendor. It is typically built by OEMs like Accton, Delta, Edgecore, etc. and sold either as barebones hardware or with a choice of third-party network operating systems (NOS).
What’s inside a whitebox (or non-whitebox) switch?
For our purposes, a switch consists of the following components:
- A Control Plane CPU with RAM and storage that runs the NOS
- An ASIC that handles the data plane processing
- A specialized memory (RAM) that holds packet buffers
The heart of the switch is the ASIC that handles the data plane processing. The ASIC is typically a vendor proprietary chip in traditional switches. Whitebox switches use merchant silicon ASICs from Broadcom or Marvell.
Using a whitebox switch for performance testing
The switching ASIC is designed to handle high-speed packet processing for transit traffic i.e. traffic passing through the box - this packet is received from a front panel port, worked upon by the ASIC hardware and sent out of another front panel port without the CPU being involved.
Traffic originating or terminating on the switch itself is sent (or received from) the Control Plane CPU.
The link between the Control Plane CPU and the ASIC is typically a 1G or 10G link - even on 100G switches! This is because the amount of control plane traffic is minimal compared to the data plane traffic and a 1/10G link is sufficient to handle the control plane traffic.
And there-in lies our problem.
Let’s say we run the Ostinato agent (drone) on the control plane CPU. Traffic generated from the CPU and sent to the ASIC to be sent out of the front panel ports passes through the 1/10G link which is a bottleneck!
Say, hypothetically speaking, there is such a switch with a 100G link between the CPU and ASIC (no such switch exists) - the second potential bottleneck is the number and type of CPU cores. Usually, the general purpose CPUs on these switches are not very powerful and have only 2 or 4 cores at max.
This effectively makes the whitebox switch unusable for performance testing.
Using a whitebox switch for functional testing
So the 1/10G link and no of CPU cores is a bottleneck for performance testing.
What if we just want to use the switch for functional testing (utilizing the high port-density)?
You can use the whitebox switch for functional testing, if the following are true.
- The CPU is a 64bit Intel x86 CPU
- The CPU runs a Linux based NOS
- Ostinato supports the Linux distro and version running on the CPU
- The Linux based NOS allows third-party Linux applications to be installed and run on the CPU
- The switch front panel ports are accessible via the Linux Kernel - i.e.
ifconfig
orip link show
lists the front panel ports
If the above is true, you can install the Ostinato agent on the CPU and use the switch for functional testing.
Meeting some, but not all conditions?
If some of the above conditions are not met e.g. the Linux distro/version is not supported by Ostinato or the CPU is not x86 but ARM etc. - you can reach out to our professional services team and they will evaluate your hardware and, if feasible, undertake the work of porting Ostinato agent to your hardware.
Some of our enterprise customers have found substantial cost savings by repurposing their old and unused switch hardware as a traffic generator for functional testing needs!
Reach out to us with if this is something you would like to evaluate.