@inproceedings{76aa69db48794a1fa9fd51c01dea2f41,
title = "MoonGen: A scriptable high-speed packet generator",
abstract = "We present MoonGen, a flexible high-speed packet generator. It can saturate 10GbE links with minimum-sized packets while using only a single CPU core by running on top of the packet processing framework DPDK. Linear multicore scaling allows for even higher rates: We have tested MoonGen with up to 178.5 Mpps at 120Gbit/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.",
keywords = "DPDK, Lua, Packet generation, User space networking",
author = "Paul Emmerich and Sebastian Gallenm{\"u}ller and Daniel Raumer and Florian Wohlfart and Georg Carle",
note = "Publisher Copyright: {\textcopyright} 2015 ACM.; ACM Internet Measurement Conference, IMC 2015 ; Conference date: 28-10-2015 Through 30-10-2015",
year = "2015",
month = oct,
day = "28",
doi = "10.1145/2815675.2815692",
language = "English",
series = "Proceedings of the ACM SIGCOMM Internet Measurement Conference, IMC",
publisher = "Association for Computing Machinery",
pages = "275--287",
booktitle = "IMC 2015 - Proceedings of the 2015 ACM Internet Measurement Conference",
}