ASF Probing Module. More...
#include <asf-probing-module.hpp>
Public Member Functions | |
ProbingModule (AsfMeasurements &measurements) | |
void | scheduleProbe (const fib::Entry &fibEntry, time::milliseconds interval) |
Face * | getFaceToProbe (const Face &inFace, const Interest &interest, const fib::Entry &fibEntry, const Face &faceUsed) |
bool | isProbingNeeded (const fib::Entry &fibEntry, const Name &interestName) |
void | afterForwardingProbe (const fib::Entry &fibEntry, const Name &interestName) |
void | setProbingInterval (size_t probingInterval) |
time::milliseconds | getProbingInterval () const |
Static Public Attributes | |
static constexpr time::milliseconds | DEFAULT_PROBING_INTERVAL = 1_min |
static constexpr time::milliseconds | MIN_PROBING_INTERVAL = 1_s |
ASF Probing Module.
Definition at line 37 of file asf-probing-module.hpp.
|
explicit |
Definition at line 42 of file asf-probing-module.cpp.
void nfd::fw::asf::ProbingModule::scheduleProbe | ( | const fib::Entry & | fibEntry, |
time::milliseconds | interval | ||
) |
Definition at line 49 of file asf-probing-module.cpp.
References Face, nfd::fw::asf::AsfMeasurements::getNamespaceInfo(), nfd::fib::Entry::getPrefix(), nfd::getScheduler(), info, and nfd::fw::asf::NamespaceInfo::setIsProbingDue().
Referenced by afterForwardingProbe(), and isProbingNeeded().
Face * nfd::fw::asf::ProbingModule::getFaceToProbe | ( | const Face & | inFace, |
const Interest & | interest, | ||
const fib::Entry & | fibEntry, | ||
const Face & | faceUsed | ||
) |
Definition at line 67 of file asf-probing-module.cpp.
References Face, nfd::fw::asf::AsfMeasurements::getFaceInfo(), nfd::fw::asf::FaceInfo::getLastRtt(), ndn::Interest::getName(), nfd::fib::Entry::getNextHops(), info, nfd::fw::asf::FaceInfo::RTT_NO_MEASUREMENT, and nfd::fw::wouldViolateScope().
Referenced by nfd::fw::asf::AsfStrategy::afterReceiveNack().
bool nfd::fw::asf::ProbingModule::isProbingNeeded | ( | const fib::Entry & | fibEntry, |
const Name & | interestName | ||
) |
Definition at line 103 of file asf-probing-module.cpp.
References nfd::fw::asf::AsfMeasurements::getOrCreateNamespaceInfo(), ndn::random::getRandomNumberEngine(), info, nfd::fw::asf::NamespaceInfo::isFirstProbeScheduled(), nfd::fw::asf::NamespaceInfo::isProbingDue(), scheduleProbe(), and nfd::fw::asf::NamespaceInfo::setIsFirstProbeScheduled().
Referenced by nfd::fw::asf::AsfStrategy::afterReceiveNack().
void nfd::fw::asf::ProbingModule::afterForwardingProbe | ( | const fib::Entry & | fibEntry, |
const Name & | interestName | ||
) |
Definition at line 121 of file asf-probing-module.cpp.
References Face, nfd::fw::asf::AsfMeasurements::getOrCreateNamespaceInfo(), ndn::random::getRandomNumberEngine(), info, NDN_CXX_UNREACHABLE, scheduleProbe(), and nfd::fw::asf::NamespaceInfo::setIsProbingDue().
Referenced by nfd::fw::asf::AsfStrategy::afterReceiveNack().
void nfd::fw::asf::ProbingModule::setProbingInterval | ( | size_t | probingInterval | ) |
Definition at line 174 of file asf-probing-module.cpp.
References MIN_PROBING_INTERVAL, NDN_THROW, and ndn::to_string().
Referenced by nfd::fw::asf::getParamValue().
|
inline |
Definition at line 60 of file asf-probing-module.hpp.
References Face, nfd::fw::asf::FaceInfo::getSrtt(), and nfd::fw::asf::FaceInfo::hasTimeout().
Referenced by nfd::fw::asf::AsfStrategy::AsfStrategy().
|
static |
Definition at line 92 of file asf-probing-module.hpp.
|
static |
Definition at line 93 of file asf-probing-module.hpp.
Referenced by setProbingInterval().