diff --git a/AUTHORS.md b/AUTHORS.rst similarity index 80% rename from AUTHORS.md rename to AUTHORS.rst index 4b7ca13..2bd28bb 100644 --- a/AUTHORS.md +++ b/AUTHORS.rst @@ -1,4 +1,5 @@ -# Mini-NDN Authors +Mini-NDN Authors +================= The following lists maintainers, primary developers, and all much-appreciated contributors to Mini-NDN in alphabetic order. The specific contributions of individual authors can be obtained from the git history of the [official Mini-NDN repository](https://github.com/named-data/mini-ndn). @@ -8,22 +9,29 @@ If you would like to become a contributor to the official repository, please fol * Muktadir R. Chowdhury * Damian Coomes * ***(Maintainer)*** Saurab Dulal +* Laqin Fan * ***(Former Maintainer)*** Ashlesh Gawande * Nicholas Gordon -* ***(Maintainer)*** Alexander Lane +* Giovanni Grieco +* ***(Maintainer)*** Alexander Lane * Vince Lehman * Philipp Moll * Eric Newberry * Junxiao Shi * Jeff Thompson * Yucheng Zhang +* Italo Valcy S Brito -## Technical Advisors + +Technical Advisors +------------------- * Lan Wang * Beichuan Zhang -## The Mini-CCNx team + +The Mini-CCNx team +------------------- * Carlos Cabral * Caio de Moraes Elias diff --git a/docs/authors.rst b/docs/authors.rst new file mode 100644 index 0000000..94292d0 --- /dev/null +++ b/docs/authors.rst @@ -0,0 +1 @@ +.. include:: ../AUTHORS.rst \ No newline at end of file diff --git a/docs/conf.py b/docs/conf.py index 54591c1..45fb6f2 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -53,4 +53,9 @@ html_theme = 'sphinx_rtd_theme' # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] \ No newline at end of file +html_static_path = ['_static'] + +# Need to specify the line below if custom conf.py +# https://github.com/readthedocs/readthedocs.org/issues/2569 +# https://stackoverflow.com/questions/56336234/build-fail-sphinx-error-contents-rst-not-found +master_doc = 'index' diff --git a/docs/experiment.rst b/docs/experiment.rst index 58cc303..af95117 100644 --- a/docs/experiment.rst +++ b/docs/experiment.rst @@ -128,6 +128,10 @@ Users may look at how the NFD and NLSR applications are written as a sub class o in the ``minindn/apps`` folder. Or users may choose to directly run their application on nodes such as ndnpingserver is run in ``minindn/helpers/experiment.py``. +**Note:** A certain log-level can be set-up for all the NFD or NLSR nodes at once by passing it as an argument during the startup. + +``nfds = AppManager(self.ndn, self.ndn.net.hosts, Nfd, logLevel='DEBUG')`` (same for NLSR) + Execution --------- @@ -233,3 +237,25 @@ When security is enabled, NLSR security certificates are stored in: ``/tmp/minindn//security`` Note that no NLSR publishes the root certificate, Mini-NDN installs root.cert in security folder for each NLSR. + +Routing Options +---------------- + +Link State Routing (NLSR) +_________________________ +By default, Mini-NDN uses `NLSR `__ for route management i.e route computation, route installation and so on. Additionally, the command line utility ``nlsrc`` can be used to advertise and withdraw prefixes and route status. + + +NDN Routing Helper +____________________ +Computes link-state or hyperbolic route/s from a given minindn topology and installs them in the FIB. The major benefit of the routing helper is to eliminate the overhead of NLSR when using larger topology. See ``examples/static_routing_experiment.py`` on how to use the helper class. + +**IMPORTANT:** NLSR and NDN Routing Helper are mutually exclusive, meaning you can only use one at a time, not both. + +**Note:** The current version of ``ndn_routing_helper`` is still in the experimental phase. It doesn't support node or link failure and runtime prefix advertisement/withdrawal. If you find any bug please report `here `__ or contact the :doc:`authors `. + +IP Routing Helper +____________________ + +The routing helper allows to run IP-based evaluations with Mini-NDN. It configures static IP routes to all nodes, which means that all nodes can reach all other nodes in the network +reachable, even when relaying is required. Please see ``examples/ip_rounting_experiment.py`` for a simple example. diff --git a/docs/index.rst b/docs/index.rst index d7d8f01..afc5d11 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -27,3 +27,4 @@ Helpful Links * `Mininet Documentation `_ * `Mini-NDN redmine `_ * `Mailing list `_ +* :doc:`Mini-NDN Team ` diff --git a/docs/release-notes.rst b/docs/release-notes.rst index 79cbb0f..67c5fc4 100644 --- a/docs/release-notes.rst +++ b/docs/release-notes.rst @@ -1,6 +1,62 @@ Release Notes ============= +Mini-NDN version 0.5.0 (Major changes since version 0.4.0) +---------------------------------------------------------- + +**Breaking Changes**: + +- `Mini-NDN re-design `__: simple and robust design with better quality, control, and more consistency with Mininet + +**New features**: + +- Add a script to generate up-to-date NDN testbed topologies for Mini-NDN + +- Add Mini-NDN utility application for PCAP logging + +- Add NDN routing helper to compute centralized LS and HR routes + +- Add routing helper to allow IP communication in experiments + +- Add startup experiments for NLSR and current testbed topology + +- Move the NDNPing wrapper method to a helper class + +- Create a helper class to provide a wrapper around ``nfdc`` + +**Improvements and Bug Fixes**: + +- Change workDir and resultDir to be class attribute + +- Quiet apt install for Vagrant + +- Fix route computation bug in ``ndn_routing_helper`` + +- Fix overwriting of existing prefixes in ``ndn_routing_helper`` + +- Move log files to resultDir after evaluation finishes + +- Check for duplicate HR coordinates in the topology file + +- Check PSync integration and add a tests case for it + +- Bug fixes in nfdc and experiments + +- Added functionality to check Mini-NDN dependencies + +- Parser fix to avoid an infinite loop + +- Allow use of NFD and NLSR PPA with Mini-NDN + +- Remove arbitrary arguments in favor of parsing arguments from experiment files + +- Auto-complete command-line arguments + +- Add option to set CS size + +- Adjust to use ndn-cxx logging + + Mini-NDN version 0.4.0 (changes since version 0.3.0) ---------------------------------------------------- diff --git a/examples/ip_rounting_experiment.py b/examples/ip_rounting_experiment.py index 8237b9b..7f3829f 100644 --- a/examples/ip_rounting_experiment.py +++ b/examples/ip_rounting_experiment.py @@ -1,6 +1,6 @@ # -*- Mode:python; c-file-style:"gnu"; indent-tabs-mode:nil -*- */ # -# Copyright (C) 2015-2019, The University of Memphis, +# Copyright (C) 2015-2020, The University of Memphis, # Arizona Board of Regents, # Regents of the University of California. # diff --git a/examples/mnndn.py b/examples/mnndn.py index d989633..d56c35f 100644 --- a/examples/mnndn.py +++ b/examples/mnndn.py @@ -1,6 +1,6 @@ # -*- Mode:python; c-file-style:"gnu"; indent-tabs-mode:nil -*- */ # -# Copyright (C) 2015-2019, The University of Memphis, +# Copyright (C) 2015-2020, The University of Memphis, # Arizona Board of Regents, # Regents of the University of California. # diff --git a/examples/static_routing_experiment.py b/examples/static_routing_experiment.py index a5d9b04..e683bc9 100644 --- a/examples/static_routing_experiment.py +++ b/examples/static_routing_experiment.py @@ -1,6 +1,6 @@ # -*- Mode:python; c-file-style:"gnu"; indent-tabs-mode:nil -*- */ # -# Copyright (C) 2015-2019, The University of Memphis, +# Copyright (C) 2015-2020, The University of Memphis, # Arizona Board of Regents, # Regents of the University of California. # diff --git a/minindn/helpers/experiment.py b/minindn/helpers/experiment.py index 226684e..a29272a 100644 --- a/minindn/helpers/experiment.py +++ b/minindn/helpers/experiment.py @@ -1,6 +1,6 @@ # -*- Mode:python; c-file-style:"gnu"; indent-tabs-mode:nil -*- */ # -# Copyright (C) 2015-2019, The University of Memphis, +# Copyright (C) 2015-2020, The University of Memphis, # Arizona Board of Regents, # Regents of the University of California. # diff --git a/minindn/helpers/ndnpingclient.py b/minindn/helpers/ndnpingclient.py index 8220a2d..37b63db 100644 --- a/minindn/helpers/ndnpingclient.py +++ b/minindn/helpers/ndnpingclient.py @@ -1,6 +1,6 @@ # -*- Mode:python; c-file-style:"gnu"; indent-tabs-mode:nil -*- */ # -# Copyright (C) 2015-2019, The University of Memphis, +# Copyright (C) 2015-2020, The University of Memphis, # Arizona Board of Regents, # Regents of the University of California. # diff --git a/minindn/helpers/nfdc.py b/minindn/helpers/nfdc.py index 4a9ebf2..16dabb8 100644 --- a/minindn/helpers/nfdc.py +++ b/minindn/helpers/nfdc.py @@ -1,6 +1,6 @@ # -*- Mode:python; c-file-style:"gnu"; indent-tabs-mode:nil -*- */ # -# Copyright (C) 2015-2019, The University of Memphis, +# Copyright (C) 2015-2020, The University of Memphis, # Arizona Board of Regents, # Regents of the University of California. # diff --git a/minindn/helpers/process_monitor.py b/minindn/helpers/process_monitor.py index 4fa3738..a202965 100644 --- a/minindn/helpers/process_monitor.py +++ b/minindn/helpers/process_monitor.py @@ -1,6 +1,6 @@ # -*- Mode:python; c-file-style:"gnu"; indent-tabs-mode:nil -*- */ # -# Copyright (C) 2015-2019, The University of Memphis, +# Copyright (C) 2015-2020, The University of Memphis, # Arizona Board of Regents, # Regents of the University of California. # diff --git a/minindn/minindn.py b/minindn/minindn.py index aa879cb..7b9c658 100644 --- a/minindn/minindn.py +++ b/minindn/minindn.py @@ -1,6 +1,6 @@ # -*- Mode:python; c-file-style:"gnu"; indent-tabs-mode:nil -*- */ # -# Copyright (C) 2015-2019, The University of Memphis, +# Copyright (C) 2015-2020, The University of Memphis, # Arizona Board of Regents, # Regents of the University of California. # @@ -26,7 +26,7 @@ import sys import time import os import configparser -from subprocess import call, check_output +from subprocess import call, Popen, PIPE import shutil import glob @@ -98,11 +98,13 @@ class Minindn(object): self.ethernetPairConnectivity() try: - Minindn.ndnSecurityDisabled = '/dummy/KEY/-%9C%28r%B8%AA%3B%60' in \ - check_output('ndnsec-get-default -k'.split()). \ - decode('utf-8').split('\n') - if Minindn.ndnSecurityDisabled: - info('Dummy key chain patch is installed in ndn-cxx. Security will be disabled.\n') + process = Popen(['ndnsec-get-default', '-k'], stdout=PIPE, stderr=PIPE) + output, error = process.communicate() + if process.returncode == 0: + Minindn.ndnSecurityDisabled = '/dummy/KEY/-%9C%28r%B8%AA%3B%60' in output + info('Dummy key chain patch is installed in ndn-cxx. Security will be disabled.\n') + else: + debug(error) except: pass diff --git a/minindn/util.py b/minindn/util.py index dd46557..8584ffc 100644 --- a/minindn/util.py +++ b/minindn/util.py @@ -1,6 +1,6 @@ # -*- Mode:python; c-file-style:"gnu"; indent-tabs-mode:nil -*- */ # -# Copyright (C) 2015-2019, The University of Memphis, +# Copyright (C) 2015-2020, The University of Memphis, # Arizona Board of Regents, # Regents of the University of California. #