A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
TestUlOfdmaPhyTransmission Class Reference

UL-OFDMA PHY test. More...

+ Inheritance diagram for TestUlOfdmaPhyTransmission:
+ Collaboration diagram for TestUlOfdmaPhyTransmission:

Public Types

enum  TrigVectorInfo { NONE = 0 , CHANNEL_WIDTH , UL_LENGTH , AID }
 Erroneous info included in a TRIGVECTOR. More...
 
- Public Types inherited from ns3::TestCase
enum class  Duration { QUICK = 1 , EXTENSIVE = 2 , TAKES_FOREVER = 3 }
 How long the test takes to execute. More...
 

Public Member Functions

 TestUlOfdmaPhyTransmission ()
 
 ~TestUlOfdmaPhyTransmission () override
 
- Public Member Functions inherited from ns3::TestCase
 TestCase (const TestCase &)=delete
 
virtual ~TestCase ()
 Destructor.
 
std::string GetName () const
 
TestCaseoperator= (const TestCase &)=delete
 

Private Member Functions

void CheckApRxEnd (uint32_t expectedNotifications, Time expectedLastNotification, bool expectedSuccess)
 Check the the number of RX end notifications at the AP as well as the last time a RX end has been notified.
 
void CheckApRxStart (uint32_t expectedNotifications, Time expectedLastNotification)
 Check the the number of RX start notifications at the AP as well as the last time a RX start has been notified.
 
void CheckNonOfdmaRxPower (Ptr< OfdmaSpectrumWifiPhy > phy, WifiSpectrumBandInfo band, Watt_u expectedRxPower)
 Check the received power for the non-OFDMA of the HE TB PPDUs over the given band.
 
void CheckOfdmaRxPower (Ptr< OfdmaSpectrumWifiPhy > phy, WifiSpectrumBandInfo band, Watt_u expectedRxPower)
 Check the received power for the OFDMA part of the HE TB PPDUs over the given band.
 
void CheckPhyState (Ptr< OfdmaSpectrumWifiPhy > phy, WifiPhyState expectedState)
 Check the PHY state.
 
void CheckRxFromSta1 (uint32_t expectedSuccess, uint32_t expectedFailures, uint32_t expectedBytes)
 Check the received PSDUs from STA1.
 
void CheckRxFromSta2 (uint32_t expectedSuccess, uint32_t expectedFailures, uint32_t expectedBytes)
 Check the received PSDUs from STA2.
 
void DoCheckPhyState (Ptr< OfdmaSpectrumWifiPhy > phy, WifiPhyState expectedState)
 Check the PHY state.
 
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 GenerateInterference (Ptr< SpectrumValue > interferencePsd, Time duration)
 Generate interference function.
 
WifiTxVector GetTxVectorForHeTbPpdu (uint16_t txStaId, std::size_t index, uint8_t bssColor) const
 Get TXVECTOR for HE TB PPDU.
 
void LogScenario (std::string log) const
 Log scenario description.
 
void Reset ()
 Reset function.
 
void RunOne ()
 Run one function.
 
void RxFailure (Ptr< const WifiPsdu > psdu)
 Receive failure function.
 
void RxSuccess (Ptr< const WifiPsdu > psdu, RxSignalInfo rxSignalInfo, WifiTxVector txVector, std::vector< bool > statusPerMpdu)
 Receive success function.
 
void SchedulePowerMeasurementChecks (Time delay, Watt_u rxPowerNonOfdmaRu1, Watt_u rxPowerNonOfdmaRu2, Watt_u rxPowerOfdmaRu1, Watt_u rxPowerOfdmaRu2)
 Schedule power measurement related checks.
 
void ScheduleTest (Time delay, bool solicited, WifiPhyState expectedStateAtEnd, uint32_t expectedSuccessFromSta1, uint32_t expectedFailuresFromSta1, uint32_t expectedBytesFromSta1, uint32_t expectedSuccessFromSta2, uint32_t expectedFailuresFromSta2, uint32_t expectedBytesFromSta2, bool scheduleTxSta1=true, Time ulTimeDifference=Seconds(0), WifiPhyState expectedStateBeforeEnd=WifiPhyState::RX, TrigVectorInfo error=NONE)
 Schedule test to perform.
 
