.. ndnSIM: NS-3 based NDN simulator
.. ============================================================

============
Introduction
============

.. sidebar:: ndnSIM components

    .. image:: _static/ndnSIM-structure.*
        :width: 100%

- Packet format changed to [NDN Packet Specification](http://named-data.net/doc/ndn-tlv/)

- ndnSIM uses implementation of basic NDN primitives from
  [ndn-cxx library (NDN C++ library with eXperimental eXtensions)](http://named-data.net/doc/ndn-cxx/)

- All NDN forwarding and management is implemented directly using source code of
  [Named Data Networking Forwarding Daemon (NFD)](http://named-data.net/doc/NFD/)

- Allows [simulation of real applications](http://ndnsim.net/2.1/guide-to-simulate-real-apps.html)
  written against ndn-cxx library


A new release of `NS-3 based Named Data Networking (NDN) simulator <http://ndnsim.net/1.0/>`__
went through a number of extensive refactoring and rewriting.  The key new features of the
new version:

- Packet format changed to the `NDN packet format <http://named-data.net/doc/ndn-tlv/>`_

- ndnSIM uses implementation of basic NDN primitives from
  `ndn-cxx library (NDN C++ library with eXperimental eXtensions)
  <http://named-data.net/doc/ndn-cxx/>`_

- All NDN forwarding and management is implemented directly using source code of `Named
  Data Networking Forwarding Daemon (NFD) <http://named-data.net/doc/NFD/>`_

- It is possible to :doc:`simulation some real applications <guide-to-simulate-real-apps>`
  written against ndn-cxx library

.. note::
   Please note that ndnSIM 2.0 has major refactoring and simulation scenario written for
   previous releases most likely would need to be changed to run on ndnSIM 2.0 platform.

Such integration with ndn-cxx and NFD ensures that the simulations are maximally realistic
and can be reproduced in real environments with virtually no changes to the source code.
In addition to that, any experiments with NDN forwarding (e.g., custom forwarding
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::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.

ndnSIM is implemented as a new network-layer protocol model and can run on top of any
available link-layer protocol model (point-to-point, CSMA, wireless, etc.).
In addition, the simulator provides an extensive collection of interfaces and helpers to
perform detailed tracing behavior of every component, as well as NDN traffic flow.


More documentation
------------------

Overall structure of ndnSIM is described in our paper and technical reports:

- **S. Mastorakis, A. Afanasyev, and L. Zhang, "On the Evolution of ndnSIM: an Open-Source Simulator for NDN Experimentation," ACM SIGCOMM Computer Communication Review (CCR), July 2017** (`PDF <https://ccronline.sigcomm.org/wp-content/uploads/2017/08/sigcomm-ccr-final112-full-letter.pdf>`__, `BibTex <http://web.cs.ucla.edu/~mastorakis/bibtex-ndnsim>`__)

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

Also, you can `join our mailing list
<http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim>`_ to see and participate in
discussions about ndnSIM implementation and simulations in general.  Do not forget to
check mailling list `archives <http://www.lists.cs.ucla.edu/pipermail/ndnsim/>`_.


Support
-------

The code of ndnSIM is in active development.  Bug reports (issues) as well as new feature
implementation are always welcome.

To file a bug report, please use `NDN Redmine
<http://redmine.named-data.net/projects/ndnsim>`_.

To create new feature, please fork the code and submit Pull Request on GitHub.

And of course, `our mailing list <http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim>`_
is the best way to communicate with and get support from ndnSIM team and other users of
ndnSIM.

A very short guide to the code
------------------------------

All the NDN related code is in ``ns-3/src/ndnSIM``

+-----------------+---------------------------------------------------------------------+
| Folder          | Description                                                         |
+=================+=====================================================================+
| ``model/``      | implementation of NDN base: :ndnsim:`L3Protocol`, faces             |
|                 | (:ndnsim:`Face`, :ndnsim:`NetDeviceTransport`,                      |
|                 | :ndnsim:`AppLinkService`),                                          |
|                 | etc.                                                                |
+-----------------+---------------------------------------------------------------------+
| ``NFD/``        | submodule of `NDN Forwarding Daemon (NFD)`_ source code with few    |
|                 | modifications to make it compatible with the simulator              |
+-----------------+---------------------------------------------------------------------+
| ``ndn-cxx/``    | submodule of `ndn-cxx library`_ source code with few                |
|                 | modifications to make it compatible with the simulator              |
+-----------------+---------------------------------------------------------------------+
| ``apps/``       | applications (in NS-3 sense) that can be installed on the nodes.    |
|                 | Right now we have one producer (:ndnsim:`Producer`) and a           |
|                 | collection  of consumer applications (:ndnsim:`ConsumerCbr`,        |
|                 | :ndnsim:`ConsumerWindow`, :ndnsim:`ConsumerBatches`,                |
|                 | :ndnsim:`ConsumerZipfMandelbrot`).  See doxygen documentation or    |
|                 | source  code for details                                            |
+-----------------+---------------------------------------------------------------------+
| ``utils/``      | helper classes, including implementation of generalized data        |
|                 | structures, topology readers and tracers                            |
+-----------------+---------------------------------------------------------------------+
| ``helper/``     | a number of :doc:`useful helpers <helpers>`                         |
+-----------------+---------------------------------------------------------------------+
| ``examples/``   | contain :doc:`several example scenarios <examples>`                 |
+-----------------+---------------------------------------------------------------------+

.. _NDN Forwarding Daemon (NFD): http://named-data.net/doc/NFD/

.. _ndn-cxx library: http://named-data.net/doc/ndn-cxx/

Logging
-------

Almost every component in ndnSIM exports logging interface, so in debug compilation it is
possible to track many internal details.  For example, logging of :ndnsim:`Face` and
:ndnsim:`Consumer` shows everything what happens in :ndnsim:`Face` and :ndnsim:`Consumer`
classes::

    NS_LOG=ndn.Face:ndn.Consumer ./waf --run=ndn-simple

Refer to the source code and NS-3 documentation to see what logging interfaces are
available and about details how enable one or more logging interfaces.

.. note::

   Please remember that logging is enabled **only** in debug mode.  When simulator is
   compiled in optimized mode (``./waf configure -d optimized``), logging will be
   completely disabled as it significantly slows down execution.

.. note::

   A list of log components available in the current version of NS-3 and ndnSIM is listed
   `in this page <doxygen/LogComponentList.html>`_.
