19 #ifndef TCP_RATE_OPS_H    20 #define TCP_RATE_OPS_H    22 #include "ns3/object.h"    23 #include "ns3/tcp-tx-item.h"    24 #include "ns3/traced-callback.h"    25 #include "ns3/data-rate.h"    26 #include "ns3/traced-value.h"    92                                     const uint32_t retransOut) = 0;
   113                                                 bool is_sack_reneg, uint32_t priorInFlight,
   114                                                 const Time &minRtt) = 0;
   198                                     const uint32_t retransOut) 
override;
   199   virtual const TcpRateSample & 
GenerateSample (uint32_t delivered, uint32_t lost,
   200                                                 bool is_sack_reneg, uint32_t priorInFlight,
   201                                                 const Time &minRtt) 
override;
   241 std::ostream & 
operator<< (std::ostream & os, TcpRateLinux::TcpRateSample 
const & sample);
   257 bool operator== (TcpRateLinux::TcpRateSample 
const & lhs, TcpRateLinux::TcpRateSample 
const & rhs);
 Simulation virtual time values and global simulation resolution. 
Time m_sendElapsed
Send time interval calculated from the most recent packet delivered. 
virtual const TcpRateConnection & GetConnectionRate() override
Interface for all operations that involve a Rate monitoring for TCP. 
static TypeId GetTypeId(void)
Get the type ID. 
uint32_t m_priorDelivered
The delivered count of the most recent packet delivered. 
Forward calls to a chain of Callback. 
Time m_ackElapsed
ACK time interval calculated from the most recent packet delivered. 
Linux management and generation of Rate information for TCP. 
uint32_t m_priorInFlight
The value if bytes in flight prior to last received ack. 
TracedCallback< const TcpRateSample & > m_rateSampleTrace
Rate Sample trace. 
bool IsValid() const
Is the sample valid? 
uint32_t m_txItemDelivered
The value of delivered when the acked item was sent. 
bool m_isAppLimited
Indicates whether the rate sample is application-limited. 
TcpRateConnection m_rate
Rate information. 
Time m_priorTime
The delivered time of the most recent packet delivered. 
TcpRateSample m_rateSample
Rate sample (continuosly updated) 
Class for representing data rates. 
std::ostream & operator<<(std::ostream &os, const Angles &a)
virtual void CalculateAppLimited(uint32_t cWnd, uint32_t in_flight, uint32_t segmentSize, const SequenceNumber32 &tailSeq, const SequenceNumber32 &nextTx, const uint32_t lostOut, const uint32_t retransOut)=0
If a gap is detected between sends, it means we are app-limited. 
virtual ~TcpRateLinux() override
Item that encloses the application packet and some flags for it. 
void(* TcpRateUpdated)(const TcpRateConnection &rate)
TracedCallback signature for tcp rate update events. 
void(* TcpRateSampleUpdated)(const TcpRateSample &sample)
TracedCallback signature for tcp rate sample update events. 
int32_t m_delivered
The amount of data marked as delivered over the sampling interval. 
virtual const TcpRateSample & GenerateSample(uint32_t delivered, uint32_t lost, bool is_sack_reneg, uint32_t priorInFlight, const Time &minRtt) override
Generate a TcpRateSample to feed a congestion avoidance algorithm. 
virtual void SkbDelivered(TcpTxItem *skb)=0
Update the Rate information after an item is received. 
DataRate m_deliveryRate
The delivery rate sample. 
Every class exported by the ns3 library is enclosed in the ns3 namespace. 
Time m_rateInterval
The value of interval considered to calculate delivery rate. 
bool m_rateAppLimited
Was sample was taken when data is app limited? 
uint32_t m_ackedSacked
The amount of data acked and sacked in the last received ack. 
static TypeId GetTypeId(void)
Get the type ID. 
Time m_interval
The length of the sampling interval. 
uint32_t m_appLimited
The index of the last transmitted packet marked as application-limited. 
Information about the connection rate. 
TracedCallback< const TcpRateConnection & > m_rateTrace
Rate trace. 
uint64_t m_delivered
The total amount of data in bytes delivered so far. 
virtual const TcpRateConnection & GetConnectionRate()=0
virtual void CalculateAppLimited(uint32_t cWnd, uint32_t in_flight, uint32_t segmentSize, const SequenceNumber32 &tailSeq, const SequenceNumber32 &nextTx, const uint32_t lostOut, const uint32_t retransOut) override
If a gap is detected between sends, it means we are app-limited. 
virtual void SkbSent(TcpTxItem *skb, bool isStartOfTransmission) override
Put the rate information inside the sent skb. 
Time Seconds(double value)
Construct a Time in the indicated unit. 
bool operator==(const EventId &a, const EventId &b)
virtual const TcpRateSample & GenerateSample(uint32_t delivered, uint32_t lost, bool is_sack_reneg, uint32_t priorInFlight, const Time &minRtt)=0
Generate a TcpRateSample to feed a congestion avoidance algorithm. 
Time m_firstSentTime
The send time of the packet that was most recently marked as delivered. 
virtual void SkbDelivered(TcpTxItem *skb) override
Update the Rate information after an item is received. 
A base class which provides memory management and object aggregation. 
int32_t m_rateDelivered
The amount of data delivered considered to calculate delivery rate. 
a unique identifier for an interface. 
void(* DataRate)(DataRate oldValue, DataRate newValue)
TracedValue callback signature for DataRate. 
uint32_t m_bytesLoss
The amount of data marked as lost from the most recent ack received. 
Time m_deliveredTime
Simulator time when m_delivered was last updated. 
virtual void SkbSent(TcpTxItem *skb, bool isStartOfTransmission)=0
Put the rate information inside the sent skb.