NFD Developer’s Guide

download Download PDF

Alexander Afanasyev, Junxiao Shi, Beichuan Zhang, Lixia Zhang, Ilya Moiseenko, Yingdi Yu, Wentao Shang, Yanbiao Li, Spyridon Mastorakis, Yi Huang, Jerald Paul Abraham, Steve DiBenedetto, Chengyu Fan, Christos Papadopoulos, Davide Pesavento, Giulio Grassi, Giovanni Pau, Hang Zhang, Tian Song, Haowei Yuan, Hila Ben Abraham, Patrick Crowley, Syed Obaid Amin, Vince Lehman, and Lan Wang

NDN, Technical Report NDN-0021.
Revision 4, May 12, 2015.

NDN Forwarding Daemon (NFD) is a network forwarder that implements the Named Data Networking (NDN) protocol. NFD is designed with modularity and extensibility in mind to enable easy experiments with new protocol features, algorithms, and applications for NDN. To help developers extend and improve NFD, this document explains NFD’s internals including the overall design, major modules, their implementations, and their interactions.

  • Revision 4 (May 12, 2015): New section about testing and updates for NFD version 0.3.2:

    • Added description of new ContentStore implementation, including a new async lookup model of CS

    • Added description of the remote prefix registration

    • Updated Common Services section

  • Revision 3 (February 3, 2015): Updates for NFD version 0.3.0:

    • In Strategy interface, beforeSatisfyPendingInterest renamed to beforeSatisfyInterest

    • Added description of dead nonce list and related changes to forwarding pipelines

    • Added description of a new strategy_choice config file subsection

    • Amended unix config text to reflect removal of “listen” option

    • Added discussion about encapsulationg of NDN packets inside WebSocket messages

    • Revised FaceManager description, requiring canonical FaceUri in create operations

    • Added description of the new access router strategy

  • Revision 2 (August 25, 2014): Updated steps in forwarding pipelines, nfd::BestRouteStrategy is replaced with nfd::BestRouteStrategy2 that allows client-based recovery from Interest losses

  • Revision 1 (July 1, 2014): Initial release