void SendHeSuPpdu (uint16_t txStaId, std::size_t payloadSize, uint64_t uid, uint8_t bssColor)
 Send HE SU PPDU function.
 
void SendHeTbPpdu (uint16_t txStaId, std::size_t index, std::size_t payloadSize, uint64_t uid, uint8_t bssColor, bool incrementUid)
 Send HE TB PPDU function.
 
void SetBssColor (Ptr< WifiPhy > phy, uint8_t bssColor)
 Set the BSS color.
 
void SetPsdLimit (Ptr< WifiPhy > phy, dBm_per_MHz_u psdLimit)
 Set the PSD limit.
 
void SetTrigVector (uint8_t bssColor, TrigVectorInfo error)
 Set TRIGVECTOR for HE TB PPDU.
 
void StopInterference ()
 Stop interference function.
 
void VerifyEventsCleared ()
 Verify all events are cleared at end of TX or RX.
 

Private Attributes

std::shared_ptr< OfdmaTestPhyListenerm_apPhyStateListener
 listener for AP PHY state transitions
 
MHz_u m_channelWidth
 channel width
 
uint32_t m_countRxBytesFromSta1
 count RX bytes from STA 1
 
uint32_t m_countRxBytesFromSta2
 count RX bytes from STA 2
 
uint32_t m_countRxFailureFromSta1
 count RX failure from STA 1
 
uint32_t m_countRxFailureFromSta2
 count RX failure from STA 2
 
uint32_t m_countRxSuccessFromSta1
 count RX success from STA 1
 
uint32_t m_countRxSuccessFromSta2
 count RX success from STA 2
 
Time m_expectedPpduDuration
 expected duration to send MU PPDU
 
MHz_u m_frequency
 frequency
 
Ptr< OfdmaSpectrumWifiPhym_phyAp
 PHY of AP.
 
Ptr< WaveformGeneratorm_phyInterferer
 PHY of interferer.
 
Ptr< OfdmaSpectrumWifiPhym_phySta1
 PHY of STA 1.
 
Ptr< OfdmaSpectrumWifiPhym_phySta2
 PHY of STA 2.
 
Ptr< OfdmaSpectrumWifiPhym_phySta3
 PHY of STA 3.
 

Additional Inherited Members

- 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.
 
TestCaseGetParent () 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.
 

Detailed Description

UL-OFDMA PHY test.

Definition at line 2932 of file wifi-phy-ofdma-test.cc.

Member Enumeration Documentation

◆ TrigVectorInfo

Erroneous info included in a TRIGVECTOR.

Enumerator
NONE 
CHANNEL_WIDTH 
UL_LENGTH 
AID 

Definition at line 2938 of file wifi-phy-ofdma-test.cc.

Constructor & Destructor Documentation

◆ TestUlOfdmaPhyTransmission()

TestUlOfdmaPhyTransmission::TestUlOfdmaPhyTransmission ( )

Definition at line 3197 of file wifi-phy-ofdma-test.cc.

◆ ~TestUlOfdmaPhyTransmission()

TestUlOfdmaPhyTransmission::~TestUlOfdmaPhyTransmission ( )
override

Definition at line 3458 of file wifi-phy-ofdma-test.cc.

Member Function Documentation

◆ CheckApRxEnd()

void TestUlOfdmaPhyTransmission::CheckApRxEnd ( uint32_t expectedNotifications,
Time expectedLastNotification,
bool expectedSuccess )
private

Check the the number of RX end notifications at the AP as well as the last time a RX end has been notified.

Parameters
expectedNotificationsthe expected number of RX end notifications at the AP
expectedLastNotificationthe expected time of the last RX end notification at the AP
expectedSuccesstrue if the last RX notification indicates a success, false otherwise

Definition at line 3639 of file wifi-phy-ofdma-test.cc.

References OfdmaTestPhyListener::GetLastRxEndNotification(), OfdmaTestPhyListener::GetNumRxEndNotifications(), OfdmaTestPhyListener::IsLastRxSuccess(), m_apPhyStateListener, ns3::Simulator::Now(), and NS_TEST_ASSERT_MSG_EQ.

Referenced by ScheduleTest().

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

◆ CheckApRxStart()

void TestUlOfdmaPhyTransmission::CheckApRxStart ( uint32_t expectedNotifications,
Time expectedLastNotification )
private

Check the the number of RX start notifications at the AP as well as the last time a RX start has been notified.

