NOTICE Instructions in this article are outdated. Please see latest information in NFD nightly usage.
NDN Forwarding Daemon (NFD) is the reference implementation of Named Data Networking (NDN) forwarding plane. The software is continuously developed, but binary releases happen rather infrequently. Recently, I made a workflow to build NFD and related software automatically.
Download page: nfd-nightly.ndn.today
Instructions
Which platform should I choose?
- The platform identifier has two parts: Linux distribution and CPU architecture. Both parts must match your machine.
- Linux distribution:
- bionic is Ubuntu 18.04.
- buster is Debian 10. This includes Raspberry Pi OS.
- CPU architecture:
- amd64 works on Intel and AMD 64-bit machines.
- armv7 works on ARMv7 machines, such as Beaglebone Black (paid link) and Raspberry Pi (paid link) with 32-bit OS.
- armv6 works on Raspberry Pi Zero W (paid link) only.
Which packages should I install?
- libndn-cxx_*.deb: ndn-cxx library.
- libndn-cxx-dev_*.deb: development headers for ndn-cxx.
- This is needed if you want to compile software that uses ndn-cxx.
- Depends on:
libndn-cxx
- ndnsec_*.deb:
ndnsec
command for managing ndn-cxx KeyChain.- Depends on:
libndn-cxx
- Depends on:
- nfd_*.deb: NDN Forwarding Daemon (NFD) and
nfdc
management utility.- Depends on:
libndn-cxx
,ndnsec
- Depends on:
- ndnpeek_*.deb:
ndnpeek
andndnpoke
commands for sending a single packet.- Depends on:
nfd
- Depends on:
- ndnping_*.deb:
ndnping
andndnpingserver
commands for testing reachability.- Depends on:
nfd
- Depends on:
- ndnchunks_*.deb:
ndncatchunks
andndnputchunks
commands for file transfers.- Depends on:
nfd
- Depends on:
- ndn-dissect_*.deb:
ndn-dissect
command for analyzing packet structure.- Depends on:
libndn-cxx
- Depends on:
- Other packages are generally not needed.
How to download and install?
- Choose a platform, and find the latest build that offers this platform.
- Download the zip files for ndn-cxx, NFD, and ndn-tools.
- Put all the deb files in the same directory.
- Execute
sudo dpkg -i
followed by the packages you want to install. It is normal for this command to report dependency errors. - Execute
sudo apt-get install -f
to install missing dependencies from APT sources.
(2021-01-18 update) Can I install with apt-get
?
- Yes! See this article.
Why am I seeing "page not found" after clicking a download link?
- You must be logged into GitHub before you can download.
Q&A
Why should I use deb packages instead of building from source code?
- It is faster to install deb packages than trying to build from source code.
- You can uninstall cleanly with
sudo apt-get remove
command. sudo ./waf install
can conflict with packages and break your system.
What are the differences between ppa:named-data/ppa and NFD-nightly?
- Update frequency:
- PPA: after each NFD release, which occurs a few times per year.
- NFD-nightly: weekly.
- Supported platforms:
- PPA: recent Ubuntu version.
- NFD-nightly: Debian and Ubuntu.
- Format:
- PPA: signed deb packages, automatic upgrade with
apt-get
command. - NFD-nightly: unsigned deb packages, manual install with
dpkg
command.
- PPA: signed deb packages, automatic upgrade with
- Quality:
- PPA: production.
- NFD-nightly: experimental.
How are these packages built?
- They are built on GitHub Actions using Docker containers.
- Non-amd64 architectures are compiled in Balena images.
Why do I have to be logged into GitHub to download?
- The zip files are stored as "artifacts" on GitHub.
- Anonymous downloads of artifacts are disallowed on GitHub.
The package isn't working?
- If you are seeing "Illegal Instruction" error, open an issue to report.
- Be sure to include: "build number" of the download, filename of the deb package, and information about your platform.
- Other errors are not caused by NFD-nightly. Report on nfd-dev mailing list instead.
How to request a new platform?
- I can add newer Debian or Ubuntu releases.
- NFD needs to be compatible with the default compiler and Boost versions installed from APT.
- I cannot create packages for Linux distributions that do not use APT.
- I'm a geocacher and I cannot stand the word
dnf
.
- I'm a geocacher and I cannot stand the word
- I can add more CPU architecture, if Balena has an image for that.
- Open an issue to discuss.
How to request a new package?
- I can add additional packages (e.g. NLSR).
- They need to have packaging scripts in named-data/ppa-packaging.
- If not, contribute to ppa-packaging first.
- Open an issue to discuss.