Implementing window-based CCNx consumer. Adding RTO estimation.
- ContentObject increases window by 1
- NACK decreases window by 1
- TO doesn't change window
If window is zero, next packet is scheduled after 0.1*RTO
diff --git a/apps/ccnx-consumer.h b/apps/ccnx-consumer.h
index 31b4eb9..4bffbaf 100644
--- a/apps/ccnx-consumer.h
+++ b/apps/ccnx-consumer.h
@@ -27,6 +27,7 @@
#include "ns3/ccnx-name-components.h"
#include "ns3/nstime.h"
#include "ns3/data-rate.h"
+#include "ns3/rtt-estimator.h"
#include <set>
@@ -66,6 +67,8 @@
OnContentObject (const Ptr<const CcnxContentObjectHeader> &contentObject,
const Ptr<const Packet> &payload);
+ virtual void
+ OnTimeout (uint32_t sequenceNumber);
// Simulator::Schedule doesn't work with protected members???
void
@@ -127,9 +130,7 @@
Time m_retxTimer;
EventId m_retxEvent; // Event to check whether or not retransmission should be performed
- Time m_rto; ///< \brief Retransmission timeout
- Time m_rttVar; ///< \brief RTT variance
- Time m_sRtt; ///< \brief smoothed RTT
+ Ptr<RttEstimator> m_rtt;
Time m_offTime; ///< \brief Time interval between packets
CcnxNameComponents m_interestName; ///< \brief CcnxName of the Interest (use CcnxNameComponents)