nfd::fw Namespace Reference

Namespaces

 asf
 

Classes

class  AccessStrategy
 A forwarding strategy for "access" routers. More...
 
class  AdmitAllUnsolicitedDataPolicy
 Admits all unsolicited Data. More...
 
class  AdmitLocalUnsolicitedDataPolicy
 Admits unsolicited Data from local faces. More...
 
class  AdmitNetworkUnsolicitedDataPolicy
 Admits unsolicited Data from non-local faces. More...
 
class  BestRouteStrategy
 "Best route" forwarding strategy. More...
 
class  DropAllUnsolicitedDataPolicy
 Drops all unsolicited Data. More...
 
class  MulticastStrategy
 A forwarding strategy that forwards Interests to all FIB nexthops. More...
 
class  ProcessNackTraits
 
class  ProcessNackTraitsBase
 Provides a common procedure for processing Nacks. More...
 
class  RandomStrategy
 A forwarding strategy that randomly chooses a nexthop. More...
 
class  RetxSuppressionExponential
 A retransmission suppression decision algorithm that suppresses retransmissions using exponential backoff. More...
 
class  RetxSuppressionFixed
 A retransmission suppression decision algorithm that suppresses retransmissions within a fixed duration. More...
 
class  SelfLearningStrategy
 Self-learning forwarding strategy. More...
 
class  Strategy
 Base class of all forwarding strategies. More...
 
class  StrategyInfo
 Contains arbitrary information placed by the forwarding strategy on table entries. More...
 
class  StrategyParameters
 
class  UnsolicitedDataPolicy
 Determines how to process an unsolicited Data packet. More...
 

Typedefs

using DefaultUnsolicitedDataPolicy = DropAllUnsolicitedDataPolicy
 The default UnsolicitedDataPolicy. More...
 

Enumerations

enum  DuplicateNonceWhere {
  DUPLICATE_NONCE_NONE = 0 ,
  DUPLICATE_NONCE_IN_SAME = (1 << 0) ,
  DUPLICATE_NONCE_IN_OTHER = (1 << 1) ,
  DUPLICATE_NONCE_OUT_SAME = (1 << 2) ,
  DUPLICATE_NONCE_OUT_OTHER = (1 << 3)
}
 Indicates where duplicate Nonces are found. More...
 
enum class  RetxSuppressionResult {
  NEW ,
  FORWARD ,
  SUPPRESS
}
 
enum class  UnsolicitedDataDecision {
  DROP ,
  CACHE
}
 Decision made by UnsolicitedDataPolicy. More...
 

Functions

int findDuplicateNonce (const pit::Entry &pitEntry, Interest::Nonce nonce, const Face &face)
 Determine whether pitEntry has duplicate Nonce nonce. More...
 
fib::NextHopList::const_iterator findEligibleNextHopWithEarliestOutRecord (const Face &inFace, const Interest &interest, const fib::NextHopList &nexthops, const shared_ptr< pit::Entry > &pitEntry)
 Pick an eligible NextHop with earliest out-record. More...
 
time::steady_clock::time_point getLastOutgoing (const pit::Entry &pitEntry)
 
bool hasPendingOutRecords (const pit::Entry &pitEntry)
 Determine whether pitEntry has any pending out-records. More...
 
bool isNextHopEligible (const Face &inFace, const Interest &interest, const fib::NextHop &nexthop, const shared_ptr< pit::Entry > &pitEntry, bool wantUnused=false, time::steady_clock::time_point now=time::steady_clock::time_point::min())
 Determines whether a NextHop is eligible, i.e., not the same inFace. More...
 
 NFD_REGISTER_STRATEGY (SelfLearningStrategy)
 
std::ostream & operator<< (std::ostream &os, UnsolicitedDataDecision d)
 
bool wouldViolateScope (const Face &inFace, const Interest &interest, const Face &outFace)
 Determine whether forwarding the Interest in pitEntry to outFace would violate scope. More...
 

Variables

static class nfd::fw::NfdAutoAccessStrategyStrategyRegistrationClass g_nfdAutoAccessStrategyStrategyRegistrationVariable
 
static class nfd::fw::NfdAutoAdmitAllUnsolicitedDataPolicyUnsolicitedDataPolicyRegistrationClass g_nfdAutoAdmitAllUnsolicitedDataPolicyUnsolicitedDataPolicyRegistrationVariable
 
static class nfd::fw::NfdAutoAdmitLocalUnsolicitedDataPolicyUnsolicitedDataPolicyRegistrationClass g_nfdAutoAdmitLocalUnsolicitedDataPolicyUnsolicitedDataPolicyRegistrationVariable
 
static class nfd::fw::NfdAutoAdmitNetworkUnsolicitedDataPolicyUnsolicitedDataPolicyRegistrationClass g_nfdAutoAdmitNetworkUnsolicitedDataPolicyUnsolicitedDataPolicyRegistrationVariable
 
static class nfd::fw::NfdAutoBestRouteStrategyStrategyRegistrationClass g_nfdAutoBestRouteStrategyStrategyRegistrationVariable
 
static class nfd::fw::NfdAutoDropAllUnsolicitedDataPolicyUnsolicitedDataPolicyRegistrationClass g_nfdAutoDropAllUnsolicitedDataPolicyUnsolicitedDataPolicyRegistrationVariable
 
static class nfd::fw::NfdAutoMulticastStrategyStrategyRegistrationClass g_nfdAutoMulticastStrategyStrategyRegistrationVariable
 
static class nfd::fw::NfdAutoRandomStrategyStrategyRegistrationClass g_nfdAutoRandomStrategyStrategyRegistrationVariable
 
constexpr time::milliseconds ROUTE_RENEW_LIFETIME = 10_min
 

Typedef Documentation

◆ DefaultUnsolicitedDataPolicy

Enumeration Type Documentation

◆ DuplicateNonceWhere

Indicates where duplicate Nonces are found.

Enumerator
DUPLICATE_NONCE_NONE 

no duplicate Nonce is found

DUPLICATE_NONCE_IN_SAME 

in-record of same face

DUPLICATE_NONCE_IN_OTHER 

in-record of other face

DUPLICATE_NONCE_OUT_SAME 

out-record of same face

DUPLICATE_NONCE_OUT_OTHER 

out-record of other face

Definition at line 46 of file algorithm.hpp.

◆ RetxSuppressionResult

Enumerator
NEW 

Interest is new (not a retransmission)

FORWARD 

Interest is retransmission and should be forwarded.

SUPPRESS 

Interest is retransmission and should be suppressed.

Definition at line 33 of file retx-suppression.hpp.

◆ UnsolicitedDataDecision

Decision made by UnsolicitedDataPolicy.

Enumerator
DROP 

the Data should be dropped

CACHE 

the Data should be cached in the ContentStore

Definition at line 36 of file unsolicited-data-policy.hpp.

Function Documentation

◆ findDuplicateNonce()

int nfd::fw::findDuplicateNonce ( const pit::Entry pitEntry,
Interest::Nonce  nonce,
const Face face 
)

Determine whether pitEntry has duplicate Nonce nonce.

Returns
OR'ed DuplicateNonceWhere

Definition at line 54 of file algorithm.cpp.

◆ findEligibleNextHopWithEarliestOutRecord()

fib::NextHopList::const_iterator nfd::fw::findEligibleNextHopWithEarliestOutRecord ( const Face inFace,
const Interest &  interest,
const fib::NextHopList nexthops,
const shared_ptr< pit::Entry > &  pitEntry 
)

Pick an eligible NextHop with earliest out-record.

Note
It is assumed that every nexthop has an out-record.

Definition at line 108 of file algorithm.cpp.

◆ getLastOutgoing()

time::steady_clock::time_point nfd::fw::getLastOutgoing ( const pit::Entry pitEntry)
Returns
last out-record time
Precondition
pitEntry has one or more unexpired out-records

Definition at line 95 of file algorithm.cpp.

◆ hasPendingOutRecords()

bool nfd::fw::hasPendingOutRecords ( const pit::Entry pitEntry)

Determine whether pitEntry has any pending out-records.

Returns
true if there is at least one out-record waiting for Data

Definition at line 84 of file algorithm.cpp.

◆ isNextHopEligible()

