Mini-NDN Installing Instructions

What equipment will I need ?

Basically, you'll need a laptop/desktop with a recent Linux distro (Ubuntu, Fedora). We recommend Ubuntu. For this guide, the Ubuntu 14.04 LTS was used. Also, note that you'll need administrative privileges in order to download and install extra packages and also to execute Mini-NDN.

Installing NDN

Each node in Mini-NDN will run the official implementation of NDN. Let's get it.

Mini-NDN uses NFD, NLSR, and ndn-tlv-ping.

To install NFD: http://named-data.net/doc/NFD/current/INSTALL.html

To install NLSR: http://named-data.net/doc/NLSR/current/INSTALL.html

To install ndn-tlv-ping: https://github.com/named-data/ndn-tlv-ping

Downloading and installing Mini-NDN

If you don't have it yet, you'll need to have git installed first. In Ubuntu, that would be:

sudo apt-get install git

Now, let's get the source code of Mini-NDN. Go to your home directory and use the following command:

git clone https://github.com/named-data/mini-ndn

As a result, there will be a directory named mini-ndn in your home directory, containing all the source code.

Still in your home directory, use the utility install script with -fnv options:

sudo ./mini-ndn/util/install.sh -fnv

where -f: install open(F)low -n: install mini(N)et dependencies + core files -v: install open (V)switch

Prerequisite packages will be downloaded and installed during the process.

Verification

Once everything is installed, the following command can be issued for verification from the home folder:

sudo minindn --pingall 50 --ctime 180 mini-ndn/ndn_utils/hyperbolic_conf_file/minindn.caida.conf

where: --pingall: Will schedule and collect the specified number of pings from each node to every other node --ctime: Convergence time for NLSR, provide according to the size of the topology

Note: The configuration file contains hyperbolic coordinates but hyperbolic routing will only be activated if --hr is provided

All the ping logs will be stored under /tmp/node-name/ping-data and the command will provide a command line interface at the end.