Ampdu Aggregation Test. More...
Classes | |
struct | Params |
Test parameters. More... | |
Public Member Functions | |
AmpduAggregationTest () | |
AmpduAggregationTest (const std::string &name, const Params ¶ms) | |
Construct object with non-default test parameters. | |
Public Member Functions inherited from ns3::TestCase | |
TestCase (const TestCase &)=delete | |
virtual | ~TestCase () |
Destructor. | |
std::string | GetName () const |
TestCase & | operator= (const TestCase &)=delete |
Protected Member Functions | |
void | DequeueMpdus (const std::vector< Ptr< WifiMpdu > > &mpduList) |
Dequeue a PSDU. | |
void | EnqueuePkts (std::size_t count, uint32_t size, const Mac48Address &dest) |
Enqueue the given number of packets addressed to the given station and of the given size. | |
void | EstablishAgreement (const Mac48Address &recipient) |
Establish a BlockAck agreement. | |
Ptr< QosTxop > | GetBeQueue () const |
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. | |
Protected Attributes | |
Ptr< StaWifiMac > | m_mac |
Mac. | |
Params | m_params |
test parameters | |
std::vector< Ptr< WifiPhy > > | m_phys |
Phys. | |
Private Member Functions | |
void | DoRun () override |
Implementation to actually run this TestCase. | |
void | DoSetup () override |
Implementation to do any local setup required for this TestCase. | |
void | DoTeardown () override |
Implementation to do any local setup required for this TestCase. | |
void | MpduDiscarded (WifiMacDropReason reason, Ptr< const WifiMpdu > mpdu) |
Fired when the MAC discards an MPDU. | |
Private Attributes | |
Ptr< WifiNetDevice > | m_device |
WifiNetDevice. | |
bool | m_discarded |
whether the packet should be discarded | |
ObjectFactory | m_factory |
factory | |
std::vector< Ptr< WifiRemoteStationManager > > | m_managers |
remote station managers | |
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 |
Ampdu Aggregation Test.
Definition at line 53 of file wifi-aggregation-test.cc.
AmpduAggregationTest::AmpduAggregationTest | ( | ) |
Definition at line 130 of file wifi-aggregation-test.cc.
AmpduAggregationTest::AmpduAggregationTest | ( | const std::string & | name, |
const Params & | params ) |
Construct object with non-default test parameters.
name | the name of the test case |
params | the test parameters |
Definition at line 142 of file wifi-aggregation-test.cc.
|
protected |
Dequeue a PSDU.
mpduList | the MPDUs contained in the PSDU |
Definition at line 342 of file wifi-aggregation-test.cc.
References ns3::AC_BE, and m_mac.
Referenced by DoRun(), EhtAggregationTest::DoRun(), HeAggregationTest::DoRun(), and TwoLevelAggregationTest::DoRun().
|
overrideprivatevirtual |
Implementation to actually run this TestCase.
Subclasses should override this method to conduct their tests.
Implements ns3::TestCase.
Reimplemented in EhtAggregationTest, HeAggregationTest, and TwoLevelAggregationTest.
Definition at line 389 of file wifi-aggregation-test.cc.
References ns3::WifiTxParameters::Clear(), ns3::Create(), DequeueMpdus(), ns3::DynamicCast(), EnqueuePkts(), GetBeQueue(), ns3::QosTxop::GetNextMpdu(), ns3::Txop::GetWifiMacQueue(), m_discarded, m_mac, m_managers, m_phys, ns3::WifiTxParameters::m_txVector, ns3::MakeCallback(), ns3::Time::Min(), MpduDiscarded(), NS_TEST_EXPECT_MSG_EQ, ns3::QosTxop::PeekNextMpdu(), and ns3::SINGLE_LINK_OP_ID.
|
overrideprivatevirtual |
Implementation to do any local setup required for this TestCase.
Subclasses should override this method to perform any costly per-test setup before DoRun is invoked.
Reimplemented from ns3::TestCase.
Definition at line 156 of file wifi-aggregation-test.cc.
References ns3::AC_BE, ns3::StaWifiMac::ASSOCIATED, ns3::StaWifiMac::StaLinkEntity::bssid, ns3::ObjectFactory::Create(), ns3::CreateObject(), ns3::CreateObjectWithAttributes(), AmpduAggregationTest::Params::dataMode, EstablishAgreement(), GetBeQueue(), ns3::Mac48Address::GetBroadcast(), ns3::GetFrameExchangeManagerTypeIdName(), m_device, m_factory, m_mac, m_managers, m_params, m_phys, AmpduAggregationTest::Params::maxAmpduSize, AmpduAggregationTest::Params::maxAmsduSize, AmpduAggregationTest::Params::nLinks, ns3::ObjectFactory::Set(), ns3::ObjectBase::SetAttribute(), ns3::EhtCapabilities::SetMaxAmpduLength(), ns3::HeCapabilities::SetMaxAmpduLength(), ns3::HtCapabilities::SetMaxAmpduLength(), ns3::HtCapabilities::SetMaxAmsduLength(), ns3::EhtCapabilities::SetMaxMpduLength(), ns3::VhtCapabilities::SetMaxMpduLength(), ns3::ObjectFactory::SetTypeId(), AmpduAggregationTest::Params::standard, AmpduAggregationTest::Params::txopLimit, ns3::WIFI_STANDARD_80211ac, ns3::WIFI_STANDARD_80211ax, and ns3::WIFI_STANDARD_80211be.
|
overrideprivatevirtual |
Implementation to do any local setup required for this TestCase.
Subclasses should override this method to perform any costly per-test teardown
Reimplemented from ns3::TestCase.
Definition at line 495 of file wifi-aggregation-test.cc.
References ns3::Simulator::Destroy(), m_device, and m_managers.
|
protected |
Enqueue the given number of packets addressed to the given station and of the given size.
count | the number of packets |
size | the size (bytes) of each packet |
dest | the destination address |
Definition at line 372 of file wifi-aggregation-test.cc.
References ns3::Create(), GetBeQueue(), ns3::Txop::GetWifiMacQueue(), ns3::WifiMacHeader::SetAddr1(), ns3::WifiMacHeader::SetAddr2(), ns3::WifiMacHeader::SetQosTid(), ns3::WifiMacHeader::SetType(), and ns3::WIFI_MAC_QOSDATA.
Referenced by DoRun(), EhtAggregationTest::DoRun(), HeAggregationTest::DoRun(), and TwoLevelAggregationTest::DoRun().
|
protected |
Establish a BlockAck agreement.
recipient | the recipient MAC address |
Definition at line 349 of file wifi-aggregation-test.cc.
References AmpduAggregationTest::Params::bufferSize, ns3::QosTxop::GetBaManager(), GetBeQueue(), ns3::MgtAddBaRequestHeader::GetTid(), ns3::MgtAddBaRequestHeader::GetTimeout(), ns3::MgtAddBaRequestHeader::IsAmsduSupported(), m_params, ns3::MgtAddBaResponseHeader::SetAmsduSupport(), ns3::MgtAddBaRequestHeader::SetBufferSize(), ns3::MgtAddBaResponseHeader::SetBufferSize(), ns3::MgtAddBaRequestHeader::SetImmediateBlockAck(), ns3::MgtAddBaResponseHeader::SetImmediateBlockAck(), ns3::MgtAddBaRequestHeader::SetStartingSequence(), ns3::MgtAddBaResponseHeader::SetStatusCode(), ns3::StatusCode::SetSuccess(), ns3::MgtAddBaRequestHeader::SetTid(), ns3::MgtAddBaResponseHeader::SetTid(), ns3::MgtAddBaRequestHeader::SetTimeout(), and ns3::MgtAddBaResponseHeader::SetTimeout().
Referenced by DoSetup().
Definition at line 336 of file wifi-aggregation-test.cc.
References m_mac.
Referenced by DoRun(), EhtAggregationTest::DoRun(), HeAggregationTest::DoRun(), TwoLevelAggregationTest::DoRun(), DoSetup(), EnqueuePkts(), and EstablishAgreement().
|
private |
Fired when the MAC discards an MPDU.
reason | the reason why the MPDU was discarded |
mpdu | the discarded MPDU |
Definition at line 150 of file wifi-aggregation-test.cc.
References m_discarded.
Referenced by DoRun().
|
private |
WifiNetDevice.
Definition at line 124 of file wifi-aggregation-test.cc.
Referenced by DoSetup(), and DoTeardown().
|
private |
whether the packet should be discarded
Definition at line 127 of file wifi-aggregation-test.cc.
Referenced by DoRun(), and MpduDiscarded().
|
private |
|
protected |
Mac.
Definition at line 107 of file wifi-aggregation-test.cc.
Referenced by DequeueMpdus(), DoRun(), EhtAggregationTest::DoRun(), HeAggregationTest::DoRun(), TwoLevelAggregationTest::DoRun(), DoSetup(), and GetBeQueue().
|
private |
remote station managers
Definition at line 125 of file wifi-aggregation-test.cc.
Referenced by DoRun(), DoSetup(), and DoTeardown().
|
protected |
test parameters
Definition at line 109 of file wifi-aggregation-test.cc.
Referenced by EhtAggregationTest::DoRun(), HeAggregationTest::DoRun(), TwoLevelAggregationTest::DoRun(), DoSetup(), and EstablishAgreement().
Phys.
Definition at line 108 of file wifi-aggregation-test.cc.
Referenced by DoRun(), EhtAggregationTest::DoRun(), HeAggregationTest::DoRun(), TwoLevelAggregationTest::DoRun(), and DoSetup().