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
