13#include "ns3/tcp-congestion-ops.h" 
   14#include "ns3/tcp-lp.h" 
   15#include "ns3/tcp-socket-base.h" 
   45                   const std::string& name);
 
   48    void DoRun() 
override;
 
 
   62                               const std::string& name)
 
 
   87    m_state->m_rcvTimestampValue = 2;
 
   88    m_state->m_rcvTimestampEchoReply = 1;
 
   98                          "cWnd has not updated correctly");
 
 
  123                        const std::string& name);
 
  126    void DoRun() 
override;
 
 
  139                                         const std::string& name)
 
 
  157    m_state->m_rcvTimestampValue = 2;
 
  158    m_state->m_rcvTimestampEchoReply = 1;
 
  162    m_state->m_rcvTimestampValue = 14;
 
  163    m_state->m_rcvTimestampEchoReply = 4;
 
 
  192                        const std::string& name);
 
  195    void DoRun() 
override;
 
 
  208                                         const std::string& name)
 
 
  226    m_state->m_rcvTimestampValue = 2;
 
  227    m_state->m_rcvTimestampEchoReply = 1;
 
  230    m_state->m_rcvTimestampValue = 14;
 
  231    m_state->m_rcvTimestampEchoReply = 4;
 
  234    m_state->m_rcvTimestampValue = 25;
 
  235    m_state->m_rcvTimestampEchoReply = 15;
 
 
  261                                       "LP falls to New Reno if the cwd is within threshold"),
 
  269                        "LP enters Inference phase when cwd exceeds threshold for the first time"),
 
  277                        "LP reduces cWnd to 1 if cwd exceeds threshold in inference phase"),
 
 
 
Smart pointer class similar to boost::intrusive_ptr.
static void Destroy()
Execute the events scheduled with ScheduleDestroy().
static void Run()
Run the simulation.
Testing TcpLp when cwd exceeds threshold.
void DoRun() override
Implementation to actually run this TestCase.
uint32_t m_cWnd
Congestion window size.
TcpLpInferenceTest1(uint32_t cWnd, uint32_t segmentSize, uint32_t segmentsAcked, Time rtt, const std::string &name)
Constructor.
uint32_t m_segmentsAcked
Segments acked.
Ptr< TcpSocketState > m_state
TCP socket state.
uint32_t m_segmentSize
Segment size.
Testing TcpLp when it is inference phase.
uint32_t m_segmentsAcked
Segments acked.
uint32_t m_cWnd
Congestion window size.
TcpLpInferenceTest2(uint32_t cWnd, uint32_t segmentSize, uint32_t segmentsAcked, Time rtt, const std::string &name)
Constructor.
uint32_t m_segmentSize
Segment size.
void DoRun() override
Implementation to actually run this TestCase.
Ptr< TcpSocketState > m_state
TCP socket state.
Test the behaviour common to New Reno.
Testing the behaviour common to New Reno.
uint32_t m_ssThresh
Slow start threshold.
uint32_t m_segmentsAcked
Segments acked.
void DoRun() override
Implementation to actually run this TestCase.
Ptr< TcpSocketState > m_state
TCP socket state.
TcpLpToNewReno(uint32_t cWnd, uint32_t segmentSize, uint32_t segmentsAcked, uint32_t ssThresh, Time rtt, const std::string &name)
Constructor.
uint32_t m_cWnd
Congestion window size.
uint32_t m_segmentSize
Segment size.
void AddTestCase(TestCase *testCase, Duration duration=Duration::QUICK)
Add an individual child TestCase to this test suite.
TestCase(const TestCase &)=delete
@ UNIT
This test suite implements a Unit Test.
TestSuite(std::string name, Type type=Type::UNIT)
Construct a new test suite.
Simulation virtual time values and global simulation resolution.
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
Ptr< T > CreateObject(Args &&... args)
Create an object by type, with varying number of constructor parameters.
#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.
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 TcpLpTestSuite g_tcplpTest
static var for test initialization