rib: Merge source code of NRD

Change-Id: I44dce9db7ad079661d509349bef07b1acb389b58
Refs: #1486
tree: 1ba0014dfb8c3327239b594f6f0284665f356c94
  1. .waf-tools/
  2. core/
  3. daemon/
  4. docs/
  5. rib/
  6. tests/
  7. tools/
  8. .gitignore
  9. .travis.yml
  10. AUTHORS.md
  11. common.hpp
  12. COPYING.md
  13. INSTALL.md
  14. nfd.conf.sample.in
  15. README-dev.md
  16. README.md
  17. unit-tests.conf.sample
  18. version.hpp
  19. waf
  20. wscript
README.md

NFD - Named Data Networking Forwarding Daemon

Default Paths

This README uses SYSCONFDIR when referring to the default locations of various NFD configuration files. By default, SYSCONFDIR is set to /usr/local/etc. If you override PREFIX, then SYSCONFDIR will default to PREFIX/etc.

You may override SYSCONFDIR and PREFIX by specifying their corresponding options during installation:

./waf configure --prefix <path/for/prefix> --sysconfdir <some/other/path>

Refer to INSTALL.md for more detailed instructions on how to compile and install NFD.

Running and Configuring NFD

NFD's runtime settings may be modified via configuration file. After installation, a working sample configuration is provided at SYSCONFDIR/ndn/nfd.conf.sample. At startup, NFD will attempt to read the default configuration file location: SYSCONFDIR/ndn/nfd.conf.

You may also specify an alternative configuration file location by running NFD with:

nfd --config </path/to/nfd.conf>

Once again, note that you may simply copy or rename the provided sample configuration and have an almost fully configured NFD. However, this NFD will be unable to add FIB entries or perform other typical operation tasks until you authorize an NDN certificate with the appropriate privileges.

Installing an NDN Certificate for Command Authentication

Many NFD management protocols require signed commands to be processed (e.g. FIB modification, Face creation/destructions, etc.). You will need an NDN certificate to use any application that issues signed commands.

If you do not already have NDN certificate, you can generate one with the following commands:

Generate and install a self-signed identity certificate:

ndnsec-keygen /`whoami` | ndnsec-install-cert -

Note that the argument to ndnsec-key will be the identity name of the new key (in this case, /your-username). Identity names are hierarchical NDN names and may have multiple components (e.g. /ndn/ucla/edu/alice). You may create additional keys and identities as you see fit.

Dump the NDN certificate to a file:

The following commands assume that you have not modified PREFIX or SYSCONFDIR If you have, please substitute /usr/local/etc for the appropriate value (the overriden SYSCONFDIR or PREFIX/etc if you changed PREFIX).

sudo mkdir -p /usr/local/etc/ndn/keys
ndnsec-cert-dump -i /`whoami` > default.ndncert
sudo mv default.ndncert /usr/local/etc/ndn/keys/default.ndncert

Running NFD with Ethernet Face Support

The ether configuration file section contains settings for Ethernet faces and channels. These settings will NOT work without root or setting the appropriate permissions:

sudo setcap cap_net_raw,cap_net_admin=eip /full/path/nfd

You may need to install a package to use setcap:

Ubuntu:

sudo apt-get install libcap2-bin

Mac OS X:

curl https://bugs.wireshark.org/bugzilla/attachment.cgi?id=3373 -o ChmodBPF.tar.gz
tar zxvf ChmodBPF.tar.gz
open ChmodBPF/Install\ ChmodBPF.app

or manually:

sudo chgrp admin /dev/bpf*
sudo chmod g+rw /dev/bpf*