A Discrete-Event Network Simulator
API
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? More...
 

Public Attributes

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

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 139 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 161 of file tcp-rate-ops.h.

References m_interval, m_priorTime, and ns3::Seconds().

+ Here is the call graph for this function:

Member Data Documentation

◆ m_ackedSacked

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

The amount of data acked and sacked in the last received ack.

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

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

◆ m_ackElapsed

Time ns3::TcpRateOps::TcpRateSample::m_ackElapsed
Initial value:
{
Seconds(0.0)}
Time Seconds(double value)
Construct a Time in the indicated unit.
Definition: nstime.h:1326

ACK time interval calculated from the most recent packet delivered.

Definition at line 150 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 152 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 144 of file tcp-rate-ops.h.

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

◆ m_deliveryRate

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

The delivery rate sample.

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

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

◆ m_interval

Time ns3::TcpRateOps::TcpRateSample::m_interval {Seconds(0.0)}

The length of the sampling interval.

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

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

◆ 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 146 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 154 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 {Seconds(0.0)}

The delivered time of the most recent packet delivered.

Definition at line 147 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
Initial value:
{
Seconds(0.0)}

Send time interval calculated from the most recent packet delivered.

Definition at line 148 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: