Tx Duration Test. More...
Public Member Functions | |
TxDurationTest () | |
~TxDurationTest () override | |
void | DoRun () override |
Implementation to actually run this TestCase. | |
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 | |
bool | CheckPayloadDuration (uint32_t size, WifiMode payloadMode, MHz_u channelWidth, Time guardInterval, WifiPreamble preamble, Time knownDuration) |
Check if the payload tx duration returned by InterferenceHelper corresponds to a known value. | |
bool | CheckTxDuration (uint32_t size, WifiMode payloadMode, MHz_u channelWidth, Time guardInterval, WifiPreamble preamble, Time knownDuration) |
Check if the overall tx duration returned by InterferenceHelper corresponds to a known value. | |
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. | |
static bool | CheckMuTxDuration (std::list< uint32_t > sizes, std::list< HeMuUserInfo > userInfos, MHz_u channelWidth, Time guardInterval, WifiPreamble preamble, Time knownDuration) |
Check if the overall Tx duration returned by WifiPhy for a MU PPDU corresponds to a known value. | |
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. | |
Tx Duration Test.
Definition at line 35 of file tx-duration-test.cc.
TxDurationTest::TxDurationTest | ( | ) |
Definition at line 123 of file tx-duration-test.cc.
|
override |
Definition at line 128 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 332 of file tx-duration-test.cc.
References ns3::WifiPhy::CalculateTxDuration(), ns3::Create(), 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 |
guardInterval | the guard interval duration used for the transmission |
preamble | the WifiPreamble used for the transmission |
knownDuration | the known duration value of the transmission |
Definition at line 244 of file tx-duration-test.cc.
References CalculateTxDurationUsingList(), ns3::CreateObject(), ns3::HeRu::GetBandwidth(), ns3::WifiMode::GetDataRate(), ns3::WifiTxVector::GetMode(), ns3::WifiTxVector::GetNss(), ns3::HeRu::RuSpec::GetRuType(), ns3::VhtPhy::GetVhtMcs0(), ns3::IsEht(), ns3::MicroSeconds(), ns3::NanoSeconds(), NS_ABORT_MSG_IF, NS_ASSERT, 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 |
guardInterval | the guard interval duration used for the transmission |
preamble | the WifiPreamble used for the transmission |
knownDuration | the known duration value of the transmission |
Definition at line 133 of file tx-duration-test.cc.
References ns3::CreateObject(), ns3::WifiMode::GetDataRate(), ns3::WifiMode::GetModulationClass(), ns3::MicroSeconds(), 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 |
guardInterval | the guard interval duration used for the transmission |
preamble | the WifiPreamble used for the transmission |
knownDuration | the known duration value of the transmission |
Definition at line 185 of file tx-duration-test.cc.
References CalculateTxDurationUsingList(), ns3::CreateObject(), ns3::WifiMode::GetDataRate(), ns3::WifiMode::GetModulationClass(), ns3::MicroSeconds(), 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 352 of file tx-duration-test.cc.
References CheckMuTxDuration(), CheckPayloadDuration(), CheckTxDuration(), ns3::Simulator::Destroy(), ns3::DsssPhy::GetDsssRate11Mbps(), ns3::DsssPhy::GetDsssRate1Mbps(), ns3::DsssPhy::GetDsssRate2Mbps(), ns3::DsssPhy::GetDsssRate5_5Mbps(), ns3::ErpOfdmPhy::GetErpOfdmRate54Mbps(), ns3::HePhy::GetHeMcs0(), ns3::HePhy::GetHeMcs11(), ns3::HtPhy::GetHtMcs0(), ns3::HtPhy::GetHtMcs6(), ns3::HtPhy::GetHtMcs7(), ns3::OfdmPhy::GetOfdmRate54Mbps(), ns3::VhtPhy::GetVhtMcs0(), ns3::VhtPhy::GetVhtMcs8(), ns3::VhtPhy::GetVhtMcs9(), ns3::MicroSeconds(), ns3::NanoSeconds(), NS_TEST_EXPECT_MSG_EQ, ns3::HeRu::RU_242_TONE, 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.