Prepare release 0.6.0
Change-Id: I0a80e05ddf5e3b98544bf56575e13efae22ccb5b
Refs: #4275
diff --git a/docs/FAQ.rst b/docs/FAQ.rst
index 77a5498..4415ef1 100644
--- a/docs/FAQ.rst
+++ b/docs/FAQ.rst
@@ -25,47 +25,6 @@
./waf configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man
-How to run NFD on Raspberry Pi?
--------------------------------
-
-To run NFD on the Raspberry Pi, you need to either enable IPv6 support
-in Raspberry Pi or disable IPv6 support in NFD.
-
-To enable IPv6 in Raspberry Pi:
-
-::
-
- sudo modprobe ipv6
-
-To disable IPv6 in NFD, replace ``enable_v6 yes`` with ``enable_v6 no``
-in ``tcp`` and ``udp`` sections of ``/usr/local/etc/ndn/nfd.conf``:
-
-::
-
- ...
- tcp
- {
- listen yes
- port 6363
- enable_v4 yes
- enable_v6 no
- }
-
- udp
- {
- port 6363
- enable_v4 yes
- enable_v6 no
- idle_timeout 600
- keep_alive_interval 25
-
- mcast yes
- mcast_port 56363
- mcast_group 224.0.23.170
- }
- ...
-
-
How to run NFD as non-root user?
--------------------------------
@@ -95,7 +54,6 @@
root). However, reducing privileges may limit any damaged caused by well intentioned,
but buggy, code.
-
How to enable Ethernet Face Support?
++++++++++++++++++++++++++++++++++++
@@ -147,19 +105,18 @@
How to configure NFD security?
------------------------------
-.. note:: Sample configuration file of NFD allow any user to manage faces, FIB, RIB, and
- StrategyChoice. The following description can be used to restrict certain operations
- to certain users.
+.. note:: The sample configuration file of NFD allow any user to manage faces, FIB, RIB, and
+ StrategyChoice of the local NFD. The following description can be used to restrict certain
+ operations to certain users.
- More extensive documentation about NFD's security and options to configure trust model
- for NFD is currently in preparation.
+ More extensive documentation about NFD's security and options to configure trust model for
+ NFD is currently in preparation.
-Many NFD management protocols require signed commands to be processed
-(e.g. FIB modification, Face creation/destructions, etc.). You will need
-an NDN certificate to use any application that issues signed commands.
+Many NFD management protocols use commands Interests (e.g., FIB modification, Face
+creation/destructions, etc.), which require an NDN certificate (either self-signed for local
+trust or delegated from a trusted authority).
-If you do not already have NDN certificate, you can generate one with
-the following commands:
+If you do not already have NDN certificate, you can generate one with the following commands:
**Generate and install a self-signed identity certificate**:
@@ -167,18 +124,15 @@
ndnsec-keygen /`whoami` | ndnsec-install-cert -
-Note that the argument to ndnsec-key will be the identity name of the
-new key (in this case, ``/your-username``). Identity names are
-hierarchical NDN names and may have multiple components (e.g.
-``/ndn/ucla/edu/alice``). You may create additional keys and identities
-as you see fit.
+Note that the argument to ndnsec-key will be the identity name of the new key (in this case,
+``/your-username``). Identity names are hierarchical NDN names and may have multiple components
+(e.g. ``/ndn/ucla/edu/alice``). You may create additional keys and identities as you see fit.
**Dump the NDN certificate to a file**:
-The following commands assume that you have not modified ``PREFIX`` or
-``SYSCONFDIR`` If you have, please substitute ``/usr/local/etc`` for the
-appropriate value (the overriden ``SYSCONFDIR`` or ``PREFIX/etc`` if you
-changed ``PREFIX``).
+The following commands assume that you have not modified ``PREFIX`` or ``SYSCONFDIR`` If you
+have, please substitute ``/usr/local/etc`` for the appropriate value (the overriden
+``SYSCONFDIR`` or ``PREFIX/etc`` if you changed ``PREFIX``).
::
@@ -186,36 +140,9 @@
ndnsec-cert-dump -i /`whoami` > default.ndncert
sudo mv default.ndncert /usr/local/etc/ndn/keys/default.ndncert
-.. _How to start using NDN MacPorts repository on OSX:
-
-How to start using NDN MacPorts repository on OSX?
---------------------------------------------------
-
-Please see :ref:`Install NFD Using the NDN MacPorts Repository on OS X and macOS`.
-
.. _How to start using NDN PPA repository on Ubuntu Linux:
How to start using NDN PPA repository on Ubuntu Linux?
------------------------------------------------------
Please see :ref:`Install NFD Using the NDN PPA Repository on Ubuntu Linux`.
-
-.. _How to start using NDN Overlay on Gentoo Linux:
-
-How to start using NDN Overlay on Gentoo Linux?
------------------------------------------------
-
-If you want to install NFD and other packages using Portage on Gentoo Linux, you can start
-using NDN Overlay.
-
-Simply checkout `NDN Overlay <https://github.com/Pesa/ndn-overlay>`_ repository to some
-location add the checkout path to ``PORTDIR_OVERLAY`` in ``/etc/portage/make.conf``:
-
-::
-
- cd /some/path
- git clone https://github.com/Pesa/ndn-overlay.git
-
- # and then add /some/path/ndn-overlay to PORTDIR_OVERLAY in /etc/portage/make.conf
-
-Afterwards, you will be able to install ``nfd`` using standard mechanisms.
diff --git a/docs/INSTALL.rst b/docs/INSTALL.rst
index b83c3a7..8d4f08b 100644
--- a/docs/INSTALL.rst
+++ b/docs/INSTALL.rst
@@ -5,67 +5,18 @@
----------------------------
We provide NFD binaries for the supported platforms, which are the preferred installation
-method. In addition to simplifying installation, the binary release also includes
-automatic initial configuration and platform-specific tools to automatically start NFD and
-related daemons. In particular, on OS X and macOS NFD is controlled using `launchd
-<https://github.com/named-data/NFD/tree/master/contrib/osx-launchd>`__ and on Ubuntu using
-`upstart <https://github.com/named-data/NFD/tree/master/contrib/upstart>`__ mechanisms.
-In both cases, `nfd-start` and `nfd-stop` scripts are convenience wrappers for launchd and
-upstart.
+method. In addition to simplifying installation, the binary release also includes automatic
+initial configuration and platform-specific tools to automatically start NFD and related
+daemons. In particular, on macOS the binary release of NFD comes as part of `NDN Control
+Center <https://named-data.net/codebase/applications/ndn-control-center/>`__ and provides a
+convenient way to configure and launch NFD daemon. :ref:`PPA packages for Ubuntu <Install NFD
+Using the NDN PPA Repository on Ubuntu Linux>` include ``upstart`` and ``systemd``
+configuration to automatically start daemon after boot.
-On OS X and macOS, NFD can be installed with MacPorts. Refer to :ref:`Install NFD Using the NDN
-MacPorts Repository on OS X and macOS` for more details.
-
-On Ubuntu 14.04 and 16.04, NFD can be installed from NDN PPA repository. Refer to
-:ref:`Install NFD Using the NDN PPA Repository on Ubuntu Linux`.
-
-Future releases could include support for other platforms. Please send us feedback on the
-platforms you're using, so we can prioritize our goals. We would also appreciate help
-packaging the current NFD release for other platforms.
-
-
-.. _Install NFD Using the NDN MacPorts Repository on OS X and macOS:
-
-Install NFD Using the NDN MacPorts Repository on OS X and macOS
----------------------------------------------------------------
-
-OS X and macOS users have the opportunity to seamlessly install and run NFD as well as other
-related applications via `MacPorts <https://www.macports.org/>`_. If you are not using MacPorts
-yet, go to the `MacPorts website <https://www.macports.org/install.php>`_ and install the
-MacPorts package.
-
-NFD and related ports are not part of the official MacPorts repository. In order to use
-these ports, you will need to add the NDN MacPorts repository to your local configuration.
-In particular, you will need to modify the list of source URLs for MacPorts. For example,
-if your MacPorts are installed in ``/opt/local``, add the following line to
-`/opt/local/etc/macports/sources.conf` before or after the default port repository:
-
-::
-
- rsync://macports.named-data.net/macports/
-
-After this step, you can use ``sudo port selfupdate`` to fetch updated port definitions.
-
-The following command will install NFD using MacPorts:
-
-::
-
- sudo port install nfd
-
-.. note::
-
- You have to have XCode installed on your machine. This can be installed from the
- AppStore (free) on OS X 10.7 or later. Older editions of OS X can download an
- appropriate version of XCode from http://developer.apple.com.
-
-
-One advantage of using MacPorts is that you can easily upgrade NFD and other packages to
-the latest version. The following commands will do this job:
-
-::
-
- sudo port selfupdate
- sudo port upgrade nfd
+Besides officially supported platforms, NFD is known to work on: Fedora 20+, CentOS 6+, Gentoo
+Linux, Raspberry Pi, OpenWRT, FreeBSD 10+, and several `other platforms
+<https://redmine.named-data.net/projects/nfd/wiki/Wiki#Installation-experiences-for-selected-platforms>`__.
+We would also appreciate feedback and help packaging NDN releases for other platforms.
.. _Install NFD Using the NDN PPA Repository on Ubuntu Linux:
@@ -76,8 +27,8 @@
packages from named-data repository. First, you will need to add ``named-data/ppa``
repository to binary package sources and update list of available packages.
-Preliminary steps if you haven't used PPA packages before
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Preliminary steps if you have not used PPA packages before
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
To simplify adding new PPA repositories, Ubuntu provides ``add-apt-repository`` tool,
which is not installed by default on some systems.
@@ -120,7 +71,7 @@
The first step is to obtain the source code for ``NFD`` and, its main dependency, the
``ndn-cxx`` library. If you are not planning to work with the bleeding edge code, make
-sure you checkout the correct release tag (e.g., ``*-0.2.0``) for both repositories:
+sure you checkout the correct release tag (e.g., ``*-0.6.0``) for both repositories:
::
@@ -130,67 +81,49 @@
# Download NFD
git clone --recursive https://github.com/named-data/NFD
+.. note::
+ While we strive to ensure that the latest version (master branch) of NFD and ndn-cxx
+ always properly compiles and works, sometimes there could be problems. In these cases, use
+ the latest released version.
+
Prerequisites
~~~~~~~~~~~~~
-- Install the `ndn-cxx library <https://named-data.net/doc/ndn-cxx/current/INSTALL.html>`_
- and its requirements
+Install the `ndn-cxx library <https://named-data.net/doc/ndn-cxx/current/INSTALL.html>`__ and its requirements
-- ``pkg-config``
-
- On OS X / macOS with MacPorts:
+- On macOS with Homebrew:
::
- sudo port install pkgconfig
+ brew install boost openssl pkg-config
- On Ubuntu:
+- On Ubuntu:
::
- sudo apt-get install pkg-config
-
-- ``libpcap``
-
- Comes with the base system on OS X / macOS.
-
- On Ubuntu:
-
- ::
-
- sudo apt-get install libpcap-dev
+ sudo apt-get install build-essential pkg-config libboost-all-dev \
+ libsqlite3-dev libssl-dev libpcap-dev
To build manpages and API documentation:
-- ``doxygen``
-- ``graphviz``
-- ``python-sphinx``
-
- On OS X / macOS with MacPorts:
+- On macOS with Homebrew:
::
- sudo port install doxygen graphviz py27-sphinx sphinx_select
- sudo port select sphinx py27-sphinx
+ brew install doxygen graphviz
+ sudo easy_install pip
+ sudo pip Sphinx
- On Ubuntu:
+- On Ubuntu:
::
sudo apt-get install doxygen graphviz python-sphinx
-
-Besides officially supported platforms, NFD is known to work on: Fedora 20, CentOS 6/7, Gentoo Linux,
-Raspberry Pi, OpenWRT, FreeBSD 10.0, and several other platforms. We are soliciting help
-with documenting common problems / pitfalls in installing/using NFD on different platforms
-on `NFD Wiki
-<https://redmine.named-data.net/projects/nfd/wiki/Wiki#Installation-experiences-for-selected-platforms>`__.
-
-
Build
~~~~~
-The following basic commands should be used to build NFD on Ubuntu:
+The following basic commands should be used to build NFD on Ubuntu and macOS with Homebrew:
::
@@ -198,7 +131,7 @@
./waf
sudo ./waf install
-If you have installed `ndn-cxx` library and/or other dependencies into a non-standard paths, you
+If you have installed ``ndn-cxx`` library and/or other dependencies into a non-standard path, you
may need to modify ``PKG_CONFIG_PATH`` environment variable before running ``./waf configure``.
For example,
@@ -209,7 +142,6 @@
./waf
sudo ./waf install
-
Refer to ``./waf --help`` for more options that can be used during ``configure`` stage and
how to properly configure and run NFD.
@@ -234,11 +166,14 @@
./waf
sudo ./waf install
+.. note::
+ For Ubuntu PPA packages debug symbols are available in ``*-dbg`` packages.
+
Customize Compiler
~~~~~~~~~~~~~~~~~~
To choose a custom C++ compiler for building NFD, set the ``CXX`` environment variable
-to point to the compiler binary. For example, when using the clang compiler on a Linux
+to point to the compiler binary. For example, to select the clang compiler on a Linux
system, use the following:
::
@@ -271,7 +206,6 @@
For more details, refer to ``./waf --help``.
-
Initial configuration
---------------------
@@ -297,7 +231,7 @@
particular, one can authorize only specific public keys to create new Faces or change the
forwarding strategy for specific namespaces. For more information about how to generate
private/public key pair, generate self-signed certificate, and use this self-signed
-certificate to authorize NFD management commands refer to :ref:`How to configure NFD
+certificate to authorize NFD management commands, refer to :ref:`How to configure NFD
security` FAQ question.
In the sample configuration file, all authorizations are disabled, effectively allowing
@@ -310,8 +244,8 @@
Starting
~~~~~~~~
-If you have installed NFD from source code, the recommended way of starting NFD is to use the
-`nfd-start` script:
+If you have installed NFD from source code, it is recommended to start NFD with the
+``nfd-start`` script:
::
@@ -323,7 +257,8 @@
Later, you can stop NFD with ``nfd-stop`` or by simply killing the ``nfd`` process.
If you have installed NFD using a package manager, you can start and stop NFD service using the
-operating system's service manager (such as Upstart, systemd, or launchd).
+operating system's service manager (such as Upstart, systemd, or launchd) or using
+"Automatically start NFD" option in NDN Control Center app.
Connecting to remote NFDs
~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -353,14 +288,11 @@
route-add-accepted prefix=/ndn nexthop=308 origin=static cost=0 flags=child-inherit expires=never
-The ``/ndn`` means that NFD will forward all Interests that start with ``/ndn`` through
-the face to the other host. If you only want to forward Interests with a certain prefix,
-use it instead of ``/ndn``. This only forwards Interests to the other host, but there is
-no "back route" for the other host to forward Interests to you. For that, you must go to
-the other host and use ``nfdc`` to add the route.
-
-The "back route" can also be automatically configured with ``nfd-autoreg``. For more
-information refer to :doc:`manpages/nfd-autoreg`.
+The ``/ndn`` means that NFD will forward all Interests that start with ``/ndn`` through the
+face to the other host. If you only want to forward Interests with a certain prefix, use it
+instead of ``/ndn``. This only forwards Interests to the other host, but there is no "back
+route" for the other host to forward Interests to you. For that, you can rely on automatic
+prefix propagation feature of NFD or go to the other host and use ``nfdc`` to add the route.
Playing with NFD
----------------
diff --git a/docs/release-notes-latest.rst b/docs/release-notes-latest.rst
index e77ea53..cbbc128 120000
--- a/docs/release-notes-latest.rst
+++ b/docs/release-notes-latest.rst
@@ -1 +1 @@
-release-notes/release-notes-0.5.1.rst
\ No newline at end of file
+release-notes/release-notes-0.6.0.rst
\ No newline at end of file
diff --git a/docs/release-notes/release-notes-0.6.0.rst b/docs/release-notes/release-notes-0.6.0.rst
new file mode 100644
index 0000000..1c33eea
--- /dev/null
+++ b/docs/release-notes/release-notes-0.6.0.rst
@@ -0,0 +1,124 @@
+NFD version 0.6.0
+-----------------
+
+Release date: October 16, 2017
+
+Changes since version 0.5.1:
+
+New features
+^^^^^^^^^^^^
+
+- Generic prefix readvertise capability with specific support of readvertise-to-NLSR
+ (:issue:`3818`)
+
+- Unicast Ethernet faces, including close-on-idle, persistency change,
+ fragmentation and reassembly features (:issue:`4011`, :issue:`4012`)
+
+- Capability to create permanent TCP faces (:issue:`3167`)
+
+- Configuration option to make UDP multicast and Ethernet multicast faces "ad hoc" (:issue:`4018`,
+ :issue:`3967`)
+
+- Replace ``Link`` with ``ForwardingHint`` as part of Interest processing (:issue:`4055`)
+
+- ``ForwardingHint`` stripped when Interest reaches producer region (:issue:`3893`)
+
+- New capabilities in multicast strategy:
+
+ * Nack support (:issue:`3176`)
+ * Consumer retransmission (:issue:`2062`)
+ * Per-upstream exponential suppression of retransmissions (:issue:`4066`)
+
+- Wildcard matching on interface names for whitelist/blacklist (:issue:`4009`)
+
+- Optional best-effort link-layer reliability feature in NDNLPv2 (:issue:`3931`)
+
+- Support for ``LpReliability`` flag in faces/create and faces/update (:issue:`4003`)
+
+- Advisory limit of ``NameTree`` depth (:issue:`4262`)
+
+- `Contributing guide <https://github.com/named-data/NFD/>`__ and `code of conduct
+ <https://github.com/named-data/NFD/>`__ (:issue:`3898`)
+
+Updates
+^^^^^^^
+
+- Allow forwarding of Interest/Data to ad hoc face regardless if the Interest/Data came from
+ the same face (:issue:`3968`)
+
+- Interpret omitted ``FreshnessPeriod`` as "always stale" (:issue:`3944`)
+
+- Duplicate nonce from same face is no longer considered "loop" (:issue:`3888`)
+
+- Refactor :doc:`nfdc command-line tool <../manpages/nfdc>` (:issue:`3864`, :issue:`3866`)
+
+- Accept ``LocalUri`` in ``ProtocolFactory`` and ``FaceManager`` (:issue:`4016`)
+
+- Abstract ``Nack`` processing out of ``BestRouteStrategy2`` (:issue:`3176`)
+
+- Rework ``FacePersistency`` handling in faces/create and faces/update (:issue:`3232`)
+
+ * Enable changing persistency in faces/update command
+ * Reject faces/create request if the face already exists
+
+- RIB updates to follow API changes in ndn-cxx library (:issue:`3903`)
+
+- Switch to V2 security framework (:issue:`4089`)
+
+- Use ``NetworkMonitor``, ``NetworkInterface``, ``lp::isLessSevere`` from ndn-cxx
+ (:issue:`4021`, :issue:`4228`)
+
+- Move ``Channel`` and subclasses into ``nfd::face`` namespace
+
+- Improve consistency of logging in channels (:issue:`2561`)
+
+- Change ``ndn-autoconfig`` tool to register ``/`` prefix instead of ``/ndn`` (:issue:`4201`)
+
+- Documentation improvements
+
+Bugfixes
+^^^^^^^^
+
+- In ASF strategy add check for FaceInfo existence before using it (:issue:`3968`)
+
+- Avoid setting TransportState to FAILED if connection is closed cleanly (:issue:`4099`)
+
+- Fix regression ``ndn-autoconfig`` continue proceeding with existing face (:issue:`4008`)
+
+- Decode ``CachePolicy`` without requiring ``allowLocalFields`` (:issue:`3966`)
+
+- Fix support for link-local IPv6 addresses (:issue:`1428`)
+
+- Fix potential misaligned memory accesses (:issue:`4191`)
+
+Deletions
+^^^^^^^^^
+
+- Deprecated code, including ``faces/enable-local-control`` and ``faces/disable-local-control``
+ management commands (:issue:`3988`)
+
+- ``NetworkInterfaceInfo`` class, replaced by ``ndn::net::NetworkInterface`` from ndn-cxx
+ (:issue:`4021`)
+
+- Legacy nfdc and nfd-status invocations
+
+ The following legacy nfdc sub-commands are deleted, use the corresponding ``nfdc face ...``,
+ ``nfdc route ...``, ``nfdc strategy ...`` commands:
+
+ * ``register``
+ * ``unregister``
+ * ``create``
+ * ``destroy``
+ * ``set-strategy``
+ * ``unset-strategy``
+ * ``add-nexthop``
+ * ``remove nexthop``
+
+- ``nfd-status`` no longer accepts command line arguments (:issue:`4198`). Individual datasets
+ can be requested using ``nfdc channel list``, ``nfdc face list``, ``nfdc fib list``, ``nfdc
+ route list``, and ``nfdc strategy list`` commands.
+
+- ``nfdId`` from ``nfdc status`` output (:issue:`4089`)
+
+- Prohibited endpoint set, making it possible to create faces that connect NFD to itself
+ (:issue:`4189`)
diff --git a/docs/releases.rst b/docs/releases.rst
index 49d8fe2..4fb2512 100644
--- a/docs/releases.rst
+++ b/docs/releases.rst
@@ -5,6 +5,7 @@
:hidden:
:maxdepth: 1
+ release-notes/release-notes-0.6.0
release-notes/release-notes-0.5.1
release-notes/release-notes-0.5.0
release-notes/release-notes-0.4.1
@@ -17,6 +18,12 @@
release-notes/release-notes-0.2.0
release-notes/release-notes-0.1.0
+* **NFD version 0.6.0**
+ (:doc:`Release Notes <release-notes/release-notes-0.6.0>`, `Documentation <https://named-data.net/doc/NFD/0.6.0/>`__)
+
+ `src (git) <https://github.com/named-data/NFD/releases/tag/NFD-0.6.0>`__,
+ `src (tarball) <https://named-data.net/downloads/nfd-0.6.0.tar.bz2>`__ (`checksum <https://named-data.net/downloads/nfd-0.6.0.tar.bz2.sha256>`__)
+
* **NFD version 0.5.1**
(:doc:`Release Notes <release-notes/release-notes-0.5.1>`, `Documentation <https://named-data.net/doc/NFD/0.5.1/>`__)
diff --git a/wscript b/wscript
index 873b3c4..ffa6052 100644
--- a/wscript
+++ b/wscript
@@ -24,7 +24,7 @@
NFD, e.g., in COPYING.md file. If not, see <http://www.gnu.org/licenses/>.
"""
-VERSION = "0.5.1"
+VERSION = "0.6.0"
APPNAME = "nfd"
BUGREPORT = "https://redmine.named-data.net/projects/nfd"
URL = "https://named-data.net/doc/NFD/"