Test for Block Ack Policy with aggregation disabled. More...
Classes | |
struct | TxopDurationTracer |
Keeps the maximum duration among all TXOPs. More... | |
Public Member Functions | |
BlockAckAggregationDisabledTest () | |
virtual | ~BlockAckAggregationDisabledTest () |
virtual void | DoRun (void) |
Implementation to actually run this TestCase. More... | |
![]() | |
virtual | ~TestCase () |
Destructor. More... | |
std::string | GetName (void) const |
Private Member Functions | |
void | L7Receive (std::string context, Ptr< const Packet > p, const Address &adr) |
Function to trace packets received by the server application. More... | |
void | Receive (std::string context, Ptr< const Packet > p) |
Callback invoked when PHY receives a packet. More... | |
void | Transmit (std::string context, Ptr< const Packet > p, double power) |
Callback invoked when PHY transmits a packet. More... | |
Private Attributes | |
uint16_t | m_nBa |
received BlockAck frames More... | |
uint16_t | m_nBar |
transmitted BlockAckReq frames More... | |
uint32_t | m_received |
received packets More... | |
uint16_t | m_txTotal |
transmitted data packets 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... | |
Test for Block Ack Policy with aggregation disabled.
This test aims to check the Block Ack policy with "legacy" 802.11, i.e., prior to aggregation (802.11n). The block ack threshold is set to 2, hence a block ack agreement is established when there are at least two packets in the EDCA queue. Consequently, the first packet is sent with Normal Ack policy (because a BA agreement has not been established yet), while all other packets are sent with Block Ack policy and followed by a Block Ack Request and then a Block Ack.
Definition at line 335 of file block-ack-test-suite.cc.
BlockAckAggregationDisabledTest::BlockAckAggregationDisabledTest | ( | ) |
Definition at line 390 of file block-ack-test-suite.cc.
|
virtual |
Definition at line 399 of file block-ack-test-suite.cc.
|
virtual |
Implementation to actually run this TestCase.
Subclasses should override this method to conduct their tests.
Implements ns3::TestCase.
Definition at line 442 of file block-ack-test-suite.cc.
References ns3::ListPositionAllocator::Add(), ns3::Node::AddApplication(), third::apDevices, third::channel, ns3::Config::Connect(), ns3::NodeContainer::Create(), ns3::NodeContainer::Get(), ns3::WifiNetDevice::GetAddress(), ns3::WifiNetDevice::GetMac(), ns3::PacketSocketHelper::Install(), L7Receive(), m_nBa, m_nBar, m_received, m_txTotal, third::mac, ns3::MakeCallback(), ns3::MicroSeconds(), third::mobility, NS_TEST_EXPECT_MSG_EQ, third::phy, Receive(), ns3::Seconds(), ns3::ObjectBase::SetAttribute(), ns3::PacketSocketServer::SetLocal(), ns3::PacketSocketAddress::SetPhysicalAddress(), ns3::PacketSocketAddress::SetProtocol(), ns3::PacketSocketClient::SetRemote(), ns3::PacketSocketAddress::SetSingleDevice(), ns3::Application::SetStartTime(), ns3::Application::SetStopTime(), third::ssid, third::staDevices, Transmit(), third::wifi, ns3::WIFI_PHY_STANDARD_80211a, and third::wifiApNode.
|
private |
Function to trace packets received by the server application.
context | the context |
p | the packet |
adr | the address |
Definition at line 404 of file block-ack-test-suite.cc.
References ns3::Packet::GetSize(), and m_received.
Referenced by DoRun().
|
private |
Callback invoked when PHY receives a packet.
context | the context |
p | the packet |
Definition at line 430 of file block-ack-test-suite.cc.
References ns3::WifiMacHeader::IsBlockAck(), m_nBa, and ns3::Packet::PeekHeader().
Referenced by DoRun().
|
private |
Callback invoked when PHY transmits a packet.
context | the context |
p | the packet |
power | the tx power |
Definition at line 413 of file block-ack-test-suite.cc.
References ns3::WifiMacHeader::IsBlockAckReq(), ns3::WifiMacHeader::IsQosBlockAck(), ns3::WifiMacHeader::IsQosData(), m_nBar, m_txTotal, NS_TEST_EXPECT_MSG_EQ, and ns3::Packet::PeekHeader().
Referenced by DoRun().
|
private |
received BlockAck frames
Definition at line 357 of file block-ack-test-suite.cc.
|
private |
transmitted BlockAckReq frames
Definition at line 356 of file block-ack-test-suite.cc.
Referenced by DoRun(), and Transmit().
|
private |
received packets
Definition at line 354 of file block-ack-test-suite.cc.
Referenced by DoRun(), and L7Receive().
|
private |
transmitted data packets
Definition at line 355 of file block-ack-test-suite.cc.
Referenced by DoRun(), and Transmit().