Parameters
expectedNotificationsthe expected number of RX start notifications at the AP
expectedLastNotificationthe expected time of the last RX start notification at the AP

Definition at line 3621 of file wifi-phy-ofdma-test.cc.

References OfdmaTestPhyListener::GetLastRxStartNotification(), OfdmaTestPhyListener::GetNumRxStartNotifications(), m_apPhyStateListener, ns3::Simulator::Now(), and NS_TEST_ASSERT_MSG_EQ.

Referenced by ScheduleTest().

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

◆ CheckNonOfdmaRxPower()

void TestUlOfdmaPhyTransmission::CheckNonOfdmaRxPower ( Ptr< OfdmaSpectrumWifiPhy > phy,
WifiSpectrumBandInfo band,
Watt_u expectedRxPower )
private

Check the received power for the non-OFDMA of the HE TB PPDUs over the given band.

Parameters
phythe PHY
bandthe indices of the band over which the power is measured
expectedRxPowerthe expected received power

Definition at line 3530 of file wifi-phy-ofdma-test.cc.

References ns3::Simulator::Now(), NS_ASSERT, NS_LOG_FUNCTION, and NS_TEST_ASSERT_MSG_EQ_TOL.

Referenced by SchedulePowerMeasurementChecks().

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

◆ CheckOfdmaRxPower()

void TestUlOfdmaPhyTransmission::CheckOfdmaRxPower ( Ptr< OfdmaSpectrumWifiPhy > phy,
WifiSpectrumBandInfo band,
Watt_u expectedRxPower )
private

Check the received power for the OFDMA part of the HE TB PPDUs over the given band.

Parameters
phythe PHY
bandthe indices of the band over which the power is measured
expectedRxPowerthe expected received power

The current event cannot be used since it points to the preamble part of the HE TB PPDU. We will have to check if the expected power is indeed the max power returning a positive duration when calling GetEnergyDuration.

Definition at line 3548 of file wifi-phy-ofdma-test.cc.

References ns3::Simulator::Now(), NS_LOG_FUNCTION, and NS_TEST_ASSERT_MSG_EQ.

Referenced by SchedulePowerMeasurementChecks().

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

◆ CheckPhyState()

void TestUlOfdmaPhyTransmission::CheckPhyState ( Ptr< OfdmaSpectrumWifiPhy > phy,
WifiPhyState expectedState )
private

Check the PHY state.

Parameters
phythe PHY
expectedStatethe expected state of the PHY

Definition at line 3597 of file wifi-phy-ofdma-test.cc.

References DoCheckPhyState(), and ns3::Simulator::ScheduleNow().

Referenced by RunOne(), and ScheduleTest().

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

◆ CheckRxFromSta1()

void TestUlOfdmaPhyTransmission::CheckRxFromSta1 ( uint32_t expectedSuccess,
uint32_t expectedFailures,
uint32_t expectedBytes )
private

Check the received PSDUs from STA1.

Parameters
expectedSuccessthe expected number of success
expectedFailuresthe expected number of failures
expectedBytesthe expected number of bytes

Definition at line 3496 of file wifi-phy-ofdma-test.cc.

References m_countRxBytesFromSta1, m_countRxFailureFromSta1, m_countRxSuccessFromSta1, and NS_TEST_ASSERT_MSG_EQ.

Referenced by ScheduleTest().

+ Here is the caller graph for this function:

◆ CheckRxFromSta2()

void TestUlOfdmaPhyTransmission::CheckRxFromSta2 ( uint32_t expectedSuccess,
uint32_t expectedFailures,
uint32_t expectedBytes )
private

Check the received PSDUs from STA2.

Parameters
expectedSuccessthe expected number of success
expectedFailuresthe expected number of failures
expectedBytesthe expected number of bytes

Definition at line 3513 of file wifi-phy-ofdma-test.cc.

References m_countRxBytesFromSta2, m_countRxFailureFromSta2, m_countRxSuccessFromSta2, and NS_TEST_ASSERT_MSG_EQ.

Referenced by ScheduleTest().

+ Here is the caller graph for this function:

◆ DoCheckPhyState()

void TestUlOfdmaPhyTransmission::DoCheckPhyState ( Ptr< OfdmaSpectrumWifiPhy > phy,
WifiPhyState expectedState )
private

Check the PHY state.

