docs: Update documentation for the release of ndnSIM 2.3
Change-Id: I3d23bcf29f4858049d1040a3e421e1c7151b3ee1
Refs: #3876
diff --git a/docs/source/_static/ndnSIM-structure.pdf b/docs/source/_static/ndnSIM-structure.pdf
index c0829a2..9ddee01 100644
--- a/docs/source/_static/ndnSIM-structure.pdf
+++ b/docs/source/_static/ndnSIM-structure.pdf
Binary files differ
diff --git a/docs/source/_static/ndnSIM-structure.png b/docs/source/_static/ndnSIM-structure.png
index cf2c3f1..4bf8732 100644
--- a/docs/source/_static/ndnSIM-structure.png
+++ b/docs/source/_static/ndnSIM-structure.png
Binary files differ
diff --git a/docs/source/_templates/indexcontent.html b/docs/source/_templates/indexcontent.html
index 1595e5d..e83a04b 100644
--- a/docs/source/_templates/indexcontent.html
+++ b/docs/source/_templates/indexcontent.html
@@ -56,8 +56,9 @@
<td width="50%" valign="top">
<h2>ndnSIM Versions</h2>
<div class="tile">
- <p class="biglink"><a class="biglink" href="#">ndnSIM 2.2</a><br/>
+ <p class="biglink"><a class="biglink" href="#">ndnSIM 2.3</a><br/>
<span class="linkdescr">latest version</span></p>
+ <p class="biglink"><a class="biglink" href="http://ndnsim.net/2.2/">ndnSIM 2.2</a><br/>
<p class="biglink"><a class="biglink" href="http://ndnsim.net/2.1/">ndnSIM 2.1</a><br/>
<p class="biglink"><a class="biglink" href="http://ndnsim.net/2.0/">ndnSIM 2.0</a><br/>
<p class="biglink"><a class="biglink" href="http://ndnsim.net/1.0/">ndnSIM 1.0</a><br/>
@@ -73,10 +74,10 @@
<p>If you are referring to ndnSIM in a published work, please cite the following papers, not just the ndnSIM website. Thank you!
<ul>
<li>
- S. Mastorakis, A. Afanasyev, I. Moiseenko, and L. Zhang, “ndnSIM 2.0: A new version of the NDN simulator for NS-3,” NDN, Technical Report NDN-0028, Revision 2, 2016 (<a class="reference external" href="http://named-data.net/techreport/ndn-0028-2-ndnsim-v2.pdf">PDF</a>) (<a class="reference external" href="http://lasr.cs.ucla.edu/afanasyev/bibwiki/bibtex/399">BibTex</a>)
+ S. Mastorakis, A. Afanasyev, I. Moiseenko, and L. Zhang, “ndnSIM 2: An updated NDN simulator for NS-3,” NDN, Technical Report NDN-0028, Revision 2, 2016 (<a class="reference external" href="https://named-data.net/wp-content/uploads/2016/11/ndn-0028-2-ndnsim-v2.pdf">PDF</a>) (<a class="reference external" href="http://lasr.cs.ucla.edu/afanasyev/bibwiki/bibtex/399">BibTex</a>)
</li>
<li>
- A. Afanasyev, I. Moiseenko, and L. Zhang, “ndnSIM: NDN simulator for NS-3,” NDN, Technical Report NDN-0005, 2012 (<a class="reference external" href="http://named-data.net/wp-content/uploads/TRndnsim.pdf">PDF</a>) (<a class="reference external" href="http://lasr.cs.ucla.edu/afanasyev/bibwiki/bibtex/367">BibTex</a>)
+ A. Afanasyev, I. Moiseenko, and L. Zhang, “ndnSIM: NDN simulator for NS-3,” NDN, Technical Report NDN-0005, 2012 (<a class="reference external" href="https://named-data.net/wp-content/uploads/TRndnsim.pdf">PDF</a>) (<a class="reference external" href="http://lasr.cs.ucla.edu/afanasyev/bibwiki/bibtex/367">BibTex</a>)
</li>
</ul>
</div>
diff --git a/docs/source/faq.rst b/docs/source/faq.rst
index 1f65e74..2e83470 100644
--- a/docs/source/faq.rst
+++ b/docs/source/faq.rst
@@ -18,7 +18,7 @@
**The following instructions are for those who want to install latest version of boost libraries** :red:`and has root access`.
The following commands would install the latest version of boost libraries (at the time of
-writing, version 1.59) ot ``/usr/local``, assuming you have a root access to your machine. If
+writing, version 1.62) ot ``/usr/local``, assuming you have a root access to your machine. If
you don't have root access, please refer to section :ref:`Installing boost libraries to a
non-privileged location`.
@@ -29,9 +29,9 @@
.. code-block:: bash
:linenos:
- wget http://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.bz2
- tar jxf boost_1_59_0.tar.bz2
- cd boost_1_59_0
+ wget http://downloads.sourceforge.net/project/boost/boost/1.62.0/boost_1_62_0.tar.bz2
+ tar jxf boost_1_62_0.tar.bz2
+ cd boost_1_62_0
./bootstrap.sh
sudo ./b2 --prefix=/usr/local install
@@ -63,15 +63,15 @@
going wrong.**
Normally, to compile and install boost libraries in non-privileged mode, you would need to
-issue following commands (e.g., for boost version 1.59.0):
+issue following commands (e.g., for boost version 1.62.0):
.. code-block:: bash
:linenos:
export BOOSTDIR=/home/non-privileged-user/boost
- wget http://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.bz2
- tar jxf boost_1_59_0.tar.bz2
- cd boost_1_59_0
+ wget http://downloads.sourceforge.net/project/boost/boost/1.62.0/boost_1_62_0.tar.bz2
+ tar jxf boost_1_62_0.tar.bz2
+ cd boost_1_62_0
./bootstrap.sh
./b2 --prefix=$BOOSTDIR install
@@ -138,10 +138,10 @@
Something is wrong with your python bindings and python bindings dependencies. Please follow
the :ref:`requirements` section that lists what should be installed in order to run visualizer.
-.. _Problems with the gtk python module on OS X:
+.. _Problems with the gtk python module on macOS:
-Problems with the gtk python module on OS X
--------------------------------------------
+Problems with the gtk python module on macOS
+--------------------------------------------
.. topic:: ./waf configure got stuck during the gtk module check
@@ -171,11 +171,8 @@
How the current version of ndnSIM handles network-level NACKs?
-ndnSIM 2.2 does not include support for NDNLPv2 and, thus, cannot yet be
-used to simulate network-level NACKs across simulation nodes. This will be
-addressed in the next release of ndnSIM. The way to address that is to
-implement a Link Service specific to ndnSIM, which will come at the cost of
-losing the NS3 tags attached to the packets.
+ndnSIM 2.3 includes full support of NDNLPv2 and, thus, can be
+used to simulate network-level NACKs across simulation nodes.
General questions
-----------------
diff --git a/docs/source/getting-started.rst b/docs/source/getting-started.rst
index 802daa2..c193c0a 100644
--- a/docs/source/getting-started.rst
+++ b/docs/source/getting-started.rst
@@ -11,9 +11,9 @@
- Ubuntu Linux 14.04 (32- and 64-bit platform)
- Ubuntu Linux 16.04 (32- and 64-bit platform)
-- OS X 10.9
-- OS X 10.10
-- OS X 10.11
+- macOS 10.10
+- macOS 10.11
+- macOS 10.12
.. _requirements:
@@ -26,7 +26,8 @@
- ``libsqlite3``
- ``libcrypto++``
- ``pkg-config``
-- Boost libraries >= 1.53
+- ``openssl``
+- Boost libraries >= 1.54
.. role:: red
@@ -40,19 +41,19 @@
Following are the detailed steps for each platform to install the compiler, all necessary
development tools and libraries, and ndn-cxx prerequisites.
-- OS X
+- macOS
- * OS X with MacPorts:
+ * macOS with MacPorts:
.. code-block:: bash
- sudo port install pkgconfig boost sqlite3 libcryptopp
+ sudo port install pkgconfig boost sqlite3 libcryptopp openssl
- * OS X with HomeBrew:
+ * macOS with HomeBrew:
.. code-block:: bash
- brew install boost cryptopp pkg-config libxml2
+ brew install boost cryptopp pkg-config openssl libxml2
brew link --force libxml2
- Linux
@@ -61,16 +62,16 @@
.. code-block:: bash
- sudo apt-get install build-essential libsqlite3-dev libcrypto++-dev libboost-all-dev
+ sudo apt-get install build-essential libsqlite3-dev libcrypto++-dev libboost-all-dev libssl-dev git python-setuptools
* Fedora Linux
.. code-block:: bash
- sudo yum install gcc-g++ git sqlite-devel cryptopp-devel boost-devel
+ sudo yum install gcc-g++ git sqlite-devel cryptopp-devel boost-devel openssl-devel
.. note::
- :red:`ndnSIM requires boost version at least 1.49.` Many linux distribution
+ :red:`ndnSIM requires boost version at least 1.54.` Many linux distribution
(Fedora 16, 17 at the time of this writing) ship an old version of boost, making it
impossible to compile ndnSIM out-of-the-box. Please install the latest version, following
:ref:`these simple instructions <Installing boost libraries>`.
@@ -81,39 +82,32 @@
should be installed. For example, in order to run `visualizer`_ module, the following
should be installed:
-- OS X
+- macOS
- * OS X with MacPorts:
+ * macOS with MacPorts:
.. code-block:: bash
- sudo port install py27-pygraphviz py27-goocanvas
+ sudo port install py27-pygraphviz py27-goocanvas py27-kiwi
- # If you add NDN macports repository, as described in
- # http://named-data.net/doc/NFD/current/INSTALL.html#install-nfd-using-the-ndn-macports-repository-on-os-x
- # you will be able to install another useful python module
- # sudo port install py27-kiwi
-
- * OS X with HomeBrew
+ * macOS with HomeBrew
Currently, there are many missing dependencies, so it is impossible to use visualizer module with HomeBrew. Use MacPorts instead.
- Linux
* Ubuntu Linux
-
+
.. code-block:: bash
-
- sudo apt-get install python-dev python-pygraphviz python-kiwi
- sudo apt-get install python-pygoocanvas python-gnome2
- sudo apt-get install python-rsvg ipython
-
+
+ sudo apt-get install python-dev python-pygraphviz python-kiwi python-pygoocanvas python-gnome2 python-rsvg ipython
+
* Fedora Linux
-
+
.. code-block:: bash
-
+
sudo yum install pygoocanvas python-kiwi graphviz-python
-
+
# easy_install method, since pygraphviz is not (yet?) packaged into Fedora (https://bugzilla.redhat.com/show_bug.cgi?id=740687)
sudo yum install graphviz-devel
sudo yum install python-pip
@@ -173,7 +167,7 @@
./waf configure --enable-examples
./waf
-On OS X (with MacPorts), you may need to modify the configure command to use MacPorts
+On macOS (with MacPorts), you may need to modify the configure command to use MacPorts
version of python:
.. code-block:: bash
@@ -184,8 +178,8 @@
./waf
.. note::
- On OS X configuration stage may get :ref:`stuck at detecting gtk module <Problems with
- the gtk python module on OS X>`. Make sure you have `XQuartz
+ On macOS configuration stage may get :ref:`stuck at detecting gtk module <Problems with
+ the gtk python module on macOS>`. Make sure you have `XQuartz
<http://xquartz.macosforge.org>`_ installed or disable python as described in the
following instructions.
@@ -211,37 +205,37 @@
When NS-3 is configured with ``--with-examples`` flag, you can directly run all examples
described in :doc:`examples section of this tutorial <examples>`. For example, to run
``ndn-simple.cpp`` scenario, you can run the following command:
-
+
.. code-block:: bash
-
+
./waf --run=ndn-simple
-
+
To run ``ndn-grid.cpp`` scenario:
-
+
.. code-block:: bash
-
+
./waf --run=ndn-grid
-
+
To run the sample simulation scenarios with the logging module of NS-3 enabled (note that
this will work only when NS-3 is compiled in debug mode):
-
+
.. code-block:: bash
-
+
NS_LOG=ndn.Producer:ndn.Consumer ./waf --run=<scenario name>
-
+
If you have compiled with python bindings, then you can try to run these simulations with
visualizer:
-
+
.. code-block:: bash
-
+
./waf --run=ndn-simple --vis
-
+
or:
-
+
.. code-block:: bash
-
+
./waf --run=ndn-grid --vis
-
+
.. note::
Do not forget to configure and compile NS-3 in optimized mode (``./waf configure -d
optimized``) in order to run actual simulations.
@@ -249,37 +243,37 @@
- Real experimentation
Simulation scenarios can be written directly inside NS-3 in ``scratch/`` or ``src/ndnSIM/examples`` folder.
-
+
Alternative and a recommended way is to write simulation scenarios in a separate
repository, not related to either NS-3 or ndnSIM. For example, you can use the
following template to write your extensions, simulation scenarios, and metric processing
scripts: `<http://github.com/cawka/ndnSIM-scenario-template>`_:
-
+
.. code-block:: bash
-
+
mkdir ndnSIM
cd ndnSIM
git clone https://github.com/named-data-ndnSIM/ns-3-dev.git ns-3
git clone https://github.com/named-data-ndnSIM/pybindgen.git pybindgen
git clone --recursive https://github.com/named-data-ndnSIM/ndnSIM.git ns-3/src/ndnSIM
-
+
# Build and install NS-3 and ndnSIM
cd ns-3
./waf configure -d optimized
./waf
-
+
sudo ./waf install
cd ..
-
+
git clone https://github.com/named-data-ndnSIM/scenario-template.git scenario
cd scenario
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
-
+
./waf configure
-
+
./waf --run <scenario>
-
+
For more detailed information, refer to `README file
<https://github.com/cawka/ndnSIM-scenario-template/blob/master/README.md>`_.
diff --git a/docs/source/intro.rst b/docs/source/intro.rst
index 27ca8df..20fc56f 100644
--- a/docs/source/intro.rst
+++ b/docs/source/intro.rst
@@ -48,7 +48,7 @@
strategies) inside ndnSIM can be directly used within the real NFD implementation.
Specifically, the simulator directly uses NFD implementations of :nfd:`pending Interest
-table (PIT) <nfd::Pit>`, :nfd:`forwarding information base (FIB) <nfd::Fib>`, and
+table (PIT) <nfd::pit::Pit>`, :nfd:`forwarding information base (FIB) <nfd::fib::Fib>`, and
:nfd:`content store <nfd::cs::Cs>` data structures. In addition to that, ndnSIM allows
experimentation with :ndnSIM:`ndnSIM-specific content store <ndn::ContentStore>` along
with its cache replacement policies ported from the previous version of ndnSIM.
@@ -62,8 +62,11 @@
More documentation
------------------
-Overall structure of ndnSIM is described in our `technical report
-<http://lasr.cs.ucla.edu/afanasyev/data/files/Afanasyev/ndnSIM-TR.pdf>`_.
+Overall structure of ndnSIM is described in our technical reports:
+
+- **S. Mastorakis, A. Afanasyev, I. Moiseenko, and L. Zhang, "ndnSIM 2: An updated NDN simulator for NS-3," NDN, Technical Report NDN-0028, Revision 2, 2016** (`PDF <https://named-data.net/wp-content/uploads/2016/11/ndn-0028-2-ndnsim-v2.pdf>`__, `BibTex <http://lasr.cs.ucla.edu/afanasyev/bibwiki/bibtex/399>`__)
+
+- **A. Afanasyev, I. Moiseenko, and L. Zhang, "ndnSIM: NDN simulator for NS-3," NDN, Technical Report NDN-0005, 2012** (`PDF <https://named-data.net/wp-content/uploads/TRndnsim.pdf>`__, `BibTex <http://lasr.cs.ucla.edu/afanasyev/bibwiki/bibtex/367>`__)
`ndnSIM API documentation <doxygen/index.html>`_
@@ -97,7 +100,7 @@
| Folder | Description |
+=================+=====================================================================+
| ``model/`` | implementation of NDN base: :ndnsim:`L3Protocol`, faces |
-| | (:ndnsim:`Face`, :ndnsim:`NetDeviceLinkService`, |
+| | (:ndnsim:`Face`, :ndnsim:`NetDeviceTransport`, |
| | :ndnsim:`AppLinkService`), |
| | etc. |
+-----------------+---------------------------------------------------------------------+
diff --git a/docs/source/metric.rst b/docs/source/metric.rst
index 510cc3d..29b2973 100644
--- a/docs/source/metric.rst
+++ b/docs/source/metric.rst
@@ -44,6 +44,8 @@
| | - ``OutInterests`` measurements of outgoing Interests |
| | - ``InData`` measurements of incoming Data |
| | - ``OutData`` measurements of outgoing Data |
+ | | - ``InNacks`` measurements of outgoing NACKs |
+ | | - ``OutNacks`` measurements of outgoing NACKs |
| | - ``SatisfiedInterests`` measurements of satisfied Interests |
| | (totals for all faces) |
| | - ``TimedOutInterests`` measurements of timed out Interests |
@@ -365,8 +367,8 @@
| ``HopCount`` | the number of network hops that the retrieved Data packet traveled |
| | on the way back from producer application or cache. |
| | |
- | | Note that semantics of ``HopCount`` field has changed compared to |
- | | ndnSIM 1.0. |
+ | | Note that the semantics of the ``HopCount`` field have changed |
+ | | compared to ndnSIM 1.0. |
+-----------------+---------------------------------------------------------------------+
.. _app delay trace helper example:
diff --git a/docs/source/tutorial.rst b/docs/source/tutorial.rst
index d74bdf0..05a5ace 100644
--- a/docs/source/tutorial.rst
+++ b/docs/source/tutorial.rst
@@ -21,7 +21,7 @@
intro
getting-started
faq
- examples
+ examples
helpers
cs
fw
@@ -43,8 +43,9 @@
-------
If you refer to ndnSIM in a published work, please cite the following papers, not just the ndnSIM website. Thank you!
- **S. Mastorakis, A. Afanasyev, I. Moiseenko, and L. Zhang, "ndnSIM 2.0: A new version of the NDN simulator for NS-3," NDN, Technical Report NDN-0028, 2015** (`PDF <http://named-data.net/techreport/ndn-0028-1-ndnsim-v2.pdf>`__, `BibTex <http://lasr.cs.ucla.edu/afanasyev/bibwiki/bibtex/399>`__)
- **A. Afanasyev, I. Moiseenko, and L. Zhang, "ndnSIM: NDN simulator for NS-3," NDN, Technical Report NDN-0005, 2012** (`PDF <http://named-data.net/wp-content/uploads/TRndnsim.pdf>`__, `BibTex <http://lasr.cs.ucla.edu/afanasyev/bibwiki/bibtex/367>`__)
+- **S. Mastorakis, A. Afanasyev, I. Moiseenko, and L. Zhang, "ndnSIM 2: An updated NDN simulator for NS-3," NDN, Technical Report NDN-0028, Revision 2, 2016** (`PDF <https://named-data.net/wp-content/uploads/2016/11/ndn-0028-2-ndnsim-v2.pdf>`__, `BibTex <http://lasr.cs.ucla.edu/afanasyev/bibwiki/bibtex/399>`__)
+
+- **A. Afanasyev, I. Moiseenko, and L. Zhang, "ndnSIM: NDN simulator for NS-3," NDN, Technical Report NDN-0005, 2012** (`PDF <https://named-data.net/wp-content/uploads/TRndnsim.pdf>`__, `BibTex <http://lasr.cs.ucla.edu/afanasyev/bibwiki/bibtex/367>`__)
.. * :ref:`search`