NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.5: NDN, CCN, CCNx, content centric networks
API Documentation
nfd Namespace Reference

Copyright (c) 2011-2015 Regents of the University of California. More...

Namespaces

 cs
 
 detail
 
 ethernet
 
 face
 
 fib
 
 fw
 
 general
 
 log
 
 measurements
 
 name_tree
 
 pit
 
 rib
 
 scope_prefix
 
 strategy_choice
 
 tcp
 
 tlv
 
 udp
 
 unix_stream
 
 websocket
 

Classes

class  ByteCounter
 represents a counter of number of bytes More...
 
class  CommandAuthenticator
 Provides ControlCommand authorization according to NFD configuration file. More...
 
class  CommandAuthenticatorValidationPolicy
 a validation policy that only permits Interest signed by a trust anchor 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  NfdRunner
 Executes NFD with RIB manager. 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 'tables' config section More...
 

Typedefs

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

Functions

It find_last_if (It first, It last, Pred p)
 
std::ostream & operator<< (std::ostream &os, const Network &network)
 
std::istream & operator>> (std::istream &is, Network &network)
 
detail::SimulatorIogetGlobalIoService ()
 Returns the global io_service instance for the calling thread. More...
 
detail::SimulatorIogetMainIoService ()
 
detail::SimulatorIogetRibIoService ()
 
Scheduler & getScheduler ()
 Returns the global Scheduler instance for the calling thread. More...
 
void runOnMainIoService (const std::function< void()> &f)
 Run a function on the main io_service instance. More...
 
void runOnRibIoService (const std::function< void()> &f)
 Run a function on the RIB io_service instance. More...
 
void resetGlobalScheduler ()
 
std::ostream & operator<< (std::ostream &os, const FaceEndpoint &fe)
 
 NDN_CXX_ASSERT_FORWARD_ITERATOR (FaceTable::const_iterator)
 
static Name getDefaultStrategyName ()
 
static void printUsage (std::ostream &os, const char *programName, const po::options_description &opts)
 
static void printLogModules (std::ostream &os)
 
static optional< std::string > getSignerFromTag (const Interest &interest)
 obtain signer from SignerTag attached to Interest, if available More...
 
template<typename T >
static void copyMtu (const Face &face, T &to)
 
static ControlParameters makeUpdateFaceResponse (const Face &face)
 
static ControlParameters makeCreateFaceResponse (const Face &face)
 
static void updateLinkServiceOptions (Face &face, const ControlParameters &parameters)
 
template<typename T >
static void copyFaceProperties (const Face &face, T &to)
 
static ndn::nfd::FaceStatus makeFaceStatus (const Face &face, const time::steady_clock::time_point &now)
 
static bool matchFilter (const ndn::nfd::FaceQueryFilter &filter, const Face &face)
 
std::ostream & operator<< (std::ostream &os, RibManager::SlAnnounceResult res)
 
const std::string INTERNAL_CONFIG ("internal://nfd.conf")
 
static void ignoreRibAndLogSections (const std::string &filename, const std::string &sectionName, const ConfigSection &section, bool isDryRun)
 
void cleanupOnFaceRemoval (NameTree &nt, Fib &fib, Pit &pit, const Face &face)
 cleanup tables when a face is destroyed More...
 

Variables

static thread_local unique_ptr< Scheduler > g_scheduler
 
 PrivilegeHelper
 
 FaceTable
 
 Forwarder
 
const std::string CFG_FORWARDER = "forwarder"
 
 CommandAuthenticator
 
 FaceManager
 
 FibManager
 
 RibManager
 
static const std::string MGMT_MODULE_NAME = "rib"
 
static const Name LOCALHOST_TOP_PREFIX = "/localhost/nfd"
 
static const time::seconds ACTIVE_FACE_FETCH_INTERVAL = 5_min
 
 StrategyChoiceManager
 
const size_t DEFAULT_CS_MAX_PACKETS = 65536
 
 Nfd
 
 DeadNonceList
 

Detailed Description

Copyright (c) 2011-2015 Regents of the University of California.

contain name prefixes that affect namespace-based scope control

Copyright (c) 2014-2017, Regents of the University of California, Arizona Board of Regents, Colorado State University, University Pierre & Marie Curie, Sorbonne University, Washington University in St.

Copyright (c) 2014-2016, Regents of the University of California, Arizona Board of Regents, Colorado State University, University Pierre & Marie Curie, Sorbonne University, Washington University in St.

Copyright (c) 2014-2015, Regents of the University of California, Arizona Board of Regents, Colorado State University, University Pierre & Marie Curie, Sorbonne University, Washington University in St.

This file is part of ndnSIM. See AUTHORS for complete list of ndnSIM authors and contributors.

ndnSIM 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.

ndnSIM 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 ndnSIM, e.g., in COPYING.md file. If not, see http://www.gnu.org/licenses/.

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/.

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/.

See also
https://redmine.named-data.net/projects/nfd/wiki/ScopeControl

Typedef Documentation

◆ ConfigSection

typedef boost::property_tree::ptree nfd::ConfigSection

a config file section

Definition at line 39 of file ndn-l3-protocol.hpp.

◆ OptionalConfigSection

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

an optional config 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 config file section

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

