NFD Release Notes

NFD version 0.5.0

Release date: October 4, 2016


Version 0.5.0 introduces several breaking changes to the internal API (forwarding pipelines, strategy interface, tables) and wire format of management protocol


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.



  • 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)


  • ClientControl forwarding strategy. The NextHopFaceId is now honored universally (Issue #3783)
  • StrategyInfoHost::getOrCreateStrategyInfo, which is renamed to StrategyInfoHost::insertStrategyInfo (Issue #3205)


  • 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)