Parameters
phythe PHY
expectedStatethe expected state of the PHY

Definition at line 3605 of file wifi-phy-ofdma-test.cc.

References ns3::DynamicCast(), ns3::PointerValue::Get(), ns3::Simulator::Now(), NS_LOG_FUNCTION, and NS_TEST_ASSERT_MSG_EQ.

Referenced by CheckPhyState().

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

◆ DoRun()

void TestUlOfdmaPhyTransmission::DoRun ( )
overrideprivatevirtual

Implementation to actually run this TestCase.

Subclasses should override this method to conduct their tests.

Implements ns3::TestCase.

Definition at line 4711 of file wifi-phy-ofdma-test.cc.

References ns3::Simulator::Destroy(), m_channelWidth, m_expectedPpduDuration, m_frequency, ns3::NanoSeconds(), NS_LOG_DEBUG, and RunOne().

+ Here is the call graph for this function:

◆ DoSetup()

void TestUlOfdmaPhyTransmission::DoSetup ( )
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 3695 of file wifi-phy-ofdma-test.cc.

References ns3::SpectrumWifiPhy::AddChannel(), ns3::WifiPhy::ConfigureStandard(), ns3::CreateObject(), ns3::CreateObjectWithAttributes(), m_apPhyStateListener, m_frequency, m_phyAp, m_phyInterferer, m_phySta1, m_phySta2, m_phySta3, ns3::MakeCallback(), ns3::WifiPhy::RegisterListener(), RxFailure(), RxSuccess(), ns3::SpectrumWifiPhy::SetDevice(), ns3::WifiPhy::SetErrorRateModel(), ns3::WifiPhy::SetInterferenceHelper(), ns3::WifiPhy::SetMobility(), ns3::WifiPhy::SetPreambleDetectionModel(), ns3::WifiPhy::SetReceiveErrorCallback(), ns3::WifiPhy::SetReceiveOkCallback(), and ns3::WIFI_STANDARD_80211ax.

+ Here is the call graph for this function:

◆ DoTeardown()

void TestUlOfdmaPhyTransmission::DoTeardown ( )
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 3825 of file wifi-phy-ofdma-test.cc.

References ns3::Object::Dispose(), m_phyAp, m_phyInterferer, m_phySta1, m_phySta2, and m_phySta3.

+ Here is the call graph for this function:

◆ GenerateInterference()

void TestUlOfdmaPhyTransmission::GenerateInterference ( Ptr< SpectrumValue > interferencePsd,
Time duration )
private

Generate interference function.

Parameters
interferencePsdthe PSD of the interference to be generated
durationthe duration of the interference

Definition at line 3443 of file wifi-phy-ofdma-test.cc.

References m_phyInterferer, NS_LOG_FUNCTION, ns3::Simulator::Schedule(), and StopInterference().

Referenced by RunOne().

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

◆ GetTxVectorForHeTbPpdu()

WifiTxVector TestUlOfdmaPhyTransmission::GetTxVectorForHeTbPpdu ( uint16_t txStaId,
std::size_t index,
uint8_t bssColor ) const
private

Get TXVECTOR for HE TB PPDU.

Parameters
txStaIdthe ID of the TX STA
indexthe RU index used for the transmission
bssColorthe BSS color of the TX STA
Returns
the TXVECTOR for HE TB PPDU

Definition at line 3267 of file wifi-phy-ofdma-test.cc.

References ns3::HePhy::GetHeMcs7(), m_channelWidth, ns3::NanoSeconds(), NS_ASSERT_MSG, ns3::HeRu::RU_106_TONE, ns3::HeRu::RU_242_TONE, ns3::HeRu::RU_484_TONE, ns3::HeRu::RU_996_TONE, and ns3::WIFI_PREAMBLE_HE_TB.

Referenced by SchedulePowerMeasurementChecks(), and SendHeTbPpdu().

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

◆ LogScenario()

void TestUlOfdmaPhyTransmission::LogScenario ( std::string log) const
private

Log scenario description.

Parameters
logthe scenario description to add to log

Definition at line 3840 of file wifi-phy-ofdma-test.cc.

References NS_LOG_INFO.

Referenced by RunOne().

+ Here is the caller graph for this function:

◆ Reset()

void TestUlOfdmaPhyTransmission::Reset ( )
private

Reset function.

