Skip to content

NFD-0.5.0

@cawka cawka tagged this 05 Oct 01:36
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)
Assets 2