Prepare Mini-NDN release 0.7.0
Change-Id: Ic7c9fe4a6838bda8e5897bf95ca22d5bea1f1589
diff --git a/docs/howtos.rst b/docs/howtos.rst
index 102f6ef..4cc50a6 100644
--- a/docs/howtos.rst
+++ b/docs/howtos.rst
@@ -117,12 +117,9 @@
Generate NDN testbed topology
___________________________________________
-Run the following install.sh command
-
-::
-
- python3 util/testbed_topo_generator.py
-
-This will place a "testbed.conf" file in the topologies subdirectory,
-where it can be referenced as desired. To update the topology, simply
-rerun this command.
\ No newline at end of file
+Visit the `NDN Play testbed <https://play.ndn.today/?testbed=1>`_
+page and utilize the `MiniNDN Config` button after setting loss
+and latency parameters. This will export an up to date topology
+modeled on the testbed. We also provide a topology at
+`topologies/testbed.conf`, which is based on a sample from 2020
+which has latencies based on measurements from that configuration.
\ No newline at end of file
diff --git a/docs/index.rst b/docs/index.rst
index afc5d11..18ae23e 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -18,6 +18,7 @@
faq
hackathon
videos
+ authors
Helpful Links
-------------
diff --git a/docs/install.rst b/docs/install.rst
index d9511de..1ff8399 100644
--- a/docs/install.rst
+++ b/docs/install.rst
@@ -4,15 +4,51 @@
Prerequisites
-------------
-Mini-NDN is tested on the following Linux distributions:
+Mini-NDN is officially supported on the following Linux distributions:
-- Ubuntu 20.04 (recommended)
-- Ubuntu 22.04
+- Ubuntu 20.04
+- Ubuntu 22.04 (recommended)
+- Ubuntu 24.04
- Debian 11 (WiFi scenario does not work)
- Fedora 33 (WiFi scenario does not work)
You must have sudo privileges to install and run Mini-NDN.
+Using Docker
+------------
+
+You can use the nightly build from GitHub package registry
+::
+ docker run -m 4g --cpus=4 -it --privileged \
+ -v /lib/modules:/lib/modules \
+ ghcr.io/named-data/mini-ndn:master bash
+
+NOTE: This nightly build is only currently supported for x86_64. ARM64 support
+(i.e. Apple silicon Macs) will be added in the future.
+
+Building your own Docker image
+------------------------------
+
+The provided Dockerfile can be used to build an image from scratch. To build with the Dockerfile:
+ - Clone the repository and type::
+
+ docker build -t minindn .
+
+ - You can then access the container through shell with::
+
+ docker run -m 4g --cpus=4 -it --privileged \
+ -v /lib/modules:/lib/modules \
+ minindn bin/bash
+
+Additional recommendations
+--------------------------
+- It is recommended to set reasonable constraints on memory (`-m`) and CPU cores (`--cpus`), especially on less
+ powerful or non-dedicated systems.
+- `--privileged` is mandatory for underlying `Mininet <http://mininet.org/>`_ to utilize the virtual switch
+- The root directory on `run` is `/mini-ndn`, which contains the installation and examples.
+- The GUI may not work for now due to docker and xterm setup issues and is independent from Mini-NDN.
+ If you intend to run the GUI, pass `-e DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix` to the `docker run` command.
+
Using Vagrantfile
-----------------
@@ -26,8 +62,8 @@
Mini-NDN has the following dependencies:
-- `NDN Forwarding Daemon (NFD) <https://named-data.net/doc/NFD/>`_
-- `Named Data Link State Routing (NLSR) <https://named-data.net/doc/NLSR/>`_
+- `NDN Forwarding Daemon (NFD) <https://docs.named-data.net/NFD/current/>`_
+- `Named Data Link State Routing (NLSR) <https://docs.named-data.net/NLSR/current/>`_
- `NDN Essential Tools (ndn-tools) <https://github.com/named-data/ndn-tools>`_
- `NDN Traffic Generator <https://github.com/named-data/ndn-traffic-generator>`_
- `infoedit <https://github.com/NDN-Routing/infoedit>`_
@@ -48,13 +84,6 @@
This shortens installation time by downloading binary packages, but is only available on Ubuntu.
- ``--source`` prefers installing NDN software from source code.
- ``--use-existing`` will only install dependencies not already in the executable path.
-
-IMPORTANT: For now, Mininet-WiFi only works with ``--source`` installation because the current NFD release (0.7.1) doesn't
-incorporate `issue 5155 <https://redmine.named-data.net/issues/5155>`, a required patch for WiFi module to work properly.
-With the next NFD release, Mininet-WiFi will work with both ``source`` and ``ppa``. Alternatively, you can
-checkout (at your own risk) a third-party source "`Use NFD nightly with Mini-NDN <https://yoursunny.com/t/2021/NFD-nightly-minindn/>`", which provides
-NFD-nightly version and contains all the necessary patches.
-
- ``--dummy-keychain`` patches ndn-cxx to use an in-memory dummy KeyChain, which reduces CPU overhead
and allows you to scale up Mini-NDN experiments. Large Mini-NDN experiments would run significantly
faster after applying this patch. However, your experiments cannot use any NDN security related
@@ -80,7 +109,7 @@
Installing Dependencies
-----------------------
-This section outlines how to install dependnecies manually.
+This section outlines how to install dependencies manually.
If you used ``install.sh``, you do not need to perform these steps.
Mininet
@@ -122,11 +151,12 @@
Each node in Mini-NDN will run the official implementation of NDN
installed on your system. The following dependencies are needed:
-Mini-NDN uses NFD, NLSR, and ndn-tools.
+Mini-NDN uses ndn-cxx, NFD, NLSR, and ndn-tools.
-- To install NFD: https://named-data.net/doc/NFD/current/INSTALL.html
-- To install NLSR: https://named-data.net/doc/NLSR/current/INSTALL.html
-- To install ndn-tools: https://github.com/named-data/ndn-tools
+- To install ndn-cxx: https://docs.named-data.net/ndn-cxx/current/INSTALL.html
+- To install NFD: https://docs.named-data.net/NFD/current/INSTALL.html
+- To install NLSR: https://docs.named-data.net/NLSR/current/INSTALL.html
+- To install ndn-tools: https://github.com/named-data/ndn-tools/blob/master/INSTALL.md
.. warning::
Please do not try to install NDN software from both the source (GitHub) and PPA (apt).
@@ -134,8 +164,9 @@
to use apt, please run ``sudo ./waf uninstall`` in all the NDN projects before proceeding
with apt. Similarly, remove from apt if switching to source.
-Please see the :ref:`scaling-note <scaling-note>` to learn about disabling
-security for better scalability.
+In cases where using NDN security is not important to the results, it is recommended
+to use the dummy keychain patch for ndn-cxx to disable it for improved scalability.
+This patch is located at `util/patches/ndn-cxx-dummy-keychain.patch.`
Note that all three of these can be installed from the Named Data PPA.
Instructions for setting it up can be found in the NFD installation
diff --git a/docs/release-notes.rst b/docs/release-notes.rst
index 90b3733..b012c2b 100644
--- a/docs/release-notes.rst
+++ b/docs/release-notes.rst
@@ -1,6 +1,56 @@
Release Notes
=============
+Mini-NDN version 0.7.0 (Major changes since version 0.6.0)
+----------------------------------------------------------
+
+**Breaking Changes**:
+
+- Install behavior regarding existing installation of dependencies has been reversed; by default, these are now ignored. This is meant
+ to clear up confusion regarding installing on existing installs which have been used for NDN development previously. The previous
+ behavior can be enabled using `--use-existing`.
+
+**New features**:
+
+- Added `NFDCBatch` to NFDC helper, which allows the user to use the existing NFDC wrapper API to instead create and execute a batch file.
+ When running large numbers of commands, this significantly speeds up performance due to not needing to add delay between individual CLI
+ calls.
+- Added `MinindnAdhoc` class which can be used to construct adhoc Mini-NDN-Wifi networks from topology files.
+- Model mobility parameters can now also be passed to Mini-NDN-Wifi via topology files.
+- Working directory can be passed as constructor argument to `Minindn` objects
+- We have added a new `--release` flag to the installer which simplifies installing matching releases of dependencies. Reference
+ `the install documentation <./install.rst>`__ for more information.
+- Experimental wifi support for NLSR helper. See `experiment docs <experiment>` for details (`issue: 5232 <https://redmine.named-data.net/issues/5232>`__)
+- Added a Dockerfile for Mini-NDN. A prebuilt image for *linux/amd64* platforms is available on the
+ `GitHub container registry <https://github.com/named-data/mini-ndn/pkgs/container/mini-ndn>`__
+- The previous testbed topology generation script has been deprecated and removed. Please reference the `NDN Play website <https://play.ndn.today/?testbed=1>`__
+ for a replacement
+
+**Improvements**:
+
+- Ethernet unicast faces are now supported natively by NLSR wrapper, NFDC wrapper, and NDN routing helper. No additional formatting by the user is needed
+ for ethernet addresses extracted from the Mininet API when passed to these functions (`issue: 5321 <https://redmine.named-data.net/issues/5232>`__)
+- `NdnRoutingHelper` has been parallelized along with minor optimizations. You can now also use it to create
+ permanent faces (`issue: 5264 <https://redmine.named-data.net/issues/5264>`__)
+- `checkConvergence` method of `Experiment` helper can now output more detailed information when flag `returnConvergenceInfo` is set
+ (`issue: 5236 <https://redmine.named-data.net/issues/5236>`__)
+- `getPopen` can now accept commands formatted as lists as well as strings
+- We now natively edit nfd.conf files using infoconv to read and write it as json rather than calling infoedit at the shell
+ (`issue: 5318 <https://redmine.named-data.net/issues/5318>`__)
+- Added Sprint PoP topology
+- Link bandwidth value (`bw`) can now be specified as decimal megabits rather than only integers in topology files
+- NFDC was significantly refactored for the `NFDCBatch` change.
+
+**Bug fixes**:
+
+- NFDC helper properly supports existing faces and no longer outputs unnecessary error messages if face exists by default.
+- Fixed out of date ndnsec commands
+- Socket path now defaults to NFD default as of release 24.07. You can specify a different path with the `defaultSocketLocation`
+ argument in the `Nfd` object constructor (`issue: 5309 <https://redmine.named-data.net/issues/5309>`__)
+- Fixed jitter being parsed into incorrect type from topology files
+- Moved vestigial CLI arguments relating to `wifi_ping.py` example out of the Mini-NDN-Wifi class
+
+
Mini-NDN version 0.6.0 (Major changes since version 0.5.0)
----------------------------------------------------------
diff --git a/docs/videos.rst b/docs/videos.rst
index b6b3a51..db97952 100644
--- a/docs/videos.rst
+++ b/docs/videos.rst
@@ -1,7 +1,7 @@
Video Tutorials
===============
-Maybe outdated since version 0.5.0.
+May be outdated since version 0.5.0.
.. raw:: html