Definition at line 3664 of file wifi-phy-ofdma-test.cc.

References m_apPhyStateListener, m_countRxBytesFromSta1, m_countRxBytesFromSta2, m_countRxFailureFromSta1, m_countRxFailureFromSta2, m_countRxSuccessFromSta1, m_countRxSuccessFromSta2, m_phyAp, m_phySta1, m_phySta2, OfdmaTestPhyListener::Reset(), SetBssColor(), OfdmaSpectrumWifiPhy::SetPpduUid(), and OfdmaSpectrumWifiPhy::SetTriggerFrameUid().

Referenced by RunOne(), and ScheduleTest().

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

◆ RunOne()

void TestUlOfdmaPhyTransmission::RunOne ( )
private

Run one function.

In all the following tests, 2 HE TB PPDUs of the same UL MU transmission are sent on RU 1 for STA 1 and RU 2 for STA 2. The difference between solicited and unsolicited lies in that their PPDU ID correspond to the one of the immediately preceding HE SU PPDU (thus mimicking trigger frame reception).

Definition at line 4109 of file wifi-phy-ofdma-test.cc.

References AID, ns3::WifiPhy::AssignStreams(), CHANNEL_WIDTH, CheckPhyState(), ns3::Create(), ns3::DbmToW(), ns3::BandInfo::fc, ns3::BandInfo::fh, ns3::WifiPhyOperatingChannel::FindFirst(), ns3::BandInfo::fl, GenerateInterference(), LogScenario(), m_channelWidth, m_expectedPpduDuration, m_frequency, m_phyAp, m_phySta1, m_phySta2, m_phySta3, ns3::MicroSeconds(), ns3::MilliSeconds(), ns3::NanoSeconds(), Reset(), ns3::Simulator::Run(), ns3::Simulator::Schedule(), SchedulePowerMeasurementChecks(), ScheduleTest(), ns3::Seconds(), SendHeSuPpdu(), SendHeTbPpdu(), SetBssColor(), ns3::WifiPhy::SetOperatingChannel(), SetPsdLimit(), ns3::RngSeedManager::SetRun(), ns3::RngSeedManager::SetSeed(), UL_LENGTH, VerifyEventsCleared(), ns3::WIFI_PHY_BAND_5GHZ, and ns3::WIFI_STANDARD_80211ax.

Referenced by DoRun().

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

◆ RxFailure()

void TestUlOfdmaPhyTransmission::RxFailure ( Ptr< const WifiPsdu > psdu)
private

Receive failure function.

Parameters
psduthe PSDU

Definition at line 3482 of file wifi-phy-ofdma-test.cc.

References m_countRxFailureFromSta1, m_countRxFailureFromSta2, and NS_LOG_FUNCTION.

Referenced by DoSetup().

+ Here is the caller graph for this function:

◆ RxSuccess()

void TestUlOfdmaPhyTransmission::RxSuccess ( Ptr< const WifiPsdu > psdu,
RxSignalInfo rxSignalInfo,
WifiTxVector txVector,
std::vector< bool > statusPerMpdu )
private

Receive success function.

Parameters
psduthe PSDU
rxSignalInfothe info on the received signal (
See also
RxSignalInfo)
Parameters
txVectorthe transmit vector
statusPerMpdureception status per MPDU

Definition at line 3463 of file wifi-phy-ofdma-test.cc.

References m_countRxBytesFromSta1, m_countRxBytesFromSta2, m_countRxSuccessFromSta1, m_countRxSuccessFromSta2, and NS_LOG_FUNCTION.

Referenced by DoSetup().

+ Here is the caller graph for this function:

◆ SchedulePowerMeasurementChecks()

void TestUlOfdmaPhyTransmission::SchedulePowerMeasurementChecks ( Time delay,
Watt_u rxPowerNonOfdmaRu1,
Watt_u rxPowerNonOfdmaRu2,
Watt_u rxPowerOfdmaRu1,
Watt_u rxPowerOfdmaRu2 )
private

Schedule power measurement related checks.

Parameters
delaythe reference delay used to schedule the events
rxPowerNonOfdmaRu1the received power on the non-OFDMA part of RU1
rxPowerNonOfdmaRu2the received power on the non-OFDMA part of RU2
rxPowerOfdmaRu1the received power on RU1
rxPowerOfdmaRu2the received power on RU2

