Skip to content

Commit

Permalink
docs: Prepare release of version 2.1
Browse files Browse the repository at this point in the history
Change-Id: I3694a8791b9540fc1b926a83ff55421b47e0f1b1
Refs: #3151
  • Loading branch information
spirosmastorakis authored and cawka committed Sep 4, 2015
1 parent 95be509 commit 5897c96
Show file tree
Hide file tree
Showing 10 changed files with 260 additions and 10 deletions.
2 changes: 1 addition & 1 deletion .jenkins.d/00-prepare.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ set -x

git rm -qrf .
git clone --depth=1 https://github.com/named-data-ndnSIM/ns-3-dev ns-3
git clone --depth=1 https://github.com/named-data-ndnSIM/pybindgen.git pybindgen
git clone https://github.com/named-data-ndnSIM/pybindgen.git pybindgen
mkdir -p ns-3/src/ndnSIM
mv .git ns-3/src/ndnSIM/
(cd ns-3/src/ndnSIM/ && git reset -q && git checkout . && git submodule update --init)
Expand Down
2 changes: 1 addition & 1 deletion .jenkins.d/01-deps.sh
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ if has Ubuntu $NODE_LABELS; then
sudo apt-get install -qq -y libboost-all-dev
fi

sudo apt-get install -qq -y python-dev python-pygraphviz python-kiwi
sudo apt-get install -qq -y python-setuptools python-dev python-pygraphviz python-kiwi
sudo apt-get install -qq -y python-pygoocanvas python-gnome2
sudo apt-get install -qq -y python-rsvg ipython
fi
2 changes: 2 additions & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,5 @@ people who have reported bugs, submitted patches,and implemented new features o
* Hovaidi Ardestani Mohammad <[email protected]>
* Michael Sweatt <https://www.linkedin.com/in/michaelsweatt>
* Wentao Shang <http://irl.cs.ucla.edu/~wentao/>
* Christian Kreuzberger <[email protected]>
* Yuanzhi Gao <[email protected]>
7 changes: 6 additions & 1 deletion docs/Doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -1966,14 +1966,19 @@ PREDEFINED = NS3_ASSERT_ENABLE \
NS_LOG_COMPONENT_DEFINE \
NFD_LOG_INIT \
BOOST_CONCEPT_ASSERT \
BOOST_CONCEPT_REQUIRES \
PUBLIC_WITH_TESTS_ELSE_PROTECTED=protected \
PUBLIC_WITH_TESTS_ELSE_PRIVATE=private \
PROTECTED_WITH_TESTS_ELSE_PRIVATE=private \
VIRTUAL_WITH_TESTS \
DECL_OVERRIDE \
ATTRIBUTE_HELPER_CPP \
NDN_CXX_KEYCHAIN_REGISTER_PIB \
NDN_CXX_KEYCHAIN_REGISTER_TPM
NDN_CXX_KEYCHAIN_REGISTER_TPM \
NFD_LOG_INCLASS_TEMPLATE_SPECIALIZATION_DEFINE \
NFD_LOG_INCLASS_2TEMPLATE_SPECIALIZATION_DEFINE \
NDN_CXX_DECL_OVERRIDE=override \
NDN_CXX_DECL_FINAL=final


# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
Expand Down
70 changes: 70 additions & 0 deletions docs/redmine_issue.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
# Based on http://doughellmann.com/2010/05/09/defining-custom-roles-in-sphinx.html

"""Integration of Sphinx with Redmine.
"""

from docutils import nodes, utils
from docutils.parsers.rst.roles import set_classes

def redmine_role(name, rawtext, text, lineno, inliner, options={}, content=[]):
"""Link to a Redmine issue.
Returns 2 part tuple containing list of nodes to insert into the
document and a list of system messages. Both are allowed to be
empty.
:param name: The role name used in the document.
:param rawtext: The entire markup snippet, with role.
:param text: The text marked with the role.
:param lineno: The line number where rawtext appears in the input.
:param inliner: The inliner instance that called us.
:param options: Directive options for customization.
:param content: The directive content for customization.
"""
try:
issue_num = int(text)
if issue_num <= 0:
raise ValueError
except ValueError:
msg = inliner.reporter.error(
'Redmine issue number must be a number greater than or equal to 1; '
'"%s" is invalid.' % text, line=lineno)
prb = inliner.problematic(rawtext, rawtext, msg)
return [prb], [msg]
app = inliner.document.settings.env.app
node = make_link_node(rawtext, app, 'issues', str(issue_num), options)
return [node], []

def make_link_node(rawtext, app, type, slug, options):
"""Create a link to a Redmine resource.
:param rawtext: Text being replaced with link node.
:param app: Sphinx application context
:param type: Link type (issue, changeset, etc.)
:param slug: ID of the thing to link to
:param options: Options dictionary passed to role func.
"""
#
try:
base = app.config.redmine_project_url
if not base:
raise AttributeError
except AttributeError, err:
raise ValueError('redmine_project_url configuration value is not set (%s)' % str(err))
#
slash = '/' if base[-1] != '/' else ''
ref = base + slash + type + '/' + slug + '/'
set_classes(options)
node = nodes.reference(rawtext, 'Issue #' + utils.unescape(slug), refuri=ref,
**options)
return node

def setup(app):
"""Install the plugin.
:param app: Sphinx application context.
"""
app.add_role('issue', redmine_role)
app.add_config_value('redmine_project_url', None, 'env')
return
148 changes: 145 additions & 3 deletions docs/source/RELEASE_NOTES.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,150 @@ This file contains ndnSIM release notes.

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
~~~~~~~~
Expand Down Expand Up @@ -36,7 +178,7 @@ Note RIB Manager is not yet available in ndnSIM.
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).
Expand Down
1 change: 1 addition & 0 deletions docs/source/_templates/indexcontent.html
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ <h2>Miscellaneous</h2>
<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>
Expand Down
32 changes: 29 additions & 3 deletions docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -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 -----------------------------------------------------

Expand All @@ -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']

Expand Down Expand Up @@ -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/"
2 changes: 1 addition & 1 deletion docs/source/intro.rst
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ strategies) inside ndnSIM can be directly used within the real NFD implementatio

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.

Expand Down
4 changes: 4 additions & 0 deletions docs/source/meta/authors.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
ndnSIM Team
===========

.. include:: ../../../AUTHORS

0 comments on commit 5897c96

Please sign in to comment.