Skip to content

Tags

Tags give the ability to mark specific points in history as being important
  • NFD-24.07
    a1480a7c · Prepare release 24.07 ·
    NFD version 24.07
    
    Release date: July 28, 2024
    
    Important changes and new features
    
    - The build dependencies have been increased as follows:
    
      - GCC >= 9.3 or Clang >= 7.0 are strongly recommended on Linux; GCC
        8.x is also known to work but is not officially supported
      - Xcode 13 or later is recommended on macOS; older versions may still
        work but are not officially supported
      - Boost >= 1.71.0 is required on all platforms
    
    - Ubuntu 24.04 (Noble), Debian 12 (Bookworm), and macOS 14 (Sonoma) are
      now officially supported
    
    - Added an official Dockerfile to the repository. From this Dockerfile,
      the following images are currently published to the GitHub container
      registry:
    
      - named-data/nfd
      - named-data/nfd-autoreg
      - named-data/nfd-status-http-server
    
      All images are available for linux/amd64 and linux/arm64 platforms.
    
    - The default Unix socket path changed to /run/nfd/nfd.sock on Linux and
      to /var/run/nfd/nfd.sock on all other platforms (5304)
    
    - Introduced a new strategy trigger
      onInterestLoop <Strategy::onInterestLoop> that is invoked when a
      duplicate Interest is received. The default behavior (sending a Nack
      packet) remains unchanged except for the Multicast strategy, which
      will now suppress the Nack transmission in this case (5278)
    
    - Multiple updates to the ASF forwarding strategy to more closely adhere
      to the behavior described in the published technical report (5310)
    
    - The ASF strategy gained support for Nack propagation (5311)
    
    - The default port number of nfd-status-http-server changed to 6380
    
    Improvements and bug fixes
    
    - Several stability improvements in the face system, especially around
      error handling in multicast faces and UnixStreamChannel (5030, 5297)
    - Refactor and improve logging in forwarding core and strategies (5262,
      5267)
    - Fix missing increment of nOutNacks counter when sending a Nack from
      onInterestLoop
    - Optimize the removal of PIT in-records
    - Move RIB unit tests into unit-tests-daemon and eliminate the
      unit-tests-rib binary
    - Fix building the documentation with Python 3.12 (5298)
    - Reduce amount of debugging information produced in compiled binaries
      by default (5279)
    - Update waf build system to version 2.0.27
    - Various code cleanups, modernizations, and documentation improvements
    
  • NFD-22.12
    3bc8e19a · Prepare release 22.12 ·
    NFD version 22.12
    
    Important changes and new features
    
    - NFD now uses the C++17 standard to build
    - The minimum build requirements have been increased as follows:
      - Either GCC >= 7.4.0 or Clang >= 6.0 is required on Linux
      - On macOS, Xcode 11.3 or later is recommended; older versions may
        still work but are not officially supported
      - Boost >= 1.65.1 is required on all platforms
      - Sphinx 4.0 or later is required to build the documentation
    - CentOS Stream 9 is now officially supported; CentOS 8 has been dropped
      (5181)
    - macOS 12 (Monterey) and 13 (Ventura) running on arm64 are now
      officially supported (5135)
    - The ASF, BestRoute, and Multicast strategies gained support for
      fine-grained configuration of the retransmission suppression
      parameters (4924)
    
    Improvements and bug fixes
    
    - Prevent Ethernet faces from hanging NFD when a network interface goes
      down
    - Refactor the EndpointId implementation using std::variant (5041)
    - Better support for the new signed Interest format in management
    - Extend and optimize the use of precompiled headers (5212)
    - Stop using the gold linker on Linux; prefer instead linking with lld
      if installed
    - Update waf build system to version 2.0.24
    - Various documentation improvements
    
  • NFD-22.02
    5006c1d6 · Prepare release 22.02 ·
    NFD version 22.02
    
    Note that starting with this release, NFD switched to a new versioning
    convention: YEAR.MONTH[.REVISION].
    
    Notable changes and new features
    
    - Remove NACKs from multicast strategy (5146)
    - Dispatch pending interests when a new next hop is created in
      MulticastStrategy (4931)
    - Reorder function parameters in Strategy classes to make the API more
      uniform (5173)
    - Add default HopLimit to Interests when missing (5171)
    - Allow batch command processing by nfdc to accomodate case when nfdc is
      used to create multiple faces/routes at once (5169)
    - Update Interest::ForwardingHint format (5187)
    - Rename the ASF strategy parameter n-silent-timeouts to max-timeouts
    - Allow setting default UDP face MTU in nfd.conf (5138)
    
    Improvements and bug fixes
    
    - Execute pcap_activate as root for Ethernet faces (4647)
    - Update the validation examples in nfd.conf.sample to accept a
      certificate name in KeyLocator in addition to a key name (5114)
    - Fix and simplify enumeration logic in Forwarder::onNewNextHop()
    - Use per-upstream suppression in ASF strategy (5140)
    - Use typed name components for (versioned) strategy names (5044)
    - Avoid extending the dataset expiration in ForwarderStatusManager
    - DeadNonceList improvements
      - Code cleanup/modernization
      - Prevent duplicate entries (5167)
      - Improve logging (5165)
      - Increase initial and minimum capacity
    - Handle error when calling remote_endpoint on a TCP socket (5158)
    - Various build system and documentation extensions and fixes
    
    Removals
    
    - Eliminate Forwarder::dispatchToStrategy() (use direct call to
      StrategyChoice::findEffectiveStrategy(PitEntry))
    - NCC strategy (legacy)
    - Best-route strategy version 1 (legacy)
    
  • NFD-0.7.1
    3dc9fd0b · Prepare release 0.7.1 ·
    NFD version 0.7.1
    
    The build requirements have been increased to require Clang >= 4.0,
    Xcode >= 9.0, and Python 3. Meanwhile, it is recommended to use GCC >=
    7.4.0 and Boost >= 1.65.1. This effectively drops official support for
    Ubuntu 16.04 when using distribution-provided Boost packages -- NFD may
    still work on this platform, but we provide no official support for it.
    Additionally, this release drops support for CentOS 7.
    
    New features
    
    - Allow Ethernet face MTU to adjust to changes in underlying interface
      MTU (3257)
    - Allow face MTU to be overriden via management (5056)
    - Deduplicate received link-layer packets when link-layer reliability
      is enabled (5079)
    - Add support for the HopLimit Interest element (4806)
    - Add counter for unsolicited data
    
    Improvements and bug fixes
    
    - Fix PIT entry rejection in MulticastStrategy upon receiving the same
      Interest (5123)
    - If no face exists when a route is added via nfdc, nfdc will attempt
      to create it (4332)
    - Attach PIT tokens after CS hit (5090)
    - nfdc cs erase will now erase up to the specified count (4744)
    - Improve LpReliability logging (5080)
    - Use standard path for Unix stream socket on Linux (5039)
    - Adjust timeout sensitivity and avoid ignoring additional probe
      responses in ASF strategy (4983, 4193)
    - Bug fixes in config file processing (4489)
    - Fix incompatibility with version header in C++20
    - Fix integer overflow in PIT FaceRecord (4979)
    - Various improvements to documentation, test suites, and authors list
    
    Removals
    
    - Delete deprecated uses of default SigningInfo (4804)
    - Remove Endpoint IDs from egress APIs (4843, 4849, 4973)
    
  • NFD-0.7.0
    fb034219 · Prepare release 0.7.0 ·
    NFD version 0.7.0
    
    New features:
    
    - Support only NDN packet format version 0.3 (4805, 4581, 4913)
    - Initial support for PitToken (4532)
    - Random Forwarding Strategy that chooses a random outgoing face,
      excluding the incoming face of an Interest packet (4992)
    
    Improvements and bug fixes:
    
    - Avoid cs::Entry construction during Content Store lookup (4914)
    - Make use of ndn-cxx's RttEstimator in LpReliability, AsfStrategy, and
      AccessStrategy (4887)
    - Increase pcap buffer size in Ethernet faces (2441)
    - Make congestion marking less aggressive (5003). The updated
      implementation is closer to the CoDel algorithm (RFC 8289)
    - Pull FaceTable construction out of Forwarder class (4922, 4973)
    - Enable direct certificate fetch in RibManager (2237)
    - Refuse to start NFD if both localhop_security and
      auto_prefix_propagate are enabled in the configuration file (4989)
    - Fix crash in self-learning strategy when the out-record of a PIT entry
      does not exist (5022)
    - Use a separate validator and a separate configuration section in
      nfd.conf for prefix announcements (5031). The default configuration
      will accept any prefix announcement.
    - Documentation improvements
    
  • NFD-0.6.6
    65c494ac · Prepare release 0.6.6 ·
    NFD VERSION 0.6.6
    
    Note that this is the last release that encodes to NDN packet format
    version 0.2.1. A future release will continue to decode v0.2.1 format,
    but will encode to v0.3 format.
    
    New features
    
    - Initial code changes for self-learning for broadcast and ad hoc
      wireless faces (4281)
      - EndpointId field in PIT in-record and out-record (4842)
      - FaceEndpoint parameter in Forwarding and Strategy API (4849)
    
    Improvements and bug fixes
    
    - Fix to properly handle consumer retransmission in AsfStrategy (4874)
    - Fix compilation error when dropping privileges is not supported, e.g.,
      on Android platform (4833)
    - Replace all uses of BOOST_THROW_EXCEPTION with NDN_THROW, and custom
      nfd::getExtendedErrorMessage with standard
      boost::diagnostic_information for error message formatting (4834)
    - Fix compilation against recent versions of Boost libraries (4890,
      4923)
    - Fix display of satisfied/unsatisfied Interests in
      nfd-status-http-server (4720)
    - Move NFD_VERSION{,_BUILD}_STRING to version.cpp to avoid
      re-compilation when the git commit hash changes
    - Code optimizations, modernizations, and deduplications:
      - Switch to use ndn-cxx's getRandomNumberEngine()
      - Switch to std::thread and thread_local
    - Code reorganization:
      - Move entire rib subdir to daemon/rib, except for RibManager, which
        is moved to daemon/mgmt (4528)
      - Move NFD-specific files from core/ to daemon/ folder (4922)
      - Eliminate scheduler::{schedule,cancel} wrappers
      - Merge ManagerBase with NfdManagerBase (4528)
      - Introduce and make use of NullLinkService and NullTransport (4528)
    - Test suite refactoring
      - IdentityManagementFixture renamed to KeyChainFixture and no longer
        derives from BaseFixture
      - Introduce ClockFixture
      - unit-tests-{core,tools} no longer require a global io_service
      - Eliminate use of Selectors in CS tests (4805)
    - Update documentation
    
    Removals
    
    - Support for unit-tests.conf (use NDN_LOG to customize)
    
  • NFD-0.6.5
    77cddbc9 · Prepare release 0.6.5 ·
    NFD version 0.6.5
    
    Note that this is the last release that encodes to NDN packet format
    version 0.2.1. A future release will continue to decode v0.2.1 format,
    but will encode to v0.3 format.
    
    New features
    ============
    
    - Self-learning forwarding strategy (4279)
    - Support IPv6-only WebSocket channels (4710)
    - Add satisfied and unsatisfied counters to forwarder status management
      and tools (4720)
    - Report face MTU in faces/list and faces/query datasets (4763)
    
    Improvements and bug fixes
    ==========================
    
    - Stop using the global scheduler in RIB (4528)
    - Reimplement auto prefix propagation on top of the readvertise
      framework (3819)
    - Don't set SO_BINDTODEVICE on Android (4761)
    - Set EthernetTransport UP/DOWN based on netif state (3352)
    - Update WebSocket++ to 0.8.1
    - Add EndpointId field in NextHop record (4284)
    - Seed the global PRNG with more entropy
    - Use ndn-cxx scheduler::ScopedEventId (4698)
    - Improvements with systemd integration (2815)
    
    Removed
    =======
    
    - Remove obsolete upstart files
    - Delete deprecated ClientControlStrategy (3783)
    
  • NFD-0.6.4
    407d5698 · Prepare release 0.6.4 ·
    NFD version 0.6.4
    
    This minor release fixes a regression introduced in version 0.6.3 that
    prevents NFD from starting when RIB security configuration is enabled (4759).
    
    For details of new and improved features since version 0.6.2, refer to
    the release notes of version 0.6.3.
    
  • NFD-0.6.3
    a46d41df · Prepare release 0.6.3 ·
    NFD version 0.6.3
    
    Note that this is the last release that encodes to NDN packet format
    version 0.2.1 <https://named-data.net/doc/NDN-packet-spec/0.2.1/>__. A
    future release will continue to decode v0.2.1 format, but will encode to
    v0.3 format <https://named-data.net/doc/NDN-packet-spec/0.3/>__.
    
    The build requirements have been upgraded to gcc >= 5.3 or clang >= 3.6,
    boost >= 1.58, openssl >= 1.0.2. This effectively drops support for all
    versions of Ubuntu older than 16.04 that use distribution-provided
    compilers and packages.
    
    The compilation now uses the C++14 standard.
    
    New features
    ============
    
    - Allow MTU of datagram faces to be overridden (4005, 4789)
    - Implement nfdc cs erase command (4318)
    - Initial framework to realize self-learning feature
      - RIB code refactoring (4650, 4723, 4683)
      - Add facility to execute functions on the RIB and main threads (4279,
        4683)
      - Incorporate PrefixAnnouncement into Route and RibEntry (4650)
    - Add official support for CentOS 7 (4610)
    
    Improvements and bug fixes
    ==========================
    
    - Make LRU the default CS replacement policy (4728)
    - Refactor logging to use ndn-cxx logging framework (4580)
    - Directly use asio::ip::address::from_string instead of ndn-cxx
      provided helpers (Boost.Asio >= 1.58 includes necessary fixes)
    - Avoid use of deprecated {get,set}FinalBlockId
    - Improve and simplify code with modern C++ features
    - Improve test cases
    - Improve documentation
    
  • NFD-0.6.2
    782a1d16 · Prepare release 0.6.2 ·
    NFD version 0.6.2
    
    Note that this is the last release that process packets with NDN packet
    format version 0.2.1 (https://named-data.net/doc/NDN-packet-spec/0.2.1/)
    semantics. A future release will continue to decode v0.2.1 format, but
    will process packets with v0.3 (https://named-data.net/doc/NDN-packet-spec/0.3/)
    semantics.
    
    New features:
    -------------
    
    - afterContentStoreHit, afterReceiveData strategy trigger (Issue 4290)
    
    - Cs::erase method and cs/erase management command (Issue 4318)
    
    - nfdc cs config to configure parameters of NFD Content Store at run
      time (Issue 4050)
    
    - Support for IPv6 subnets in white-/blacklists of NFD config file
      (Issue 4546)
    
    - Configurable IP subnets for "local" TCP faces (Issue 4546)
    
    Improvements and bug fixes:
    ---------------------------
    
    - Replace PIT straggler timer with a per-strategy decision (Issue 4200)
    
    - Add isSatisfied and dataFreshnessPeriod properties to PIT entries
      (Issue 4290)
    
    - Prevent potential nullptr dereference in FaceManager (Issue 4548)
    
    - Enforce NameTree maximum depth universally (Issue 4262)
    
    - Correctly handle removed fragments in LpReliability (Issue 4479)
    
    - More hints, aliases, and visual improvements in nfdc command (Issue 4498)
    
    - Fix listing of face flags in the HTML status page produced by
      nfd-status-http-server
    
    - Upgrade build environment to latest version of waf and other
      improvements
    
    Removals:
    ---------
    
    - onInterestUnsatisfied pipeline stage (Issue 4290)
    
  • NFD-0.6.1
    3f94ec31 · Prepare for 0.6.1 release ·
    NFD version 0.6.1
    
    New features:
    -------------
    
    - (potentially breaking change) nfd-status-http-server now requires
      Python 3
    - Congestion detection and signaling for TCP, UDP, and Unix stream
      transports. This feature can be managed through the configuration
      file and nfdc, and is enabled by default (Issues 4362, 4465)
    - nfdc cs info command that shows CS hits and CS misses (Issues 4219,
      4438)
    - Support for non-listening UDP channels (Issue 4098)
    - IPv6 UDP multicast transport (Issue 4222)
    - Strategy notification for packet drops in LpReliability (Issue 3823)
    - NonDiscovery and PrefixAnnouncement encoding/decoding in
      GenericLinkService (Issues 4280, 4355)
    
    Improvements and bug fixes
    --------------------------
    
    - Added more ways in nfdc for a user to ask for help, including
      'nfdc foo help', 'nfdc foo --help', and 'nfdc foo -h' (Issue 4503)
    - Added privilege elevation in MulticastUdpTransport that was
      preventing NFD from running with effective non-root user (Issue
      4507)
    - Fixed crash when configuration file lacks an 'authorizations'
      section (Issue 4487)
    - Made the exit status consistent across all tools
    - Fixed build when std::to_string is not available (Issue 4393)
    - Made AsfStrategy less sensitive, switching the path only after
      multiple timeouts. The number of timeouts is configurable via a
      strategy parameter (Issue 4193)
    - Introduce depth limit in the Measurements table, limit the accepted
      prefix length for RIB, FIB, and StrategyChoice management commands
      (Issue 4262)
    - Improved test cases and documentation
    
  • NFD-0.6.0
    84dd4ca3 · Prepare release 0.6.0 ·
    NFD version 0.6.0
    
    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 (Issues 4011, 4012)
    - Capability to create permanent TCP faces (Issue 3167)
    - Configuration option to make UDP multicast and Ethernet multicast
      faces "ad hoc" (Issues 4018, 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 nfdc command-line tool `../manpages/nfd` (Issues
      3864, 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 (Issues 4021, 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)
    
  • NFD-0.5.1
    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)
    
  • NFD-0.5.0
    NFD VERSION 0.5.0
    
    Release date: October 4, 2016
    
      NOTE
    
      Version 0.5.0 introduces several breaking changes to the internal API
      (forwarding pipelines, strategy interface, tables) and wire format of
      management protocol
    
      NOTE
    
      As of version 0.5.0, NFD requires a modern compiler (gcc >= 4.8.2,
      clang >= 3.4) and a relatively new version of Boost libraries (>=
      1.54). This means that the code no longer compiles with the packaged
      version of gcc and boost libraries on Ubuntu 12.04. NFD can still be
      compiled on such systems, but requires separate installation of a
      newer version of the compiler (e.g., clang-3.4) and dependencies.
    
    Changes since version 0.4.1
    
    New features
    
    - Add Adaptive SRTT-based Forwarding strategy (Issue 3566)
    - BREAKING CHANGE Introduce configurable policy for admission of
      unsolicited data packets into the content store (Issue 2181). Currently
      available policies:
      - DropAllUnsolicitedDataPolicy (THE NEW DEFAULT): drop all unsolicited
        data packets
      - AdmitLocalUnsolicitedDataPolicy (the old default): allow unsolicited
        data packets from local applications to be cached (e.g., with a
        lower priority), drop all other unsolicited data
      - AdmitNetworkUnsolicitedDataPolicy: allow unsolicited data packets
        from the network to be cached (e.g., with a lower priority), drop
        all other unsolicited data
      - AdmitAllUnsolicitedDataPolicy: cache all unsolicited data packets
    - Introduce mechanism to update properties (e.g., flags, persistency) of
      an existing Face (Issue 3731). Note that the corresponding nfdc command
      will be available in the next release.
    
    Updates
    
    - BREAKING CHANGE Strategy API update. FIB entry is no longer supplied to
      the Strategy::afterReceiveInterest method (i.e., FIB lookup is not
      performed by the forwarding pipelines). When necessary, a strategy can
      request FIB lookup using Strategy::lookupFib (Issues 3664, 3205, 3679,
      3205)
    - BREAKING CHANGE ForwarderStatus dataset can now be requested only with
      /localhost/nfd/status/general interest (Issue 3379)
    - Optimizations of tables and forwarding, including reduced usage of
      shared_ptr (Issues 3205, 3164, 3687)
    - Display extended diagnostic information if NFD crashes (Issue 2541)
    - Visualize NACK counters in nfd-status output (Issue 3569)
    - Extend management to process the new LocalFieldsEnabled attribute when
      creating/updating Faces (Issue 3731)
    - Switch logging facility to use Boost.Log (Issue 3562)
    - Refactor implementation of nfdc tool, which now supports a new
      command-line syntax and retrieval of status datasets (Issues 3749,
      3780).  This is the first step in implementing an interactive mode for
      nfdc (Issue 2542).
    - nfd-status tool has been merged into nfdc with a wrapper script
      provided for backwards compatibility (Issue 3658)
    - Refactor implementation of RIB Manager to make it uniform with other
      managers (Issue 2857)
    - Miscellaneous code refactoring (Issues 3738, 3164, 3687, 3205, 3608,
      3619, 2181)
    - Update WebSocket++ to version 0.7.0 (Issue 3588)
    - Updates to reflect the latest changes in ndn-cxx library (Issues 3760,
      3739, 2950, 2063)
    
    Bugfixes
    
    - Ensure NccStrategy explores all potential upstreams (Issue 3411)
    - Add missing processing of NACK in
      pit::Entry::hasUnexpiredOutRecords (Issue 3545)
    - Fix issue with WebSocket-based Face creation when IPv4-mapped IPv6
      loopback addresses are considered non-local (Issue 3682)
    - Make sure that the outgoing Interest pipeline uses the newest
      in-record when sending out an Interest (Issue 3642)
    - Properly delete PIT in-record and out-record when face is
      destroyed (Issue 3685)
    - Fix Pit::find leak of NameTreeEntry (Issue 3619)
    - Fix Pit::erase crash when Interest name contains implicit
      digest (Issue 3608)
    - Fix use-after-free in Rib::erase and
      RibManagerFixture::clearRib (Issue 3787)
    
    Deprecations
    
    - ClientControl forwarding strategy. The NextHopFaceId is now honored
      universally (Issue 3783)
    - StrategyInfoHost::getOrCreateStrategyInfo, which is renamed to
      StrategyInfoHost::insertStrategyInfo (Issue 3205)
    
    Deletions
    
    - Previously deprecated BroadcastStrategy (Issue 3206)
    - Unused command-line tool nrd (Issue 3570)
    - SegmentPublisher and RibStatusPublisher, both replaced by
      ndn::Dispatcher (Issue 2857)
    - CommandValidator, which has been replaced by
      CommandAuthenticator (Issue 2063)
    
  • NFD-0.4.1
    Changes since version 0.4.0
    
    Release date: March 25, 2016
    
    Updates and bug fixes:
    
    - Fix retrieval of data using full names, i.e., names with the implicit
      digest (Issue 3363)
    - Fix PIT memory leak from duplicate Interests detected using DNL
      table (Issue 3484)
    - Fix crashes caused by some patterns of prefix registrations
      (Issues 3404, 3362)
    - Allow setting CS capacity limit to zero (Issue 3503)
    - Improve Face (Issue 3376), UdpFactory (Issue 3375), UdpChannel
      (Issue 3371), TcpChannel (Issue 3370), WebSocketChannel (Issue
      3373), WebSocketTransport (Issue 3374) test suites
    - Remove assumption from the management test suites that data packets
      are always published in NFD's content store (Issue 2182)
    
    Deleted:
    
    - ndn-tlv-peek and ndn-tlv-poke command-line tools: use ndnpeek and
      ndnpoke programs from NDN Essential Tools repository (Issue 2819)
    
  • NFD-0.4.0
    Changes since version 0.3.4
    
      NOTE
    
      Version 0.4.0 introduces several breaking changes to API and wire
      format of management protocols
    
    New features:
    
    - (BREAKING CHANGE) Refactored implementation of face system (Issues
      3088, 3104, 3165, 3168, 3225, 3226, 3253, 3259, 3169, 3160, 3278,
      3166, 3177, 3177, 3172)
    
      The abstraction to send/receive NDN packets has been split into
      Transport, LinkService, and Face:
    
      - _Transport_ provides delivery of the data blocks over specific
        underlying channels (raw ethernet packets, unicast/multicast UDP
        datagrams, TCP and WebSocket streams)
    
        Implemented: UnixStreamTransport, EthernetTransport,
        UnicastUdpTransport, MulticastUdpTransport, WebSocketTransport,
        TcpTransport, InternalForwarderTransport
    
      - _LinkService_ provides an "adaptation" layer to translate
        between NDN packets and data blocks communicated
        through Transport. For example, LinkService can provide packet
        fragmentation and reassembly services.
    
        Implemented: GenericLinkService
    
      - _Face_ provides combines Transport and LinkServices, providing
        high-level interface to work with Interest/Data/Nack packets
        inside NFD.
    
      NOTE
    
      This feature replaces support for signaling between local
      applications and NFD from LocalControlHeader with
      NDNLPv2 protocol. If your application uses LocalControlHeader
      features, it must be updated to use the new protocol (e.g., update
      to use ndn-cxx >= 0.4.0)
    
    - Support for NDNLPv2
      (http://redmine.named-data.net/projects/nfd/wiki/NDNLPv2, Issues
      2520, 2763, 2841)
      - Network NACK (Issue 2883)
      - Fragmentation and reassembly (Issue 3171)
    - Networking NACK in pipelines and best-route strategy (Issue 3156)
    - Refactored implementation of NFD management (Issues 2200, 2107)
    - Interest forwarding processes Link included in interest
      packets (Issue 3034)
    
      NOTE
    
      This feature requires proper defintion of new
      tables.network_region section in the NFD config file (Issue 3159)
    
    - Full support for UDP permanent faces (Issues 2993, 2989, 3018)
    - Automatic start of NDN auto-configuration client (ndn-autoconfig)
      when starting NFD using nfd-start, when enabled in
      autoconfig.conf (Issue 2716)
    
    Updates and bug fixes:
    
    - (BREAKING CHANGE) Redesign of automatic prefix propagation, formerly
      known as remote prefix registration (Issues 3211, 2413)
    
      This includes a backward-incompatible change to NFD's configuration
      file:
    
      - rib.remote_register section has been removed and, if present,
        will cause failure for NFD to start
      - rib.auto_prefix_propagate section has been added to control
        automatic prefix propagation feature
    - Adapt pcap filter in EthernetTransport to accept only untagged
      frames (Issue 3348)
    - Increase the initial suppression interval in BestRouteStrategy2 to
      250ms (Issue 3230)
    - Fix potential crash in Measurements::get(Fib::s_emptyEntry) (Issue
      3275)
    - Fix memory leak in PriorityFifoPolicy (Issue 3236)
    - Display extended information for fatal NFD errors (Issue 2541)
    - Compilation fixes for clang-700.0.72 (Apple LLVM 7.0.0) (Issue 3209)
    - Properly handle exception from NetworkMonitor when the platform
      doesn't support it (Issue 3195)
    - Multiple test suite improvements (Issues 3322, 3306, 3305, 3307,
      3346, 3327)
    
    Deprecated:
    
    - BroadcastStrategy (/localhost/nfd/strategy/broadcast) renamed as
      MulticastStrategy (/localhost/nfd/strategy/multicast) (Issue 3011)
    - ForwarderStatus dataset retrievable using /localhost/nfd/status
      name, use /localhost/nfd/status/general instead.
    
    Deleted:
    
    - NotificationStream, replaced by the version in ndn-cxx
      library (Issue 2144)
    
    Known issues:
    
    - NFD currently has a known limitation in supporting the retrieval of
      data using full names, i.e., names with the implicit digest (Issue 3363).
      This limitation will be addressed in the next release.
    
  • NFD-0.4.0-beta1
    Changes since version 0.3.4
    
      **NOTE**
    
      Version 0.4.0 introduces several breaking changes to API and wire
      format of management protocols
    
    New features:
    
    - (BREAKING CHANGE) Refactored implementation of face system (Issues 3088,
      3104, 3165, 3168, 3225, 3226)
    
      The abstraction to send/receive NDN packets has been split into
      Transport, LinkService, and Face:
    
      - _Transport_ provides delivery of the data blocks over specific
        underlying channels (raw ethernet packets, unicast/multicast UDP
        datagrams, TCP and WebSocket streams)
    
        Implemented: UnixStreamTransport,
        UnicastUdpTransport, MulticastUdpTransport.
    
      - _LinkService_ provides an "adaptation" layer to translate
        between NDN packets and data blocks communicated
        through Transport. For example, LinkService can provide packet
        fragmentation and reassembly services.
    
        Implemented: GenericLinkService
    
      - _Face_ provides combines Transport and LinkServices, providing
        high-level interface to work with Interest/Data/Nack packets
        inside NFD.
    
      NOTE
    
      This feature replaces support for signaling between local
      applications and NFD from LocalControlHeader with
      NDNLPv2 protocol. If your application uses LocalControlHeader
      features, it must be updated to use the new protocol (e.g., update
      to use ndn-cxx >= 0.4.0)
    
    - Support for NDNLPv2
      (http://redmine.named-data.net/projects/nfd/wiki/NDNLPv2, Issues 2520,
      2763, 2841)
      - Network NACK (Issue 2883)
    - Networking NACK in pipelines and best-route strategy (Issue 3156)
    - Refactored implementation of NFD management (Issues 2200, 2107)
    - Interest forwarding processes Link included in interest
      packets (Issue 3034)
    
      NOTE
    
      This feature requires proper defintion of new
      tables.network_region section in the NFD config file (Issue 3159)
    
    - Full support for UDP permanent faces (Issues 2993, 2989, 3018)
    
    Updates and bug fixes:
    
    - Display extended information for fatal NFD errors (Issue 2541)
    - Compilation fixes for clang-700.0.72 (Apple LLVM 7.0.0) (Issue 3209)
    - Properly handle exception from NetworkMonitor when the platform
      doesn't support it (Issue 3195)
    
    Deprecated:
    
    - BroadcastStrategy (/localhost/nfd/strategy/broadcast) renamed as
      MulticastStrategy (/localhost/nfd/strategy/multicast) (Issue 3011)
    
    Planned features for future releases:
    
    - Improvements and extension of NDNLPv2 support
      - New transports
      - New link service implementation, including support for
        fragmentation and assembly
    - Improved support for automatic prefix propagation (Issues 3211, 2413)
    
  • NFD-0.4.0-beta2
    Changes since version 0.3.4
    
      **NOTE**
    
      Version 0.4.0 introduces several breaking changes to API and wire
      format of management protocols
    
    New features:
    
    - (BREAKING CHANGE) Refactored implementation of face system (Issues 3088,
      3104, 3165, 3168, 3225, 3226, 3253)
    
      The abstraction to send/receive NDN packets has been split into
      Transport, LinkService, and Face:
    
      - _Transport_ provides delivery of the data blocks over specific
        underlying channels (raw ethernet packets, unicast/multicast UDP
        datagrams, TCP and WebSocket streams)
    
        Implemented: UnixStreamTransport, UnicastUdpTransport,
        MulticastUdpTransport, InternalForwarderTransport.
    
      - _LinkService_ provides an "adaptation" layer to translate
        between NDN packets and data blocks communicated
        through Transport. For example, LinkService can provide packet
        fragmentation and reassembly services.
    
        Implemented: GenericLinkService
    
      - _Face_ provides combines Transport and LinkServices, providing
        high-level interface to work with Interest/Data/Nack packets
        inside NFD.
    
      NOTE
    
      This feature replaces support for signaling between local
      applications and NFD from LocalControlHeader with
      NDNLPv2 protocol. If your application uses LocalControlHeader
      features, it must be updated to use the new protocol (e.g., update
      to use ndn-cxx >= 0.4.0)
    
    - Support for NDNLPv2
      (http://redmine.named-data.net/projects/nfd/wiki/NDNLPv2, Issues 2520,
      2763, 2841)
      - Network NACK (Issue 2883)
    - Networking NACK in pipelines and best-route strategy (Issue 3156)
    - Refactored implementation of NFD management (Issues 2200, 2107)
    - Interest forwarding processes Link included in interest
      packets (Issue 3034)
    
      NOTE
    
      This feature requires proper defintion of new
      tables.network_region section in the NFD config file (Issue 3159)
    
    - Full support for UDP permanent faces (Issues 2993, 2989, 3018)
    
    Updates and bug fixes:
    
    - (BREAKING CHANGE) Redesign of automatic prefix propagation, formerly
      known as remote prefix registration (Issues 3211, 2413)
    
      This includes a backward-incompatible change to NFD's configuration
      file:
      - rib.remote_register section has been removed and, if present,
        will cause failure for NFD to start
      - rib.auto_prefix_propagate section has been added to control
        automatic prefix propagation feature
    
    - Display extended information for fatal NFD errors (Issue 2541)
    - Compilation fixes for clang-700.0.72 (Apple LLVM 7.0.0) (Issue 3209)
    - Properly handle exception from NetworkMonitor when the platform
      doesn't support it (Issue 3195)
    
    Deprecated:
    
    - BroadcastStrategy (/localhost/nfd/strategy/broadcast) renamed as
      MulticastStrategy (/localhost/nfd/strategy/multicast) (Issue 3011)
    
    Deleted:
    
    - NotificationStream, replaced by the version in ndn-cxx
      library (Issue 2144)
    
    Planned features for future releases:
    
    - Improvements and extension of NDNLPv2 support
      - New transports
      - New link service implementation, including support for
        fragmentation and assembly
    - Improved support for automatic prefix propagation (Issues 3211, 2413)
    
  • NFD-0.4.0-rc1
    Changes since version 0.3.4
    
      **NOTE**
    
      Version 0.4.0 introduces several breaking changes to API and wire
      format of management protocols
    
    New features:
    
    - (BREAKING CHANGE) Refactored implementation of face system (Issues 3088,
      3104, 3165, 3168, 3225, 3226)
    
      The abstraction to send/receive NDN packets has been split into
      Transport, LinkService, and Face:
    
      - _Transport_ provides delivery of the data blocks over specific
        underlying channels (raw ethernet packets, unicast/multicast UDP
        datagrams, TCP and WebSocket streams)
    
        Implemented: UnixStreamTransport,
        UnicastUdpTransport, MulticastUdpTransport.
    
      - _LinkService_ provides an "adaptation" layer to translate
        between NDN packets and data blocks communicated
        through Transport. For example, LinkService can provide packet
        fragmentation and reassembly services.
    
        Implemented: GenericLinkService
    
      - _Face_ provides combines Transport and LinkServices, providing
        high-level interface to work with Interest/Data/Nack packets
        inside NFD.
    
      NOTE
    
      This feature replaces support for signaling between local
      applications and NFD from LocalControlHeader with
      NDNLPv2 protocol. If your application uses LocalControlHeader
      features, it must be updated to use the new protocol (e.g., update
      to use ndn-cxx >= 0.4.0)
    
    - Support for NDNLPv2
      (http://redmine.named-data.net/projects/nfd/wiki/NDNLPv2, Issues 2520,
      2763, 2841)
      - Network NACK (Issue 2883)
    - Networking NACK in pipelines and best-route strategy (Issue 3156)
    - Refactored implementation of NFD management (Issues 2200, 2107)
    - Interest forwarding processes Link included in interest
      packets (Issue 3034)
    
      NOTE
    
      This feature requires proper defintion of new
      tables.network_region section in the NFD config file (Issue 3159)
    
    - Full support for UDP permanent faces (Issues 2993, 2989, 3018)
    
    Updates and bug fixes:
    
    - Display extended information for fatal NFD errors (Issue 2541)
    - Compilation fixes for clang-700.0.72 (Apple LLVM 7.0.0) (Issue 3209)
    - Properly handle exception from NetworkMonitor when the platform
      doesn't support it (Issue 3195)
    
    Deprecated:
    
    - BroadcastStrategy (/localhost/nfd/strategy/broadcast) renamed as
      MulticastStrategy (/localhost/nfd/strategy/multicast) (Issue 3011)
    
    Planned features for future releases:
    
    - Improvements and extension of NDNLPv2 support
      - New transports
      - New link service implementation, including support for
        fragmentation and assembly
    - Improved support for automatic prefix propagation (Issues 3211, 2413)
    
  • NFD-0.3.4
    Changes since version 0.3.3
    
    Release date: August 31, 2015
    
    New features:
    
    - Boolean Face property IsOnDemand has been replaced with multistate
      FacePersistency property (Issues 2989 and 3018): persistent (Face
      exists as long as there are no system or socket errors), on-demand
      (Face is removed after inactivity period), and permanent (Face
      exists unless explicitly destroyed by the management).
    
      Currently, only UDP faces are allowed to be permanent. However,
      management interface to create UDP permanent faces or switch UDP to
      permanent state will be available in the next release (Issue 2991).
    
    - Least Recently Used policy for Content Store (Issue 2219)
    
      Currently, changing the policy requires a minor change in NFD source
      code. Configuration interface is coming in the next release (Issue
      3148)
    
    Updates and bug fixes:
    
    - Update of NDN Essential Tools to version 0.2 with code improvements
      and the following new tools:
      - PIB service to manage the public information of keys and publish
        certificates (Issue 3018)
      - A Wireshark dissector for NDN packets (Issue 3092)
    - RibManager constructor now accepts KeyChain as a parameter,
      preparing it for simplifying implementation with the new
      ndn::Dispatcher class (Issue 2390)
    - Fix HTML rendering of nfd-status-http-server output in some browsers
      (Issue 3019)
    - Enable automatic re-creation of multicast faces when network
      connectivity changes (Issue 2460)
    - Enhance exception throwing with Boost Exception library (Issue 2541)
    
    Deprecated:
    
    - BroadcastStrategy (/localhost/nfd/strategy/broadcast) renamed as
      MulticastStrategy (/localhost/nfd/strategy/multicast) (Issue 3011)
    
    Upcoming features (partially finished in development branches):
    
    - NDNLPv2 (http://redmine.named-data.net/projects/nfd/wiki/NDNLPv2,
      Issues 2520, 2879, 2763, 2883, 2841, 2866)
    - Refactored implementation of NFD management (Issues 2200, 2107)