Perform checks at AP

Perform checks for non-transmitting STA (STA 3). Cannot use CheckNonOfdmaRxPower method since current event may be reset if preamble not detected (e.g. not on primary).

Perform checks for transmitting STA (STA 2) to ensure it has correctly logged power received from other transmitting STA (STA 1). Cannot use CheckNonOfdmaRxPower method since current event not set.

Definition at line 3971 of file wifi-phy-ofdma-test.cc.

References CheckNonOfdmaRxPower(), CheckOfdmaRxPower(), OfdmaSpectrumWifiPhy::GetHePhy(), ns3::WifiPhy::GetPreambleDetectionDuration(), GetTxVectorForHeTbPpdu(), m_channelWidth, m_expectedPpduDuration, m_phyAp, m_phySta2, m_phySta3, ns3::NanoSeconds(), NS_ASSERT, and ns3::Simulator::Schedule().

Referenced by RunOne().

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

◆ ScheduleTest()

void TestUlOfdmaPhyTransmission::ScheduleTest ( Time delay,
bool solicited,
WifiPhyState expectedStateAtEnd,
uint32_t expectedSuccessFromSta1,
uint32_t expectedFailuresFromSta1,
uint32_t expectedBytesFromSta1,
uint32_t expectedSuccessFromSta2,
uint32_t expectedFailuresFromSta2,
uint32_t expectedBytesFromSta2,
bool scheduleTxSta1 = true,
Time ulTimeDifference = Seconds(0),
WifiPhyState expectedStateBeforeEnd = WifiPhyState::RX,
TrigVectorInfo error = NONE )
private

Schedule test to perform.

The interference generation should be scheduled apart.

Parameters
delaythe reference delay to schedule the events
solicitedflag indicating if HE TB PPDUs were solicited by the AP
expectedStateAtEndthe expected state of the PHY at the end of the reception
expectedSuccessFromSta1the expected number of success from STA 1
expectedFailuresFromSta1the expected number of failures from STA 1
expectedBytesFromSta1the expected number of bytes from STA 1
expectedSuccessFromSta2the expected number of success from STA 2
expectedFailuresFromSta2the expected number of failures from STA 2
expectedBytesFromSta2the expected number of bytes from STA 2
scheduleTxSta1flag indicating to schedule a HE TB PPDU from STA 1
ulTimeDifferencedelay between HE TB PPDU from STA 1 and HE TB PPDU from STA 2 are received
expectedStateBeforeEndthe expected state of the PHY before the end of the transmission
errorthe erroneous info (if any) in the TRIGVECTOR to set

Definition at line 3846 of file wifi-phy-ofdma-test.cc.

References CheckApRxEnd(), CheckApRxStart(), CheckPhyState(), CheckRxFromSta1(), CheckRxFromSta2(), m_apPhyStateListener, m_expectedPpduDuration, m_phyAp, ns3::MicroSeconds(), ns3::MilliSeconds(), ns3::NanoSeconds(), ns3::Simulator::Now(), OfdmaTestPhyListener::Reset(), Reset(), ns3::Simulator::Schedule(), SendHeSuPpdu(), SendHeTbPpdu(), SetTrigVector(), and VerifyEventsCleared().

Referenced by RunOne().

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

◆ SendHeSuPpdu()

void TestUlOfdmaPhyTransmission::SendHeSuPpdu ( uint16_t txStaId,
std::size_t payloadSize,
uint64_t uid,
uint8_t bssColor )
private

Send HE SU PPDU function.

Parameters
txStaIdthe ID of the TX STA
payloadSizethe size of the payload in bytes
uidthe UID of the trigger frame that is initiating this transmission
bssColorthe BSS color of the TX STA

Definition at line 3212 of file wifi-phy-ofdma-test.cc.

References ns3::Create(), ns3::HePhy::GetHeMcs7(), m_channelWidth, m_phyAp, m_phySta1, m_phySta2, m_phySta3, ns3::NanoSeconds(), NS_LOG_FUNCTION, ns3::WifiMacHeader::SetAddr1(), ns3::WifiMacHeader::SetAddr2(), ns3::WifiMacHeader::SetQosTid(), ns3::WifiMacHeader::SetSequenceNumber(), ns3::WifiMacHeader::SetType(), ns3::SU_STA_ID, ns3::WIFI_MAC_QOSDATA, and ns3::WIFI_PREAMBLE_HE_SU.

