23 #include "ns3/rtt-estimator.h"
60 virtual void RttTrace (
Time oldTime,
Time newTime);
63 virtual void ConfigureEnvironment ();
76 m_enableTs (enableTs),
79 m_pktCount (pktCount),
87 TcpGeneralTest::ConfigureEnvironment ();
133 "Default Estimate for the RTT");
158 "A retransmission is not flagged as such");
163 "Incorrectly flagging seq as retransmission");
169 "A retransmission is not flagged as such");
206 uint32_t pktCount, std::vector<uint32_t> toDrop);
218 std::vector<uint32_t> toDrop)
230 std::vector<uint32_t>::iterator it;
262 std::vector<uint32_t> toDrop;
263 toDrop.push_back (501);
266 " some data, with retr",
270 " some data, with retr",
274 toDrop.push_back (501);
276 " some data, with retr",
280 " some data, with retr",
284 toDrop.push_back (54001);
285 toDrop.push_back (58001);
286 toDrop.push_back (58501);
287 toDrop.push_back (60001);
288 toDrop.push_back (68501);
290 " a lot of data, with retr",
291 false, 1000, toDrop),
294 " a lot of data, with retr",
TcpRttEstimationTest(const std::string &desc, bool enableTs, uint32_t pktCount)
Constructor.
virtual void ConfigureEnvironment()
Change the configuration of the environment.
bool m_enableTs
Enable TimeStamp option.
SequenceNumber32 m_highestTxSeq
Highest sequence number sent.
uint32_t m_pktCount
Packet counter.
bool m_rttChanged
True if RTT has changed.
virtual void RttTrace(Time oldTime, Time newTime)
virtual Ptr< TcpSocketMsgBase > CreateSenderSocket(Ptr< Node > node)
Create and install the socket to install on the sender.
virtual void UpdatedRttHistory(const SequenceNumber32 &seq, uint32_t sz, bool isRetransmission, SocketWho who)
virtual void Tx(const Ptr< const Packet > p, const TcpHeader &h, SocketWho who)
Packet transmitted down to IP layer.
virtual Ptr< TcpSocketMsgBase > CreateReceiverSocket(Ptr< Node > node)
Create and install the socket to install on the receiver.
virtual void Rx(const Ptr< const Packet > p, const TcpHeader &h, SocketWho who)
Packet received from IP layer.
void FinalChecks()
Performs the (eventual) final checks through test asserts.
uint32_t m_dataCount
Data counter.
TCP RTT estimation TestSuite.
TcpRttEstimationTestSuite()
Check Rtt calculations with packet losses.
Ptr< ErrorModel > CreateReceiverErrorModel()
Create and return the error model to install in the receiver node.
TcpRttEstimationWithLossTest(const std::string &desc, bool enableTs, uint32_t pktCount, std::vector< uint32_t > toDrop)
Constructor.
std::vector< uint32_t > m_toDrop
Packets to drop.
AttributeValue implementation for Boolean.
Smart pointer class similar to boost::intrusive_ptr.
General infrastructure for TCP testing.
Ptr< RttEstimator > GetRttEstimator(SocketWho who)
Get the Rtt estimator of the socket.
void SetPropagationDelay(Time propDelay)
Propagation delay of the bottleneck link.
void SetAppPktCount(uint32_t pktCount)
Set app packet count.
SocketWho
Used as parameter of methods, specifies on what node the caller is interested (e.g.
void SetMTU(uint32_t mtu)
MTU of the bottleneck link.
void SetTransmitStart(Time startTime)
Set the initial time at which the application sends the first data packet.
void AddSeqToKill(const SequenceNumber32 &seq)
Add the sequence number to the list of segments to be killed.
void AddTestCase(TestCase *testCase, TestDuration duration=QUICK)
Add an individual child TestCase to this test suite.
@ UNIT
This test suite implements a Unit Test.
Simulation virtual time values and global simulation resolution.
double GetSeconds(void) const
Get an approximation of the time stored in this instance in the indicated unit.
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
#define NS_LOG_DEBUG(msg)
Use NS_LOG to output a message of level LOG_DEBUG.
#define NS_TEST_ASSERT_MSG_EQ(actual, limit, msg)
Test that an actual and expected (limit) value are equal and report and abort if not.
#define NS_TEST_ASSERT_MSG_NE(actual, limit, msg)
Test that an actual and expected (limit) value are not equal and report and abort if not.
Time Seconds(double value)
Construct a Time in the indicated unit.
Time MilliSeconds(uint64_t value)
Construct a Time in the indicated unit.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
static TcpRttEstimationTestSuite g_tcpRttEstimationTestSuite
Static variable for test initialization.