Tx Duration Test. More...
Public Member Functions | |
TxDurationTest () | |
~TxDurationTest () override | |
void | DoRun () 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 () const |
TestCase & | operator= (const TestCase &)=delete |
Private Member Functions | |
bool | CheckPayloadDuration (uint32_t size, WifiMode payloadMode, uint16_t channelWidth, uint16_t guardInterval, WifiPreamble preamble, Time knownDuration) |
Check if the payload tx duration returned by InterferenceHelper corresponds to a known value. More... | |
bool | CheckTxDuration (uint32_t size, WifiMode payloadMode, uint16_t channelWidth, uint16_t guardInterval, WifiPreamble preamble, Time knownDuration) |
Check if the overall tx duration returned by InterferenceHelper corresponds to a known value. More... | |
Static Private Member Functions | |
static Time | CalculateTxDurationUsingList (std::list< uint32_t > sizes, std::list< uint16_t > staIds, WifiTxVector txVector, WifiPhyBand band) |
Calculate the overall Tx duration returned by WifiPhy for list of sizes. More... | |
static bool | CheckMuTxDuration (std::list< uint32_t > sizes, std::list< HeMuUserInfo > userInfos, uint16_t channelWidth, uint16_t guardInterval, WifiPreamble preamble, Time knownDuration) |
Check if the overall Tx duration returned by WifiPhy for a MU PPDU corresponds to a known value. 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... | |
TestCase * | GetParent () const |
Get the parent of this TestCase. More... | |
bool | IsStatusFailure () const |
Check if any tests failed. More... | |
bool | IsStatusSuccess () 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 () const |
Check if this run should assert on failure. More... | |
bool | MustContinueOnFailure () 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... | |
Tx Duration Test.
Definition at line 46 of file tx-duration-test.cc.
TxDurationTest::TxDurationTest | ( | ) |
Definition at line 134 of file tx-duration-test.cc.
|
override |
Definition at line 139 of file tx-duration-test.cc.
|
staticprivate |
Calculate the overall Tx duration returned by WifiPhy for list of sizes.
A map of WifiPsdu indexed by STA-ID is built using the provided lists and handed over to the corresponding SU/MU WifiPhy Tx duration computing method. Note that provided lists should be of same size.
sizes | the list of PSDU sizes for each station in octets |
staIds | the list of STA-IDs of each station |
txVector | the TXVECTOR used for the transmission of the PPDU |
band | the selected wifi PHY band |
Definition at line 343 of file tx-duration-test.cc.
References ns3::WifiMacHeader::GetSerializedSize(), NS_ASSERT, ns3::WifiMacHeader::SetType(), and ns3::WIFI_MAC_CTL_ACK.
Referenced by CheckMuTxDuration(), and CheckTxDuration().
|
staticprivate |
Check if the overall Tx duration returned by WifiPhy for a MU PPDU corresponds to a known value.
sizes | the list of PSDU sizes for each station in octets |
userInfos | the list of HE MU specific user transmission parameters |
channelWidth | the channel width used for the transmission (in MHz) |
guardInterval | the guard interval duration used for the transmission (in nanoseconds) |
preamble | the WifiPreamble used for the transmission |
knownDuration | the known duration value of the transmission |
Definition at line 255 of file tx-duration-test.cc.
References CalculateTxDurationUsingList(), ns3::WifiMode::GetDataRate(), ns3::WifiTxVector::GetMode(), ns3::WifiTxVector::GetNss(), ns3::HeRu::RuSpec::GetRuType(), ns3::IsEht(), ns3::MicroSeconds(), ns3::NanoSeconds(), NS_ABORT_MSG_IF, NS_ASSERT, third::phy, ns3::HeMuUserInfo::ru, ns3::WifiTxVector::SetChannelWidth(), ns3::WifiTxVector::SetEhtPpduType(), ns3::WifiTxVector::SetGuardInterval(), ns3::WifiTxVector::SetHeMuUserInfo(), ns3::WifiTxVector::SetNess(), ns3::WifiTxVector::SetPreambleType(), ns3::WifiTxVector::SetRuAllocation(), ns3::WifiTxVector::SetSigBMode(), ns3::WifiTxVector::SetStbc(), ns3::WIFI_PHY_BAND_2_4GHZ, ns3::WIFI_PHY_BAND_5GHZ, and ns3::WIFI_PHY_BAND_6GHZ.
Referenced by DoRun().
|
private |
Check if the payload tx duration returned by InterferenceHelper corresponds to a known value.
size | size of payload in octets (includes everything after the PHY header) |
payloadMode | the WifiMode used for the transmission |
channelWidth | the channel width used for the transmission (in MHz) |
guardInterval | the guard interval duration used for the transmission (in nanoseconds) |
preamble | the WifiPreamble used for the transmission |
knownDuration | the known duration value of the transmission |
Definition at line 144 of file tx-duration-test.cc.
References ns3::WifiMode::GetDataRate(), ns3::WifiMode::GetModulationClass(), ns3::MicroSeconds(), third::phy, ns3::WifiTxVector::SetChannelWidth(), ns3::WifiTxVector::SetGuardInterval(), ns3::WifiTxVector::SetMode(), ns3::WifiTxVector::SetNess(), ns3::WifiTxVector::SetNss(), ns3::WifiTxVector::SetPreambleType(), ns3::WifiTxVector::SetStbc(), ns3::WIFI_MOD_CLASS_HE, ns3::WIFI_MOD_CLASS_OFDM, ns3::WIFI_MOD_CLASS_VHT, ns3::WIFI_PHY_BAND_2_4GHZ, ns3::WIFI_PHY_BAND_5GHZ, and ns3::WIFI_PHY_BAND_6GHZ.
Referenced by DoRun().
|
private |
Check if the overall tx duration returned by InterferenceHelper corresponds to a known value.
size | size of payload in octets (includes everything after the PHY header) |
payloadMode | the WifiMode used for the transmission |
channelWidth | the channel width used for the transmission (in MHz) |
guardInterval | the guard interval duration used for the transmission (in nanoseconds) |
preamble | the WifiPreamble used for the transmission |
knownDuration | the known duration value of the transmission |
Definition at line 196 of file tx-duration-test.cc.
References CalculateTxDurationUsingList(), ns3::WifiMode::GetDataRate(), ns3::WifiMode::GetModulationClass(), ns3::MicroSeconds(), third::phy, ns3::WifiTxVector::SetChannelWidth(), ns3::WifiTxVector::SetGuardInterval(), ns3::WifiTxVector::SetMode(), ns3::WifiTxVector::SetNess(), ns3::WifiTxVector::SetNss(), ns3::WifiTxVector::SetPreambleType(), ns3::WifiTxVector::SetStbc(), ns3::SU_STA_ID, ns3::WIFI_MOD_CLASS_HE, ns3::WIFI_MOD_CLASS_OFDM, ns3::WIFI_MOD_CLASS_VHT, ns3::WIFI_PHY_BAND_2_4GHZ, ns3::WIFI_PHY_BAND_5GHZ, and ns3::WIFI_PHY_BAND_6GHZ.
Referenced by DoRun().
|
overridevirtual |
Implementation to actually run this TestCase.
Subclasses should override this method to conduct their tests.
Implements ns3::TestCase.
Definition at line 363 of file tx-duration-test.cc.
References CheckMuTxDuration(), CheckPayloadDuration(), CheckTxDuration(), ns3::MicroSeconds(), ns3::NanoSeconds(), NS_TEST_EXPECT_MSG_EQ, ns3::WIFI_PREAMBLE_EHT_MU, ns3::WIFI_PREAMBLE_HE_MU, ns3::WIFI_PREAMBLE_HE_SU, ns3::WIFI_PREAMBLE_HT_MF, ns3::WIFI_PREAMBLE_LONG, ns3::WIFI_PREAMBLE_SHORT, and ns3::WIFI_PREAMBLE_VHT_SU.