A Discrete-Event Network Simulator
API
IdealRateManagerMimoTest Class Reference

Test to validate that Ideal rate manager properly selects TXVECTOR in scenarios where MIMO is used. More...

+ Inheritance diagram for IdealRateManagerMimoTest:
+ Collaboration diagram for IdealRateManagerMimoTest:

Public Member Functions

 IdealRateManagerMimoTest ()
 
virtual ~IdealRateManagerMimoTest ()
 
void DoRun (void) override
 Implementation to actually run this TestCase. More...
 
- Public Member Functions inherited from ns3::TestCase
 TestCase (const TestCase &)=delete
 
virtual ~TestCase ()
 Destructor. More...
 
std::string GetName (void) const
 
TestCaseoperator= (const TestCase &)=delete
 

Private Member Functions

void CheckLastSelectedMode (WifiMode expectedMode)
 Check if the selected WifiMode is correct. More...
 
void CheckLastSelectedNss (uint8_t expectedNss)
 Check if the selected Nss is correct. More...
 
void SendPacket (Ptr< NetDevice > sourceDevice, Address &destination)
 Triggers the transmission of a 1000 Byte-long data packet from the source device. More...
 
void SetApMimoSettings (uint8_t antennas, uint8_t maxStreams)
 Change the configured MIMO settings for AP node. More...
 
void SetStaMimoSettings (uint8_t antennas, uint8_t maxStreams)
 Change the configured MIMO settings for STA node. More...
 
void TxCallback (std::string context, WifiConstPsduMap psdus, WifiTxVector txVector, double txPowerW)
 Callback that indicates a PSDU is being transmitted. More...
 

Private Attributes

WifiTxVector m_txVector
 Store the last TXVECTOR used to transmit Data. More...
 

Additional Inherited Members

- Public Types inherited from ns3::TestCase
enum  TestDuration { QUICK = 1 , EXTENSIVE = 2 , TAKES_FOREVER = 3 }
 How long the test takes to execute. More...
 
- Protected Member Functions inherited from ns3::TestCase
 TestCase (std::string name)
 Constructor. More...
 
void AddTestCase (TestCase *testCase, TestDuration duration=QUICK)
 Add an individual child TestCase to this test suite. More...
 
TestCaseGetParent () 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...
 

Detailed Description

Test to validate that Ideal rate manager properly selects TXVECTOR in scenarios where MIMO is used.

The test consider both balanced and unbalanced MIMO settings, and verify ideal picks the correct number of spatial streams and the correct MCS, taking into account potential diversity in AWGN channels when the number of antenna at the receiver is higher than the number of spatial streams used for the transmission.

Definition at line 2791 of file wifi-test.cc.

Constructor & Destructor Documentation

◆ IdealRateManagerMimoTest()

IdealRateManagerMimoTest::IdealRateManagerMimoTest ( )

Definition at line 2841 of file wifi-test.cc.

◆ ~IdealRateManagerMimoTest()

IdealRateManagerMimoTest::~IdealRateManagerMimoTest ( )
virtual

Definition at line 2846 of file wifi-test.cc.

Member Function Documentation

◆ CheckLastSelectedMode()

void IdealRateManagerMimoTest::CheckLastSelectedMode ( WifiMode  expectedMode)
private

Check if the selected WifiMode is correct.

Parameters
expectedModethe expected WifiMode

Definition at line 2889 of file wifi-test.cc.

References ns3::WifiTxVector::GetMode(), m_txVector, and NS_TEST_ASSERT_MSG_EQ.

Referenced by DoRun().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ CheckLastSelectedNss()

void IdealRateManagerMimoTest::CheckLastSelectedNss ( uint8_t  expectedNss)
private

Check if the selected Nss is correct.

Parameters
expectedNssthe expected Nss

Definition at line 2883 of file wifi-test.cc.

References ns3::WifiTxVector::GetNss(), m_txVector, and NS_TEST_ASSERT_MSG_EQ.

Referenced by DoRun().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DoRun()

void IdealRateManagerMimoTest::DoRun ( void  )
overridevirtual

◆ SendPacket()

void IdealRateManagerMimoTest::SendPacket ( Ptr< NetDevice sourceDevice,
Address destination 
)
private

Triggers the transmission of a 1000 Byte-long data packet from the source device.

Parameters
sourceDevicepointer to the source NetDevice
destinationaddress of the destination device

Definition at line 2867 of file wifi-test.cc.

References ns3::NetDevice::Send().

Referenced by DoRun().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetApMimoSettings()

void IdealRateManagerMimoTest::SetApMimoSettings ( uint8_t  antennas,
uint8_t  maxStreams 
)
private

Change the configured MIMO settings for AP node.

Parameters
antennasthe number of active antennas
maxStreamsthe maximum number of allowed spatial streams

Definition at line 2851 of file wifi-test.cc.

References ns3::Config::Set().

Referenced by DoRun().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetStaMimoSettings()

void IdealRateManagerMimoTest::SetStaMimoSettings ( uint8_t  antennas,
uint8_t  maxStreams 
)
private

Change the configured MIMO settings for STA node.

Parameters
antennasthe number of active antennas
maxStreamsthe maximum number of allowed spatial streams

Definition at line 2859 of file wifi-test.cc.

References ns3::Config::Set().

Referenced by DoRun().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ TxCallback()

void IdealRateManagerMimoTest::TxCallback ( std::string  context,
WifiConstPsduMap  psdus,
WifiTxVector  txVector,
double  txPowerW 
)
private

Callback that indicates a PSDU is being transmitted.

Parameters
contextthe context
psdusthe PSDU map to transmit
txVectorthe TX vector
txPowerWthe TX power (W)

Definition at line 2874 of file wifi-test.cc.

References m_txVector.

Referenced by DoRun().

+ Here is the caller graph for this function:

Member Data Documentation

◆ m_txVector

WifiTxVector IdealRateManagerMimoTest::m_txVector
private

Store the last TXVECTOR used to transmit Data.

Definition at line 2838 of file wifi-test.cc.

Referenced by CheckLastSelectedMode(), CheckLastSelectedNss(), and TxCallback().


The documentation for this class was generated from the following file: