Emutex realized a customised high-speed network packet generator to be used for testing network switches and routers.
Our client, an international manufacturer of networking infrastructure equipment, contracted Emutex to build a customised high-speed network packet generator to be used in the testing of their network switches and routers. The generator simulates high speed and high volume network traffic typically experienced within commercial cloud server farms.
THE EMUTEX APPROACH
We decided to create a software based network packet generator solution to run on powerful multi-core Intel Xeon based Dell servers. Using Intel DPDK technology and the Linux Operating System as a foundation, we built a C and Python based network packet generation software framework to test network load, latency and TCP connection setup and teardown - including datagrams transmission, a key feature not present in other software TCP simulators and required by our client to test networking applications like Open vSwitch. The framework allowed the flexible generation of user defined network frames and flows at line rate on standard Intel 10 GbE Network Interface Cards (NICs).
The solution was network protocol agnostic but included incremental or random field updates (e.g. source and destination IP addresses) plus updating of all GRE/Ethernet/IP/UDP/TCP checksums.
The final solution enabled our client to migrate some of their testing of 10/100 GbE networking solutions away from expensive and not so scalable third party test frameworks such as IXIA and Spirent, to a flexible proprietary software solution using commodity hardware and NICs. It was also capable of generating 40Gbps of *IMIX traffic where up to 8 field modifications (plus the resulting checksum updates) were carried out on each packet while using just 2 physical cores. This scaled linearly depending on the number of physical cores used. Moreover the framework offers another key advantage: it is extensible; so we trained our client’s engineers to tailor and grow it.
*IMIX, or internet mix, refers to a mix of packet sizes which are assumed to resemble typical "real-world" internet traffic conditions.
The Intel Data Plane Development Kit (DPDK) is a set of data plane libraries and network interface controller drivers for fast packet processing at 10 and 40GbE speeds. Intel DPDK provides a programming framework that scales from Intel Atom processors to Intel Xeon processors and enables faster development of high speed data packet networking applications. Intel DPDK is provided and supported under the open source BSD license. It is widely used in Amazon AWS, Microsoft Azure, Cisco and other companies involved in high speed networking. For more information on Intel DPDK refer to dpdk.org.