2014/10/31 by Paul Emmerich, Sebastian Gallenmüller, Daniel Raumer +2 · 310 citations
Computer Science · Engineering · #Advanced Optical Network Technologies #Interconnection Networks and Systems #Key (lock) #Latency (audio) #MIT License #Network packet #Packet processing #Scripting language #Software #Software-Defined Networks and 5G #cs.NI
paper · pdf · doi:10.1145/2815675.2815692
Published at IMC 2015
openalex publication_date 2015/10/27 · arxiv created 2016/03/31 · arxiv updated 2016/04/04 · openalex created_date 2016/06/24 · openalex updated_date 2026/08/05
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