This class tests ECN marking The test is divided into 3 sub test cases. More...
Public Member Functions | |
FqCobaltQueueDiscEcnMarking () | |
virtual | ~FqCobaltQueueDiscEcnMarking () |
![]() | |
virtual | ~TestCase () |
Destructor. More... | |
std::string | GetName (void) const |
Private Member Functions | |
void | AddPacket (Ptr< FqCobaltQueueDisc > queue, Ipv4Header hdr, u_int32_t nPkt, u_int32_t nPktEnqueued, u_int32_t nQueueFlows) |
void | Dequeue (Ptr< FqCobaltQueueDisc > queue, uint32_t nPkt) |
void | DequeueWithDelay (Ptr< FqCobaltQueueDisc > queue, double delay, uint32_t nPkt) |
virtual void | DoRun (void) |
Implementation to actually run this TestCase. More... | |
void | DropNextTracer (int64_t oldVal, int64_t newVal) |
Private Attributes | |
uint32_t | m_dropNextCount |
count the number of times m_dropNext is recalculated More... | |
Additional Inherited Members | |
![]() | |
enum | TestDuration { QUICK = 1 , EXTENSIVE = 2 , TAKES_FOREVER = 3 } |
How long the test takes to execute. More... | |
![]() | |
TestCase (std::string name) | |
Constructor. More... | |
void | AddTestCase (TestCase *testCase, TestDuration duration=QUICK) |
Add an individual child TestCase to this test suite. More... | |
TestCase * | GetParent () const |
Get the parent of this TestCsse. More... | |
bool | IsStatusFailure (void) const |
Check if any tests failed. More... | |
bool | IsStatusSuccess (void) 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 (void) const |
Check if this run should assert on failure. More... | |
bool | MustContinueOnFailure (void) 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... | |
This class tests ECN marking The test is divided into 3 sub test cases.
1) CE threshold disabled This test enqueues 100 packets in the beginning of the test and dequeues 60 (some packets are dropped too) packets with the delay of 110ms. This test checks that ECT0 packets are marked and are marked appropriately and NotECT packets are dropped.
2) CE threshold enabled. This test enqueues 100 packets in the beginning of the test and dequeues 60 packets with delay of 1ms. This test checks that the ECT0 packets are marked appropriately at CE threshold.
3) CE threshold enabled with higher queue delay. This test is similar to the 2nd sub test cases just with higher queue delay and aims to test that the packets are not marked twice Any future classifier options (e.g. SetAssociativehash) should be disabled to prevent a hash collision on this test case.
Definition at line 546 of file fq-cobalt-queue-disc-test-suite.cc.
FqCobaltQueueDiscEcnMarking::FqCobaltQueueDiscEcnMarking | ( | ) |
Definition at line 561 of file fq-cobalt-queue-disc-test-suite.cc.
References m_dropNextCount.
|
virtual |
Definition at line 567 of file fq-cobalt-queue-disc-test-suite.cc.
|
private |
Definition at line 572 of file fq-cobalt-queue-disc-test-suite.cc.
References NS_TEST_EXPECT_MSG_EQ.
Referenced by DoRun().
|
private |
Definition at line 586 of file fq-cobalt-queue-disc-test-suite.cc.
References DropNextTracer(), and ns3::MakeCallback().
Referenced by DequeueWithDelay().
|
private |
Definition at line 603 of file fq-cobalt-queue-disc-test-suite.cc.
References Dequeue(), and ns3::Seconds().
Referenced by DoRun().
|
privatevirtual |
Implementation to actually run this TestCase.
Subclasses should override this method to conduct their tests.
Implements ns3::TestCase.
Definition at line 620 of file fq-cobalt-queue-disc-test-suite.cc.
References AddPacket(), DequeueWithDelay(), m_dropNextCount, Max, ns3::MilliSeconds(), NS_TEST_EXPECT_MSG_EQ, ns3::Seconds(), ns3::Ipv4Header::SetDestination(), ns3::Ipv4Header::SetEcn(), ns3::Ipv4Header::SetPayloadSize(), ns3::Ipv4Header::SetProtocol(), and ns3::Ipv4Header::SetSource().
|
private |
Definition at line 612 of file fq-cobalt-queue-disc-test-suite.cc.
References m_dropNextCount, and NS_UNUSED.
Referenced by Dequeue().
|
private |
count the number of times m_dropNext is recalculated
Definition at line 558 of file fq-cobalt-queue-disc-test-suite.cc.
Referenced by FqCobaltQueueDiscEcnMarking(), DoRun(), and DropNextTracer().