A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
ns3::TcpRateOps::TcpRateSample Struct Reference

Rate Sample structure. More...

#include "tcp-rate-ops.h"

+ Collaboration diagram for ns3::TcpRateOps::TcpRateSample:

Public Member Functions

bool IsValid () const
 Is the sample valid?
 

Public Attributes

uint32_t m_ackedSacked {0}
 The amount of data acked and sacked in the last received ack.
 
Time m_ackElapsed
 ACK time interval calculated from the most recent packet delivered.
 
uint32_t m_bytesLoss
 The amount of data marked as lost from the most recent ack received.
 
int32_t m_delivered
 The amount of data marked as delivered over the sampling interval.
 
DataRate m_deliveryRate {DataRate("0bps")}
 The delivery rate sample.
 
Time m_interval
 The length of the sampling interval.
 
bool m_isAppLimited {false}
 Indicates whether the rate sample is application-limited.
 
uint32_t m_priorDelivered {0}
 The delivered count of the most recent packet delivered.
 
uint32_t m_priorInFlight {0}
 The value if bytes in flight prior to last received ack.
 
Time m_priorTime
 The delivered time of the most recent packet delivered.
 
Time m_sendElapsed
 Send time interval calculated from the most recent packet delivered.
 

Detailed Description

Rate Sample structure.

A rate sample measures the number of (original/retransmitted) data packets delivered "delivered" over an interval of time "interval_us". The tcp_rate code fills in the rate sample, and congestion control modules that define a cong_control function to run at the end of ACK processing can optionally chose to consult this sample when setting cwnd and pacing rate. A sample is invalid if "delivered" or "interval_us" is negative.

Definition at line 128 of file tcp-rate-ops.h.

Member Function Documentation

◆ IsValid()

bool ns3::TcpRateOps::TcpRateSample::IsValid ( ) const
inline

Is the sample valid?

Returns
true if the sample is valid, false otherwise.

Definition at line 148 of file tcp-rate-ops.h.

References ns3::Time::IsZero(), m_interval, and m_priorTime.

+ Here is the call graph for this function:

Member Data Documentation

◆ m_ackedSacked

◆ m_ackElapsed

Time ns3::TcpRateOps::TcpRateSample::m_ackElapsed

ACK time interval calculated from the most recent packet delivered.

Definition at line 138 of file tcp-rate-ops.h.

Referenced by ns3::TcpRateLinux::GenerateSample(), ns3::operator<<(), ns3::operator==(), and ns3::TcpRateLinux::SkbDelivered().

◆ m_bytesLoss

uint32_t ns3::TcpRateOps::TcpRateSample::m_bytesLoss
Initial value:
{
0}

The amount of data marked as lost from the most recent ack received.

Definition at line 139 of file tcp-rate-ops.h.

Referenced by ns3::TcpRateLinux::GenerateSample(), ns3::TcpBbr::IsNextCyclePhase(), ns3::TcpBbr::ModulateCwndForRecovery(), and ns3::operator<<().

◆ m_delivered

int32_t ns3::TcpRateOps::TcpRateSample::m_delivered
Initial value:
{
0}

The amount of data marked as delivered over the sampling interval.

Definition at line 133 of file tcp-rate-ops.h.

Referenced by ns3::TcpBbr::CheckProbeRTT(), ns3::TcpRateLinux::GenerateSample(), ns3::operator<<(), ns3::operator==(), ns3::TcpBbr::UpdateAckAggregation(), and ns3::TcpBbr::UpdateBottleneckBandwidth().

◆ m_deliveryRate

DataRate ns3::TcpRateOps::TcpRateSample::m_deliveryRate {DataRate("0bps")}

◆ m_interval

Time ns3::TcpRateOps::TcpRateSample::m_interval

The length of the sampling interval.

Definition at line 132 of file tcp-rate-ops.h.

Referenced by ns3::TcpRateLinux::GenerateSample(), IsValid(), ns3::operator<<(), ns3::operator==(), and ns3::TcpBbr::UpdateBottleneckBandwidth().

◆ m_isAppLimited

bool ns3::TcpRateOps::TcpRateSample::m_isAppLimited {false}

◆ m_priorDelivered

uint32_t ns3::TcpRateOps::TcpRateSample::m_priorDelivered {0}

The delivered count of the most recent packet delivered.

Definition at line 135 of file tcp-rate-ops.h.

Referenced by ns3::TcpRateLinux::GenerateSample(), ns3::operator<<(), ns3::operator==(), ns3::TcpRateLinux::SkbDelivered(), and ns3::TcpBbr::UpdateRound().

◆ m_priorInFlight

uint32_t ns3::TcpRateOps::TcpRateSample::m_priorInFlight {0}

The value if bytes in flight prior to last received ack.

Definition at line 141 of file tcp-rate-ops.h.

Referenced by ns3::TcpRateLinux::GenerateSample(), ns3::TcpBbr::IsNextCyclePhase(), and ns3::operator<<().

◆ m_priorTime

Time ns3::TcpRateOps::TcpRateSample::m_priorTime

The delivered time of the most recent packet delivered.

Definition at line 136 of file tcp-rate-ops.h.

Referenced by ns3::TcpRateLinux::GenerateSample(), IsValid(), ns3::operator<<(), ns3::operator==(), and ns3::TcpRateLinux::SkbDelivered().

◆ m_sendElapsed

Time ns3::TcpRateOps::TcpRateSample::m_sendElapsed

Send time interval calculated from the most recent packet delivered.

Definition at line 137 of file tcp-rate-ops.h.

Referenced by ns3::TcpRateLinux::GenerateSample(), ns3::operator<<(), ns3::operator==(), and ns3::TcpRateLinux::SkbDelivered().


The documentation for this struct was generated from the following file: