nfd::fw Namespace Reference

Namespaces

 asf
 

Classes

class  AccessStrategy
 Access Router Strategy version 1. 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 strategy version 1. More...
 
class  BestRouteStrategy2
 Best Route strategy version 4. More...
 
class  ClientControlStrategy
 identical to BestRouteStrategy v1, for backwards compatibility More...
 
class  DropAllUnsolicitedDataPolicy
 drops all unsolicited Data More...
 
class  MulticastStrategy
 a forwarding strategy that forwards Interest to all FIB nexthops More...
 
class  NccStrategy
 a forwarding strategy similar to CCNx 0.7.2 More...
 
class  RetxSuppression
 helper for consumer retransmission suppression 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  Strategy
 represents a forwarding strategy More...
 
class  StrategyInfo
 contains arbitrary information forwarding strategy places on table entries More...
 
class  UnsolicitedDataPolicy
 determines how to process an unsolicited Data More...
 

Typedefs

typedef std::function< unique_ptr< Strategy >Forwarder &)> StrategyCreateFunc
 
typedef DropAllUnsolicitedDataPolicy DefaultUnsolicitedDataPolicy
 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  UnsolicitedDataDecision { UnsolicitedDataDecision::DROP, UnsolicitedDataDecision::CACHE }
 a decision made by UnsolicitedDataPolicy More...
 

Functions

static bool predicate_NextHop_eligible (const shared_ptr< pit::Entry > &pitEntry, const fib::NextHop &nexthop, FaceId currentDownstream, bool wantUnused=false, time::steady_clock::TimePoint now=time::steady_clock::TimePoint::min())
 determines whether a NextHop is eligible More...
 
static fib::NextHopList::const_iterator findEligibleNextHopWithEarliestOutRecord (const shared_ptr< pit::Entry > &pitEntry, const fib::NextHopList &nexthops, FaceId currentDownstream)
 pick an eligible NextHop with earliest out-record More...
 
lp::NackReason compareLessSevere (lp::NackReason x, lp::NackReason y)
 
bool violatesScope (const pit::Entry &pitEntry, const Face &outFace)
 determine whether forwarding the Interest in pitEntry to outFace would violate scope More...
 
bool canForwardToLegacy (const pit::Entry &pitEntry, const Face &face)
 decide whether Interest can be forwarded to face More...
 
int findDuplicateNonce (const pit::Entry &pitEntry, uint32_t nonce, const Face &face)
 determine whether pitEntry has duplicate Nonce nonce More...
 
bool hasPendingOutRecords (const pit::Entry &pitEntry)
 determine whether pitEntry has any pending out-records More...
 
unique_ptr< StrategymakeDefaultStrategy (Forwarder &forwarder)
 
static std::map< Name, StrategyCreateFunc > & getStrategyFactories ()
 
void registerStrategyImpl (const Name &strategyName, const StrategyCreateFunc &createFunc)
 
void installStrategies (Forwarder &forwarder)
 
template<typename S >
void registerStrategy ()
 registers a strategy to be installed later More...
 
std::ostream & operator<< (std::ostream &os, UnsolicitedDataDecision d)
 

Variables

static class nfd::fw::NfdAutoAccessStrategyStrategyRegistrationClass g_nfdAutoAccessStrategyStrategyRegistrationVariable
 
static class nfd::fw::NfdAutoBestRouteStrategyStrategyRegistrationClass g_nfdAutoBestRouteStrategyStrategyRegistrationVariable
 
static class nfd::fw::NfdAutoBestRouteStrategy2StrategyRegistrationClass g_nfdAutoBestRouteStrategy2StrategyRegistrationVariable
 
static class nfd::fw::NfdAutoClientControlStrategyStrategyRegistrationClass g_nfdAutoClientControlStrategyStrategyRegistrationVariable
 
static class nfd::fw::NfdAutoMulticastStrategyStrategyRegistrationClass g_nfdAutoMulticastStrategyStrategyRegistrationVariable
 
static class nfd::fw::NfdAutoNccStrategyStrategyRegistrationClass g_nfdAutoNccStrategyStrategyRegistrationVariable
 
static class nfd::fw::NfdAutoDropAllUnsolicitedDataPolicyUnsolicitedDataPolicyRegistrationClass g_nfdAutoDropAllUnsolicitedDataPolicyUnsolicitedDataPolicyRegistrationVariable
 
static class nfd::fw::NfdAutoAdmitLocalUnsolicitedDataPolicyUnsolicitedDataPolicyRegistrationClass g_nfdAutoAdmitLocalUnsolicitedDataPolicyUnsolicitedDataPolicyRegistrationVariable
 
static class nfd::fw::NfdAutoAdmitNetworkUnsolicitedDataPolicyUnsolicitedDataPolicyRegistrationClass g_nfdAutoAdmitNetworkUnsolicitedDataPolicyUnsolicitedDataPolicyRegistrationVariable
 
static class nfd::fw::NfdAutoAdmitAllUnsolicitedDataPolicyUnsolicitedDataPolicyRegistrationClass g_nfdAutoAdmitAllUnsolicitedDataPolicyUnsolicitedDataPolicyRegistrationVariable
 

Typedef Documentation

typedef std::function<unique_ptr<Strategy>Forwarder&)> nfd::fw::StrategyCreateFunc

Definition at line 46 of file strategy-registry.hpp.

Enumeration Type Documentation

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 94 of file pit-algorithm.hpp.

