26 #ifndef NFD_DAEMON_FW_ASF_MEASUREMENTS_HPP 27 #define NFD_DAEMON_FW_ASF_MEASUREMENTS_HPP 40 typedef time::duration<double, boost::micro>
Rtt;
73 computeSrtt(Rtt previousSrtt, Rtt currentRtt);
84 static const double ALPHA;
95 class Error :
public std::runtime_error
100 :
std::runtime_error(what)
115 m_measurementExpirationId = id;
121 return m_measurementExpirationId;
125 cancelTimeoutEvent(
const Name& prefix);
130 return m_isTimeoutScheduled;
134 recordRtt(
const shared_ptr<pit::Entry>& pitEntry,
const Face& inFace);
148 return m_rttStats.computeRto();
154 return m_rttStats.getRtt();
160 return m_rttStats.getSrtt();
171 cancelTimeoutEvent();
174 doesNameMatchLastInterest(
const Name&
name);
178 Name m_lastInterestName;
185 bool m_isTimeoutScheduled;
216 extendFaceInfoLifetime(
FaceInfo& info,
const Face& face);
221 if (m_fit.find(faceId) != m_fit.end()) {
222 return &m_fit.at(faceId);
232 return m_fit.find(faceId);
244 const auto& pair = m_fit.insert(std::make_pair(faceId,
FaceInfo()));
251 return m_isProbingDue;
257 m_isProbingDue = isProbingDue;
263 return m_hasFirstProbeBeenScheduled;
269 m_hasFirstProbeBeenScheduled = hasBeenScheduled;
276 bool m_hasFirstProbeBeenScheduled;
297 getNamespaceInfo(
const Name& prefix);
307 static constexpr time::microseconds MEASUREMENTS_LIFETIME = time::seconds(300);
310 MeasurementsAccessor& m_measurements;
317 #endif // NFD_DAEMON_FW_ASF_MEASUREMENTS_HPP time::microseconds Duration
Helper class to retrieve and create strategy measurements.
RttEstimator::Duration computeRto() const
bool isTimeoutScheduled() const
void setMeasurementExpirationEventId(const scheduler::EventId &id)
void addRttMeasurement(RttEstimator::Duration &durationRtt)
Error(const std::string &what)
RttStats::Rtt getSrtt() const
const scheduler::EventId & getMeasurementExpirationEventId()
Duration computeRto() const
represents an Interest packet
stores stategy information about each face in this namespace
static const Rtt RTT_TIMEOUT
FaceInfoTable::iterator end()
represents a Measurements entry
Table::const_iterator iterator
std::shared_ptr< ns3::EventId > EventId
RttStats::Rtt getRtt() const
Copyright (c) 2011-2015 Regents of the University of California.
bool isProbingDue() const
static constexpr int getTypeId()
void setHasFirstProbeBeenScheduled(bool hasBeenScheduled)
FaceInfoTable::iterator find(nfd::face::FaceId faceId)
void setIsProbingDue(bool isProbingDue)
static const Rtt RTT_NO_MEASUREMENT
Represents an absolute name.
RttEstimator::Duration computeRto() const
Strategy information for each face in a namespace.
const FaceInfoTable::iterator insert(nfd::face::FaceId faceId)
implements the Mean-Deviation RTT estimator
bool hasSrttMeasurement() const
uint64_t FaceId
identifies a face
bool isFirstProbeScheduled() const
contains arbitrary information forwarding strategy places on table entries
time::duration< double, boost::micro > Rtt
std::unordered_map< face::FaceId, FaceInfo > FaceInfoTable