MoonGen: A Scriptable High-Speed Packet Generator

We present MoonGen, a flexible high-speed packet generator. It can saturate 10 GbE links with minimum-sized packets while using only a single CPU core by running on top of the packet processing framework DPDK. Linear multi-core scaling allows for even higher rates: We have tested MoonGen with up to 178.5 Mpps at 120 Gbit/s. Moving the whole packet generation logic into user-controlled Lua scripts allows us to achieve the highest possible flexibility. In addition, we utilize hardware features of commodity NICs that have not been used for packet generators previously. A key feature is the measurement of latency with sub-microsecond precision and accuracy by using hardware timestamping capabilities of modern commodity NICs. We address timing issues with software-based packet generators and apply methods to mitigate them with both hardware support and with a novel method to control the inter-packet gap in software. Features that were previously only possible with hardware-based solutions are now provided by MoonGen on commodity hardware. MoonGen is available as free software under the MIT license in our git repository at https://github.com/emmericp/MoonGen

[1]  Viktor K. Prasanna,et al.  Proceedings of the eighth ACM/IEEE symposium on Architectures for networking and communications systems , 2012 .

[2]  Rob Sherwood,et al.  OFLOPS: An Open Framework for OpenFlow Switch Evaluation , 2012, PAM.

[3]  Paul Barford,et al.  Self-configuring network traffic generation , 2004, IMC '04.

[4]  Daniel Raumer,et al.  Comparison of frameworks for high-performance packet IO , 2015, 2015 ACM/IEEE Symposium on Architectures for Networking and Communications Systems (ANCS).

[5]  Scott O. Bradner,et al.  Benchmarking Methodology for Network Interconnect Devices , 1999, RFC.

[6]  Luigi Rizzo,et al.  netmap: A Novel Framework for Fast Packet I/O , 2012, USENIX ATC.

[7]  Stefano Giordano,et al.  Flexible High Performance Traffic Generation on Commodity Multi-core Platforms , 2012, TMA.

[8]  Glen Gibb,et al.  A Packet Generator on the NetFPGA Platform , 2009, 2009 17th IEEE Symposium on Field Programmable Custom Computing Machines.

[9]  Antonio Pescapè,et al.  Do you trust your software-based traffic generator? , 2010, IEEE Communications Magazine.

[10]  Kang Lee,et al.  IEEE 1588 standard for a precision clock synchronization protocol for networked measurement and control systems , 2002, 2nd ISA/IEEE Sensors for Industry Conference,.

[11]  Jamal Hadi Salim,et al.  Beyond Softnet , 2001, Annual Linux Showcase & Conference.