This class tests L4S mode. More...
Public Member Functions | |
FqPieQueueDiscL4sMode () | |
~FqPieQueueDiscL4sMode () override | |
Public Member Functions inherited from ns3::TestCase | |
TestCase (const TestCase &)=delete | |
virtual | ~TestCase () |
Destructor. | |
std::string | GetName () const |
TestCase & | operator= (const TestCase &)=delete |
Private Member Functions | |
void | AddPacket (Ptr< FqPieQueueDisc > queue, Ipv4Header hdr, uint32_t nPkt) |
Enqueue the given number of packets. | |
void | AddPacketWithDelay (Ptr< FqPieQueueDisc > queue, Ipv4Header hdr, double delay, uint32_t nPkt) |
Enqueue the given number of packets at different times. | |
void | Dequeue (Ptr< FqPieQueueDisc > queue, uint32_t nPkt) |
Dequeue the given number of packets. | |
void | DequeueWithDelay (Ptr< FqPieQueueDisc > queue, double delay, uint32_t nPkt) |
Dequeue the given number of packets at different times. | |
void | DoRun () override |
Implementation to actually run this TestCase. | |
Additional Inherited Members | |
Public Types inherited from ns3::TestCase | |
enum class | Duration { QUICK = 1 , EXTENSIVE = 2 , TAKES_FOREVER = 3 } |
How long the test takes to execute. More... | |
Static Public Attributes inherited from ns3::TestCase | |
static constexpr auto | QUICK = Duration::QUICK |
Deprecated test duration simple enums. | |
static constexpr auto | EXTENSIVE = Duration::EXTENSIVE |
static constexpr auto | TAKES_FOREVER = Duration::TAKES_FOREVER |
Protected Member Functions inherited from ns3::TestCase | |
TestCase (std::string name) | |
Constructor. | |
void | AddTestCase (TestCase *testCase, Duration duration=Duration::QUICK) |
Add an individual child TestCase to this test suite. | |
TestCase * | GetParent () const |
Get the parent of this TestCase. | |
bool | IsStatusFailure () const |
Check if any tests failed. | |
bool | IsStatusSuccess () const |
Check if all tests passed. | |
void | SetDataDir (std::string directory) |
Set the data directory where reference trace files can be found. | |
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. | |
bool | MustAssertOnFailure () const |
Check if this run should assert on failure. | |
bool | MustContinueOnFailure () const |
Check if this run should continue on failure. | |
std::string | CreateDataDirFilename (std::string filename) |
Construct the full path to a file in the data directory. | |
std::string | CreateTempDirFilename (std::string filename) |
Construct the full path to a file in a temporary directory. | |
This class tests L4S mode.
This test is divided to sub test one without hash collisions and so ECT0 and ECT1 flows are classified into different flows. Sub Test 1 70 packets are enqueued into both the flows with the delay of 0.5ms between two enqueues, and dequeued with the delay of 1ms between two dequeues. Sub Test 2 140(70 ECT0 + 70 ECT1) packets are enqueued such that ECT1 packets are enqueued at 0.5ms, 1.5ms, 2.5ms and so on, and ECT0 packets are enqueued are enqueued at 1ms, 2ms, 3ms and so on Any future classifier options (e.g. SetAssociativehash) should be disabled to prevent a hash collision on this test case.
Definition at line 881 of file fq-pie-queue-disc-test-suite.cc.
FqPieQueueDiscL4sMode::FqPieQueueDiscL4sMode | ( | ) |
Definition at line 919 of file fq-pie-queue-disc-test-suite.cc.
|
override |
Definition at line 924 of file fq-pie-queue-disc-test-suite.cc.
|
private |
Enqueue the given number of packets.
queue | The queue disc. |
hdr | The IPv4 header. |
nPkt | The number of packets. |
Definition at line 929 of file fq-pie-queue-disc-test-suite.cc.
References ns3::Create().
Referenced by AddPacketWithDelay(), and DoRun().
|
private |
Enqueue the given number of packets at different times.
queue | The queue disc. |
hdr | The IPv4 header. |
delay | The time between two consecutive enqueue operations. |
nPkt | The number of packets. |
Definition at line 941 of file fq-pie-queue-disc-test-suite.cc.
References AddPacket(), ns3::Simulator::Schedule(), and ns3::Seconds().
Referenced by DoRun().
|
private |
Dequeue the given number of packets.
queue | The queue disc. |
nPkt | The number of packets. |
Definition at line 958 of file fq-pie-queue-disc-test-suite.cc.
Referenced by DequeueWithDelay().
|
private |
Dequeue the given number of packets at different times.
queue | The queue disc. |
delay | The time between two consecutive dequeue operations. |
nPkt | The number of packets. |
Definition at line 967 of file fq-pie-queue-disc-test-suite.cc.
References Dequeue(), ns3::Simulator::Schedule(), and ns3::Seconds().
Referenced by DoRun().
|
overrideprivatevirtual |
Implementation to actually run this TestCase.
Subclasses should override this method to conduct their tests.
Implements ns3::TestCase.
Definition at line 980 of file fq-pie-queue-disc-test-suite.cc.
References AddPacket(), AddPacketWithDelay(), ns3::PieQueueDisc::CE_THRESHOLD_EXCEEDED_MARK, ns3::CreateObjectWithAttributes(), DequeueWithDelay(), ns3::Simulator::Destroy(), ns3::Ipv4Header::ECN_ECT0, ns3::Ipv4Header::ECN_ECT1, ns3::MilliSeconds(), NS_TEST_EXPECT_MSG_EQ, ns3::Simulator::Run(), ns3::Simulator::Schedule(), ns3::Seconds(), ns3::Ipv4Header::SetDestination(), ns3::Ipv4Header::SetEcn(), ns3::Ipv4Header::SetPayloadSize(), ns3::Ipv4Header::SetProtocol(), ns3::Ipv4Header::SetSource(), ns3::Simulator::Stop(), ns3::PieQueueDisc::UNFORCED_DROP, and ns3::PieQueueDisc::UNFORCED_MARK.