A Discrete-Event Network Simulator
API
TcpPacingTest Class Reference

Test the behavior of TCP pacing. More...

+ Inheritance diagram for TcpPacingTest:
+ Collaboration diagram for TcpPacingTest:

Public Member Functions

 TcpPacingTest (uint32_t segmentSize, uint32_t packetSize, uint32_t packets, uint16_t pacingSsRatio, uint16_t pacingCaRatio, uint32_t ssThresh, bool paceInitialWindow, uint32_t delAckMaxCount, const TypeId &congControl, const std::string &desc)
 Constructor. More...
 
- Public Member Functions inherited from ns3::TcpGeneralTest
 TcpGeneralTest (const std::string &desc)
 TcpGeneralTest constructor. More...
 
 ~TcpGeneralTest () override
 
- Public Member Functions inherited from ns3::TestCase
 TestCase (const TestCase &)=delete
 
virtual ~TestCase ()
 Destructor. More...
 
std::string GetName () const
 
TestCaseoperator= (const TestCase &)=delete
 

Protected Member Functions

void BytesInFlightTrace (uint32_t oldValue, uint32_t newValue) override
 
void ConfigureEnvironment () override
 Change the configuration of the environment. More...
 
void ConfigureProperties () override
 Change the configuration of the socket properties. More...
 
void CWndTrace (uint32_t oldValue, uint32_t newValue) override
 
void NormalClose (SocketWho who) override
 
void PhyDrop (SocketWho who) override
 
void QueueDrop (SocketWho who) override
 
void RttTrace (Time oldTime, Time newTime) override
 
void Rx (const Ptr< const Packet > p, const TcpHeader &h, SocketWho who) override
 Packet received from IP layer. More...
 
void Tx (const Ptr< const Packet > p, const TcpHeader &h, SocketWho who) override
 Packet transmitted down to IP layer. More...
 
virtual void UpdateExpectedInterval ()
 Update the expected interval at which next packet will be sent. More...
 
- Protected Member Functions inherited from ns3::TcpGeneralTest
virtual void AfterRTOExpired (const Ptr< const TcpSocketState > tcb[[maybe_unused]], SocketWho who[[maybe_unused]])
 Rto has expired. More...
 
virtual void BeforeRTOExpired (const Ptr< const TcpSocketState > tcb[[maybe_unused]], SocketWho who[[maybe_unused]])
 Rto has expired. More...
 
virtual void BytesInFlightTrace (uint32_t oldValue[[maybe_unused]], uint32_t newValue[[maybe_unused]])
 Bytes in flight changes. More...
 
virtual void CongStateTrace (const TcpSocketState::TcpCongState_t oldValue[[maybe_unused]], const TcpSocketState::TcpCongState_t newValue[[maybe_unused]])
 State on Ack state machine changes. More...
 
virtual Ptr< SimpleChannelCreateChannel ()
 Create and return the channel installed between the two socket. More...
 
virtual Ptr< ErrorModelCreateReceiverErrorModel ()
 Create and return the error model to install in the receiver node. More...
 
virtual Ptr< TcpSocketMsgBaseCreateReceiverSocket (Ptr< Node > node)
 Create and install the socket to install on the receiver. More...
 
virtual Ptr< ErrorModelCreateSenderErrorModel ()
 Create and return the error model to install in the sender node. More...
 
virtual Ptr< TcpSocketMsgBaseCreateSenderSocket (Ptr< Node > node)
 Create and install the socket to install on the sender. More...
 
virtual Ptr< TcpSocketMsgBaseCreateSocket (Ptr< Node > node, TypeId socketType, TypeId congControl)
 Create a socket. More...
 
virtual Ptr< TcpSocketMsgBaseCreateSocket (Ptr< Node > node, TypeId socketType, TypeId congControl, TypeId recoveryAlgorithm)
 Create a socket. More...
 
virtual void CWndInflTrace (uint32_t oldValue[[maybe_unused]], uint32_t newValue[[maybe_unused]])
 Tracks the inflated congestion window changes. More...
 
virtual void CWndTrace (uint32_t oldValue[[maybe_unused]], uint32_t newValue[[maybe_unused]])
 Tracks the congestion window changes. More...
 
virtual void DataSent (uint32_t size[[maybe_unused]], SocketWho who[[maybe_unused]])
 Notifying application for sent data. More...
 
void DoConnect ()
 Scheduled at 0.0, SENDER starts the connection to RECEIVER. More...
 
void DoRun () override
 Execute the tcp test. More...
 
void DoTeardown () override
 Teardown the TCP test. More...
 
virtual void ErrorClose (SocketWho who[[maybe_unused]])
 Socket closed with an error. More...
 
virtual void FinalChecks ()
 Performs the (eventual) final checks through test asserts. More...
 
Time GetClockGranularity (SocketWho who)
 Get the clock granularity attribute. More...
 
Time GetConnTimeout (SocketWho who)
 Get the retransmission time for the SYN segments. More...
 
uint32_t GetDelAckCount (SocketWho who)
 Get the number of delayed ack (if present) More...
 
Time GetDelAckTimeout (SocketWho who)
 Get the timeout of delayed ack (if present) More...
 
uint32_t GetDupAckCount (SocketWho who)
 Get the number of dupack received. More...
 
SequenceNumber32 GetHighestTxMark (SocketWho who)
 Get the highest tx mark of the node specified. More...
 
uint32_t GetInitialCwnd (SocketWho who)
 Get the initial congestion window. More...
 
uint32_t GetInitialSsThresh (SocketWho who)
 Get the initial slow start threshold. More...
 
Time GetMinRto (SocketWho who)
 Get the minimum RTO attribute. More...
 
uint32_t GetMtu () const
 Get the MTU of the environment. More...
 
EventId GetPersistentEvent (SocketWho who)
 Get the persistent event of the selected socket. More...
 
Time GetPersistentTimeout (SocketWho who)
 Get the persistent timeout of the selected socket. More...
 
uint32_t GetPktCount () const
 Get the number of application packets. More...
 
Time GetPktInterval () const
 Get the interval to wait for each packet sent down from application to TCP. More...
 
uint32_t GetPktSize () const
 Get the application packet size. More...
 
Time GetPropagationDelay () const
 Get the channel Propagation Delay. More...
 
Ptr< TcpSocketMsgBaseGetReceiverSocket ()
 Get the pointer to a previously created receiver socket. More...
 
uint32_t GetReTxThreshold (SocketWho who)
 Get the retransmission threshold. More...
 
Time GetRto (SocketWho who)
 Get the retransmission time. More...
 
Ptr< RttEstimatorGetRttEstimator (SocketWho who)
 Get the Rtt estimator of the socket. More...
 
uint32_t GetRWnd (SocketWho who)
 Get the rWnd of the selected socket. More...
 
Ptr< TcpRxBufferGetRxBuffer (SocketWho who)
 Get the Rx buffer from selected socket. More...
 
uint32_t GetSegSize (SocketWho who)
 Get the segment size of the node specified. More...
 
Ptr< TcpSocketMsgBaseGetSenderSocket ()
 Get the pointer to a previously created sender socket. More...
 
Time GetStartTime () const
 Get the data start time. More...
 
Ptr< TcpSocketStateGetTcb (SocketWho who)
 Get the TCB from selected socket. More...
 
TcpSocket::TcpStates_t GetTcpState (SocketWho who)
 Get the state of the TCP state machine. More...
 
Ptr< TcpTxBufferGetTxBuffer (SocketWho who)
 Get the Tx buffer from selected socket. More...
 
virtual void HighestTxSeqTrace (SequenceNumber32 oldValue[[maybe_unused]], SequenceNumber32 newValue[[maybe_unused]])
 Highest tx seq changes. More...
 
virtual void NextTxSeqTrace (SequenceNumber32 oldValue[[maybe_unused]], SequenceNumber32 newValue[[maybe_unused]])
 Next tx seq changes. More...
 
virtual void NormalClose (SocketWho who[[maybe_unused]])
 Socket closed normally. More...
 
virtual void PhyDrop (SocketWho who[[maybe_unused]])
 Link drop. More...
 
virtual void ProcessedAck (const Ptr< const TcpSocketState > tcb[[maybe_unused]], const TcpHeader &h[[maybe_unused]], SocketWho who[[maybe_unused]])
 Processed ack. More...
 
virtual void QueueDrop (SocketWho who[[maybe_unused]])
 Drop on the queue. More...
 
virtual void RateSampleUpdatedTrace (const TcpRateLinux::TcpRateSample &sample[[maybe_unused]])
 Track the rate sample value of TcpRateLinux. More...
 
virtual void RateUpdatedTrace (const TcpRateLinux::TcpRateConnection &rate[[maybe_unused]])
 Track the rate value of TcpRateLinux. More...
 
virtual void RcvAck (const Ptr< const TcpSocketState > tcb[[maybe_unused]], const TcpHeader &h[[maybe_unused]], SocketWho who[[maybe_unused]])
 Received ack. More...
 
virtual void ReceivePacket (Ptr< Socket > socket)
 Packet received. More...
 
virtual void RtoTrace (Time oldValue[[maybe_unused]], Time newValue[[maybe_unused]])
 RTO changes. More...
 
virtual void RttTrace (Time oldTime[[maybe_unused]], Time newTime[[maybe_unused]])
 Rtt changes. More...
 
void SendPacket (Ptr< Socket > socket, uint32_t pktSize, uint32_t pktCount, Time pktInterval)
 Send packets to other endpoint. More...
 
void SetAppPktCount (uint32_t pktCount)
 Set app packet count. More...
 
void SetAppPktInterval (Time pktInterval)
 Interval between app-generated packet. More...
 
void SetAppPktSize (uint32_t pktSize)
 Set app packet size. More...
 
void SetCongestionControl (TypeId congControl)
 Congestion control of the sender socket. More...
 
void SetDelAckMaxCount (SocketWho who, uint32_t count)
 Forcefully set the delayed acknowledgement count. More...
 
void SetInitialCwnd (SocketWho who, uint32_t initialCwnd)
 Forcefully set the initial cwnd. More...
 
void SetInitialSsThresh (SocketWho who, uint32_t initialSsThresh)
 Forcefully set the initial ssthresh. More...
 
void SetMTU (uint32_t mtu)
 MTU of the bottleneck link. More...
 
void SetPaceInitialWindow (SocketWho who, bool paceWindow)
 Enable or disable pacing of the initial window. More...
 
void SetPacingStatus (SocketWho who, bool pacing)
 Enable or disable pacing in the TCP socket. More...
 
void SetPropagationDelay (Time propDelay)
 Propagation delay of the bottleneck link. More...
 
void SetRcvBufSize (SocketWho who, uint32_t size)
 Forcefully set a defined size for rx buffer. More...
 
void SetRecoveryAlgorithm (TypeId recovery)
 recovery algorithm of the sender socket More...
 
void SetSegmentSize (SocketWho who, uint32_t segmentSize)
 Forcefully set the segment size. More...
 
void SetTransmitStart (Time startTime)
 Set the initial time at which the application sends the first data packet. More...
 
void SetUseEcn (SocketWho who, TcpSocketState::UseEcn_t useEcn)
 Forcefully set the ECN mode of use. More...
 
virtual void SsThreshTrace (uint32_t oldValue[[maybe_unused]], uint32_t newValue[[maybe_unused]])
 Slow start threshold changes. More...
 
virtual void UpdatedRttHistory (const SequenceNumber32 &seq[[maybe_unused]], uint32_t sz[[maybe_unused]], bool isRetransmission[[maybe_unused]], SocketWho who[[maybe_unused]])
 Updated the Rtt history. More...
 
- Protected Member Functions inherited from ns3::TestCase
 TestCase (std::string name)
 Constructor. More...
 
void AddTestCase (TestCase *testCase, TestDuration duration=QUICK)
 Add an individual child TestCase to this test suite. More...
 
TestCaseGetParent () const
 Get the parent of this TestCase. More...
 
bool IsStatusFailure () const
 Check if any tests failed. More...
 
bool IsStatusSuccess () const
 Check if all tests passed. More...
 
void SetDataDir (std::string directory)
 Set the data directory where reference trace files can be found. More...
 
void ReportTestFailure (std::string cond, std::string actual, std::string limit, std::string message, std::string file, int32_t line)
 Log the failure of this TestCase. More...
 
bool MustAssertOnFailure () const
 Check if this run should assert on failure. More...
 
bool MustContinueOnFailure () const
 Check if this run should continue on failure. More...
 
std::string CreateDataDirFilename (std::string filename)
 Construct the full path to a file in the data directory. More...
 
std::string CreateTempDirFilename (std::string filename)
 Construct the full path to a file in a temporary directory. More...
 

Private Attributes

uint32_t m_bytesInFlight
 Current bytes in flight. More...
 
uint32_t m_curCwnd
 Current sender cWnd. More...
 
uint32_t m_delAckMaxCount
 Delayed ack count for receiver. More...
 
EventId m_event
 Check event. More...
 
Time m_expectedInterval
 Theoretical estimate of the time at which next packet is scheduled for transmission. More...
 
bool m_initial
 True on first run. More...
 
uint32_t m_initialCwnd
 Initial value of cWnd. More...
 
bool m_isConnAboutToEnd
 True when sender receives a FIN/ACK from receiver. More...
 
bool m_isFullCwndSent
 True if all bytes for that cWnd is sent and sender is waiting for an ACK. More...
 
Time m_nextPacketInterval
 Time maintained by Tx () trace about interval at which next packet will be sent. More...
 
bool m_paceInitialWindow
 True if initial window should be paced. More...
 
uint16_t m_pacingCaRatio
 Pacing factor during Congestion Avoidance. More...
 
uint16_t m_pacingSsRatio
 Pacing factor during Slow Start. More...
 
uint32_t m_packets
 Number of packets. More...
 
uint32_t m_packetSize
 Size of the packets. More...
 
uint32_t m_packetsSent
 Number of packets sent by sender so far. More...
 
Time m_prevTxTime
 Time when Tx was previously called. More...
 
uint32_t m_segmentSize
 Segment size. More...
 
uint32_t m_ssThresh
 Slow start threshold. More...
 
Time m_tracedRtt
 Traced value of RTT, which may be different from the environment RTT in case of delayed ACKs. More...
 
Time m_transmissionStartTime
 Time at which sender starts data transmission. More...
 

Additional Inherited Members

