nfd Namespace Reference

-status-http-server More...

Namespaces

 cs
 
 ethernet
 
 face
 
 fib
 
 fw
 
 general
 
 log
 
 measurements
 
 name_tree
 
 pit
 
 rib
 
 scope_prefix
 Contain name prefixes that affect namespace-based scope control.
 
 strategy_choice
 
 tcp
 
 tlv
 
 tools
 
 udp
 
 unix_stream
 
 websocket
 

Classes

class  ByteCounter
 Represents a counter of number of bytes. More...
 
class  CommandAuthenticator
 Provides ControlCommand authorization according to NFD's configuration file. More...
 
class  ConfigFile
 Configuration file parsing utility. More...
 
class  CsManager
 Implements the CS Management of NFD Management Protocol. More...
 
class  DeadNonceList
 Represents the Dead Nonce List. More...
 
class  FaceEndpoint
 Represents a face-endpoint pair in the forwarder. More...
 
class  FaceManager
 Implements the Face Management of NFD Management Protocol. More...
 
class  FaceTable
 Container of all faces. More...
 
class  FibManager
 Implements the FIB Management of NFD Management Protocol. More...
 
class  Forwarder
 Main class of NFD's forwarding engine. More...
 
class  ForwarderCounters
 Counters provided by Forwarder. More...
 
class  ForwarderStatusManager
 Implements the Forwarder Status of NFD Management Protocol. More...
 
class  ManagerBase
 A collection of common functions shared by all NFD managers, such as communicating with the dispatcher and command validator. More...
 
class  Network
 
class  NetworkRegionTable
 Stores a collection of producer region names. More...
 
class  Nfd
 Class representing the NFD instance. More...
 
class  PacketCounter
 Represents a counter of number of packets. More...
 
class  PrivilegeHelper
 
class  RibManager
 Implements the RIB Management of NFD Management Protocol. More...
 
class  SimpleCounter
 Represents a counter that encloses an integer value. More...
 
class  SizeCounter
 Provides a counter that observes the size of a table. More...
 
class  StrategyChoiceManager
 Implements the Strategy Choice Management of NFD Management Protocol. More...
 
class  StrategyInfoHost
 Base class for an entity onto which StrategyInfo items may be placed. More...
 
class  TablesConfigSection
 Handles the tables configuration file section. More...
 

Typedefs

using ConfigSection = boost::property_tree::ptree
 A configuration file section. More...
 
using ConfigSectionHandler = std::function< void(const ConfigSection &section, bool isDryRun, const std::string &filename)>
 Callback to process a configuration file section. More...
 
using OptionalConfigSection = boost::optional< const ConfigSection & >
 An optional configuration file section. More...
 
using SignerTag = ndn::SimpleTag< Name, 20 >
 An Interest tag to store the command signer. More...
 
using UnknownConfigSectionHandler = std::function< void(const std::string &filename, const std::string &sectionName, const ConfigSection &section, bool isDryRun)>
 Callback to process a configuration file section without a ConfigSectionHandler. More...
 

Functions

void cleanupOnFaceRemoval (NameTree &nt, Fib &fib, Pit &pit, const Face &face)
 Cleanup tables when a face is destroyed. More...
 
template<typename T >
static void copyFaceProperties (const Face &face, T &to)
 
template<typename T >
static void copyMtu (const Face &face, T &to)
 
static Name getDefaultStrategyName ()
 
boost::asio::io_context & getGlobalIoService ()
 Returns the global io_context instance for the calling thread. More...
 
boost::asio::io_context & getMainIoService ()
 
boost::asio::io_context & getRibIoService ()
 
ndn::Scheduler & getScheduler ()
 Returns the global Scheduler instance for the calling thread. More...
 
static std::optional< std::string > getSignerFromTag (const Interest &interest)
 Obtain signer from a SignerTag attached to interest, if available. More...
 
static void ignoreRibAndLogSections (const std::string &filename, const std::string &sectionName, const ConfigSection &section, bool isDryRun)
 
static ControlParameters makeCreateFaceResponse (const Face &face)
 
static ndn::nfd::FaceStatus makeFaceStatus (const Face &face, const time::steady_clock::time_point &now)
 
static ControlParameters makeUpdateFaceResponse (const Face &face)
 
static bool matchFilter (const ndn::nfd::FaceQueryFilter &filter, const Face &face)
 
std::ostream & operator<< (std::ostream &os, const Network &network)
 
std::ostream & operator<< (std::ostream &os, RibManager::SlAnnounceResult res)
 
