Alexander Afanasyev | a141700 | 2014-01-21 20:29:55 -0800 | [diff] [blame] | 1 | NFD - Named Data Networking Forwarding Daemon |
Beichuan Zhang | 55b8ed4 | 2014-04-26 22:25:44 -0700 | [diff] [blame] | 2 | ============================================= |
Alexander Afanasyev | a141700 | 2014-01-21 20:29:55 -0800 | [diff] [blame] | 3 | |
Alexander Afanasyev | 0c3e93d | 2014-05-12 15:49:56 -0700 | [diff] [blame^] | 4 | NFD overview, release notes for the released versions, getting started tutorial, and other |
| 5 | additional documentation are available online on |
| 6 | [NFD's homepage](http://named-data.net/doc/NFD/). |
| 7 | |
| 8 | ## Overview |
| 9 | |
Beichuan Zhang | 55b8ed4 | 2014-04-26 22:25:44 -0700 | [diff] [blame] | 10 | NFD is a network forwarder that implements and evolves together with the Named Data |
| 11 | Networking (NDN) [protocol](http://named-data.net/doc/ndn-tlv/). After the initial |
| 12 | release, NFD will become a core component of the |
| 13 | [NDN Platform](http://named-data.net/codebase/platform/) and will follow the same release |
| 14 | cycle. |
Alexander Afanasyev | a141700 | 2014-01-21 20:29:55 -0800 | [diff] [blame] | 15 | |
Beichuan Zhang | 55b8ed4 | 2014-04-26 22:25:44 -0700 | [diff] [blame] | 16 | NFD is an open and free software package licensed under GPL 3.0 license and is the |
| 17 | centerpiece of our committement to making NDN's core technology open and free to all |
| 18 | Internet users and developers. For more information about the licensing details and |
| 19 | limitation, refer to |
| 20 | [`COPYING.md`](https://github.com/named-data/NFD/blob/master/COPYING.md). |
Steve DiBenedetto | 1a3c673 | 2014-03-13 06:44:05 -0600 | [diff] [blame] | 21 | |
Beichuan Zhang | 55b8ed4 | 2014-04-26 22:25:44 -0700 | [diff] [blame] | 22 | NFD is developed by a community effort. Although the first release was mostly done by the |
| 23 | members of [NSF-sponsored NDN project team](http://named-data.net/project/participants/), |
| 24 | it already contains significant contributions from people outside the project team (for |
| 25 | more details, refer to [`AUTHORS.md`](https://github.com/named-data/NFD/blob/master/AUTHORS.md)). |
| 26 | We strongly encourage participation from all interested parties, since broader community |
| 27 | support is key for NDN to succeed as a new Internet architecture. Bug reports and |
| 28 | feedback are highly appreciated and can be made through |
Alexander Afanasyev | 284257b | 2014-04-11 14:16:51 -0700 | [diff] [blame] | 29 | [Redmine site](http://redmine.named-data.net/projects/nfd) and the |
| 30 | [ndn-interest mailing list](http://www.lists.cs.ucla.edu/mailman/listinfo/ndn-interest). |
Steve DiBenedetto | 1a3c673 | 2014-03-13 06:44:05 -0600 | [diff] [blame] | 31 | |
Beichuan Zhang | 55b8ed4 | 2014-04-26 22:25:44 -0700 | [diff] [blame] | 32 | The main design goal of NFD is to support diverse experimentation of NDN technology. The |
| 33 | design emphasizes *modularity* and *extensibility* to allow easy experiments with new |
| 34 | protocol features, algorithms, new applications. We have not fully optimized the code for |
| 35 | performance. The intention is that performance optimizations are one type of experiments |
| 36 | that developers can conduct by trying out different data structures and different |
| 37 | algorithms; over time, better implementations may emerge within the same design framework. |
| 38 | |
| 39 | NFD will keep evolving in three aspects: improvement of the modularity framework, keeping |
| 40 | up with the NDN protocol spec, and addition of other new features. We hope to keep the |
| 41 | modular framework stable and lean, allowing researchers to implement and experiment |
| 42 | with various features, some of which may eventually work into the protocol spec. |
| 43 | |
| 44 | The design and development of NFD benefited from our earlier experience with |
| 45 | [CCNx](http://www.ccnx.org) software package. However, NFD is not in any part derived from |
| 46 | CCNx codebase and does not maintain compatibility with CCNx. |
Alexander Afanasyev | c1d6a6b | 2014-04-08 18:04:57 -0700 | [diff] [blame] | 47 | |
Alexander Afanasyev | 0c3e93d | 2014-05-12 15:49:56 -0700 | [diff] [blame^] | 48 | Binary release |
| 49 | -------------- |
Steve DiBenedetto | 1a3c673 | 2014-03-13 06:44:05 -0600 | [diff] [blame] | 50 | |
Alexander Afanasyev | 0c3e93d | 2014-05-12 15:49:56 -0700 | [diff] [blame^] | 51 | As of release 0.1.0, we are providing NFD binaries for the supported platforms, which are |
| 52 | the preferred installation method of NFD: |
Steve DiBenedetto | 1a3c673 | 2014-03-13 06:44:05 -0600 | [diff] [blame] | 53 | |
Alexander Afanasyev | 0c3e93d | 2014-05-12 15:49:56 -0700 | [diff] [blame^] | 54 | - [Ubuntu 12.04, 13.10, and 14.04](http://named-data.net/doc/NFD/current/FAQ.html#how-to-start-using-ndn-ppa-repository-on-ubuntu-linux) |
| 55 | |
| 56 | - [OSX 10.8, 10.9 with MacPorts](http://named-data.net/doc/NFD/current/FAQ.html#how-to-start-using-ndn-macports-repository-on-osx) |
| 57 | |
| 58 | Next releases would include support for other platforms. Please send us feedback on the |
| 59 | platforms you're using, so we can prioritize our goals. We would also appreciate if |
| 60 | someone can provide help with packaging the current NFD release for other platforms. |
| 61 | |
| 62 | Besides simplicity of installation, the binary release includes automatic initial |
| 63 | configuration and platform-specific tools to automatically start NFD and related daemons. |
| 64 | In particular, on OSX NFD is controlled using |
| 65 | [launchd](https://github.com/named-data/NFD/tree/master/contrib/osx-launchd) and on Ubuntu |
| 66 | using [upstart](https://github.com/named-data/NFD/tree/master/contrib/upstart) mechanisms. |
| 67 | In both cases, `nfd-start` and `nfd-stop` scripts are convenience wrappers for launchd and |
| 68 | upstart. |
| 69 | |
| 70 | Source releases |
| 71 | --------------- |
| 72 | |
| 73 | The source code and source-code installation instructions are always available on NFD's homepage: |
| 74 | |
| 75 | - [Getting Started with NFD](http://named-data.net/doc/NFD/current/getting-started.html) |
| 76 | - [Github NFD repository](https://github.com/named-data/NFD) |
| 77 | |
| 78 | Additional information |
| 79 | ---------------------- |
| 80 | |
| 81 | - [NFD Wiki](http://redmine.named-data.net/projects/nfd/wiki/) |
| 82 | - Feature requests and bug reports are welcome on our |
| 83 | [NDN Redmine](http://redmine.named-data.net/projects/nfd) |
| 84 | |
| 85 | Besides officially supported platforms, NFD is known to work on: Fedora 20, CentOS 6, |
| 86 | Raspberry Pi, OpenWRT, FreeBSD 10.0, and several other platforms. We are soliciting help |
| 87 | with documenting common problems / pitfalls in installing/using NFD on different platforms |
| 88 | on [NFD WiKi](http://redmine.named-data.net/projects/nfd/wiki/Wiki#Installation-experiences-for-selected-platforms). |