MGEN logoThe Multi-Generator (MGEN) is open source software developed by the Naval Research Laboratory (NRL) PROTocol Engineering Advanced Networking (PROTEAN) Research Group. MGEN provides the ability to perform IP network performance tests and measurements using TCP and UDP/IP traffic.

The toolset generates real-time traffic patterns so that the network can be loaded in a variety of ways. The generated traffic can also be received and logged for analysis. Script files are used to drive the generated loading patterns over the course of time. These script files can be used to emulate the traffic patterns of unicast and/or multicast UDP and TCP IP applications. The receive portion of this tool set can be scripted to dynamically join and leave IP multicast groups and listen for traffic. MGEN log data can be used to calculate performance statistics on throughput, packet loss rates, communication delay, and more through TRPR or other tools. MGEN currently runs on various Unix-based (including MacOS X) and Win 32 platforms.

MGEN can also be used in network simulation environments like ns-2 and Opnet. For ns-2, an MGEN Agent is available that can operate within the simulation environment. MGEN commands may be passed to the ns-2 MGEN agent in ns-2 TCL scripts as with other ns-2 agents.

MGEN Version 5.0

This is the latest version of the MGEN toolset. This version supports TCP messaging, IPv6 networking, and provides support for Win32 platforms in addition to a broad base of Unix-based platforms. This version features a more modular code architecture than previous versions. Support for additional statistical traffic generation patterns (JITTER and CLONE), transport buffering, message count, and payload enhancements have been been added in addition to other features documented in the release notes. At this point in time, MGEN 5.x encompasses the feature set of MGEN 4.x. MGEN 5.x can also be embedded in a RAPR (real-time application representative) application.

MGEN 5.x Downloads

MGEN 5.x source and binary distributions are available for download on GitHub.

The trpr (Trace Plot Real Time) analysis program and gpsLogger Global Positioning System (GPS) utilities are available at the Protean Tools webpage. The gpsLogger utility allows MGEN to report GPS host position information in the test message payload. This can be useful for mobile network testing and evaluation.

MGEN 5.x Documentation

An MGEN User's and Reference Guide is available. It is also included in the binary and source downloads.

MGEN 5.x Installation

In some cases, prebuilt binary distributions are available. However, the mgen application can be easily built on most Unix-based platforms and Win32 platforms. The MGEN source code is also available for checkout from GitHub. See the instructions there for further details. Note that the NRL Protolib source code distribution is required and is also available at our downloads site.


The mgen program can be built with gcc on most Unix platforms.

  1. Download and unpack the MGEN source code distribution. Place the unpacked Protolib source directory in the new MGEN directory.
  2. cd mgen/makefiles
  3. Select the appropriate Makefile.{os} for your operating system and type "make –f Makefile.{os} mgen" to build.


A Visual C++ workspace and project is provided to build the mgen tool. Note that the Microsoft Platform SDK may be required to build mgen with some of its more advanced networking features such as IPv6 support.

  1. Download and unpack the MGEN source code distribution.
  2. cd mgen/makefiles/win32
  3. Open the Visual C++ mgen{VSVersion}.sln file appropriate to your Visual Studio version, e.g. mgen-2008-espress.sln.
  4. Type F7 to build the mgen.exe program. (The executable will be found in the directory "mgen/win32/Release" or "mgen/win32/Debug" depending upon which configuration is selected).

Contact Info

If you are interested in more information about MGEN, please contact