docs: Prepare release of version 2.1
Change-Id: I3694a8791b9540fc1b926a83ff55421b47e0f1b1
Refs: #3151
diff --git a/docs/source/RELEASE_NOTES.rst b/docs/source/RELEASE_NOTES.rst
index 3b33d33..babf221 100644
--- a/docs/source/RELEASE_NOTES.rst
+++ b/docs/source/RELEASE_NOTES.rst
@@ -5,8 +5,150 @@
All of the ndnSIM documentation is accessible from the `ndnSIM website <http://ndnsim.net>`__.
-Release 2.0
------------
+Release 2.1 (Changes since release 2.0)
+---------------------------------------
+
+Release date: September 4, 2015
+
+Overview
+~~~~~~~~
+
+- Integration with ndn-cxx and NFD codebases has been refactored to include ndn-cxx and
+ NFD repositories as git submodules within ndnSIM repository (:issue:`3138`).
+
+ This refactoring simplifies upgrading ndn-cxx and NFD to new versions and prevents old
+ simulation code to break because of API changes in newer versions of ndn-cxx library.
+
+ .. note::
+ In order to retrieve the marked versions of ndn-cxx and NFD, use ``--recursive``
+ option to the git clone command or run ``git submodule update --init`` after clone,
+ pull, or merge.
+
+- The official home for ndnSIM codebase has been moved to `GitHub named-data-ndnSIM
+ organization <https://github.com/named-data-ndnSIM>`__ (:issue:`3123`):
+
+ * `ndnSIM codebase <https://github.com/named-data-ndnSIM/ndnSIM>`__
+ * `Modified version of ndn-cxx <https://github.com/named-data-ndnSIM/ndn-cxx>`__
+ * `Modified version of NFD <https://github.com/named-data-ndnSIM/NFD>`__
+ * `Modified version of NS-3 <https://github.com/named-data-ndnSIM/ns-3-dev>`__
+ * `Modified version of python bindings generator <https://github.com/named-data-ndnSIM/pybindgen>`__
+
+- Modified version of NS-3 was updated to (rebased on top of) version 2.23-dev, with
+ ndnSIM codebase adjusted to reflect API changes (:issue:`3122`)
+
+- NFD and ndn-cxx has been upgraded to version 0.3.4 (:issue:`3125`)
+
+New features
+~~~~~~~~~~~~
+
+- ndnSIM-specific version of :ndnsim:`ndn::Face` (:issue:`2370`)
+
+ The updated version of :ndnsim:`ndn::Face` specially designed to allow writing
+ simulation applications in the same way as real applications. It is also possible to
+ directly use codebase of the existing applications to drive simulations, provided that
+ the codebase meets or can be adjusted to meet the requirements listed in
+ :doc:`guide-to-simulate-real-apps`.
+
+- Full support for NFD'S RIB manager (:issue:`2370`)
+
+ .. note::
+ RIB manager support is currently available only for applications based on ndn-cxx.
+ :ndnsim:`FibHelper::AddRoute` and :ndnsim:`FibHelper::RemoveRoute` used by
+ :ndnsim:`ndn::Producer` and :ndnsim:`ndn::GlobalRoutingHelper` are currently
+ interacting directly with NFD's FIB manager. This issue will be resolved in the next
+ release of ndnSIM (:issue:`3121`)
+
+- Tutorial and example on how to speed up simulations with MPI module of NS-3:
+ `<http://ndnsim.net/2.0/parallel-simulations.html>`__
+
+- Two new helpers to simplify writing basic simulation scenarios:
+
+ - :ndnsim:`ScenarioHelper` leverages C++11 constructs to write scenarios. Example:
+
+ .. code-block:: c++
+
+ ScenarioHelper helper;
+ helper.createTopology({
+ {"1", "2"},
+ {"2", "3"}
+ });
+
+ helper.addRoutes({
+ {"1", "2", "/prefix", 1},
+ {"2", "3", "/prefix", 1}
+ });
+
+ helper.addApps({
+ {"1", "ns3::ndn::ConsumerCbr",
+ {{"Prefix", "/prefix"}, {"Frequency", "1"}},
+ "0s", "100s"},
+ {"3", "ns3::ndn::Producer",
+ {{"Prefix", "/prefix"}, {"PayloadSize", "1024"}},
+ "0s", "100s"}
+ });
+
+
+ - :ndnsim:`FactoryCallbackApp` simplifies creation of basic apps without creating a
+ separate class that is derived from ``ns3::Applications``. Example:
+
+ .. code-block:: c++
+
+ class SomeApp
+ {
+ public:
+ SomeApp(size_t initParameter);
+ ...
+ };
+
+ FactoryCallbackApp::Install(node, [] () -> shared_ptr<void> {
+ return make_shared<SomeApp>(42);
+ })
+ .Start(Seconds(1.01));
+
+Improvements and bug fixes
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+- Updates of ndnSIM documentation
+
+ * Updated the structure for the `ndnSIM website index page <http://ndnsim.net>`__
+ * Updated installation instructions to reflect refactoring and relocation of ndnSIM codebase
+ * API documentation (doxygen) improvements
+ * Updated list of ndnSIM research papers
+
+- The NDN stack can now be updated to handle any simulation topology changes after
+ its initial installation on a node (:issue:`2717`)
+
+- Application ID that appears in :ndnsim:`ndn::AppDelayTracer` output is now ID of the
+ application on the node, not ID of the application face that was used previously.
+
+- FibHelper has been extended to support route removals (:issue:`2358`)
+
+- ndnSIM codebase now partially covered with unit-tests (:issue:`2369`, :issue:`3059`,
+ :issue:`2783`)
+
+- Bugfixes:
+
+ * In :ndnsim:`ndn::GlobalRoutingHelper::CalculateAllPossibleRoutes` that caused crash in
+ some cases (:issue:`2535`)
+
+ * In FailLink and Uplink methods of :ndnsim:`ndn::LinkControlHelper` class that affected
+ more links than requested (:issue:`2783`)
+
+ * With hop count of data packets retrieved from the Contest Store of NFD (:issue:`2764`)
+
+ * In :ndnsim:`ndn::Producer` application that caused a wrong dummy signature to be added
+ to the constructed data packets (:issue:`2927`)
+
+
+
+********************************************************************************
+
+
+
+Release 2.0 (Changes since release 1.0)
+---------------------------------------
+
+Release date: January 13, 2015
Overview
~~~~~~~~
@@ -36,7 +178,7 @@
New Features
~~~~~~~~~~~~
-- Integration with NFD codebase:
+- 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).
diff --git a/docs/source/_templates/indexcontent.html b/docs/source/_templates/indexcontent.html
index 55a4b08..0a9cfbb 100644
--- a/docs/source/_templates/indexcontent.html
+++ b/docs/source/_templates/indexcontent.html
@@ -93,6 +93,7 @@
<p class="biglink"><a class="biglink" href="http://www.lists.cs.ucla.edu/mailman/listinfo/ndnsim" target="_blank">ndnSIM mailing list</a><br/>
<span class="linkdescr"><a href="http://www.lists.cs.ucla.edu/pipermail/ndnsim/" target="_blank">mailing list archives</a></span></p>
+ <p class="biglink"><a class="biglink" href="{{ pathto("meta/authors") }}">ndnSIM Team</a></p>
<p class="biglink"><a class="biglink" href="{{ pathto("meta/copying") }}">Copyright and License</a></p>
</div>
</td>
diff --git a/docs/source/conf.py b/docs/source/conf.py
index c648be3..8a5d508 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -11,12 +11,12 @@
# All configuration values have a default; values that are commented out
# serve to show the default.
-import sys, os
+import sys, os, re
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
-#sys.path.insert(0, os.path.abspath('.'))
+sys.path.insert(0, os.path.abspath('..'))
# -- General configuration -----------------------------------------------------
@@ -25,8 +25,32 @@
# Add any Sphinx extension module names here, as strings. They can be extensions
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
-extensions = [ "sphinx.ext.autodoc", "sphinx.ext.mathjax", "sphinxcontrib.doxylink", "sphinxcontrib.aafig", "sphinxcontrib.googleanalytics", "sphinxcontrib.bibtex" ]
+extensions = [
+ 'sphinx.ext.autodoc',
+ 'sphinx.ext.mathjax',
+ 'sphinxcontrib.doxylink',
+ 'sphinxcontrib.aafig',
+ 'sphinxcontrib.googleanalytics',
+ 'sphinxcontrib.bibtex',
+ 'redmine_issue'
+]
+# def addExtensionIfExists(extension):
+# try:
+# __import__(extension)
+# extensions.append(extension)
+# except ImportError:
+# sys.stderr.write("Extension '%s' in not available. "
+# "Some documentation may not build correctly.\n" % extension)
+# sys.stderr.write("To install, use \n"
+# " sudo pip install %s\n" % extension.replace('.', '-'))
+
+# addExtensionIfExists('sphinxcontrib.doxylink')
+
+# if os.getenv('GOOGLE_ANALYTICS', None):
+# addExtensionIfExists('sphinxcontrib.googleanalytics')
+
+
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
@@ -255,3 +279,5 @@
aafig_format = {'latex': 'pdf', 'html': 'svg', 'text': None}
# aafig_default_options = dict(Fixed=True)
+
+redmine_project_url = "http://redmine.named-data.net/"
diff --git a/docs/source/intro.rst b/docs/source/intro.rst
index 4c4c981..f976b8d 100644
--- a/docs/source/intro.rst
+++ b/docs/source/intro.rst
@@ -49,7 +49,7 @@
Specifically, the simulator directly uses NFD implementations of :nfd:`pending Interest
table (PIT) <nfd::Pit>`, :nfd:`forwarding information base (FIB) <nfd::Fib>`, and
-:nfd:`content store <nfd::Cs>` data structures. In addition to that, ndnSIM allows
+: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.
diff --git a/docs/source/meta/authors.rst b/docs/source/meta/authors.rst
new file mode 100644
index 0000000..875d98f
--- /dev/null
+++ b/docs/source/meta/authors.rst
@@ -0,0 +1,4 @@
+ndnSIM Team
+===========
+
+.. include:: ../../../AUTHORS