### Starting NFD from Source Installation Source: https://github.com/named-data/nfd/blob/master/docs/INSTALL.rst This command starts the NFD daemon using the `nfd-start` script, which is the recommended method for installations from source. On macOS, it might prompt for keychain access. ```sh nfd-start ``` -------------------------------- ### Building and Installing NFD from Source Source: https://github.com/named-data/nfd/blob/master/docs/INSTALL.rst These commands represent the standard build and installation process for NFD from source code using the `waf` build system. `configure` prepares the build, `waf` compiles the project, and `install` places the compiled binaries and files into the system. ```sh ./waf configure ./waf sudo ./waf install ``` -------------------------------- ### Installing add-apt-repository on Ubuntu/Debian Source: https://github.com/named-data/nfd/blob/master/docs/INSTALL.rst This command installs the `software-properties-common` package, which provides the `add-apt-repository` tool. This tool simplifies the process of adding new PPA (Personal Package Archive) repositories to Ubuntu and Debian systems, a prerequisite for installing NFD via PPA. ```sh sudo apt install software-properties-common ``` -------------------------------- ### Installing NFD via APT on Ubuntu/Debian Source: https://github.com/named-data/nfd/blob/master/docs/INSTALL.rst This command installs the NFD (Named Data Networking Forwarding Daemon) package using the `apt` package manager. It assumes the NDN PPA repository has already been added and the package list updated, allowing for a straightforward installation of NFD and its dependencies. ```sh sudo apt install nfd ``` -------------------------------- ### Building NFD Documentation Source: https://github.com/named-data/nfd/blob/master/docs/INSTALL.rst These commands build different sets of documentation for NFD. `./waf docs` builds all documentation (tutorials + API), `./waf sphinx` builds only tutorials, and `./waf doxygen` builds only API documentation. The output is placed in `build/docs`. ```sh # Full set of documentation (tutorials + API) in build/docs ./waf docs # Only tutorials in build/docs ./waf sphinx # Only API docs in build/docs/doxygen ./waf doxygen ``` -------------------------------- ### Copying NFD Sample Configuration File Source: https://github.com/named-data/nfd/blob/master/docs/INSTALL.rst This command copies the default sample NFD configuration file to the active configuration file location. This is necessary after installing NFD from source to ensure a working configuration, assuming default installation paths. It requires superuser privileges. ```sh sudo cp /usr/local/etc/ndn/nfd.conf.sample /usr/local/etc/ndn/nfd.conf ``` -------------------------------- ### Installing Optional NFD Dependencies on Debian/Ubuntu Source: https://github.com/named-data/nfd/blob/master/docs/INSTALL.rst This command installs optional development libraries, `libpcap-dev` and `libsystemd-dev`, on Debian and Ubuntu systems. These dependencies enable additional features within NFD, such as packet capture capabilities and integration with systemd. ```sh sudo apt install libpcap-dev libsystemd-dev ``` -------------------------------- ### Building NFD with Custom Dependency Paths Source: https://github.com/named-data/nfd/blob/master/docs/INSTALL.rst This sequence of commands builds and installs NFD from source, specifically addressing scenarios where `ndn-cxx` or other dependencies are installed in non-standard locations. It sets the `PKG_CONFIG_PATH` environment variable to include custom library paths before configuring the build, ensuring `waf` can locate all necessary components. ```sh export PKG_CONFIG_PATH="/custom/lib/pkgconfig:$PKG_CONFIG_PATH" ./waf configure ./waf sudo ./waf install ``` -------------------------------- ### Building NFD Without Debug Symbols Source: https://github.com/named-data/nfd/blob/master/docs/INSTALL.rst This command sequence builds and installs NFD from source while explicitly disabling debug symbols and specifying custom installation paths. By setting `CXXFLAGS="-O2"`, it overrides the default compiler flags to optimize for size/speed and removes debug information, configuring NFD to be installed into `/usr` with configuration files in `/etc`. ```sh CXXFLAGS="-O2" ./waf configure --prefix=/usr --sysconfdir=/etc ./waf sudo ./waf install ``` -------------------------------- ### Cloning NFD and ndn-cxx Source Repositories Source: https://github.com/named-data/nfd/blob/master/docs/INSTALL.rst These commands download the source code for the `ndn-cxx` library and the NFD (Named Data Networking Forwarding Daemon) project from their respective GitHub repositories. The `--recursive` flag for NFD ensures that all necessary submodules are also cloned, which is crucial for a complete build. ```sh # Download ndn-cxx git clone https://github.com/named-data/ndn-cxx.git # Download NFD git clone --recursive https://github.com/named-data/NFD.git ``` -------------------------------- ### Installing Optional NFD Dependencies on CentOS/Fedora Source: https://github.com/named-data/nfd/blob/master/docs/INSTALL.rst This command installs optional development libraries, `libpcap-devel` and `systemd-devel`, on CentOS and Fedora systems using the `dnf` package manager. These dependencies are required to enable additional features within NFD, similar to their Debian/Ubuntu counterparts. ```sh sudo dnf install libpcap-devel systemd-devel ``` -------------------------------- ### Adding NDN PPA Repository on Ubuntu/Debian Source: https://github.com/named-data/nfd/blob/master/docs/INSTALL.rst These commands add the official Named Data Networking (NDN) PPA repository to the system's package sources and then update the local package list. This step is necessary to make NFD binaries and related tools available for installation via `apt`. ```sh sudo add-apt-repository ppa:named-data/ppa sudo apt update ``` -------------------------------- ### Configuring NFD with Clang on Linux Source: https://github.com/named-data/nfd/blob/master/docs/INSTALL.rst This command configures the NFD build system (`waf`) to use `clang++` as the C++ compiler on Linux. It is a prerequisite for building NFD with Clang. ```sh CXX=clang++ ./waf configure ``` -------------------------------- ### Running NDN Ping Server (Shell) Source: https://github.com/named-data/nfd/blob/master/tests/other/fw/self-learning.md This command starts an `ndnpingserver` instance on node A, making it serve the `/sl` name prefix. It acts as a data producer for the `ndnping` client, responding to interests for `/sl`. This requires `ndn-tools` to be installed. ```Shell ndnpingserver /sl ``` -------------------------------- ### Starting NFD with a Configuration File Source: https://github.com/named-data/nfd/blob/master/docs/manpages/nfd.rst Demonstrates how to start the NFD forwarder as a super user, specifying a custom configuration file located in the current directory. This command requires superuser privileges to execute successfully. ```Shell sudo nfd --config nfd.conf ``` -------------------------------- ### GNU GPL Interactive Program Startup Notice Source: https://github.com/named-data/nfd/blob/master/COPYING.md This snippet outlines the short notice to be displayed when a program starts in an interactive mode. It informs users about the program's copyright, lack of warranty, and free software status, directing them to specific commands for full license details. ```Plain Text Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. ``` -------------------------------- ### Configuring NFD Installation Prefix (Bash) Source: https://github.com/named-data/nfd/blob/master/docs/FAQ.rst This command demonstrates how to change the base installation directory for NFD from the default `/usr/local` to `/usr` during the `waf configure` step. This is useful for integrating NFD into standard system paths. ```Bash ./waf configure --prefix=/usr ``` -------------------------------- ### Configuring NFD Manpage Location (Bash) Source: https://github.com/named-data/nfd/blob/master/docs/FAQ.rst This command illustrates how to configure the installation directory for NFD's manpages, usually `/usr/share/man`, in conjunction with custom prefix and configuration file paths. This helps organize documentation within the system's standard hierarchy. ```Bash ./waf configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man ``` -------------------------------- ### Starting NDN Auto-Config Server with Local Prefix and TCP FaceUri (Shell) Source: https://github.com/named-data/nfd/blob/master/docs/manpages/ndn-autoconfig-server.rst This command starts the `ndn-autoconfig-server` daemon, additionally specifying `/ndn/edu/ucla` as a local prefix for which the hub allows end applications to register prefixes. The server will use `tcp://spurs.cs.ucla.edu` as its FaceUri and include this prefix in local prefix discovery data. ```Shell ndn-autoconfig-server -p /ndn/edu/ucla tcp://spurs.cs.ucla.edu ``` -------------------------------- ### Starting NDN Auto-Config Server with TCP FaceUri (Shell) Source: https://github.com/named-data/nfd/blob/master/docs/manpages/ndn-autoconfig-server.rst This command starts the `ndn-autoconfig-server` daemon, specifying a TCP FaceUri for the NDN hub. It allows the server to listen for and respond to hub discovery interests on the `tcp://spurs.cs.ucla.edu` address. ```Shell ndn-autoconfig-server tcp://spurs.cs.ucla.edu ``` -------------------------------- ### Enabling NFD Auto-Start on macOS (Shell) Source: https://github.com/named-data/nfd/blob/master/launchd/README.md This command loads the NFD launchd configuration file, enabling the NFD daemon to automatically start and be managed by macOS's `launchd` system. The `-w` flag writes the changes to the plist file, ensuring persistence across reboots. ```Shell sudo launchctl load -w /Library/LaunchDaemons/net.named-data.nfd.plist ``` -------------------------------- ### Configuring NFD Configuration File Location (Bash) Source: https://github.com/named-data/nfd/blob/master/docs/FAQ.rst This command shows how to specify a custom location for NFD's configuration file, typically `/etc`, while also setting a custom installation prefix. This ensures configuration files are placed in a standard system-wide directory. ```Bash ./waf configure --prefix=/usr --sysconfdir=/etc ``` -------------------------------- ### Creating UDP Face to Remote NFD Instance Source: https://github.com/named-data/nfd/blob/master/docs/INSTALL.rst This command uses `nfdc` (NFD Management Client) to create a new UDP face, establishing a tunnel to a remote NFD instance specified by its hostname or IP address. It's a prerequisite for routing interests to that remote forwarder. ```sh nfdc face create udp:// ``` -------------------------------- ### Adding Route to Remote NFD Forwarder Source: https://github.com/named-data/nfd/blob/master/docs/INSTALL.rst This command uses `nfdc` to add a static route for the `/ndn` prefix, directing interests matching this prefix through the previously created UDP face to the remote NFD instance. This enables forwarding interests to the remote host. ```sh nfdc route add /ndn udp:// ``` -------------------------------- ### Creating a UDP Face (NFD CLI) Source: https://github.com/named-data/nfd/blob/master/tests/tools/nfdc/nfdc-batch.t.txt This command creates a new UDP face in NFD, establishing a connection to a specified remote IP address. Faces are fundamental for forwarding data packets within the NFD network. ```NFD CLI "face" create "udp://192.0.2.1" ``` -------------------------------- ### Querying Content Store Information (NFD CLI) Source: https://github.com/named-data/nfd/blob/master/tests/tools/nfdc/nfdc-batch.t.txt This command retrieves and displays information about the NFD Content Store (CS). It provides insights into cached data, hit/miss rates, and overall CS statistics, which is useful for monitoring NFD's caching performance. ```NFD CLI cs info ``` -------------------------------- ### Enabling Ethernet Face Support on Ubuntu (Bash) Source: https://github.com/named-data/nfd/blob/master/docs/FAQ.rst These commands enable Ethernet face support for NFD on Ubuntu by installing `libcap2-bin` and then setting the `cap_net_raw` and `cap_net_admin` capabilities on the NFD executable. This allows NFD to perform raw network operations required for Ethernet faces without needing full root privileges. ```Bash sudo apt install libcap2-bin sudo setcap cap_net_raw,cap_net_admin=eip /path/to/nfd ``` -------------------------------- ### Copying NFD launchd.plist for macOS Auto-Start (Shell) Source: https://github.com/named-data/nfd/blob/master/launchd/README.md This snippet copies the NFD launchd configuration file to the system's LaunchDaemons directory and sets the correct ownership to `root`. This is a prerequisite for macOS to manage the NFD daemon automatically upon system startup and ensures proper system-level permissions. ```Shell sudo cp net.named-data.nfd.plist /Library/LaunchDaemons/ sudo chown root /Library/LaunchDaemons/net.named-data.nfd.plist ``` -------------------------------- ### Auto-registering Multiple Prefixes with Blacklist Source: https://github.com/named-data/nfd/blob/master/docs/manpages/nfd-autoreg.rst This example demonstrates how to use `nfd-autoreg` to automatically register two specific prefixes (`/app1/video` and `/app2/pictures`) for newly created on-demand faces. It also shows how to exclude faces originating from the `10.0.0.0/8` network using the blacklist option. ```Shell nfd-autoreg -i /app1/video -i /app2/pictures -b 10.0.0.0/8 ``` -------------------------------- ### Adding a Route to a Face (NFD CLI) Source: https://github.com/named-data/nfd/blob/master/tests/tools/nfdc/nfdc-batch.t.txt This command adds a route for a specific NFD name prefix to a previously created face. It directs NFD to forward interests matching the root prefix '/' to the face associated with 'udp://192.0.2.2'. ```NFD CLI route add / udp://192.0.2.2 ``` -------------------------------- ### Generating and Installing Self-Signed NDN Certificate (Bash) Source: https://github.com/named-data/nfd/blob/master/docs/FAQ.rst This command generates a self-signed NDN identity certificate for the current user and immediately installs it into the local NDN key chain. This certificate is essential for authenticating management commands sent to NFD, such as FIB modifications or face creation. ```Bash ndnsec key-gen /$(whoami) | ndnsec cert-install - ``` -------------------------------- ### Setting Up NFD Home and Generating Self-Signed Certificate (Shell) Source: https://github.com/named-data/nfd/blob/master/launchd/README.md This command block creates the NFD's home directory, sets the `HOME` environment variable, configures NFD to use file-based private key storage, and generates a self-signed NDN certificate for the NFD daemon. This is crucial for NFD's security operations, as macOS's default keychain doesn't support non-interactive access. ```Shell sudo -s -- ' \ mkdir -p /usr/local/var/lib/ndn/nfd/.ndn; \ export HOME=/usr/local/var/lib/ndn/nfd; \ echo tpm=tpm-file > /usr/local/var/lib/ndn/nfd/.ndn/client.conf; \ ndnsec key-gen /localhost/daemons/nfd | ndnsec cert-install -; \ ' ``` -------------------------------- ### Starting NFD HTTP Status Server on IPv4 (Port 80) - Shell Source: https://github.com/named-data/nfd/blob/master/docs/manpages/nfd-status-http-server.rst This command starts the NFD HTTP status server, binding it to all available IPv4 interfaces (0.0.0.0) and listening on port 80. This operation typically requires elevated privileges due to the use of a well-known port. ```Shell nfd-status-http-server -a 0.0.0.0 -p 80 ``` -------------------------------- ### Creating and Securing NFD Log Directory on macOS (Shell) Source: https://github.com/named-data/nfd/blob/master/launchd/README.md This snippet creates the necessary directory for NFD log files and then changes its ownership recursively to the `ndn` user and group. This ensures that NFD, when run as the `ndn` user, has proper write permissions for its logs while maintaining system security. ```Shell sudo mkdir -p /usr/local/var/log/ndn sudo chown -R ndn:ndn /usr/local/var/log/ndn ``` -------------------------------- ### Starting NFD HTTP Status Server on IPv6 (Port 8000) - Shell Source: https://github.com/named-data/nfd/blob/master/docs/manpages/nfd-status-http-server.rst This command initializes the NFD HTTP status server, configuring it to listen on all available IPv6 interfaces (::) and use port 8000. This allows NFD status to be accessed via HTTP from any IPv6 address. ```Shell nfd-status-http-server -a :: -p 8000 ``` -------------------------------- ### Creating NDN User on macOS (Shell) Source: https://github.com/named-data/nfd/blob/master/launchd/README.md This command creates a new local user named `ndn` with a specified UniqueID (6363) using `dscl`. This user is intended to own NFD-related files and processes, enhancing security by running NFD with reduced privileges rather than as root. ```Shell sudo dscl . -create /Users/ndn UniqueID 6363 ``` -------------------------------- ### Disabling NFD Auto-Start on macOS (Shell) Source: https://github.com/named-data/nfd/blob/master/launchd/README.md This command unloads the NFD launchd configuration file, preventing the NFD daemon from automatically starting and stopping its management by macOS's `launchd` system. The `-w` flag writes the changes to the plist file, making the disablement persistent. ```Shell sudo launchctl unload -w /Library/LaunchDaemons/net.named-data.nfd.plist ``` -------------------------------- ### Exporting NFD Self-Signed Certificate to Configuration Directory (Shell) Source: https://github.com/named-data/nfd/blob/master/launchd/README.md This command exports the NFD daemon's self-signed certificate from its security storage to a file in the NFD configuration directory. This certificate, named `localhost_daemons_nfd.ndncert`, is then referenced by the NFD configuration to authorize the daemon's operations securely. ```Shell sudo -s -- '\ mkdir -p /usr/local/etc/ndn/certs || true; \ export HOME=/usr/local/var/lib/ndn/nfd; \ ndnsec cert-dump -i /localhost/daemons/nfd > \ /usr/local/etc/ndn/certs/localhost_daemons_nfd.ndncert; \ ' ``` -------------------------------- ### Adding a Route with Spaces in Prefix (NFD CLI) Source: https://github.com/named-data/nfd/blob/master/tests/tools/nfdc/nfdc-batch.t.txt This command demonstrates adding a route for a name prefix that contains spaces, requiring the prefix to be enclosed in double quotes. It directs NFD to forward interests matching '/test2/foo bar' to the face associated with 'udp://192.0.2.3'. The backslashes indicate line continuation for readability in the shell. ```NFD CLI route \n add \n "/test2/foo bar" \n 'udp://192.0.2.3' ``` -------------------------------- ### Configuring NDN User Properties on macOS (Shell) Source: https://github.com/named-data/nfd/blob/master/launchd/README.md These commands set various properties for the `ndn` user, including a real name, a non-login password, a primary group ID, an empty home directory, and a shell that prevents interactive login. These settings secure the user account for daemon operation, ensuring it's used strictly for NFD processes. ```Shell sudo dscl . -create /Users/ndn RealName "NDN User" sudo dscl . -create /Users/ndn Password "{*}" sudo dscl . -create /Users/ndn PrimaryGroupID 6363 sudo dscl . -create /Users/ndn NFSHomeDirectory /var/empty sudo dscl . -create /Users/ndn UserShell /usr/bin/false ``` -------------------------------- ### Configuring NFD Authorization Privileges (NFD Configuration) Source: https://github.com/named-data/nfd/blob/master/launchd/README.md This NFD configuration snippet defines authorization rules within the `nfd.conf` file. It grants the NFD daemon (identified by its certificate) full privileges over faces, FIB, and strategy choice, while allowing any entity to manage faces and strategy choice, but not FIB. This enhances security by restricting FIB management to NFD itself. ```NFD Configuration authorizations { authorize { certfile certs/localhost_daemons_nfd.ndncert privileges { faces fib strategy-choice } } authorize { certfile any privileges { faces strategy-choice } } } ``` -------------------------------- ### Creating NDN Group on macOS (Shell) Source: https://github.com/named-data/nfd/blob/master/launchd/README.md This snippet creates a new local group named `ndn` with a specified primary group ID (6363). This group is used to manage file permissions for NFD-related directories and ensures proper access control for the `ndn` user, aligning with best security practices. ```Shell sudo dscl . -create /Groupsndn Password "{*}" sudo dscl . -create /Groups/ndn RealName "NDN User" sudo dscl . -create /Groups/ndn PrimaryGroupID 6363 ``` -------------------------------- ### Cleaning Up Implicit NDN User Attributes on macOS (Shell) Source: https://github.com/named-data/nfd/blob/master/launchd/README.md These commands remove implicitly added attributes from the newly created `ndn` user account, such as `AuthenticationAuthority` and `PasswordPolicyOptions`. This prevents the user from appearing in the Users & Groups Preference Pane and removes unnecessary system noise, as recommended by MacPorts. ```Shell sudo dscl . -delete /Users/ndn AuthenticationAuthority sudo dscl . -delete /Users/ndn PasswordPolicyOptions sudo dscl . -delete /Users/ndn dsAttrTypeNative:KerberosKeys sudo dscl . -delete /Users/ndn dsAttrTypeNative:ShadowHashData ``` -------------------------------- ### Standard GNU GPL Copyright Notice for Source Files Source: https://github.com/named-data/nfd/blob/master/COPYING.md This snippet provides the standard copyright and licensing notice to be included at the beginning of each source file. It declares the program as free software under the GNU GPL v3 or any later version, explicitly disclaiming all warranties, and directs users to the full license text. ```Plain Text Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . ``` -------------------------------- ### Configuring and Building NFD for Unit Tests (Shell) Source: https://github.com/named-data/nfd/blob/master/README-dev.md This shell script demonstrates how to configure and build the NFD project with unit test support enabled. The `--with-tests` flag activates test compilation, and `--debug` is recommended for development, ensuring that test binaries are generated and ready for execution. ```shell ./waf configure --with-tests # --debug is also strongly recommended while developing ./waf ``` -------------------------------- ### Enabling Ethernet Face Support on macOS (Curl/Bash) Source: https://github.com/named-data/nfd/blob/master/docs/FAQ.rst This sequence of commands downloads, extracts, and runs a utility (`ChmodBPF.app`) on macOS to configure permissions for `/dev/bpf*` devices. This is necessary to allow NFD to access these devices for Ethernet face support. ```Bash curl https://bugs.wireshark.org/bugzilla/attachment.cgi?id=3373 -o ChmodBPF.tar.gz tar zxvf ChmodBPF.tar.gz open ChmodBPF/Install\ ChmodBPF.app ``` -------------------------------- ### Running Face Benchmark on Router Node (Shell) Source: https://github.com/named-data/nfd/blob/master/tests/other/face-benchmark.md This command executes the `face-benchmark` program on the router node. It requires a configuration file, `face-benchmark.conf`, which specifies the FaceURIs for the left and right faces. This initiates the face system performance test, setting up the necessary network interfaces for data forwarding. ```Shell ./face-benchmark face-benchmark.conf ``` -------------------------------- ### Displaying Help for a Specific nfdc Subcommand (Shell) Source: https://github.com/named-data/nfd/blob/master/docs/manpages/nfdc.rst This command displays detailed usage information for the `nfdc face create` subcommand. It is useful for understanding the arguments and options required for a specific `nfdc` operation. ```Shell nfdc help face create ``` -------------------------------- ### Applying GPL v3 License Boilerplate in C++ Source: https://github.com/named-data/nfd/blob/master/README-dev.md This C++ code snippet provides the standard GPL v3 license boilerplate to be included at the beginning of all `.hpp` and `.cpp` files in the NFD project. It specifies the copyright, distribution terms, and warranty disclaimers, ensuring compliance with the GNU General Public License. ```cpp /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ /* * Copyright (c) [Year(s)], [Copyright Holder(s)]. * * This file is part of NFD (Named Data Networking Forwarding Daemon). * See AUTHORS.md for complete list of NFD authors and contributors. * * NFD is free software: you can redistribute it and/or modify it under the terms * of the GNU General Public License as published by the Free Software Foundation, * either version 3 of the License, or (at your option) any later version. * * NFD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along with * NFD, e.g., in COPYING.md file. If not, see . */ ``` -------------------------------- ### Enabling UDP Multicast Support on Linux (Bash) Source: https://github.com/named-data/nfd/blob/master/docs/FAQ.rst This command sets the `cap_net_raw` capability on the NFD executable on Linux. This capability is crucial for NFD to establish and manage UDP multicast faces, especially on multi-homed machines, without requiring root privileges. ```Bash sudo setcap cap_net_raw=eip /path/to/nfd ``` -------------------------------- ### nfd-autoreg Command Line Synopsis Source: https://github.com/named-data/nfd/blob/master/docs/manpages/nfd-autoreg.rst This snippet provides the general command-line syntax for `nfd-autoreg`, showing its various options for prefix registration, network filtering, cost assignment, and help/version display. It illustrates the structure for invoking the daemon with different parameters. ```Shell nfd-autoreg [-i| --prefix prefix]... [-a| --all-faces-prefix prefix]... [-b| --blacklist network]... [-w| --whitelist network]... \ [-c| --cost cost] nfd-autoreg -h| --help nfd-autoreg -V| --version ``` -------------------------------- ### Manually Enabling Ethernet Face Support on macOS (Bash) Source: https://github.com/named-data/nfd/blob/master/docs/FAQ.rst These commands manually adjust the group ownership and permissions of `/dev/bpf*` devices on macOS. By changing the group to `admin` and granting group read/write access, NFD can interact with these devices for Ethernet face functionality. ```Bash sudo chgrp admin /dev/bpf* sudo chmod g+rw /dev/bpf* ``` -------------------------------- ### Exporting NDN Certificate to File (Bash) Source: https://github.com/named-data/nfd/blob/master/docs/FAQ.rst These commands export the generated NDN certificate to a file named `default.ndncert` and then move it to the standard NFD keys directory (`/usr/local/etc/ndn/keys`). This makes the certificate available for NFD's security configurations and other NDN applications. ```Bash 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 ``` -------------------------------- ### Listing NFD Channels - nfdc channel list Command Source: https://github.com/named-data/nfd/blob/master/docs/manpages/nfdc-face.rst The `nfdc channel list` command shows a list of channels. Channels are listening sockets that can accept incoming connections and create new faces. ```Shell nfdc channel [list] ``` -------------------------------- ### NFD Command Synopsis Source: https://github.com/named-data/nfd/blob/master/docs/manpages/nfd.rst Provides the general command-line syntax for invoking the NFD (Named Data Networking Forwarder) tool, showing various options for configuration, help, module listing, and version information. ```Shell nfd [-c|--config file] nfd -h|--help nfd -m|--modules nfd -V|--version ``` -------------------------------- ### Creating NFD Face with Default Settings (Shell) Source: https://github.com/named-data/nfd/blob/master/docs/manpages/nfdc-face.rst This command creates a new NFD face using the specified remote FaceUri, while all other configuration settings are kept at their default values. It's a quick way to establish a basic connection. ```Shell nfdc face create remote udp://router.example.net ``` -------------------------------- ### Listing NFD Strategy Choices (Shell) Source: https://github.com/named-data/nfd/blob/master/docs/manpages/nfdc-strategy.rst This command lists all currently configured strategy choices in NFD. It provides an overview of how different name prefixes are mapped to specific forwarding strategies. ```Shell nfdc strategy list ``` -------------------------------- ### Retrieving NFD Strategy Choice (Shell) Source: https://github.com/named-data/nfd/blob/master/docs/release-notes/release-notes-0.2.0.rst Illustrates the use of nfd-status with the -s option to retrieve the configured strategy choices for various NDN namespaces. This option is enabled by default and helps in understanding the forwarding behavior. ```Shell nfd-status -s ``` -------------------------------- ### Listing All NFD Faces (Shell) Source: https://github.com/named-data/nfd/blob/master/docs/manpages/nfdc-face.rst This command lists all currently active network faces configured in the NFD (Named Data Networking Forwarding Daemon). It provides an overview of all established connections. ```Shell nfdc face list ``` -------------------------------- ### Registering Prefix for All Faces with nfd-autoreg (Shell) Source: https://github.com/named-data/nfd/blob/master/docs/release-notes/release-notes-0.2.0.rst Illustrates the use of the nfd-autoreg tool with the all-faces-prefix option. This enables the tool to automatically register a specified prefix for all available faces, including on-demand and non-on-demand ones, simplifying prefix management. ```Shell nfd-autoreg --all-faces-prefix /my/app/prefix ``` -------------------------------- ### Running Core NFD Unit Tests (Shell) Source: https://github.com/named-data/nfd/blob/master/README-dev.md This shell command executes the core unit tests for the NFD daemon. It directly invokes the compiled `unit-tests-core` binary located in the `build` directory, providing a straightforward way to verify the fundamental components of NFD. ```shell ./build/unit-tests-core ``` -------------------------------- ### Running NFD Tools Unit Tests (Shell) Source: https://github.com/named-data/nfd/blob/master/README-dev.md This shell command executes the unit tests for NFD tools, such as `nfdc`. It runs the `unit-tests-tools` binary from the `build` directory, ensuring the correctness and reliability of auxiliary NFD utilities. ```shell ./build/unit-tests-tools ``` -------------------------------- ### NFD Python Documentation Build Dependencies Source: https://github.com/named-data/nfd/blob/master/docs/requirements.txt This snippet specifies the Python packages and their version constraints needed to build the NFD project's documentation. It includes `docutils` for parsing, `sphinx` for generating reStructuredText documentation, and `sphinxcontrib-doxylink` for integrating Doxygen API references. ```Python docutils>=0.20 sphinx>=7.0.1,<9 sphinxcontrib-doxylink~=1.13 ``` -------------------------------- ### Running Boost.Test Cases Across Multiple Suites (Shell) Source: https://github.com/named-data/nfd/blob/master/README-dev.md This shell command illustrates how to run a specific test case ('Basic') across all NFD RIB test suites using a wildcard (`*`) with Boost.Test. This is useful for verifying a common functionality across different related test components. ```shell ./build/unit-tests-daemon -t Rib/*/Basic ``` -------------------------------- ### Running NFD Daemon Unit Tests (Shell) Source: https://github.com/named-data/nfd/blob/master/README-dev.md This shell command executes the unit tests specifically for the NFD daemon. It runs the `unit-tests-daemon` binary from the `build` directory, allowing developers to validate the functionality of the main NFD forwarding daemon. ```shell ./build/unit-tests-daemon ``` -------------------------------- ### Configuring NFD Content Store Settings (Shell) Source: https://github.com/named-data/nfd/blob/master/docs/manpages/nfdc-cs.rst This command allows modification of the NFD Content Store's configuration, including its maximum capacity, whether it admits new data, and if it serves cached data to incoming interests. Changes take effect immediately upon execution. ```Shell nfdc cs config [capacity CAPACITY] [admit on|off] [serve on|off] ``` -------------------------------- ### Adding an NFD Route with Face URI (Shell) Source: https://github.com/named-data/nfd/blob/master/docs/manpages/nfdc-route.rst This command adds a route for a given name prefix, specifying the nexthop using a Face URI. If no existing face matches the URI, `nfdc` attempts to implicitly create one, providing flexibility in defining routes to remote endpoints. ```Shell nfdc route add prefix / nexthop udp://router.example.net ``` -------------------------------- ### Showing Specific NFD Face Details - nfdc face show Command Source: https://github.com/named-data/nfd/blob/master/docs/manpages/nfdc-face.rst The `nfdc face show` command shows properties and statistics of one specific face. ```Shell nfdc face show [id] FACEID ``` -------------------------------- ### Querying NFD General Status (CLI) Source: https://github.com/named-data/nfd/blob/master/docs/manpages/nfdc-status.rst This command retrieves and displays the general operational status of the NFD daemon. It provides key metrics such as NFD version, uptime, and various packet and data structure counters. The `show` keyword is optional and can be omitted. ```cli nfdc status ``` ```cli nfdc status show ``` -------------------------------- ### Setting Self-Learning Strategy for NFD (Shell) Source: https://github.com/named-data/nfd/blob/master/tests/other/fw/self-learning.md This command configures the NFD instance to use the self-learning forwarding strategy for the `/sl` name prefix. It directs NFD to apply the strategy located at `/localhost/nfd/strategy/self-learning` to all interests matching `/sl`. ```Shell nfdc strategy set /sl /localhost/nfd/strategy/self-learning ``` -------------------------------- ### Displaying NFD Forwarding Routes (Shell) Source: https://github.com/named-data/nfd/blob/master/tests/other/fw/self-learning.md This command is used to display the current forwarding routes configured within the NFD instance. After successful self-learning, it should show a newly added route for `/sl/ping` with specific attributes like `nexthop`, `origin`, `cost`, and `flags`. ```Shell nfdc route ``` -------------------------------- ### Configuring Strategy Selection in NFD Source: https://github.com/named-data/nfd/blob/master/docs/release-notes/release-notes-0.3.0.rst This configuration snippet demonstrates how to define forwarding strategy choices for specific namespaces within the NFD configuration file. It maps various NDN namespaces (e.g., '/', '/localhost') to their respective forwarding strategies (e.g., '/localhost/nfd/strategy/best-route', '/localhost/nfd/strategy/broadcast'). This allows administrators to customize how NFD forwards interests for different data prefixes. ```NFD Configuration tables { ... strategy_choice { / /localhost/nfd/strategy/best-route /localhost /localhost/nfd/strategy/broadcast /localhost/nfd /localhost/nfd/strategy/best-route /ndn/broadcast /localhost/nfd/strategy/broadcast } } ``` -------------------------------- ### Running NDN Ping Client (Shell) Source: https://github.com/named-data/nfd/blob/master/tests/other/fw/self-learning.md This command executes the `ndnping` client on node B, sending interests for the `/sl` name prefix. It is used to test connectivity and data retrieval from the `ndnpingserver`. ```Shell ndnping /sl ``` -------------------------------- ### Creating NFD Face with Custom Congestion Marking Settings (Shell) Source: https://github.com/named-data/nfd/blob/master/docs/manpages/nfdc-face.rst This command creates an NFD face with the specified remote FaceUri and customizes its congestion marking parameters. It sets the base congestion marking interval to 100 ms and the default congestion threshold to 65536 bytes, allowing fine-grained control over congestion management. ```Shell nfdc face create remote udp://router.example.net congestion-marking-interval 100 default-congestion-threshold 65536 ``` -------------------------------- ### Listing All nfdc Subcommands (Shell) Source: https://github.com/named-data/nfd/blob/master/docs/manpages/nfdc.rst This command lists all available subcommands for the `nfdc` tool. It provides an overview of the functionalities that can be managed through `nfdc`. ```Shell nfdc ``` -------------------------------- ### Displaying Boost.Test Progress Bar (Shell) Source: https://github.com/named-data/nfd/blob/master/README-dev.md This shell command enables a progress bar for Boost.Test execution using the `-p` option. This provides a visual indication of test progress, which is particularly helpful for long-running test suites. ```shell ./build/unit-tests-tools -p ``` -------------------------------- ### Listing NFD Faces - nfdc face list Command Source: https://github.com/named-data/nfd/blob/master/docs/manpages/nfdc-face.rst The `nfdc face list` command shows a list of faces, their properties, and statistics, optionally filtered by remote endpoint, local endpoint, and FaceUri scheme. When multiple filters are specified, returned faces must satisfy all filters. ```Shell nfdc face [list [[remote] FACEURI] [local FACEURI] [scheme SCHEME]] ``` -------------------------------- ### Running Specific Boost.Test Case (Shell) Source: https://github.com/named-data/nfd/blob/master/README-dev.md This shell command shows how to execute a single test case within a specific test suite using Boost.Test. It targets the 'Find' test case within 'Table/TestPit', enabling granular testing of individual functionalities. ```shell ./build/unit-tests-daemon -t Table/TestPit/Find ``` -------------------------------- ### Listing All NFD Routes (Shell) Source: https://github.com/named-data/nfd/blob/master/docs/manpages/nfdc-route.rst This command lists all currently active routes in the NFD Routing Information Base (RIB). It provides a comprehensive view of all known name prefixes and their associated nexthops, origins, and costs without any filtering. ```Shell nfdc route list ``` -------------------------------- ### Retrieving NFD Content Store Information (Shell) Source: https://github.com/named-data/nfd/blob/master/docs/manpages/nfdc-cs.rst This command displays statistics and information about the NFD Content Store (CS). It provides an overview of the current state and performance metrics of the cache, including hit/miss rates and current capacity. ```Shell nfdc cs info ``` -------------------------------- ### Listing NFD Routes by Origin (Shell) Source: https://github.com/named-data/nfd/blob/master/docs/manpages/nfdc-route.rst This command lists NFD RIB routes that originate from a specified source, such as 'static' for manually configured routes. It allows administrators to view routes based on their announcement source, aiding in route management and debugging. ```Shell nfdc route list origin static ``` -------------------------------- ### Running Specific Boost.Test Suite (Shell) Source: https://github.com/named-data/nfd/blob/master/README-dev.md This shell command demonstrates how to run a specific test suite within the NFD daemon tests using Boost.Test framework's `-t` option. It targets the 'PIT tests' inside the 'Table' test suite, allowing focused testing of particular components. ```shell ./build/unit-tests-daemon -t Table/TestPit ``` -------------------------------- ### Showing NFD Routes for a Specific Prefix (Shell) Source: https://github.com/named-data/nfd/blob/master/docs/manpages/nfdc-route.rst This command displays all RIB routes that match a given name prefix. It is useful for examining the routing information available for a particular data namespace, showing all associated nexthops and their properties. ```Shell nfdc route show prefix /localhost/nfd ``` -------------------------------- ### Displaying All Boost.Test Log Messages (Shell) Source: https://github.com/named-data/nfd/blob/master/README-dev.md This shell command configures Boost.Test to show all log messages, including notifications for passed tests, by using the `-l all` option. This provides comprehensive output for detailed debugging and test analysis. ```shell ./build/unit-tests-daemon -l all ``` -------------------------------- ### Retrieving NFD Channel Status (Shell) Source: https://github.com/named-data/nfd/blob/master/docs/release-notes/release-notes-0.2.0.rst Shows how to use nfd-status with the -c option to retrieve detailed channel status information. This option is enabled by default, providing insights into the communication channels within NFD. ```Shell nfd-status -c ``` -------------------------------- ### Specifying Origin for nfdc Commands (Shell) Source: https://github.com/named-data/nfd/blob/master/docs/release-notes/release-notes-0.2.0.rst Shows how to use nfdc with the -o option to specify the origin for registration and unregistration commands. This helps in identifying the source of route management operations. ```Shell nfdc register /example/prefix udp://127.0.0.1 -o my-app ``` -------------------------------- ### Running nfdc in batch mode using --batch flag (Shell) Source: https://github.com/named-data/nfd/blob/master/tests/tools/nfdc/README.md Executes NFD commands from a specified file in batch mode using the `--batch` flag. This method also processes commands sequentially from `nfdc-batch.t.txt`, providing an alternative and more explicit syntax to the `-f` flag for batch processing. ```Shell nfdc --batch nfdc-batch.t.txt ``` -------------------------------- ### Displaying Boost.Test Suite Messages (Shell) Source: https://github.com/named-data/nfd/blob/master/README-dev.md This shell command instructs Boost.Test to display messages at the test suite level using the `-l test_suite` option. This provides a summary of test progress per suite without showing individual assertion results. ```shell ./build/unit-tests-daemon -l test_suite ``` -------------------------------- ### Setting Multiple NFD ASF Strategy Parameters (Shell) Source: https://github.com/named-data/nfd/blob/master/docs/manpages/nfd-asf-strategy.rst This command simultaneously configures multiple NFD ASF strategy parameters for the `/ndn` prefix: `probing-interval` to 30 seconds, `max-timeouts` to 2, and `measurements-lifetime` to 2 minutes. ```Shell nfdc strategy set prefix /ndn strategy /localhost/nfd/strategy/asf/v=5/probing-interval~30000/max-timeouts~2/measurements-lifetime~120000 ``` -------------------------------- ### Running nfdc in batch mode using -f flag (Shell) Source: https://github.com/named-data/nfd/blob/master/tests/tools/nfdc/README.md Executes NFD commands from a specified file in batch mode using the `-f` (file) flag. This method processes commands sequentially from `nfdc-batch.t.txt`, allowing for automated execution of multiple `nfdc` operations. ```Shell nfdc -f nfdc-batch.t.txt ``` -------------------------------- ### Retrieving NFD Status in XML Format (Shell) Source: https://github.com/named-data/nfd/blob/master/docs/release-notes/release-notes-0.2.0.rst Demonstrates how to use the nfd-status tool with the -x option to output the NFD status information in XML format. This is useful for programmatic parsing or integration with other systems that consume XML data. ```Shell nfd-status -x ``` -------------------------------- ### Creating NFD Face with Custom Local URI and Persistency (Shell) Source: https://github.com/named-data/nfd/blob/master/docs/manpages/nfdc-face.rst This command creates a new NFD face, allowing the specification of both the remote FaceUri and a local FaceUri, along with setting its persistency to 'permanent'. This ensures the face remains active across NFD restarts. ```Shell nfdc face create remote ether://[08:00:27:01:01:01] local dev://eth2 persistency permanent ``` -------------------------------- ### Generating Comprehensive NFD Status Report (CLI) Source: https://github.com/named-data/nfd/blob/master/docs/manpages/nfdc-status.rst This command produces a detailed, consolidated report of the NFD daemon's status. It includes general status, lists of channels, faces, FIB entries, RIB entries, CS statistics, and strategy choices. The report format can be specified as `text` (default) or `xml`. ```cli nfdc status report ``` ```cli nfdc status report text ``` ```cli nfdc status report xml ``` -------------------------------- ### Configuring NFD Privilege Dropping (NFD Config) Source: https://github.com/named-data/nfd/blob/master/docs/FAQ.rst This NFD configuration snippet demonstrates how to instruct NFD to drop its effective user and group IDs to 'nobody' and 'nogroup' respectively. While not a security mechanism against a compromised root-started NFD, it can limit damage from buggy code by reducing privileges during normal execution. ```NFD Configuration general { user nobody group nogroup } ``` -------------------------------- ### Setting NFD ASF Strategy Probing Interval (Shell) Source: https://github.com/named-data/nfd/blob/master/docs/manpages/nfd-asf-strategy.rst This command sets the NFD ASF strategy for the `/ndn` prefix, specifically configuring the `probing-interval` to 30000 milliseconds (30 seconds). This determines how often alternative paths are probed. ```Shell nfdc strategy set prefix /ndn strategy /localhost/nfd/strategy/asf/v=5/probing-interval~30000 ``` -------------------------------- ### Adding an NFD Route with Cost (Shell) Source: https://github.com/named-data/nfd/blob/master/docs/manpages/nfdc-route.rst This command adds a new route to the NFD RIB for the specified name prefix, directing traffic towards a particular nexthop face. The 'cost' parameter assigns an administrative cost, influencing route preference when multiple paths exist. ```Shell nfdc route add prefix /ndn nexthop 300 cost 100 ``` -------------------------------- ### Creating NFD Face with NDNLP Reliability Enabled (Shell) Source: https://github.com/named-data/nfd/blob/master/docs/manpages/nfdc-face.rst This command creates a new NFD face with the specified remote FaceUri and explicitly enables NDNLP (Named Data Networking Link Protocol) reliability. This ensures more robust data transmission over the link. ```Shell nfdc face create remote udp://router.example.net reliability on ``` -------------------------------- ### Retrieving NFD RIB Information (Shell) Source: https://github.com/named-data/nfd/blob/master/docs/release-notes/release-notes-0.2.0.rst Explains how to use nfd-status with the -r option to retrieve information from the Routing Information Base (RIB). This provides details about registered routes and their associated faces. ```Shell nfd-status -r ``` -------------------------------- ### Setting NFD ASF Strategy with Default Parameters (Shell) Source: https://github.com/named-data/nfd/blob/master/docs/manpages/nfd-asf-strategy.rst This command configures the NFD forwarding strategy for the `/ndn` prefix to use the Adaptive Smoothed RTT-based Forwarding (ASF) strategy, applying all its default parameter values. ```Shell nfdc strategy set prefix /ndn strategy /localhost/nfd/strategy/asf ``` -------------------------------- ### Showing Effective NFD Strategy for a Prefix (Shell) Source: https://github.com/named-data/nfd/blob/master/docs/manpages/nfdc-strategy.rst This command identifies and displays the forwarding strategy that will be used to handle Interests for the specified name prefix, considering any overrides by longer prefixes. ```Shell nfdc strategy show prefix /localhost/ping/1 ``` -------------------------------- ### Creating/Updating NFD Faces - nfdc face create Command Source: https://github.com/named-data/nfd/blob/master/docs/manpages/nfdc-face.rst The `nfdc face create` command creates a UDP unicast, TCP, or Ethernet unicast face. If the face already exists, the specified arguments will be used to update its properties, if possible. Local FaceUri is required for creating Ethernet unicast faces; otherwise it must be omitted. The NDNLPv2 unicast reliability feature may be explicitly enabled or disabled. Congestion marking can be enabled/disabled, and its parameters (interval, threshold) can be set. The effective MTUs of unicast Ethernet and UDP faces may be overridden. ```Shell nfdc face create [remote] FACEURI [[persistency] PERSISTENCY] [local FACEURI] [mtu MTU] [reliability on| off] [congestion-marking on| off] [congestion-marking-interval MARKING-INTERVAL] [default-congestion-threshold CONGESTION-THRESHOLD] ``` -------------------------------- ### Showing Specific NFD Face Information (Shell) Source: https://github.com/named-data/nfd/blob/master/docs/manpages/nfdc-face.rst This command displays detailed information about a specific NFD face identified by its unique FaceId. It provides comprehensive insights into a particular face's properties and status. ```Shell nfdc face show id 300 ``` -------------------------------- ### Setting NFD ASF Strategy Max Timeouts (Shell) Source: https://github.com/named-data/nfd/blob/master/docs/manpages/nfd-asf-strategy.rst This command configures the NFD ASF strategy for the `/ndn` prefix, setting the `max-timeouts` parameter to 5. This means ASF will switch to another face after 5 consecutive timeouts. ```Shell nfdc strategy set prefix /ndn strategy /localhost/nfd/strategy/asf/v=5/max-timeouts~5 ``` -------------------------------- ### Listing UDP-over-IPv4 NFD Faces (Shell) Source: https://github.com/named-data/nfd/blob/master/docs/manpages/nfdc-face.rst This command filters the list of NFD faces to show only those using the UDP-over-IPv4 scheme. It's useful for inspecting specific types of network connections. ```Shell nfdc face list scheme udp4 ``` -------------------------------- ### Setting NFD ASF Strategy Measurements Lifetime (Shell) Source: https://github.com/named-data/nfd/blob/master/docs/manpages/nfd-asf-strategy.rst This command sets the NFD ASF strategy for the `/ndn` prefix, configuring the `measurements-lifetime` to 120000 milliseconds (2 minutes). This controls how long NamespaceInfo and FaceInfo measurements are retained without updates. ```Shell nfdc strategy set prefix /ndn strategy /localhost/nfd/strategy/asf/v=5/measurements-lifetime~120000 ``` -------------------------------- ### Listing NFD Routes by Nexthop Face ID (Shell) Source: https://github.com/named-data/nfd/blob/master/docs/manpages/nfdc-route.rst This command filters the NFD RIB to display only routes that utilize a specific nexthop face, identified by its numerical ID. It helps in inspecting routes associated with a particular outgoing interface or connection. ```Shell nfdc route list nexthop 300 ``` -------------------------------- ### Performing DNS Query for NDN Router (Shell) Source: https://github.com/named-data/nfd/blob/master/docs/manpages/ndn-autoconfig.rst This command demonstrates how an end host sends a DNS query to discover a nearby NDN router. It uses `dig` to search for SRV records (`_ndn._udp srv`) which should contain the hostname and UDP port of the router, allowing network administrators to configure NDN routers in large enterprise networks. ```Shell dig +search +short +cmd +tries=2 +ndots=10 _ndn._udp srv ``` -------------------------------- ### Setting NFD ASF Strategy Retransmission Suppression and Probing Interval (Shell) Source: https://github.com/named-data/nfd/blob/master/docs/manpages/nfd-asf-strategy.rst This command sets the NFD ASF strategy for the `/ndn` prefix, configuring the `retx-suppression-multiplier` to 2.5 and the `probing-interval` to 45000 milliseconds (45 seconds). ```Shell nfdc strategy set prefix /ndn strategy /localhost/nfd/strategy/asf/v=5/retx-suppression-multiplier~2.5/probing-interval~45000 ``` -------------------------------- ### Creating NFD Face with Custom MTU (Shell) Source: https://github.com/named-data/nfd/blob/master/docs/manpages/nfdc-face.rst This command creates an NFD face with the specified remote FaceUri and sets an override MTU (Maximum Transmission Unit) of 4000 bytes. This allows for adjusting the maximum packet size for the specific face. ```Shell nfdc face create remote udp://router.example.net mtu 4000 ``` -------------------------------- ### Creating NFD Face with Congestion Marking Disabled (Shell) Source: https://github.com/named-data/nfd/blob/master/docs/manpages/nfdc-face.rst This command creates an NFD face with the specified remote FaceUri and explicitly disables congestion marking for that face. This can be useful in environments where congestion control is handled by other mechanisms or is not desired. ```Shell nfdc face create remote udp://router.example.net congestion-marking off ``` -------------------------------- ### Setting Default NFD Strategy to Best-Route (Shell) Source: https://github.com/named-data/nfd/blob/master/docs/manpages/nfdc-strategy.rst This command sets the default forwarding strategy for all NFD interests (represented by the '/' prefix) to the 'best-route' strategy, using its latest available version. ```Shell nfdc strategy set prefix / strategy /localhost/nfd/strategy/best-route ```