std::istream & operator>> (std::istream &is, Network &network)
 
static void printLogModules (std::ostream &os)
 
static void printUsage (std::ostream &os, const char *programName, const po::options_description &opts)
 
void setMainIoService (boost::asio::io_context *mainIo)
 
void setRibIoService (boost::asio::io_context *ribIo)
 
static void updateLinkServiceOptions (Face &face, const ControlParameters &parameters)
 

Variables

constexpr time::seconds ACTIVE_FACE_FETCH_INTERVAL = 5_min
 
const std::string CFG_FORWARDER = "forwarder"
 
constexpr size_t DEFAULT_CS_MAX_PACKETS = 65536
 
static thread_local std::unique_ptr< boost::asio::io_context > g_ioCtx
 
static boost::asio::io_context * g_mainIoCtx = nullptr
 
static boost::asio::io_context * g_ribIoCtx = nullptr
 
static thread_local std::unique_ptr< ndn::Scheduler > g_scheduler
 
const std::string INTERNAL_CONFIG {"internal://nfd.conf"}
 
const Name LOCALHOST_TOP_PREFIX = "/localhost/nfd"
 
const std::string MGMT_MODULE_NAME = "rib"
 

Detailed Description

-status-http-server

Copyright (c) 2014-2024,  Regents of the University of California,
                          Arizona Board of Regents,
                          Colorado State University,
                          University Pierre & Marie Curie, Sorbonne University,
                          Washington University in St. Louis,
                          Beijing Institute of Technology,
                          The University of Memphis.

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 <http://www.gnu.org/licenses/>.

Typedef Documentation

◆ ConfigSection

using nfd::ConfigSection = typedef boost::property_tree::ptree

A configuration file section.

Definition at line 41 of file config-file.hpp.

◆ ConfigSectionHandler

using nfd::ConfigSectionHandler = typedef std::function<void(const ConfigSection& section, bool isDryRun, const std::string& filename)>

Callback to process a configuration file section.

Definition at line 51 of file config-file.hpp.

◆ OptionalConfigSection

using nfd::OptionalConfigSection = typedef boost::optional<const ConfigSection&>

An optional configuration file section.

Definition at line 46 of file config-file.hpp.

◆ SignerTag

using nfd::SignerTag = typedef ndn::SimpleTag<Name, 20>

An Interest tag to store the command signer.

Definition at line 50 of file command-authenticator.cpp.

◆ UnknownConfigSectionHandler

using nfd::UnknownConfigSectionHandler = typedef std::function<void(const std::string& filename, const std::string& sectionName, const ConfigSection& section, bool isDryRun)>

Callback to process a configuration file section without a ConfigSectionHandler.

Definition at line 57 of file config-file.hpp.

Function Documentation

◆ cleanupOnFaceRemoval()

void nfd::cleanupOnFaceRemoval ( NameTree nt,
Fib fib,
Pit pit,
const Face face 
)

Cleanup tables when a face is destroyed.

This function enumerates the NameTree, calls Fib::removeNextHop() for each FIB entry, calls Pit::deleteInOutRecords() for each PIT entry, and finally deletes any name tree entries that have become empty.

Note
It's a design choice to let Fib and Pit classes decide what to do with each entry. This function is only responsible for implementing the enumeration procedure. The benefit of having this function instead of doing the enumeration in Fib and Pit classes is to perform both FIB and PIT cleanups in one pass of NameTree enumeration, so as to reduce performance overhead.

Definition at line 33 of file cleanup.cpp.

◆ copyFaceProperties()

template<typename T >
static void nfd::copyFaceProperties ( const Face face,
T &  to 
)
static

Definition at line 351 of file face-manager.cpp.

◆ copyMtu()

template<typename T >
static void nfd::copyMtu ( const Face face,
T &  to 
)
static

Definition at line 162 of file face-manager.cpp.

◆ getDefaultStrategyName()

static Name nfd::getDefaultStrategyName ( )
static

Definition at line 46 of file forwarder.cpp.

◆ getGlobalIoService()

boost::asio::io_context & nfd::getGlobalIoService ( )

Returns the global io_context instance for the calling thread.

Definition at line 36 of file global.cpp.

◆ getMainIoService()

boost::asio::io_context & nfd::getMainIoService ( )

Definition at line 63 of file global.cpp.

◆ getRibIoService()

boost::asio::io_context & nfd::getRibIoService ( )

Definition at line 70 of file global.cpp.

◆ getScheduler()

