Skip to content

Commit

Permalink
docs: Update documentation for the release of ndnSIM 2.3
Browse files Browse the repository at this point in the history
Change-Id: I3d23bcf29f4858049d1040a3e421e1c7151b3ee1
Refs: #3876
  • Loading branch information
spirosmastorakis authored and cawka committed Dec 12, 2016
1 parent 532990d commit acd5e1a
Show file tree
Hide file tree
Showing 11 changed files with 90 additions and 87 deletions.
1 change: 1 addition & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,4 @@ people who have reported bugs, submitted patches,and implemented new features o
* Wentao Shang <http://irl.cs.ucla.edu/~wentao/>
* Christian Kreuzberger <[email protected]>
* Yuanzhi Gao <[email protected]>
* Mohammad Sabet <[email protected]>
6 changes: 5 additions & 1 deletion docs/Doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -1978,7 +1978,11 @@ PREDEFINED = NS3_ASSERT_ENABLE \
NFD_LOG_INCLASS_TEMPLATE_SPECIALIZATION_DEFINE \
NFD_LOG_INCLASS_2TEMPLATE_SPECIALIZATION_DEFINE \
NDN_CXX_DECL_OVERRIDE=override \
NDN_CXX_DECL_FINAL=final
NDN_CXX_DECL_FINAL=final \
FINAL_UNLESS_WITH_TESTS=final \
NFD_LOG_INCLASS_DEFINE \
NFD_REGISTER_UNSOLICITED_DATA_POLICY \
NDN_LOG_INIT


# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
Expand Down
2 changes: 1 addition & 1 deletion docs/ns3_html_theme/ns3_doxy_header.html
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
</td>
<td id="projecttext">
<div id="projectbrief">NS-3 based Named Data Networking (NDN) simulator</div>
<span id="projectnumber">ndnSIM 2.0: NDN, CCN, CCNx, content centric networks</span>
<span id="projectnumber">ndnSIM 2.3: NDN, CCN, CCNx, content centric networks</span>
</td>
<!--BEGIN DISABLE_INDEX-->
<!--BEGIN SEARCHENGINE-->
Expand Down
Binary file modified docs/source/_static/ndnSIM-structure.pdf
Binary file not shown.
Binary file modified docs/source/_static/ndnSIM-structure.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
7 changes: 4 additions & 3 deletions docs/source/_templates/indexcontent.html
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,9 @@ <h2>ndnSIM tutorial</h2>
<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/>
Expand All @@ -73,10 +74,10 @@ <h2>Publications</h2>
<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, &#8220;ndnSIM 2.0: A new version of the NDN simulator for NS-3,&#8221; 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, &#8220;ndnSIM 2: An updated NDN simulator for NS-3,&#8221; 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, &#8220;ndnSIM: NDN simulator for NS-3,&#8221; 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, &#8220;ndnSIM: NDN simulator for NS-3,&#8221; 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>
Expand Down
29 changes: 13 additions & 16 deletions docs/source/faq.rst
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Installing boost libraries to ``/usr/local``
**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`.

Expand All @@ -29,9 +29,9 @@ non-privileged location`.
.. 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
Expand Down Expand Up @@ -63,15 +63,15 @@ Installing boost libraries to a non-privileged location
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
Expand Down Expand Up @@ -138,10 +138,10 @@ Visualizer problems
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

Expand Down Expand Up @@ -171,11 +171,8 @@ Refer to :ref:`Link Control Helper`.

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
-----------------
Expand Down
108 changes: 51 additions & 57 deletions docs/source/getting-started.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ ndnSIM 2.x has been successfully compiled and used on following platforms:

- 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:

Expand All @@ -26,7 +26,8 @@ Prerequisites
- ``libsqlite3``
- ``libcrypto++``
- ``pkg-config``
- Boost libraries >= 1.53
- ``openssl``
- Boost libraries >= 1.54

.. role:: red

Expand All @@ -40,19 +41,19 @@ Prerequisites
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
Expand All @@ -61,16 +62,16 @@ development tools and libraries, and ndn-cxx prerequisites.

.. 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>`.
Expand All @@ -81,39 +82,32 @@ If you are planning to use NS-3 python bindings, a number of additional dependen
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
Expand Down Expand Up @@ -173,7 +167,7 @@ sufficient to configure and build ndnSIM with python bindings enabled:
./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
Expand All @@ -184,8 +178,8 @@ version of python:
./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.

Expand All @@ -211,75 +205,75 @@ Simulating using ndnSIM
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.

- 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>`_.

Expand Down
11 changes: 7 additions & 4 deletions docs/source/intro.rst
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ In addition to that, any experiments with NDN forwarding (e.g., custom forwardin
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.
Expand All @@ -62,8 +62,11 @@ perform detailed tracing behavior of every component, as well as NDN traffic flo
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>`_

Expand Down Expand Up @@ -97,7 +100,7 @@ All the NDN related code is in ``ns-3/src/ndnSIM``
| Folder | Description |
+=================+=====================================================================+
| ``model/`` | implementation of NDN base: :ndnsim:`L3Protocol`, faces |
| | (:ndnsim:`Face`, :ndnsim:`NetDeviceLinkService`, |
| | (:ndnsim:`Face`, :ndnsim:`NetDeviceTransport`, |
| | :ndnsim:`AppLinkService`), |
| | etc. |
+-----------------+---------------------------------------------------------------------+
Expand Down
Loading

0 comments on commit acd5e1a

Please sign in to comment.