Sunday, October 25, 2026 4,350 lists 78,100 records on file
List your app or device

  1. Home
  2. Network Testing Software
  3. MoonGen

MoonGen

What it is

MoonGen is a free, MIT-licensed packet generator for Linux that runs as self-hosted software. It uses DPDK and LuaJIT, letting user-written Lua scripts create packets in real time and control both transmission and reception. The project supports Ethernet, IPv4, IPv6, UDP, TCP, ARP, ICMP, and PTP traffic. Its README describes filling a 10 Gbit/s Ethernet link with 64-byte packets on one CPU core while modifying every packet through Lua, and it reports a target above 20 million packets per second per core when using multiple cores. MoonGen provides precise rate control and hardware timestamping below 100 ns on supported network cards. It can benchmark systems such as firewalls and identify dropped packets. The related MoonEm tool emulates path delay, rate limits, and random packet loss. A simplified command-line interface serves quick tests, while a full API supports custom setups. Installation uses a build script, Debian or Ubuntu dependencies, and NIC binding to DPDK.

For and against

For

  • Free plan and MIT license
  • Lua controls packet transmission and reception
  • Supports multiple cores
  • Precise rate control and hardware timestamps
  • Includes MoonEm path emulation

Against

  • Requires DPDK-compatible NICs
  • NIC features vary by model
  • Full API use requires custom Lua scripts
  • ixgbe lacks checksum offloading and timestamping

The verdict

MoonGen provides programmable, high-speed packet generation with measurement features and a companion path-emulation tool. Hardware compatibility and the required DPDK setup should be checked before deployment.

Who it suits

MoonGen suits Linux users who need self-hosted, scriptable traffic generation for network benchmarking. It is relevant to engineers testing firewalls, packet handling, or path conditions.

Plans and prices

MoonGen (MIT licensed)

Free

Requires DPDK compatible NICs · NIC features vary by model · Requires custom Lua scripts for full API use

Every plan, in full

On the record

Hardware support
Basic functionality is available on DPDK-supported NICs; hardware timestamping and rate control support varies by NIC model.github.com · read 8 Oct 2026
Installation
The documented installation uses a build script and requires binding NICs to DPDK; Debian and Ubuntu dependencies are listed.github.com · read 8 Oct 2026
Interface
MoonGen offers a simplified command-line interface for quick tests and a full API for custom scripts and more complex test setups.github.com · read 8 Oct 2026
Known limitation
The README says hardware checksum offloading and timestamping do not work on ixgbe NICs with this version of MoonGen.github.com · read 8 Oct 2026
License
The repository identifies the project as MIT licensed.github.com · read 8 Oct 2026
Measurement
MoonGen supports precise rate control and hardware timestamping, with timestamp precision and accuracy below 100 ns on supported NICs.github.com · read 8 Oct 2026
Packet control
User-provided Lua scripts craft packets in real time and control packet reception as well as transmission.github.com · read 8 Oct 2026
Path emulation
The related MoonEm tool can emulate path delay, rate limits, and random packet loss.github.com · read 8 Oct 2026
Performance
The README says MoonGen can saturate a 10 Gbit/s Ethernet link with 64 byte packets on one CPU core while modifying each packet with a Lua script.github.com · read 8 Oct 2026
Purpose
MoonGen is a scriptable high-speed packet generator built on DPDK and LuaJIT.github.com · read 8 Oct 2026
Scaling
MoonGen supports multiple cores and reports more than 20 million packets per second per CPU core as a performance target.github.com · read 8 Oct 2026
Use cases
The README describes using MoonGen to benchmark systems such as firewalls and to check which packets a system under test drops.github.com · read 8 Oct 2026

Alternatives to MoonGen

Every alternative, ranked