Skip to content

NRL Services


The Protean Protocol Prototyping Library (ProtoLib) is a cross-platform library that allows applications to be built while supporting a variety of platforms including Linux, Windows, WinCE/PocketPC, MacOS, FreeBSD, Solaris, etc as well as the simulation environments of NS2 and Opnet. The goal of the Protolib is to provide a set of simple, cross-platform C++ classes that allow development of network protocols and applications that can run on different platforms and in network simulation environments. While Protolib provides an overall framework for developing working protocol implementations, applications, and simulation modules, the individual classes are designed for use as stand-alone components when possible. Although Protolib is principally for research purposes, the code has been constructed to provide robust, efficient performance and adaptability to real applications. In some cases, the code consists of data structures, etc useful in protocol implementations and, in other cases, provides common, cross-platform interfaces to system services and functions (e.g., sockets, timers, routing tables, etc).

Currently, the Naval Research Laboratory uses this library to develop a wide variety of protocols.The NRL Protolib currently supports the following protocols:

  • MGEN_Sink
  • NHDP
  • SMF
  • OLSR
  • OLSRv2
  • MgenActor
  • arouted

NRL Installation

In order to be able to use the different protocols that NRL offers, you must first download the support library itself. You can get the source code from their NRL Protolib Repo.

Multi-Generator (MGEN)

Download MGEN from the NRL MGEN Repo, unpack it and copy the protolib library into the main folder mgen. Execute the following commands to build the protocol.

cd mgen/makefiles
make -f Makefile.{os} mgen

Neighborhood Discovery Protocol (NHDP)

Download NHDP from the NRL NHDP Repo.

sudo apt-get install libpcap-dev libboost-all-dev

Then place the binaries in your $PATH. To know your paths you can issue the following command

echo $PATH

Go to the downloaded NHDP tarball, unpack it and place the protolib library inside the NHDP main folder. Now, compile the NHDP Protocol.

cd nhdp/unix
make -f Makefile.{os}

Simplified Multicast Forwarding (SMF)

Download SMF from the NRL SMF Repo , unpack it and place the protolib library inside the smf main folder.

cd mgen/makefiles
make -f Makefile.{os}

To install the OLSR protocol, download their source code from their NRL OLSR Repo. Unpack it and place the previously downloaded protolib library inside the nrlolsr main directory. Then execute the following commands:

cd ./unix
make -f Makefile.{os}