conferences | speakers | series

The MoonGen Packet Generator

home

The MoonGen Packet Generator
FOSDEM 2016

MoonGen is a scriptable high-speed packet generator suitable to test network devices or NFV deployments with millions of packets per second at rates of more than 10 Gbit/s. Each packet is crafted in real time by a user-defined Lua script to ensure the maximum possible flexibility to test complex scenarios. MoonGen is available as free and open source software on GitHub, a scientific paper describing it was published at the Internet Measurement Conference in October 2015.

What is MoonGen?

MoonGen is 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.

Using MoonGen for Complex Network Tests

MoonGen works with a user-defined Lua script that specifies the whole test by executing script code for each packet in real time. Support for packet reception allows rich tests that distinguish the throughput and latency of multiple different flows to evaluate QoS features.

One key feature is the precise and accurate measurement of latencies. MoonGen can timestamp thousands of packets per second, providing insights into the latency behavior of a system. Latency measurents are especially important in virtualized environments that are often plagued by bad worst-case behaviors that manifest in long-tail latencies. The 99th percentile (the long tail) of the latency is an important performance characteristic of a NFV setup.

This talk shows how to use MoonGen to evaluate networking devices and NFV setups with examples from network experiments conducted by the authors of MoonGen. It also discusses how SDN switches can be used to amplify and modify traffic to benchmark devices with speeds of multiple Terabit/s.

More Information on MoonGen

A scientific paper describing MoonGen was published at the Internet Measurement Conference in October 2015.

Speakers: Paul Emmerich