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.