26 #ifndef NDN_RTT_ESTIMATOR_H
27 #define NDN_RTT_ESTIMATOR_H
30 #include "ns3/sequence-number.h"
31 #include "ns3/nstime.h"
32 #include "ns3/object.h"
45 RttHistory (SequenceNumber32 s, uint32_t c, Time t);
54 typedef std::deque<RttHistory> RttHistory_t;
63 static TypeId GetTypeId (
void);
70 virtual TypeId GetInstanceTypeId (
void)
const;
77 virtual void SentSeq (SequenceNumber32 seq, uint32_t size);
84 virtual Time
AckSeq (SequenceNumber32 ackSeq);
103 virtual Ptr<RttEstimator> Copy ()
const = 0;
118 virtual void Reset ();
157 SequenceNumber32 m_next;
158 uint16_t m_maxMultiplier;
159 Time m_initialEstimatedRtt;
162 Time m_currentEstimatedRtt;
166 uint16_t m_multiplier;
167 RttHistory_t m_history;
virtual Time RetransmitTimeout()=0
Returns the estimated RTO.
void SetCurrentEstimate(Time estimate)
Sets the current RTT estimate (forcefully).
virtual void SentSeq(SequenceNumber32 seq, uint32_t size)
Note that a particular sequence has been sent.
virtual void ClearSent()
Clear all history entries.
Time GetMaxRto(void) const
Get the Maximum RTO.
Helper class to store RTT measurements.
Time GetCurrentEstimate(void) const
gets the current RTT estimate.
void SetMinRto(Time minRto)
Sets the Minimum RTO.
virtual void Reset()
Resets the estimation to its initial state.
Base class for all RTT Estimators.
virtual void Measurement(Time t)=0
Add a new measurement to the estimator.
virtual Time AckSeq(SequenceNumber32 ackSeq)
Note that a particular ack sequence has been received.
virtual void IncreaseMultiplier()
Increase the estimation multiplier up to MaxMultiplier.
void SetMaxRto(Time maxRto)
Sets the Maximum RTO.
virtual void ResetMultiplier()
Resets the estimation multiplier to 1.
Time GetMinRto(void) const
Get the Minimum RTO.