NFD VERSION 0.5.1 Changes since version 0.5.0 New features - In ndn-autoconfig, add the Find (geographically) Closest Hub stage (NDN-FCH) using a deployed service (Issue 3800) - Add face_system.ether.whitelist and face_system.ether.blacklist config options for Ethernet multicast faces creation (Issue 1712) - Add face_system.udp.whitelist and face_system.udp.blacklist config options for UDP multicast faces creation (Issue 1712) - Introduce tables.cs_policy config option to configure cache policy (policy change requires restart of NFD) (Issue 3148) - Introduce strategy parameters that can be specified when selecting a strategy for a namespace (Issue 3868) - Initial implementation of route re-advertise feature. This release only includes supporting classes. Full implementation of this feature is expected to be introduced in the next release (Issue 3818). - Introduce FACE_EVENT_UP and FACE_EVENT_DOWN notifications (Issues 3794, 3818) - GenericLinkService now encodes and decodes the NDNLPv2 CongestionMark field (Issue 3797) Updates - Allow strategies to pick outgoing Interest. The outgoing Interest pipeline and Strategy API have changed to give strategies an opportunity to pick an outgoing Interest that matches the Interest table entry (Issue 1756) - Refactor localhop restriction handling in strategies. Previously available canForwardToLegacy function no longer checks scope. Strategies using this function shall use wouldViolateScope separately (Issues 3841, 1756) - Strategy instances are no longer shared among different StrategyChoice entries. Each instance can be individually configured using the arguments supplied during construction (as part of strategy name) (Issue 3868) - Change strategy-choice/set response codes. Specifically, if the specified strategy name cannot be instantiated, the command responds with 404 status code (Issue 3868) - Add ability to instantiate strategy of next higher version if the requested version is not available (Issue 3868) - Refactor face management system. The function of the monolithic FaceManager class has been split among the newly introduced FaceSystem class and the various protocol factories. FaceSystem class is the entry point of NFD's face system and owns the concrete protocol factories, created based on face_system section of the NFD configuration file. (Issue 3904) - Switch to use faces/update instead of legacy faces/enable-local-control to enable local fields (Issue 3734) - Add support for permanent persistency in TcpTransport (Issue 3167) - Add missing and refactor existing registry implementations for replaceable modules, including strategy, protocol factory, CS policy, and unsolicited data policy (Issues 2181, 3148, 3868, 3904) - Refactor and extend nfdc tool. The tool is now a universal instrument to query and change NFD state (Issue 3780) - Refactor implementation of ndn-autoconfig tool (Issue 2426) Bugfixes - Fix RTT calculation in ASF strategy (Issue 3829) - Ensure that pit::Entry checks that Interest matches entry when updating in/out-record to prevent strategies to incorrectly pick an incorrect Interest (Issue 1756) - Fix uncaught bad_lexical_cast exception in Network::isValidCidr() (Issue 3858) - Fix incorrect output of operator<< for Rib class (Issue 3423) - Make FIB and StrategyChoice iterators default-constructible (Issue 3882) - Ensure that nfd-status-http-server returns error code (HTTP/504) when NFD is not running (Issue 3863) - A number of fixes in documentation Deprecations - Deprecate nfd-status command line options. Use nfdc subcommands, such as nfdc face list and nfdc status report xml. The argument-less nfd-status is retained as an alias of nfdc status report (Issue 3780) Deletions - Delete deprecated Strategy::sendInterest overload and violatesScope (Issues 1756, 3841) - StrategyChoice no longer supports installed instances. All strategies should be registered in the strategy registry (Issue 3868) - Strategy::getName. Instead, Strategy API introduces getStrategyName (strategy program name, including version component) and getInstanceName (strategy name assigned during strategy instance instantiation, including version and optional extra parameter components) (Issue 3868)