Functionality
BittWare’s Synthetic Traffic Generator creates Ethernet packets inside the FPGA and launches them into the attached network.
If desired, users can deploy BittWare’s separate PCIe Data Capture Reference Design to receive those packets. This, of course, assumes software configures the Traffic Generator to generate IP packets.
The basic idea is to create packets of various sizes, at line rate, for long periods of time. The packet header does not change. You can configure an increasing packet serial number inside the payload.
You can interleave up to 32 of these “packet streams” which means you can have up to 32 different packet headers. We need this functionality to test targets that divide received packet streams into multiple “queues” for processing using multiple host CPU cores.
You can configure random size packets but at BittWare we instead tend to sweep a design at line rate, starting with an endless series of tiny packets to verify no drops, then adding a byte to the payload, and continuing to test until we reach the biggest payload that a target design allows.
We also allow users to insert a single instance of any packet they want into an ongoing stream. This is useful for inserting an error to see what happens.
Packet streams are not required to launch at line rate as we can define a longer interpacket gap, thus reducing the packet rate. Finally, payload data can be zeros, random numbers, a repeating 64 byte pattern, or an increasing sequence (i.e. 0123456789101112…).
Hardware
This Synthetic Traffic Generator was created and tested on a BittWare XUP-P3R card containing an AMD VU9P chip, speed grade 2. The Traffic Generator does not use any external memory. The Design should port into any BittWare card with an AMD UltraScale+ chip containing a CMAC, as we demonstrated by porting the combination of Data Capture and Traffic Generator into the 250-SoC.
Resource Utilization
These diagrams show the FPGA resource utilization for a candidate 2.0.0 release of the Data Capture reference design (February 2021). This is likely very close to, if not exactly the version we ultimately released.
Note this bitfile includes both reference designs Traffic Generator and Data Capture.