◆ 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 config file section without a ConfigSectionHandler

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

◆ SignerTag

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

an Interest tag to indicate command signer

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

Function Documentation

◆ find_last_if()

It nfd::find_last_if ( It  first,
It  last,
Pred  p 
)

Definition at line 49 of file algorithm.hpp.

References websocketpp::http::status_code::found.

◆ operator<<() [1/3]

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

Definition at line 79 of file network.cpp.

◆ operator>>()

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

Definition at line 85 of file network.cpp.

◆ getGlobalIoService()

◆ getMainIoService()

detail::SimulatorIo & nfd::getMainIoService ( )

Definition at line 56 of file global.cpp.

Referenced by runOnMainIoService().

◆ getRibIoService()

detail::SimulatorIo & nfd::getRibIoService ( )

Definition at line 63 of file global.cpp.

Referenced by runOnRibIoService().

◆ getScheduler()

◆ runOnMainIoService()

void nfd::runOnMainIoService ( const std::function< void()> &  f)

Run a function on the main io_service instance.

Definition at line 80 of file global.cpp.

References getMainIoService(), and nfd::detail::SimulatorIo::post().

Referenced by nfd::fw::SelfLearningStrategy::afterReceiveNack().

◆ runOnRibIoService()

void nfd::runOnRibIoService ( const std::function< void()> &  f)

Run a function on the RIB io_service instance.

Definition at line 86 of file global.cpp.

References getRibIoService(), and nfd::detail::SimulatorIo::post().

Referenced by nfd::fw::SelfLearningStrategy::afterReceiveNack().

◆ resetGlobalScheduler()

void nfd::resetGlobalScheduler ( )

Definition at line 92 of file global.cpp.

Referenced by ns3::ndn::L3Protocol::DoDispose().

◆ operator<<() [2/3]

std::ostream& nfd::operator<< ( std::ostream &  os,
const FaceEndpoint fe 
)
inline

Definition at line 51 of file face-endpoint.hpp.

References nfd::FaceEndpoint::endpoint, and nfd::FaceEndpoint::face.

◆ NDN_CXX_ASSERT_FORWARD_ITERATOR()

nfd::NDN_CXX_ASSERT_FORWARD_ITERATOR ( FaceTable::const_iterator  )

◆ getDefaultStrategyName()

static Name nfd::getDefaultStrategyName ( )
static

Definition at line 48 of file forwarder.cpp.

References nfd::fw::BestRouteStrategy::getStrategyName().

Referenced by nfd::Forwarder::Forwarder().

◆ printUsage()

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

Definition at line 228 of file main.cpp.

Referenced by main().

◆ printLogModules()

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

Definition at line 238 of file main.cpp.

References ndn::make_ostream_joiner().

Referenced by main().

◆ getSignerFromTag()

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

obtain signer from SignerTag attached to Interest, if available

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

References ndn::TagHost::getTag(), and nonstd::optional_lite::nullopt.

Referenced by nfd::CommandAuthenticator::makeAuthorization().

◆ copyMtu()

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

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

References ndn::MAX_NDN_PACKET_SIZE, and nfd::face::MTU_UNLIMITED.

Referenced by makeFaceStatus(), and makeUpdateFaceResponse().

◆ makeUpdateFaceResponse()

◆ makeCreateFaceResponse()

◆ updateLinkServiceOptions()

◆ copyFaceProperties()

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

◆ makeFaceStatus()

◆ matchFilter()

◆ operator<<() [3/3]

◆ INTERNAL_CONFIG()

const std::string nfd::INTERNAL_CONFIG ( "internal://nfd.conf"  )

◆ ignoreRibAndLogSections()

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

◆ 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 31 of file cleanup.cpp.

References nfd::pit::Pit::deleteInOutRecords(), and nfd::fib::Fib::removeNextHop().

Referenced by nfd::Forwarder::Forwarder().

Variable Documentation

◆ g_scheduler

thread_local unique_ptr<Scheduler> nfd::g_scheduler
static

Definition at line 30 of file global.cpp.

Referenced by getScheduler().

◆ PrivilegeHelper

Definition at line 34 of file privilege-helper.cpp.

◆ FaceTable

Definition at line 37 of file face-table.cpp.

◆ Forwarder

Definition at line 43 of file forwarder.cpp.

◆ CFG_FORWARDER

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

Definition at line 45 of file forwarder.cpp.

Referenced by nfd::Forwarder::setConfigFile().

◆ CommandAuthenticator

◆ FaceManager

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

◆ FibManager

Definition at line 39 of file fib-manager.cpp.

◆ RibManager

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

◆ MGMT_MODULE_NAME

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

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

◆ LOCALHOST_TOP_PREFIX

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

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

◆ ACTIVE_FACE_FETCH_INTERVAL

const time::seconds nfd::ACTIVE_FACE_FETCH_INTERVAL = 5_min
static

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

◆ StrategyChoiceManager

◆ DEFAULT_CS_MAX_PACKETS

const size_t nfd::DEFAULT_CS_MAX_PACKETS = 65536

◆ Nfd

Definition at line 46 of file nfd.cpp.

◆ DeadNonceList

Definition at line 33 of file dead-nonce-list.cpp.