Introduction to BittWare's StreamSurge 100G Networking Example
BittWare offers StreamSurge, a 100G network load testing application for BittWare’s XUP-P3R accelerator card. StreamSurge is offered for free as a pre-compiled bitstream to XUP-P3R owners, turning the card into a simple network test solution for only the cost of the hardware. Click here to get the App Note for StreamSurge.
Why FPGAs for Network Test?
Software solutions already exist for network protocol testing at any bandwidth and for load testing up to 10 GbE. But at 25G and higher even the latest multi-core Intel Xeon CPUs can’t keep up—you needed dedicated network acceleration hardware.
With GPUs not a fit for packet processing, the choice narrows down to NIC ASIC or FPGA solutions. The advantage of ASIC-based appliances is they offer 25-100 Gbps with many features for extensive testing. However, dedicated 100G appliances are quite expensive—they can be many times the cost of a single FPGA card.
In addition, an FPGA-based solution can be designed with just the functions that are required for the user’s needs at a much lower cost.
BittWare’s Motivation for Building StreamSurge
At BittWare, we have two distinct use cases internally for 100G network load testing:
- Overnight, continuous integration test runs for product development
- Manufacturing test on the factory floor
Both of these cases require multiple 100G testers running simultaneously. While ASIC testers exist for these tests, we would need to buy several at a very high cost per unit (five times or more the price of a XUP-P3R card).
Our solution was to narrow down the features needed for our testing and, using SmartNIC Shell as a starting point, we built StreamSurge.
How it Works
Because we began with SmartNIC Shell, we already had in place the gaskets and other “plumbing” in order to manipulate packets in the FPGA. In addition, we used the DPDK data mover to interface with host applications. This saved us significant time and let our team focus on what was unique in this SmartNIC application: network load testing.
For testing we needed to either create a packet generator inside the FPGA or provide a means to play back or stream packets using the FPGA but with packets from another source. We chose this second path, but enabled both playback or streaming. For playback, the user first captures packets to a PCAP file from a software or ASIC source. StreamSurge then can play back the PCAP file at line rate from a buffer.
For streaming, we utilize the industry standard DPDK host interface. This makes the XUP-P3R appear as a regular NIC card to packet generator software, with timestamps on both transmit and receive. On the XUP-P3R there’s a large DRAM buffer with these features:
- Adds ability to pause transmit while the transmit buffer fills up
- Adds ability to loop the transmit buffer for infinitely long load tests
- Adds ability to change interframe gap (IFG) on transmit
- Adds the ability to apply transmit timestamps to the packet payload to enable latency and jitter measurements
To interface with StreamSurge we have created the “streamcli” DPDK application. This command-line tool controls all the hardware functions described above. In addition, it can receive packets into PCAP files, transmit PCAP files, and can fill the packet buffer with patterns based upon IETF RFC 2544 and ITU-T Y.1564 test mythologies
We have a video showing StreamSurge in action with two XUP-P3R cards, synchronized to GPS atomic clocks and set to measure latency of equipment between the cards.
For network packet processing, BittWare’s FPGA solutions can help where CPUs are limited in performance and ASIC-based solutions either aren’t available, are not feasible or are too expensive for the desired application. In this case ASIC-based appliances exist with enough features, but the equipment cost limits what can be done for continuous integration test or manufacturing testing.
Instead the BittWare XUP-P3R card provides a suitable solution for network test at 100 Gb/s. For card owners, StreamSurge is free as a bitstream (compatible with a limited subset of chip/card configurations) on the BittWare Developer website.
We have more details on StreamSurge available as a free App Note download; get it today through the form below!
There's More to Read: Get the StreamSurge App Note
Request PDF Download
What you see on this page is the introduction to BittWare’s StreamSurge. There’s a lot more detail in the full App Note! Fill in the form to request access to a PDF version of the full App Note.