a 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

bool nfd::fw::canForwardToLegacy ( const pit::Entry pitEntry,
const Face &  face 
)

decide whether Interest can be forwarded to face

Returns
true if out-record of this face does not exist or has expired, and there is an in-record not of this face, and scope is not violated
Note
This algorithm has a weakness that it does not permit consumer retransmissions before out-record expires. Therefore, it's not recommended to use this function in new strategies.
Todo:
find a better name for this function

Definition at line 60 of file pit-algorithm.cpp.

lp::NackReason nfd::fw::compareLessSevere ( lp::NackReason  x,
lp::NackReason  y 
)
inline
Returns
less severe NackReason between x and y

lp::NackReason::NONE is treated as most severe

Definition at line 175 of file best-route-strategy2.cpp.

int nfd::fw::findDuplicateNonce ( const pit::Entry pitEntry,
uint32_t  nonce,
const Face &  face 
)

determine whether pitEntry has duplicate Nonce nonce

Returns
OR'ed DuplicateNonceWhere

Definition at line 84 of file pit-algorithm.cpp.

static fib::NextHopList::const_iterator nfd::fw::findEligibleNextHopWithEarliestOutRecord ( const shared_ptr< pit::Entry > &  pitEntry,
const fib::NextHopList nexthops,
FaceId  currentDownstream 
)
inlinestatic

pick an eligible NextHop with earliest out-record

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

Definition at line 87 of file best-route-strategy2.cpp.

static std::map<Name, StrategyCreateFunc>& nfd::fw::getStrategyFactories ( )
static

Definition at line 39 of file strategy-registry.cpp.

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 114 of file pit-algorithm.cpp.

void nfd::fw::installStrategies ( Forwarder forwarder)

Definition at line 52 of file strategy-registry.cpp.

unique_ptr< Strategy > nfd::fw::makeDefaultStrategy ( Forwarder forwarder)

Definition at line 33 of file strategy-registry.cpp.

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

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

static bool nfd::fw::predicate_NextHop_eligible ( const shared_ptr< pit::Entry > &  pitEntry,
const fib::NextHop nexthop,
FaceId  currentDownstream,
bool  wantUnused = false,
time::steady_clock::TimePoint  now = time::steady_clock::TimePoint::min() 
)
inlinestatic

determines whether a NextHop is eligible

Parameters
pitEntryPIT entry
nexthopnext hop
currentDownstreamincoming FaceId of current Interest
wantUnusedif true, NextHop must not have unexpired out-record
nowtime::steady_clock::now(), ignored if !wantUnused

Definition at line 57 of file best-route-strategy2.cpp.

template<typename S >
void nfd::fw::registerStrategy ( )

registers a strategy to be installed later

Definition at line 55 of file strategy-registry.hpp.

void nfd::fw::registerStrategyImpl ( const Name &  strategyName,
const StrategyCreateFunc createFunc 
)

Definition at line 46 of file strategy-registry.cpp.

bool nfd::fw::violatesScope ( const pit::Entry pitEntry,
const Face &  outFace 
)

determine whether forwarding the Interest in pitEntry to outFace would violate scope

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

Definition at line 37 of file pit-algorithm.cpp.

Variable Documentation

class nfd::fw::NfdAutoAccessStrategyStrategyRegistrationClass nfd::fw::g_nfdAutoAccessStrategyStrategyRegistrationVariable
static
class nfd::fw::NfdAutoAdmitAllUnsolicitedDataPolicyUnsolicitedDataPolicyRegistrationClass nfd::fw::g_nfdAutoAdmitAllUnsolicitedDataPolicyUnsolicitedDataPolicyRegistrationVariable
static
class nfd::fw::NfdAutoAdmitLocalUnsolicitedDataPolicyUnsolicitedDataPolicyRegistrationClass nfd::fw::g_nfdAutoAdmitLocalUnsolicitedDataPolicyUnsolicitedDataPolicyRegistrationVariable
static
class nfd::fw::NfdAutoAdmitNetworkUnsolicitedDataPolicyUnsolicitedDataPolicyRegistrationClass nfd::fw::g_nfdAutoAdmitNetworkUnsolicitedDataPolicyUnsolicitedDataPolicyRegistrationVariable
static
class nfd::fw::NfdAutoBestRouteStrategy2StrategyRegistrationClass nfd::fw::g_nfdAutoBestRouteStrategy2StrategyRegistrationVariable
static
class nfd::fw::NfdAutoBestRouteStrategyStrategyRegistrationClass nfd::fw::g_nfdAutoBestRouteStrategyStrategyRegistrationVariable
static
class nfd::fw::NfdAutoClientControlStrategyStrategyRegistrationClass nfd::fw::g_nfdAutoClientControlStrategyStrategyRegistrationVariable
static
class nfd::fw::NfdAutoDropAllUnsolicitedDataPolicyUnsolicitedDataPolicyRegistrationClass nfd::fw::g_nfdAutoDropAllUnsolicitedDataPolicyUnsolicitedDataPolicyRegistrationVariable
static
class nfd::fw::NfdAutoMulticastStrategyStrategyRegistrationClass nfd::fw::g_nfdAutoMulticastStrategyStrategyRegistrationVariable
static
class nfd::fw::NfdAutoNccStrategyStrategyRegistrationClass nfd::fw::g_nfdAutoNccStrategyStrategyRegistrationVariable
static