Prepare release 0.6.0

Change-Id: I0a80e05ddf5e3b98544bf56575e13efae22ccb5b
Refs: #4275
This commit is contained in:
Alexander Afanasyev
2017-10-15 14:56:08 -04:00
parent b8d1fc7562
commit 84dd4ca348
6 changed files with 194 additions and 204 deletions
+15 -88
View File
@@ -25,47 +25,6 @@ configure``:
./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 @@ respectively.
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 @@ or setting the appropriate permissions:
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 @@ the following commands:
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 @@ changed ``PREFIX``).
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.
+46 -114
View File
@@ -5,67 +5,18 @@ Installing NFD from Binaries
----------------------------
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 @@ NFD binaries and related tools for Ubuntu 14.04 and 16.04 can be installed using
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 @@ Downloading from Git
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 @@ sure you checkout the correct release tag (e.g., ``*-0.2.0``) for both repositor
# 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 @@ The following basic commands should be used to build NFD on Ubuntu:
./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 @@ For example,
./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 @@ with configuration in ``/etc`` folder.
./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 @@ location can be changed during ``./waf configure`` stage using ``--prefix``,
For more details, refer to ``./waf --help``.
Initial configuration
---------------------
@@ -297,7 +231,7 @@ NFD provides mechanisms to enable strict authorization for all management comman
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 @@ Running
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 @@ your keychain.`` Enter your keychain password and click Always Allow.
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 @@ This outputs:
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
----------------
+1 -1
View File
@@ -1 +1 @@
release-notes/release-notes-0.5.1.rst
release-notes/release-notes-0.6.0.rst
+124
View File
@@ -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`)
+7
View File
@@ -5,6 +5,7 @@ NFD Versions
: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 @@ NFD Versions
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/>`__)