Project

General

Profile

Wiki » History » Revision 115

Revision 114 (Davide Pesavento, 07/10/2018 01:03 PM) → Revision 115/125 (Junxiao Shi, 08/10/2018 05:28 AM)

# NDN Forwarding Daemon (NFD) 

 **NDN Forwarding Daemon (NFD)** is a new NDN forwarder under active development. 

 NFD implements the following specifications: 

 * [NDN packet format](http://named-data.net/doc/ndn-tlv/) 
 * [[Management|NFD Management protocol]] 
 * [[ConfigFileFormat|NFD configuration file format]] 
 * [[NDNLPv2]]: a link protocol for NDN 
 * [[ScopeControl|Namespace-based Scope Control]]: /localhost and /localhop 

 Other specifications: 

 * [[HubDiscovery|NDN hub discovery procedure]] to discover hub nodes on the NDN testbed. 

 ## User Knowledge Base 

 * [NFD overview](http://named-data.net/doc/NFD/current/) 
 * [NFD FAQ](http://named-data.net/doc/NFD/current/FAQ.html) 
 * [ndn-cxx library](http://named-data.net/doc/ndn-cxx/current/), [application examples using ndn-cxx library](http://named-data.net/doc/ndn-cxx/current/examples.html) 
 * [[NFD autoconfiguration]] 
 * [why NDN packet is limited to 8800 octets](http://www.lists.cs.ucla.edu/pipermail/ndn-interest/2017-March/001623.html) 

 ### Installation experiences for selected platforms 

 * Officially Supported Operating Systems 
     * [[OS X with Homebrew|macOS with Homebrew]] 
     * [macOS with MacPorts](http://named-data.net/doc/NFD/current/INSTALL.html#install-nfd-using-the-ndn-macports-repository-on-os-x) 
     * [Ubuntu Linux with PPA](http://named-data.net/doc/NFD/current/INSTALL.html#install-nfd-using-the-ndn-ppa-repository-on-ubuntu-linux) 
     * [Installation from source on macOS and Ubuntu Linux](http://named-data.net/doc/NFD/current/INSTALL.html#building-from-source) 
 * Other Operating Systems 
     * [[Install-centos|CentOS]] 
     * [[Install-Fedora|Fedora]] 
     * [[Compiling on FreeBSD 10.0|FreeBSD 10]] 
 * Virtualized/Containerized Environments 
     * [Vagrant](https://github.com/named-data-education/ndn-with-vagrant) 
     * [Docker](https://github.com/named-data-education/ndn-with-docker) 
     * [Windows Subsystem for Linux](https://yoursunny.com/t/2018/NFD-on-Windows-10-WSL/) 
 * Embedded Devices 
     * [[ndn-embedded:Cross-compiling NDN projects for home routers|OpenWrt and DD-WRT home routers]] 
     * [[ndn-embedded:Cross-compiling NDN projects for Raspberry Pi|Raspberry Pi]] 
     * [NDN on Galileo (Intel's x86 Arduino-certified development board)](http://schwannden.gitbooks.io/ndn-on-galileo/) 

 ## NFD Developer Resources 

 [//]: # (### UML diagrams) 
 [//]: # (* [NFD-UML](http://named-data.net/doc/nfd-uml/)    (outdated)) 

 [[Contributing Code]] 

 ### Platform and libraries 
 * [C++14](http://en.cppreference.com/w/cpp), [[CodeStyle|code style guidelines]] 
 * [[Boost|Boost >= 1.58.0]] 
 * [Boost Unit Test Framework](http://www.boost.org/doc/libs/1_58_0/libs/test/doc/html/index.html), more information on [[UnitTesting|unit testing]] 
 * [ndn-cxx](https://named-data.net/doc/ndn-cxx/), Extended version of NDN C++ client library  
 * [waf build system](https://waf.io/) 

 ### Development process 
 * [Learn Git Branching game](http://pcottle.github.io/learnGitBranching/index.html) 
 * [How to Write a Git Commit Message](http://chris.beams.io/posts/git-commit/) 
 * [gerrit code review](http://gerrit.named-data.net/), more information: 
   * [GerritJenkinsGit on OpenStack](https://wiki.openstack.org/wiki/GerritJenkinsGit) 
   * [Gerrit on MediaWiki](http://www.mediawiki.org/wiki/Gerrit) 
   * [Git and Gerrit in Action](https://www.jboss.org/dms/judcon/presentations/Boston2011/JUDConBoston2011_day1track2session6.pdf) 
   * [Using Gerrit Code Review in an Open Source Project](http://redmine.named-data.net/attachments/download/6/gerrit-slides-130203050220-phpapp01.pdf) 
   * [Gerrit Code Review - A Quick Introduction](https://gerrit-documentation.storage.googleapis.com/Documentation/2.13.1/intro-quick.html) 
   * [git-review](http://www.mediawiki.org/wiki/Gerrit/git-review) 
 * [[CodeCoverage|Code Coverage]] 
 * [[IntegrationTests|Integration Tests]] 

 ### HOWTOs for n00bs 
 * [HOWTO assign a Redmine issue to yourself](http://www.lists.cs.ucla.edu/pipermail/nfd-dev/2015-February/000801.html) 
 * [HOWTO clone the NFD repository](http://www.lists.cs.ucla.edu/pipermail/nfd-dev/2015-April/001023.html) 
 * [HOWTO checkout two pending commits to local machine](http://www.lists.cs.ucla.edu/pipermail/nfd-dev/2015-June/001147.html) 
 * [HOWTO see details of Jenkins build error](http://www.lists.cs.ucla.edu/pipermail/nfd-dev/2016-February/001550.html) 
 * [HOWTO reply to a review comment on Gerrit](http://www.lists.cs.ucla.edu/pipermail/nfd-dev/2016-March/001607.html) 
 * [HOWTO write a bug report effectively](http://www.lists.cs.ucla.edu/pipermail/nfd-dev/2016-May/001748.html) 
 * [HOWTO solve "undefined symbol" error](http://www.lists.cs.ucla.edu/pipermail/nfd-dev/2016-August/001973.html) 
 * [HOWTO update NFD devguide](http://www.lists.cs.ucla.edu/pipermail/nfd-dev/2017-March/002298.html) 
 * [How I Setup my NFD Development Machine](https://yoursunny.com/t/2017/NFD-devbox/) 
 * [What is “Junxiao hours”?](https://www.quora.com/If-you-are-a-coder-how-do-you-handle-micro-breaks-in-your-workflow-compiling-starting-running-scripts-once-in-few-minutes/answer/Junxiao-Shi) 

 ### Advanced 

 * [Environment to analyze coredumps of NFD and other NDN apps](https://github.com/cawka/nfd-debug-environment) 

 ### Historical information 

 * [[ccndKnowledge|Knowledge about ccnd]] 
 * [CCNx protocol](http://www.ccnx.org/releases/ccnx-0.7.2/doc/technical/CCNxProtocol.html) 
 * [NDNFD](https://github.com/NDN-Routing/NDNFD) 

 ### Misc 

 * [[NDN Team License Boilerplate (NFD)]] 
 * [[ndn-cxx:NDN Team License Boilerplate (ndn-cxx)]] 
 * [[nlsr:NDN Team License Boilerplate (NLSR)]] 
 * [ndnSIM](http://ndnsim.net/)