The 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 Win32 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.
The current version of MGEN is 5.x, though previous versions (MGEN 4.x and MGEN 3.x) are available. Note that 3.x is not interoperable with the later versions. MGEN 4.x and 5.x use the same UDP packets, but are not fully compatible with respect to logfiles, script commands, etc. At present, only MGEN 3.x has a graphical user interface.
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 at:
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 on-line 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 a downloads directory at http://downloads.pf.itd.nrl.navy.mil/mgen. 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.
- Download and unpack the MGEN source code distribution. Place the unpacked Protolib source directory in the new MGEN directory.
- 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.
- Download and unpack the MGEN source code distribution.
- Open the Visual C++ mgen<VSVersion>.sln file appropriate to your Visual Studio version, e.g. mgen-2008-espress.sln.
- 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).
This is an older version of the MGEN toolset. This version supports UDP messaging only, IPv6 networking, and provides support for Win32 platforms in addition to a broad base of Unix-based platforms. See the MGEN 4.x documentation for other features available in this version.
MGEN 4.x will no longer be updated or supported. However, binary and source code distributions will remain available at:
This is the older version of MGEN Toolset which builds and runs on various Unix-based platforms. It has optional support for operation with ISI's rsvpd.
MGEN 3.x will no longer be updated or supported. However, binary and source code distributions will remain available at:
An on-line user's guide is available at: MGEN 3.x User's Guide. Some additional post-processing utilities can be found at MGEN 3.x Utilities.The TRPR log file analysis program is also compatible with MGEN 3.x log files.