- Public Types inherited from ns3::TcpGeneralTest
enum  SocketWho { SENDER , RECEIVER }
 Used as parameter of methods, specifies on what node the caller is interested (e.g. More...
 
- Public Types inherited from ns3::TestCase
enum  TestDuration { QUICK = 1 , EXTENSIVE = 2 , TAKES_FOREVER = 3 }
 How long the test takes to execute. More...
 
- Protected Attributes inherited from ns3::TcpGeneralTest
TypeId m_congControlTypeId
 Congestion control. More...
 
TypeId m_recoveryTypeId
 Recovery. More...
 

Detailed Description

Test the behavior of TCP pacing.

This test checks that packets are paced at correct intervals. The test uses a shadow pacing rate calculation assumed to match the internal pacing calculation. Therefore, if you modify the values of pacingSsRatio and pacingCaRatio herein, ensure that you also change values used in the TCP implementation to match.

This test environment uses an RTT of 100ms The time interval between two consecutive packet transmissions is measured Pacing rate should be at least cwnd / rtt to transmit cwnd segments per rtt. Linux multiples this basic ratio by an additional factor, to yield pacingRate = (factor * cwnd) / rtt Since pacingRate can also be written as segmentSize / interval we can solve for interval = (segmentSize * rtt) / (factor * cwnd)

The test checks whether the measured interval lies within a tolerance value of the expected interval. The tolerance or error margin was chosen to be 10 Nanoseconds, that could be due to delay introduced by the application's send process.

This check should not be performed for a packet transmission after the sender has sent all bytes corresponding to the window and is awaiting an ACK from the receiver (corresponding to m_isFullCwndSent). Pacing check should be performed when the sender is actively sending packets from cwnd.

The same argument applies when the sender has finished sending packets and is awaiting a FIN/ACK from the receiver, to send the final ACK

As can be seen in TcpSocketBase::UpdatePacingRate (), different pacing ratios are used when cwnd < ssThresh / 2 and when cwnd > ssThresh / 2

A few key points to note:

  • In TcpSocketBase, pacing rate is updated whenever an ACK is received.
  • The factors that could contribute to a different value of pacing rate include congestion window and RTT.
  • However, the cWnd trace is called after Rx () trace and we therefore update the expected interval in cWnd trace.
  • An RTT trace is also necessary, since using delayed ACKs may lead to a higher RTT measurement at the sender's end. The expected interval should be updated here as well.
  • When sending the current packet, TcpSocketBase automatically decides the time at which next packet should be sent. So, if say packet 3 is sent and an ACK is received before packet 4 is sent (thus updating the pacing rate), this does not change the time at which packet 4 is to be sent. When packet 4 is indeed sent later, the new pacing rate is used to decide when packet 5 will be sent. This behavior is captured in m_nextPacketInterval, which is not affected by change of pacing rate before the next packet is sent. The important observation here is to realize the contrast between m_expectedInterval and m_nextPacketInterval.

Definition at line 89 of file tcp-pacing-test.cc.

Constructor & Destructor Documentation

◆ TcpPacingTest()

TcpPacingTest::TcpPacingTest ( uint32_t  segmentSize,
uint32_t  packetSize,
uint32_t  packets,
uint16_t  pacingSsRatio,
uint16_t  pacingCaRatio,
uint32_t  ssThresh,
bool  paceInitialWindow,
uint32_t  delAckMaxCount,
const TypeId congControl,
const std::string &  desc 
)

Constructor.

Parameters
segmentSizeSegment size at the TCP layer (bytes).
packetSizeSize of packets sent at the application layer (bytes).
packetsNumber of packets.
pacingSsRatioPacing Ratio during Slow Start (multiplied by 100)
pacingCaRatioPacing Ratio during Congestion Avoidance (multiplied by 100)
ssThreshslow start threshold (bytes)
paceInitialWindowwhether to pace the initial window
delAckMaxCountDelayed ACK max count parameter
congControlType of congestion control.
descThe test description.

Definition at line 162 of file tcp-pacing-test.cc.

References ns3::TcpGeneralTest::m_congControlTypeId.

Member Function Documentation

◆ BytesInFlightTrace()

void TcpPacingTest::BytesInFlightTrace ( uint32_t  oldValue,
uint32_t  newValue 
)
overrideprotected

Definition at line 247 of file tcp-pacing-test.cc.

References m_bytesInFlight.

◆ ConfigureEnvironment()

void TcpPacingTest::ConfigureEnvironment ( )
overrideprotectedvirtual

◆ ConfigureProperties()

◆ CWndTrace()

void TcpPacingTest::CWndTrace ( uint32_t  oldValue,
uint32_t  newValue 
)
overrideprotected

Definition at line 233 of file tcp-pacing-test.cc.

References m_curCwnd, m_initial, NS_LOG_FUNCTION, and UpdateExpectedInterval().

+ Here is the call graph for this function:

◆ NormalClose()

void TcpPacingTest::NormalClose ( SocketWho  who)
overrideprotected

Definition at line 358 of file tcp-pacing-test.cc.

References ns3::EventId::Cancel(), m_event, and ns3::TcpGeneralTest::SENDER.

+ Here is the call graph for this function:

◆ PhyDrop()

void TcpPacingTest::PhyDrop ( SocketWho  who)
overrideprotected

Definition at line 352 of file tcp-pacing-test.cc.

References NS_FATAL_ERROR.

◆ QueueDrop()

void TcpPacingTest::QueueDrop ( SocketWho  who)
overrideprotected

Definition at line 346 of file tcp-pacing-test.cc.

References NS_FATAL_ERROR.

◆ RttTrace()

void TcpPacingTest::RttTrace ( Time  oldTime,
Time  newTime 
)
overrideprotected

Definition at line 225 of file tcp-pacing-test.cc.

References m_tracedRtt, NS_LOG_FUNCTION, and UpdateExpectedInterval().

+ Here is the call graph for this function:

◆ Rx()

void TcpPacingTest::Rx ( const Ptr< const Packet p,
const TcpHeader h,
SocketWho  who 
)
overrideprotectedvirtual

Packet received from IP layer.

Parameters
ppacket
hheader
whothe socket which has received the packet (SENDER or RECEIVER)

Reimplemented from ns3::TcpGeneralTest.

Definition at line 280 of file tcp-pacing-test.cc.

References ns3::TcpHeader::GetFlags(), m_isConnAboutToEnd, NS_LOG_DEBUG, and ns3::TcpGeneralTest::SENDER.

+ Here is the call graph for this function:

◆ Tx()

void TcpPacingTest::Tx ( const Ptr< const Packet p,
const TcpHeader h,
SocketWho  who 
)
overrideprotectedvirtual

Packet transmitted down to IP layer.

Parameters
ppacket
hheader
whothe socket which has received the packet (SENDER or RECEIVER)

Reimplemented from ns3::TcpGeneralTest.

Definition at line 301 of file tcp-pacing-test.cc.

References ns3::Time::GetSeconds(), m_bytesInFlight, m_curCwnd, m_expectedInterval, m_isConnAboutToEnd, m_isFullCwndSent, m_nextPacketInterval, m_packetsSent, m_prevTxTime, m_segmentSize, ns3::NanoSeconds(), ns3::Now(), NS_LOG_DEBUG, NS_LOG_FUNCTION, NS_TEST_ASSERT_MSG_LT_OR_EQ, and ns3::TcpGeneralTest::SENDER.

+ Here is the call graph for this function:

◆ UpdateExpectedInterval()

void TcpPacingTest::UpdateExpectedInterval ( )
protectedvirtual

Update the expected interval at which next packet will be sent.

Definition at line 253 of file tcp-pacing-test.cc.

References ns3::TcpGeneralTest::GetPropagationDelay(), ns3::Time::GetSeconds(), m_curCwnd, m_expectedInterval, m_initialCwnd, m_paceInitialWindow, m_pacingCaRatio, m_pacingSsRatio, m_segmentSize, m_ssThresh, m_tracedRtt, and ns3::Seconds().

Referenced by CWndTrace(), and RttTrace().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ m_bytesInFlight

uint32_t TcpPacingTest::m_bytesInFlight
private

Current bytes in flight.

Definition at line 144 of file tcp-pacing-test.cc.

Referenced by BytesInFlightTrace(), and Tx().

◆ m_curCwnd

uint32_t TcpPacingTest::m_curCwnd
private

Current sender cWnd.

Definition at line 141 of file tcp-pacing-test.cc.

Referenced by CWndTrace(), Tx(), and UpdateExpectedInterval().

◆ m_delAckMaxCount

uint32_t TcpPacingTest::m_delAckMaxCount
private

Delayed ack count for receiver.

Definition at line 150 of file tcp-pacing-test.cc.

Referenced by ConfigureProperties().

◆ m_event

EventId TcpPacingTest::m_event
private

Check event.

Definition at line 138 of file tcp-pacing-test.cc.

Referenced by NormalClose().

◆ m_expectedInterval

Time TcpPacingTest::m_expectedInterval
private

Theoretical estimate of the time at which next packet is scheduled for transmission.

Definition at line 153 of file tcp-pacing-test.cc.

Referenced by Tx(), and UpdateExpectedInterval().

◆ m_initial

bool TcpPacingTest::m_initial
private

True on first run.

Definition at line 139 of file tcp-pacing-test.cc.

Referenced by CWndTrace().

◆ m_initialCwnd

uint32_t TcpPacingTest::m_initialCwnd
private

Initial value of cWnd.

Definition at line 140 of file tcp-pacing-test.cc.

Referenced by ConfigureProperties(), and UpdateExpectedInterval().

◆ m_isConnAboutToEnd

bool TcpPacingTest::m_isConnAboutToEnd
private

True when sender receives a FIN/ACK from receiver.

Definition at line 151 of file tcp-pacing-test.cc.

Referenced by Rx(), and Tx().

◆ m_isFullCwndSent

bool TcpPacingTest::m_isFullCwndSent
private

True if all bytes for that cWnd is sent and sender is waiting for an ACK.

Definition at line 142 of file tcp-pacing-test.cc.

Referenced by Tx().

◆ m_nextPacketInterval

Time TcpPacingTest::m_nextPacketInterval
private

Time maintained by Tx () trace about interval at which next packet will be sent.

Definition at line 156 of file tcp-pacing-test.cc.

Referenced by Tx().

◆ m_paceInitialWindow

bool TcpPacingTest::m_paceInitialWindow
private

True if initial window should be paced.

Definition at line 149 of file tcp-pacing-test.cc.

Referenced by ConfigureProperties(), and UpdateExpectedInterval().

◆ m_pacingCaRatio

uint16_t TcpPacingTest::m_pacingCaRatio
private

Pacing factor during Congestion Avoidance.

Definition at line 147 of file tcp-pacing-test.cc.

Referenced by UpdateExpectedInterval().

◆ m_pacingSsRatio

uint16_t TcpPacingTest::m_pacingSsRatio
private

Pacing factor during Slow Start.

Definition at line 146 of file tcp-pacing-test.cc.

Referenced by UpdateExpectedInterval().

◆ m_packets

uint32_t TcpPacingTest::m_packets
private

Number of packets.

Definition at line 137 of file tcp-pacing-test.cc.

Referenced by ConfigureEnvironment().

◆ m_packetSize

uint32_t TcpPacingTest::m_packetSize
private

Size of the packets.

Definition at line 136 of file tcp-pacing-test.cc.

Referenced by ConfigureEnvironment().

◆ m_packetsSent

uint32_t TcpPacingTest::m_packetsSent
private

Number of packets sent by sender so far.

Definition at line 155 of file tcp-pacing-test.cc.

Referenced by Tx().

◆ m_prevTxTime

Time TcpPacingTest::m_prevTxTime
private

Time when Tx was previously called.

Definition at line 145 of file tcp-pacing-test.cc.

Referenced by Tx().

◆ m_segmentSize

uint32_t TcpPacingTest::m_segmentSize
private

Segment size.

Definition at line 135 of file tcp-pacing-test.cc.

Referenced by ConfigureProperties(), Tx(), and UpdateExpectedInterval().

◆ m_ssThresh

uint32_t TcpPacingTest::m_ssThresh
private

Slow start threshold.

Definition at line 148 of file tcp-pacing-test.cc.

Referenced by ConfigureProperties(), and UpdateExpectedInterval().

◆ m_tracedRtt

Time TcpPacingTest::m_tracedRtt
private

Traced value of RTT, which may be different from the environment RTT in case of delayed ACKs.

Definition at line 158 of file tcp-pacing-test.cc.

Referenced by RttTrace(), and UpdateExpectedInterval().

◆ m_transmissionStartTime

Time TcpPacingTest::m_transmissionStartTime
private

Time at which sender starts data transmission.

Definition at line 152 of file tcp-pacing-test.cc.


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