NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.3: NDN, CCN, CCNx, content centric networks
API Documentation
nfd::fw::ClientControlStrategy Class Reference

identical to BestRouteStrategy v1, for backwards compatibility More...

#include <client-control-strategy.hpp>

Inheritance diagram for nfd::fw::ClientControlStrategy:
Collaboration diagram for nfd::fw::ClientControlStrategy:

Public Member Functions

 ClientControlStrategy (Forwarder &forwarder, const Name &name=STRATEGY_NAME)
virtual void afterReceiveInterest (const Face &inFace, const Interest &interest, const shared_ptr< pit::Entry > &pitEntry) override
 trigger after Interest is received More...
- Public Member Functions inherited from nfd::fw::BestRouteStrategy
 BestRouteStrategy (Forwarder &forwarder, const Name &name=STRATEGY_NAME)
- Public Member Functions inherited from nfd::fw::Strategy
 Strategy (Forwarder &forwarder, const Name &name)
 construct a strategy instance More...
virtual ~Strategy ()
const NamegetName () const
virtual void beforeSatisfyInterest (const shared_ptr< pit::Entry > &pitEntry, const Face &inFace, const Data &data)
 trigger before PIT entry is satisfied More...
virtual void beforeExpirePendingInterest (const shared_ptr< pit::Entry > &pitEntry)
 trigger before PIT entry expires More...
virtual void afterReceiveNack (const Face &inFace, const lp::Nack &nack, const shared_ptr< pit::Entry > &pitEntry)
 trigger after Nack is received More...

Static Public Attributes

static const Name STRATEGY_NAME
- Static Public Attributes inherited from nfd::fw::BestRouteStrategy
static const Name STRATEGY_NAME

Additional Inherited Members

- Protected Member Functions inherited from nfd::fw::Strategy
void sendInterest (const shared_ptr< pit::Entry > &pitEntry, Face &outFace, const Interest &interest)
 send Interest to outFace More...
 DEPRECATED (void sendInterest(const shared_ptr< pit::Entry > &pitEntry, Face &outFace, bool wantNewNonce=false))
 send Interest to outFace More...
void rejectPendingInterest (const shared_ptr< pit::Entry > &pitEntry)
 decide that a pending Interest cannot be forwarded More...
void sendNack (const shared_ptr< pit::Entry > &pitEntry, const Face &outFace, const lp::NackHeader &header)
 send Nack to outFace More...
void sendNacks (const shared_ptr< pit::Entry > &pitEntry, const lp::NackHeader &header, std::initializer_list< const Face *> exceptFaces=std::initializer_list< const Face *>())
 send Nack to every face that has an in-record, except those in exceptFaces More...
const fib::EntrylookupFib (const pit::Entry &pitEntry) const
 performs a FIB lookup, considering Link object if present More...
MeasurementsAccessorgetMeasurements ()
FacegetFace (FaceId id) const
const FaceTablegetFaceTable () const
- Protected Attributes inherited from nfd::fw::Strategy
signal::Signal< FaceTable, Face & > & afterAddFace
signal::Signal< FaceTable, Face & > & beforeRemoveFace

Detailed Description

identical to BestRouteStrategy v1, for backwards compatibility

NextHopFaceId field is honored universally and it's unnecessary to set this strategy

Definition at line 37 of file client-control-strategy.hpp.

Constructor & Destructor Documentation

◆ ClientControlStrategy()

nfd::fw::ClientControlStrategy::ClientControlStrategy ( Forwarder forwarder,
const Name name = STRATEGY_NAME 

Definition at line 37 of file client-control-strategy.cpp.

Member Function Documentation

◆ afterReceiveInterest()

void nfd::fw::ClientControlStrategy::afterReceiveInterest ( const Face inFace,
const Interest interest,
const shared_ptr< pit::Entry > &  pitEntry 

trigger after Interest is received

The Interest:

  • does not violate Scope
  • is not looped
  • cannot be satisfied by ContentStore
  • is under a namespace managed by this strategy

The strategy should decide whether and where to forward this Interest.

  • If the strategy decides to forward this Interest, invoke this->sendInterest one or more times, either now or shortly after
  • If strategy concludes that this Interest cannot be forwarded, invoke this->rejectPendingInterest so that PIT entry will be deleted shortly
The strategy must not retain shared_ptr<pit::Entry>, otherwise undefined behavior may occur. However, the strategy is allowed to store weak_ptr<pit::Entry>.

Reimplemented from nfd::fw::BestRouteStrategy.

Definition at line 43 of file client-control-strategy.cpp.

References nfd::fw::BestRouteStrategy::afterReceiveInterest(), and NFD_LOG_WARN.

Member Data Documentation


const Name nfd::fw::ClientControlStrategy::STRATEGY_NAME

Definition at line 48 of file client-control-strategy.hpp.

The documentation for this class was generated from the following files: