Rate Sample structure. More...
#include "tcp-rate-ops.h"
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. | |
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.
|
inline |
Is the sample valid?
Definition at line 148 of file tcp-rate-ops.h.
References ns3::Time::IsZero(), m_interval, and m_priorTime.
uint32_t ns3::TcpRateOps::TcpRateSample::m_ackedSacked {0} |
The amount of data acked and sacked in the last received ack.
Definition at line 142 of file tcp-rate-ops.h.
Referenced by ns3::TcpRateLinux::GenerateSample(), ns3::TcpBbr::ModulateCwndForRecovery(), ns3::operator<<(), TcpRateLinuxWithBufferTest::RateSampleUpdatedTrace(), TcpRateLinuxWithSocketsTest::RateSampleUpdatedTrace(), ns3::TcpBbr::SetCwnd(), and ns3::TcpBbr::UpdateAckAggregation().
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().
uint32_t ns3::TcpRateOps::TcpRateSample::m_bytesLoss |
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<<().
int32_t ns3::TcpRateOps::TcpRateSample::m_delivered |
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().
The delivery rate sample.
Definition at line 130 of file tcp-rate-ops.h.
Referenced by ns3::TcpRateLinux::GenerateSample(), ns3::operator<<(), ns3::operator==(), and ns3::TcpBbr::UpdateBottleneckBandwidth().
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().
bool ns3::TcpRateOps::TcpRateSample::m_isAppLimited {false} |
Indicates whether the rate sample is application-limited.
Definition at line 131 of file tcp-rate-ops.h.
Referenced by ns3::TcpBbr::CheckFullPipe(), ns3::TcpRateLinux::GenerateSample(), ns3::TcpBbr::HandleRestartFromIdle(), ns3::operator<<(), ns3::operator==(), ns3::TcpRateLinux::SkbDelivered(), and ns3::TcpBbr::UpdateBottleneckBandwidth().
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().
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<<().
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().
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().