20 #include "ns3/config.h"
22 #include "ns3/simple-channel.h"
69 const std::string& desc);
72 void CWndTrace(uint32_t oldValue, uint32_t newValue)
override;
82 void ConfigureEnvironment()
override;
83 void ConfigureProperties()
override;
98 const std::string& desc)
112 TcpGeneralTest::ConfigureEnvironment();
121 TcpGeneralTest::ConfigureProperties();
146 NS_FATAL_ERROR(
"Drop on the queue; cannot validate congestion avoidance");
152 NS_FATAL_ERROR(
"Drop on the phy: cannot validate congestion avoidance");
158 uint32_t segSize =
GetSegSize(TcpGeneralTest::SENDER);
164 "Increment exceeded segment size in one RTT");
192 std::list<TypeId> types = {
193 TcpNewReno::GetTypeId(),
196 for (
const auto& t : types)
198 std::string typeName = t.
GetName();
200 for (uint32_t i = 10; i <= 50; i += 10)
206 "cong avoid MSS=500, pkt_size=500," +
213 "cong avoid MSS=500, pkt_size=1000," +
Test the behavior of RFC congestion avoidance.
void Check()
Called each RTT (1.0 sec in the testing environment) and check that the overall increment in this RTT...
uint32_t m_segmentSize
Segment size.
uint32_t m_packets
Number of packets.
EventId m_event
Check event.
void CWndTrace(uint32_t oldValue, uint32_t newValue) override
void NormalClose(SocketWho who) override
void PhyDrop(SocketWho who) override
bool m_initial
True on first run.
TcpNewRenoCongAvoidNormalTest(uint32_t segmentSize, uint32_t packetSize, uint32_t packets, const TypeId &congControl, const std::string &desc)
Constructor.
void ConfigureEnvironment() override
Change the configuration of the environment.
uint32_t m_packetSize
Size of the packets.
void ConfigureProperties() override
Change the configuration of the socket properties.
void QueueDrop(SocketWho who) override
uint32_t m_increment
Congestion window increment.
TestSuite for the behavior of RFC congestion avoidance.
TcpRenoCongAvoidTestSuite()
An identifier for simulation events.
void Cancel()
This method is syntactic sugar for the ns3::Simulator::Cancel method.
bool IsRunning() const
This method is syntactic sugar for !IsExpired().
General infrastructure for TCP testing.
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 SetAppPktSize(uint32_t pktSize)
Set app packet size.
void SetMTU(uint32_t mtu)
MTU of the bottleneck link.
uint32_t GetSegSize(SocketWho who)
Get the segment size of the node specified.
TypeId m_congControlTypeId
Congestion control.
void SetInitialSsThresh(SocketWho who, uint32_t initialSsThresh)
Forcefully set the initial ssthresh.
void SetSegmentSize(SocketWho who, uint32_t segmentSize)
Forcefully set the segment size.
void AddTestCase(TestCase *testCase, TestDuration duration=QUICK)
Add an individual child TestCase to this test suite.
std::string GetName() const
@ UNIT
This test suite implements a Unit Test.
a unique identifier for an interface.
#define NS_FATAL_ERROR(msg)
Report a fatal error with a message and terminate.
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
#define NS_TEST_ASSERT_MSG_LT_OR_EQ(actual, limit, msg)
Test that an actual value is less than or equal to a limit and report and abort if not.
Time Seconds(double value)
Construct a Time in the indicated unit.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
static TcpRenoCongAvoidTestSuite g_tcpCongAvoidNormalTest
Static variable for test initialization.
static const uint32_t packetSize
Packet size generated at the AP.