bool nfd::fw::isNextHopEligible ( const Face inFace,
const Interest &  interest,
const fib::NextHop nexthop,
const shared_ptr< pit::Entry > &  pitEntry,
bool  wantUnused = false,
time::steady_clock::time_point  now = time::steady_clock::time_point::min() 
)

Determines whether a NextHop is eligible, i.e., not the same inFace.

Parameters
inFaceincoming face of current Interest
interestincoming Interest
nexthopnext hop
pitEntryPIT entry
wantUnusedif true, NextHop must not have unexpired out-record
nowthe current time, ignored if wantUnused == false

Definition at line 130 of file algorithm.cpp.

◆ NFD_REGISTER_STRATEGY()

nfd::fw::NFD_REGISTER_STRATEGY ( SelfLearningStrategy  )

◆ operator<<()

std::ostream & nfd::fw::operator<< ( std::ostream &  os,
UnsolicitedDataDecision  d 
)

Definition at line 33 of file unsolicited-data-policy.cpp.

◆ wouldViolateScope()

bool nfd::fw::wouldViolateScope ( const Face inFace,
const Interest &  interest,
const Face outFace 
)

Determine whether forwarding the Interest in pitEntry to outFace would violate scope.

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

Definition at line 32 of file algorithm.cpp.

Variable Documentation

◆ g_nfdAutoAccessStrategyStrategyRegistrationVariable

class nfd::fw::NfdAutoAccessStrategyStrategyRegistrationClass nfd::fw::g_nfdAutoAccessStrategyStrategyRegistrationVariable
static

◆ g_nfdAutoAdmitAllUnsolicitedDataPolicyUnsolicitedDataPolicyRegistrationVariable

class nfd::fw::NfdAutoAdmitAllUnsolicitedDataPolicyUnsolicitedDataPolicyRegistrationClass nfd::fw::g_nfdAutoAdmitAllUnsolicitedDataPolicyUnsolicitedDataPolicyRegistrationVariable
static

◆ g_nfdAutoAdmitLocalUnsolicitedDataPolicyUnsolicitedDataPolicyRegistrationVariable

class nfd::fw::NfdAutoAdmitLocalUnsolicitedDataPolicyUnsolicitedDataPolicyRegistrationClass nfd::fw::g_nfdAutoAdmitLocalUnsolicitedDataPolicyUnsolicitedDataPolicyRegistrationVariable
static

◆ g_nfdAutoAdmitNetworkUnsolicitedDataPolicyUnsolicitedDataPolicyRegistrationVariable

class nfd::fw::NfdAutoAdmitNetworkUnsolicitedDataPolicyUnsolicitedDataPolicyRegistrationClass nfd::fw::g_nfdAutoAdmitNetworkUnsolicitedDataPolicyUnsolicitedDataPolicyRegistrationVariable
static

◆ g_nfdAutoBestRouteStrategyStrategyRegistrationVariable

class nfd::fw::NfdAutoBestRouteStrategyStrategyRegistrationClass nfd::fw::g_nfdAutoBestRouteStrategyStrategyRegistrationVariable
static

◆ g_nfdAutoDropAllUnsolicitedDataPolicyUnsolicitedDataPolicyRegistrationVariable

class nfd::fw::NfdAutoDropAllUnsolicitedDataPolicyUnsolicitedDataPolicyRegistrationClass nfd::fw::g_nfdAutoDropAllUnsolicitedDataPolicyUnsolicitedDataPolicyRegistrationVariable
static

◆ g_nfdAutoMulticastStrategyStrategyRegistrationVariable

class nfd::fw::NfdAutoMulticastStrategyStrategyRegistrationClass nfd::fw::g_nfdAutoMulticastStrategyStrategyRegistrationVariable
static

◆ g_nfdAutoRandomStrategyStrategyRegistrationVariable

class nfd::fw::NfdAutoRandomStrategyStrategyRegistrationClass nfd::fw::g_nfdAutoRandomStrategyStrategyRegistrationVariable
static

◆ ROUTE_RENEW_LIFETIME

constexpr time::milliseconds nfd::fw::ROUTE_RENEW_LIFETIME = 10_min
constexpr

Definition at line 44 of file self-learning-strategy.cpp.