MoonGen: A Scriptable High-Speed Packet Generator
By Paul Emmerich, Sebastian Gallenmüller, F. Wohlfart, Daniel Raumer, Georg Carle. ACM/SIGCOMM Internet Measurement Conference, 2014
433 citations recorded by the source corpus.
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
Subfields: Computer Networks and Communications, Electrical and Electronic Engineering
View Paper: https://www.semanticscholar.org/paper/89a69d2e1eccb56ba05ccb34b54725c73181822c
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
In Computer Networks and Communications
- N. Feamster
- Jennifer Rexford
- Walter Willinger
- Marco Canini
- Danda B. Rawat
- S. Reddy
- Mosharaf Chowdhury
- Raouf Boutaba
In Electrical and Electronic Engineering
Citations in the corpus
- The eXpress data path: fast programmable packet processing in the operating system kernel (2018, background): “Examples of such applications include those performing single functions, such as switching [47], routing [19], named-based forwarding [28], classification [48], caching [33] or traffic generation [14].”
- Sonata: query-driven streaming network telemetry (2018, methodology): “The sender connects to the Tofino switch with two interfaces: one interface to replay CAIDA traces using the Moongen [12] traffic generator at about 1 .”