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  BestRouteStrategyBase
 
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  ProcessNackTraits
 
class  ProcessNackTraitsBase
 provides a common procedure for processing Nacks 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 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  RetxSuppressionResult {
  RetxSuppressionResult::NEW,
  RetxSuppressionResult::FORWARD,
  RetxSuppressionResult::SUPPRESS
}
 
enum  UnsolicitedDataDecision {
  UnsolicitedDataDecision::DROP,
  UnsolicitedDataDecision::CACHE
}
 a decision made by UnsolicitedDataPolicy More...
 

Functions

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...
 
static 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::TimePoint getLastOutgoing (const pit::Entry &pitEntry)
 
bool hasPendingOutRecords (const pit::Entry &pitEntry)
 determine whether pitEntry has any pending out-records More...
 
static bool isNextHopEligible (const Face &inFace, const Interest &interest, const fib::NextHop &nexthop, const shared_ptr< pit::Entry > &pitEntry, bool wantUnused=false, time::steady_clock::TimePoint now=time::steady_clock::TimePoint::min())
 determines whether a NextHop is eligible More...
 
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::NfdAutoBestRouteStrategy2StrategyRegistrationClass g_nfdAutoBestRouteStrategy2StrategyRegistrationVariable
 
static class nfd::fw::NfdAutoBestRouteStrategyStrategyRegistrationClass g_nfdAutoBestRouteStrategyStrategyRegistrationVariable
 
static class nfd::fw::NfdAutoClientControlStrategyStrategyRegistrationClass g_nfdAutoClientControlStrategyStrategyRegistrationVariable
 
static class nfd::fw::NfdAutoDropAllUnsolicitedDataPolicyUnsolicitedDataPolicyRegistrationClass g_nfdAutoDropAllUnsolicitedDataPolicyUnsolicitedDataPolicyRegistrationVariable
 
static class nfd::fw::NfdAutoMulticastStrategyStrategyRegistrationClass g_nfdAutoMulticastStrategyStrategyRegistrationVariable
 
static class nfd::fw::NfdAutoNccStrategyStrategyRegistrationClass g_nfdAutoNccStrategyStrategyRegistrationVariable
 

Typedef Documentation

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

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 34 of file retx-suppression.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
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 59 of file algorithm.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 83 of file algorithm.cpp.

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

pick an eligible NextHop with earliest out-record

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

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

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

Definition at line 124 of file algorithm.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 113 of file algorithm.cpp.

static 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::TimePoint  now = time::steady_clock::TimePoint::min() 
)
inlinestatic

determines whether a NextHop is eligible

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

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

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

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

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 37 of file 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