ndn::Scheduler & nfd::getScheduler ( )

Returns the global Scheduler instance for the calling thread.

Definition at line 45 of file global.cpp.

◆ getSignerFromTag()

static std::optional<std::string> nfd::getSignerFromTag ( const Interest &  interest)
static

Obtain signer from a SignerTag attached to interest, if available.

Definition at line 56 of file command-authenticator.cpp.

◆ ignoreRibAndLogSections()

static void nfd::ignoreRibAndLogSections ( const std::string &  filename,
const std::string &  sectionName,
const ConfigSection section,
bool  isDryRun 
)
inlinestatic

Definition at line 118 of file nfd.cpp.

◆ makeCreateFaceResponse()

static ControlParameters nfd::makeCreateFaceResponse ( const Face face)
static

Definition at line 194 of file face-manager.cpp.

◆ makeFaceStatus()

static ndn::nfd::FaceStatus nfd::makeFaceStatus ( const Face face,
const time::steady_clock::time_point &  now 
)
static

Definition at line 370 of file face-manager.cpp.

◆ makeUpdateFaceResponse()

static ControlParameters nfd::makeUpdateFaceResponse ( const Face face)
static

Definition at line 173 of file face-manager.cpp.

◆ matchFilter()

static bool nfd::matchFilter ( const ndn::nfd::FaceQueryFilter &  filter,
const Face face 
)
static

Definition at line 429 of file face-manager.cpp.

◆ operator<<() [1/2]

std::ostream & nfd::operator<< ( std::ostream &  os,
const Network network 
)

Definition at line 82 of file network.cpp.

◆ operator<<() [2/2]

std::ostream & nfd::operator<< ( std::ostream &  os,
RibManager::SlAnnounceResult  res 
)

Definition at line 321 of file rib-manager.cpp.

◆ operator>>()

std::istream & nfd::operator>> ( std::istream &  is,
Network network 
)

Definition at line 89 of file network.cpp.

◆ printLogModules()

static void nfd::printLogModules ( std::ostream &  os)
static

Definition at line 240 of file main.cpp.

◆ printUsage()

static void nfd::printUsage ( std::ostream &  os,
const char *  programName,
const po::options_description &  opts 
)
static

Definition at line 230 of file main.cpp.

◆ setMainIoService()

void nfd::setMainIoService ( boost::asio::io_context *  mainIo)

Definition at line 77 of file global.cpp.

◆ setRibIoService()

void nfd::setRibIoService ( boost::asio::io_context *  ribIo)

Definition at line 83 of file global.cpp.

◆ updateLinkServiceOptions()

static void nfd::updateLinkServiceOptions ( Face face,
const ControlParameters &  parameters 
)
static

Definition at line 229 of file face-manager.cpp.

Variable Documentation

◆ ACTIVE_FACE_FETCH_INTERVAL

constexpr time::seconds nfd::ACTIVE_FACE_FETCH_INTERVAL = 5_min
constexpr

Definition at line 49 of file rib-manager.cpp.

◆ CFG_FORWARDER

const std::string nfd::CFG_FORWARDER = "forwarder"

Definition at line 43 of file forwarder.cpp.

◆ DEFAULT_CS_MAX_PACKETS

constexpr size_t nfd::DEFAULT_CS_MAX_PACKETS = 65536
constexpr

Definition at line 33 of file tables-config-section.cpp.

◆ g_ioCtx

thread_local std::unique_ptr<boost::asio::io_context> nfd::g_ioCtx
static

Definition at line 30 of file global.cpp.

◆ g_mainIoCtx

boost::asio::io_context* nfd::g_mainIoCtx = nullptr
static

Definition at line 32 of file global.cpp.

◆ g_ribIoCtx

boost::asio::io_context* nfd::g_ribIoCtx = nullptr
static

Definition at line 33 of file global.cpp.

◆ g_scheduler

thread_local std::unique_ptr<ndn::Scheduler> nfd::g_scheduler
static

Definition at line 31 of file global.cpp.

◆ INTERNAL_CONFIG

const std::string nfd::INTERNAL_CONFIG {"internal://nfd.conf"}

Definition at line 48 of file nfd.cpp.

◆ LOCALHOST_TOP_PREFIX

const Name nfd::LOCALHOST_TOP_PREFIX = "/localhost/nfd"

Definition at line 48 of file rib-manager.cpp.

◆ MGMT_MODULE_NAME

const std::string nfd::MGMT_MODULE_NAME = "rib"

Definition at line 47 of file rib-manager.cpp.