Best Route strategy version 2. More...
#include <best-route-strategy2.hpp>
Public Member Functions | |
BestRouteStrategy2 (Forwarder &forwarder, const Name &name=STRATEGY_NAME) | |
virtual void | afterReceiveInterest (const Face &inFace, const Interest &interest, shared_ptr< fib::Entry > fibEntry, shared_ptr< pit::Entry > pitEntry) 1 |
trigger after Interest is received More... | |
Public Member Functions inherited from nfd::fw::Strategy | |
Strategy (Forwarder &forwarder, const Name &name) | |
construct a strategy instance More... | |
virtual | ~Strategy () |
const Name & | getName () const |
a Name that represent the Strategy program More... | |
virtual void | beforeSatisfyInterest (shared_ptr< pit::Entry > pitEntry, const Face &inFace, const Data &data) |
trigger before PIT entry is satisfied More... | |
virtual void | beforeExpirePendingInterest (shared_ptr< pit::Entry > pitEntry) |
trigger before PIT entry expires More... | |
Static Public Attributes | |
static const Name | STRATEGY_NAME |
static const time::milliseconds | MIN_RETRANSMISSION_INTERVAL |
Additional Inherited Members | |
Protected Member Functions inherited from nfd::fw::Strategy | |
void | sendInterest (shared_ptr< pit::Entry > pitEntry, shared_ptr< Face > outFace, bool wantNewNonce=false) |
send Interest to outFace More... | |
void | rejectPendingInterest (shared_ptr< pit::Entry > pitEntry) |
decide that a pending Interest cannot be forwarded More... | |
MeasurementsAccessor & | getMeasurements () |
shared_ptr< Face > | getFace (FaceId id) |
const FaceTable & | getFaceTable () |
Protected Attributes inherited from nfd::fw::Strategy | |
signal::Signal< FaceTable, shared_ptr< Face > > & | afterAddFace |
signal::Signal< FaceTable, shared_ptr< Face > > & | beforeRemoveFace |
Best Route strategy version 2.
This strategy forwards a new Interest to the lowest-cost nexthop (except downstream). After that, it recognizes consumer retransmission: if a similar Interest arrives from any downstream after MIN_RETRANSMISSION_INTERVAL, the strategy forwards the Interest again to the lowest-cost nexthop (except downstream) that is not previously used. If all nexthops have been used, the strategy starts over.
Definition at line 42 of file best-route-strategy2.hpp.
nfd::fw::BestRouteStrategy2::BestRouteStrategy2 | ( | Forwarder & | forwarder, |
const Name & | name = STRATEGY_NAME |
||
) |
Definition at line 38 of file best-route-strategy2.cpp.
|
virtual |
trigger after Interest is received
The Interest:
The strategy should decide whether and where to forward this Interest.
Implements nfd::fw::Strategy.
Definition at line 106 of file best-route-strategy2.cpp.
References nfd::fw::compare_OutRecord_lastRenewed(), nfd::fw::findEligibleNextHopWithEarliestOutRecord(), nfd::Face::getId(), MIN_RETRANSMISSION_INTERVAL, NFD_LOG_DEBUG, nfd::fw::predicate_NextHop_eligible(), nfd::fw::Strategy::rejectPendingInterest(), and nfd::fw::Strategy::sendInterest().
|
static |
Definition at line 55 of file best-route-strategy2.hpp.
Referenced by afterReceiveInterest().
|
static |
Definition at line 54 of file best-route-strategy2.hpp.