Referenced by RunOne(), and ScheduleTest().

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

◆ SendHeTbPpdu()

void TestUlOfdmaPhyTransmission::SendHeTbPpdu ( uint16_t txStaId,
std::size_t index,
std::size_t payloadSize,
uint64_t uid,
uint8_t bssColor,
bool incrementUid )
private

Send HE TB PPDU function.

Parameters
txStaIdthe ID of the TX STA
indexthe RU index used for the transmission
payloadSizethe size of the payload in bytes
uidthe UID of the trigger frame that is initiating this transmission
bssColorthe BSS color of the TX STA
incrementUidwhether UID shall be incremented

Definition at line 3391 of file wifi-phy-ofdma-test.cc.

References ns3::HePhy::ConvertHeTbPpduDurationToLSigLength(), ns3::Create(), GetTxVectorForHeTbPpdu(), m_phySta1, m_phySta2, m_phySta3, NS_LOG_FUNCTION, ns3::WifiMacHeader::SetAddr1(), ns3::WifiMacHeader::SetAddr2(), ns3::WifiTxVector::SetLength(), ns3::WifiMacHeader::SetQosTid(), ns3::WifiMacHeader::SetSequenceNumber(), ns3::WifiMacHeader::SetType(), and ns3::WIFI_MAC_QOSDATA.

Referenced by RunOne(), and ScheduleTest().

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

◆ SetBssColor()

void TestUlOfdmaPhyTransmission::SetBssColor ( Ptr< WifiPhy > phy,
uint8_t bssColor )
private

Set the BSS color.

Parameters
phythe PHY
bssColorthe BSS color

Definition at line 3680 of file wifi-phy-ofdma-test.cc.

References ns3::DynamicCast().

Referenced by Reset(), and RunOne().

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

◆ SetPsdLimit()

void TestUlOfdmaPhyTransmission::SetPsdLimit ( Ptr< WifiPhy > phy,
dBm_per_MHz_u psdLimit )
private

Set the PSD limit.

Parameters
phythe PHY
psdLimitthe PSD limit

Definition at line 3688 of file wifi-phy-ofdma-test.cc.

References NS_LOG_FUNCTION.

Referenced by RunOne().

+ Here is the caller graph for this function:

◆ SetTrigVector()

void TestUlOfdmaPhyTransmission::SetTrigVector ( uint8_t bssColor,
TrigVectorInfo error )
private

Set TRIGVECTOR for HE TB PPDU.

Parameters
bssColorthe BSS color of the TX STA
errorthe erroneous info (if any) in the TRIGVECTOR to set

Definition at line 3320 of file wifi-phy-ofdma-test.cc.

References AID, CHANNEL_WIDTH, ns3::HePhy::ConvertHeTbPpduDurationToLSigLength(), ns3::DynamicCast(), ns3::HePhy::GetHeMcs7(), ns3::WifiPhy::GetLatestPhyEntity(), ns3::WifiPhy::GetPhyBand(), m_channelWidth, m_expectedPpduDuration, m_phyAp, ns3::NanoSeconds(), NS_ASSERT_MSG, ns3::HeRu::RU_106_TONE, ns3::HeRu::RU_242_TONE, ns3::HeRu::RU_484_TONE, ns3::HeRu::RU_996_TONE, ns3::WifiTxVector::SetLength(), ns3::WifiTxVector::SetMode(), ns3::WifiTxVector::SetNss(), ns3::WifiTxVector::SetRu(), UL_LENGTH, and ns3::WIFI_PREAMBLE_HE_TB.

Referenced by ScheduleTest().

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

◆ StopInterference()

void TestUlOfdmaPhyTransmission::StopInterference ( )
private

Stop interference function.

Definition at line 3453 of file wifi-phy-ofdma-test.cc.

References m_phyInterferer.

Referenced by GenerateInterference().

+ Here is the caller graph for this function:

◆ VerifyEventsCleared()

void TestUlOfdmaPhyTransmission::VerifyEventsCleared ( )
private

Verify all events are cleared at end of TX or RX.

Definition at line 3583 of file wifi-phy-ofdma-test.cc.

References OfdmaSpectrumWifiPhy::GetCurrentEvent(), m_phyAp, m_phySta1, m_phySta2, and NS_TEST_ASSERT_MSG_EQ.

Referenced by RunOne(), and ScheduleTest().

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

Member Data Documentation

◆ m_apPhyStateListener

std::shared_ptr<OfdmaTestPhyListener> TestUlOfdmaPhyTransmission::m_apPhyStateListener
private

listener for AP PHY state transitions

Definition at line 3181 of file wifi-phy-ofdma-test.cc.

Referenced by CheckApRxEnd(), CheckApRxStart(), DoSetup(), Reset(), and ScheduleTest().

◆ m_channelWidth

MHz_u TestUlOfdmaPhyTransmission::m_channelWidth
private

◆ m_countRxBytesFromSta1

uint32_t TestUlOfdmaPhyTransmission::m_countRxBytesFromSta1
private

count RX bytes from STA 1

Definition at line 3189 of file wifi-phy-ofdma-test.cc.

Referenced by CheckRxFromSta1(), Reset(), and RxSuccess().

◆ m_countRxBytesFromSta2

uint32_t TestUlOfdmaPhyTransmission::m_countRxBytesFromSta2
private

count RX bytes from STA 2

Definition at line 3190 of file wifi-phy-ofdma-test.cc.

Referenced by CheckRxFromSta2(), Reset(), and RxSuccess().

◆ m_countRxFailureFromSta1

uint32_t TestUlOfdmaPhyTransmission::m_countRxFailureFromSta1
private

count RX failure from STA 1

Definition at line 3187 of file wifi-phy-ofdma-test.cc.

Referenced by CheckRxFromSta1(), Reset(), and RxFailure().

◆ m_countRxFailureFromSta2

uint32_t TestUlOfdmaPhyTransmission::m_countRxFailureFromSta2
private

count RX failure from STA 2

Definition at line 3188 of file wifi-phy-ofdma-test.cc.

Referenced by CheckRxFromSta2(), Reset(), and RxFailure().

◆ m_countRxSuccessFromSta1

uint32_t TestUlOfdmaPhyTransmission::m_countRxSuccessFromSta1
private

count RX success from STA 1

Definition at line 3185 of file wifi-phy-ofdma-test.cc.

Referenced by CheckRxFromSta1(), Reset(), and RxSuccess().

◆ m_countRxSuccessFromSta2

uint32_t TestUlOfdmaPhyTransmission::m_countRxSuccessFromSta2
private

count RX success from STA 2

Definition at line 3186 of file wifi-phy-ofdma-test.cc.

Referenced by CheckRxFromSta2(), Reset(), and RxSuccess().

◆ m_expectedPpduDuration

Time TestUlOfdmaPhyTransmission::m_expectedPpduDuration
private

expected duration to send MU PPDU

Definition at line 3194 of file wifi-phy-ofdma-test.cc.

Referenced by DoRun(), RunOne(), SchedulePowerMeasurementChecks(), ScheduleTest(), and SetTrigVector().

◆ m_frequency

MHz_u TestUlOfdmaPhyTransmission::m_frequency
private

frequency

Definition at line 3192 of file wifi-phy-ofdma-test.cc.

Referenced by DoRun(), DoSetup(), and RunOne().

◆ m_phyAp

Ptr<OfdmaSpectrumWifiPhy> TestUlOfdmaPhyTransmission::m_phyAp
private

◆ m_phyInterferer

Ptr<WaveformGenerator> TestUlOfdmaPhyTransmission::m_phyInterferer
private

PHY of interferer.

Definition at line 3183 of file wifi-phy-ofdma-test.cc.

Referenced by DoSetup(), DoTeardown(), GenerateInterference(), and StopInterference().

◆ m_phySta1

Ptr<OfdmaSpectrumWifiPhy> TestUlOfdmaPhyTransmission::m_phySta1
private

PHY of STA 1.

Definition at line 3176 of file wifi-phy-ofdma-test.cc.

Referenced by DoSetup(), DoTeardown(), Reset(), RunOne(), SendHeSuPpdu(), SendHeTbPpdu(), and VerifyEventsCleared().

◆ m_phySta2

Ptr<OfdmaSpectrumWifiPhy> TestUlOfdmaPhyTransmission::m_phySta2
private

◆ m_phySta3

Ptr<OfdmaSpectrumWifiPhy> TestUlOfdmaPhyTransmission::m_phySta3
private

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