Skip to content

Commit

Permalink
initial commit (5.02)
Browse files Browse the repository at this point in the history
  • Loading branch information
weston-nrl committed Sep 11, 2019
0 parents commit bef7a2b
Show file tree
Hide file tree
Showing 445 changed files with 71,263 additions and 0 deletions.
15 changes: 15 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# protolib
protolib/

# build executables
makefiles/mgen
makefiles/mpmgr

# OS generated files #
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
28 changes: 28 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
/*********************************************************************
*
* AUTHORIZATION TO USE AND DISTRIBUTE
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that:
*
* (1) source code distributions retain this paragraph in its entirety,
*
* (2) distributions including binary code include this paragraph in
* its entirety in the documentation or other materials provided
* with the distribution.
*
* "This product includes software written and developed
* by Code 5520 of the Naval Research Laboratory (NRL)."
*
* The name of NRL, the name(s) of NRL employee(s), or any entity
* of the United States Government may not be used to endorse or
* promote products derived from this software, nor does the
* inclusion of the NRL written and developed software directly or
* indirectly suggest NRL or United States Government endorsement
* of this product.
*
* THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
********************************************************************/
51 changes: 51 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
MGEN Version 5.x

This directory contains source code for the NRL Multi-Generator
(MGEN) Test Tool Set Version 5.x. MGEN Version 5 is based on
MGEN 4.2b6. The transport classes have been abstracted and new
features have been added.

Primary new features include:

1) Support for the TCP protocol.
2) New pattern options JITTER and CLONE.
3) Transport buffering has been added (QUEUE option).
4) User defined payload can be specified with the DATA option.
5) Message COUNT support. (Concrete limit for messages sent per flow).
6) Modifications to the log file. (New TCP messages and additional
message content).
7) Works with the RAPR toolkit. <http://cs.itd.nrl.navy.mil/work/rapr/index.php>
8) Compile time option to randomly fill payload buffer.
9) OS can now choose src port.
10) Command line option to log in localtime or gmtime.
11) Includes SO_BROADCAST socket option provided by Erik Auerswald.
12) Includes bug fix for compiling under Visual Studio 6.0 (submitted
by Kevin Wambsganz)
13) Includes bug fix for retaining src port upon flow MOD command.

Please refer to the Mgen User's Guide for more information on these
and other features at <http://pf.itd.nrl.navy.mil/mgen/mgen.html> or
in the distribution.

FILES AND DIRECTORIES:

README.TXT - this file.

include - Include files

src - Directory with cross-platform source code files
src/common contains mgen src code files.
src/sim contains ns and opnet src code files.

doc - Documentation directory.
mgen.[HTML|PDF] (MGEN User's and Reference Guide)
mgen-tech.[HTML|PDF] (MGEN Technical Documentation)
example.mgn (Example MGEN script file)

protolib - NRL Protolib source tree (See
<http:://protolib.pf.itd.nrl.navy.mil>)

makefiles - Directory with os-specific Makefiles.
Linux specific makefiles are at the top level,
win32 and wince subdirectories contains windows
build files.
130 changes: 130 additions & 0 deletions VERSION.TXT
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
Version 5.02
============
- Contains bug fix to close open UDP sockets
- Contains bug fix to handle incoming tcp connections on windows
correctly

Version 5.01c
=============
- Contains bug fixes for compilation under Visual Studio 6.0
- Contains fix to retain src port when flow mod command is
issued.
- Other unenumerated bug fixes.

Version 5.01b
=============
- Transport classes have been abstracted. Socket, UDP, TCP, and SINK
transport classes now subclass base transport class.
- New SINK class is based on ProtoChannel.
- New pattern options JITTER and CLONE.
- Transport buffering has been added (QUEUE option).
- Message COUNT support added. (Concrete limit for messages sent
per flow.)
- Log file changes (new TCP messages and additional message content)
- Thanks to Laurie Thompson for lots of good work on all of this stuff.
- Changed long/unsigned long/etc types to INT32/UINT32/etc to support
builds on 64-bit and other architectures.
- Applied SO_BROADCAST socket option provided by Eric Auerswald.

Version 4.2b7
=============
- Added support for TCP protocol.
- Mgen contains support to enable it to be embedded in a
rapr application.
- Payload can be specified for a specific flow on the command
line.
- Specifying a "0" src port will cause the OS to randomly
assign one. (NOT specifying a src port does the same)
- Support for a mgen "controller" class added.
- Compile option to random fill the payload buffer.
- Added new "localtime" command line option to enable logging
in localtime versus gmtime. gmtime is the default.
- Mgen now a subclass of MgenSocketList
- Various tweaks to keep purify happy.

Version 4.2b6
=============
- Tweaks so gcc 4.x compiles will succeed
- Includes ProtoSocket tweaks for NT4 support

Version 4.2b5
=============
- Various tweaks and changes

Version 4.2b4
=============
- Added several new options and updated documentation
- Added "instance <instanceName>" for run-time control of MGEN
- Added "hostAddr {on|off}" to include "host" source addr
- Added "precise {on|off}" for optional precision timing of
messages at expense of added CPU loading.
- Added short message check to unpacking routine
(prevents segmentation fault possible when checking corrupt UDP packets)
- Performance tweaks and Protolib updates

Version 4.2b3
=============
- Some protolib changes
- Performance tweaks (read all available data from recv ready sockets)

Version 4.2b1
=============
- Added "flush" option and made per-packet flushing of log
file optional (non-default) behavior
- MGEN ported to new "Protolib 2" ("Protokit") code base

Version 4.1b1
=============
- Added "sink/source" options for streaming MGEN messages to
other processes (e.g. ssh, norm, etc - tested on Unix only)
- Changed packet format so that message "length" comes first
- Added "checksum" option
- Added "event" command-line command to insert script flow events
from command-line
- Added option to build ns-2 "Agent/Mgen" simulation agent.

Version 4.0x6
=============
- Fixed problem when flows 0.0 pkt/sec were scripted.
- Added script parameter checks
- Added code to detect ambiguous script keyword abbreviations
- Added default tos,ttl,txbuffer,rxbuffer, and interface.
All of the above may be used as command-line and/or
script arguments. Script arguments may be socket-specific
or global.


Version 4.0x5
=============
- Fixed location of gps_status field to match documented (intended)
MGEN message payload format.

- Added "offset <sec>" command to skip into script by an offset

- Added "save <saveFile>" command to save flow sequence and
script offset time upon exit.

- Added binary log file option and "convert" command to convert
binary MGEN logs to default text format.

- Added new "BURST" pattern.

- Added IPv6 Flow Label support.

- Added "MGEN Payload Manager (mpmgr)" support to allow limited
user-defined payload to be added to MGEN 4.x messages.

Version 4.0x4
=============
- Fixed bug with MGEN message size logging

Version 4.0x3
=============
- Added logging of MGEN START/STOP events
- Added support for START, INPUT, and OUTPUT global commands

Version 4.0x2
=============
- Initial working MGENv4 build.


84 changes: 84 additions & 0 deletions doc/README
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
Generating doxygen output on Windows:

1. Make sure the doc/doxy-config file points to the correct location
of graphwiz's "dot" exectuable for your system. (DOT_PATH variable)
2. Load the doxygen configuration file (doc/doxy-config) into the
doxygen wizard.
3. Start, output will be put in /doc/html.

Generating doxygen output on Linux:

1. Make sure the doc/doxy-config file points to the correct location of
graphwiz's "dot" exectuable for your system. (DOT_PATH variable)
2. Run "doxygen doxy-config", output will be put in /doc/html

-------------------------------------------------------------------------

How to document classes:

/**
* @class ClassName
*
* @brief Enter a brief description of the
* class, the first sentence
* will be included in the brief description.
*
* Anything after the first sentence, and included
* in the "@class" block will be part of the
* detailed description, available from
* the doxygen class file.
*
* The "@brief" description will be used to
* describe the class on the class list.
*
*/

How to document functions:

/**
*
* @brief Description of the function. Will appear before function
* definition. Don't really need "@brief" as JAVADOC_AUTOBRIEF is
* turned on.
*
* @param Defailed parameter text, if needed. Will appear in
* separate parameter secion.
*
* @retval Detailed text about return value, if needed.
*
*/

Other Notes:

1. Sometimes the html directory has to be cleared out and the entire
doxygen output regenerated if the graphics get screwed up.

2. Need "dot" from graphwiz. In some doxygen implementations it is
included.

3. Can generate called/call graphs. To enable or disable call graphs
for each function, toggle CALL_GRAPH and CALLER_GRAPH variables in the
config file. To enable for specific functions when CALL_GRAPH is set
to no, use the @callgraph/@callergraph commands.

4. @sa "See also" alias.
@note "Note" alias
@exception
@class
@param
@return
@retval

ProtoGraph::~Vertice has an example of function text and a @note.

5. Can turn off documentation of inherited functions and properties.

8. Modify INPUT in config file to add additional code/directories, e.g.

INPUT = ../common

#Add protolib to the doxygen output
#INPUT += ../../protolib/common

#To add files
#INPUT += ../../protolib/common/protoApp.h ../../protolib/common/protoApp.cpp
Loading

0 comments on commit bef7a2b

Please sign in to comment.