Mini-NDN is a lightweight networking emulation tool that enables testing, experimentation, and research on the NDN platform based on Mininet. Mini-NDN uses the NDN libraries, NFD, NLSR, and tools released by the NDN project to emulate an NDN network on a single system.
Mini-NDN works on Ubuntu 20.04 and 22.04. It will also run on Debian 11 and Fedora 33 without the WiFi scenario.
Mini-NDN can be installed from source using the following commands:
git clone https://github.com/named-data/mini-ndn.git
cd mini-ndn
./install.sh --source
./install.sh --source
will install NDN packages from source.
./install.sh --ppa
will install NDN packages from PPA repository.
./install.sh --[source or ppa] --no-wifi
will install Mini-NDN without the wifi module.
To run Mini-NDN with the default toplology, run:
sudo python examples/mnndn.py
To run Mini-NDN with a topology file, provide a filname as the first argument:
sudo python examples/mnndn.py my-topology.conf
More information on how to make your own topologies and configuration file can be found here
A sample experiment can be found in /examples or in the documentaion here.
Full documentation for Mini-NDN can be found at its ReadTheDocs.
Alternatively, the docs can be built from source by cloning this repo and running:
./docs/build.sh
The output can be found in docs/_build/html
.
Additionally, the ICN 2022 presentation is a good starting point to get an overview.
If you are new to the NDN community of software generally, read the Contributor's Guide.
Mini-NDN is open and free software licensed under the GPL 3.0 license. Mini-NDN is free to all users and developers. For more information about licensing details and limitations, please refer to COPYING.md.
The first release of Mini-NDN is developed by members of the NSF-sponsored NDN project team. Mini-NDN is open to contribution from the public. For more details, please refer to AUTHORS.rst. Bug reports and feedback are highly appreciated and can be made through our Redmine site and the mini-ndn mailing list.
Learn more about Mini-NDN's dependencies: