diff --git a/docs/FAQ.rst b/docs/FAQ.rst index 77a54989..4415ef1d 100644 --- a/docs/FAQ.rst +++ b/docs/FAQ.rst @@ -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 `_ 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 b83c3a79..8d4f08b2 100644 --- a/docs/INSTALL.rst +++ b/docs/INSTALL.rst @@ -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 -`__ and on Ubuntu using -`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 `__ and provides a +convenient way to configure and launch NFD daemon. :ref:`PPA packages for Ubuntu ` 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 `_. If you are not using MacPorts -yet, go to the `MacPorts website `_ 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 +`__. +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 `_ - and its requirements +Install the `ndn-cxx library `__ 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 -`__. - - 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 ---------------- diff --git a/docs/release-notes-latest.rst b/docs/release-notes-latest.rst index e77ea537..cbbc1285 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 00000000..1c33eea1 --- /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 `__ and `code of conduct + `__ (: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 49d8fe29..4fb2512b 100644 --- a/docs/releases.rst +++ b/docs/releases.rst @@ -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 `, `Documentation `__) + + `src (git) `__, + `src (tarball) `__ (`checksum `__) + * **NFD version 0.5.1** (:doc:`Release Notes `, `Documentation `__) diff --git a/wscript b/wscript index 873b3c41..ffa6052b 100644 --- a/wscript +++ b/wscript @@ -24,7 +24,7 @@ You should have received a copy of the GNU General Public License along with NFD, e.g., in COPYING.md file. If not, see . """ -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/"