blob: 3b33d33720858ade8d50a2ac9e84a7e34471423c [file] [log] [blame]
ndnSIM Release Notes
====================
This file contains ndnSIM release notes.
All of the ndnSIM documentation is accessible from the `ndnSIM website <http://ndnsim.net>`__.
Release 2.0
-----------
Overview
~~~~~~~~
ndnSIM 2.0 is a new release of NS-3 based Named Data Networking (NDN) simulator that went through
extensive refactoring and rewriting. The key new features of the new version:
- ndnSIM no longer re-implements basic NDN primitives and directly uses implementation 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/>`__. The current code is based
on ``a22a2172611b1cb93b2e2f53d9d5da122b384f3e`` commit of `NFD
repository <https://github.com/named-data/NFD/tree/a22a2172611b1cb93b2e2f53d9d5da122b384f3e>`__.
Note RIB Manager is not yet available in ndnSIM.
- Packet format changed to the `NDN packet format <http://named-data.net/doc/ndn-tlv/>`__.
- Code style changes to conform to `ndn-cxx Code Style and Coding
Guidelines <http://named-data.net/doc/ndn-cxx/current/code-style.html>`__ This change also
includes renaming of the header and source files: ``*.h`` -> ``*.hpp``, ``*.cc`` -> ``*.cpp``
- ndnSIM now uses C++11.
New Features
~~~~~~~~~~~~
- Integration with NFD codebase:
- A realistic behavior is added to the simulations.
- Forwarding plane extensions can be used in both ndnSIM simulations and real NFD deployment.
- Per namespace forwarding strategies for different namespaces (one strategy per namespace).
- New examples:
- ``ndn-load-balancer``
- ``ndn-grid-multiple-strategies``
- ``ndn-different-strategy-per-prefix``
- Basic examples using python bindings: ``ndn-simple.py`` and ``ndn-grid.py``
- Use of the the full-featured NDN packet format.
- Full-featured support for Interest selectors.
- Full-featured crypto operations can be simulated (disabled by default).
- FibHelper to manage FIB entries.
- StrategyChoiceHelper to manage per-namespace forwarding strategy selection.
Changes
~~~~~~~
- HopCount tracing now includes only one way network-level hop count (e.g., the number of physical
links traversed by a packet). Previously, this tracing was round-trip and included applications
hops.
- Python bindings have changed and, due to limitations of pybindgen, currently cover a smaller
subset of C++ code (`Task #2341 <http://redmine.named-data.net/issues/2341>`__).
- LinkControlHelper now uses ErrorRate to simulate link failure/recovery. Previously it was relying
on Up/Down flag on NDN level.
- The Face abstraction of NFD is now used.
Bug fixes
~~~~~~~~~
- Fix processing files with customized LossRate or Queue model in AnnotatedTopologyReader `Bug
#2354 <http://redmine.named-data.net/issues/2354>`__.
Removals
~~~~~~~~
- PyNDN emulation
- (temporarily) ApiFace. Will be replaced with emulation of ndn-cxx ``ndn::Face`` in future
releases (`Issue #2370 <http://redmine.named-data.net/issues/2370>`__).
- (temporarily) UdpFace, TcpFace (`Issue #2371 <http://redmine.named-data.net/issues/2371>`__).
- Limits, LimitsWindow, LimitsRate.
- PIT, FIB with "replacement" policies.
- Old deprecated packet formats.