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...
 
using instead = Duration
 

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, double 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, double 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, double rxPowerNonOfdmaRu1, double rxPowerNonOfdmaRu2, double rxPowerOfdmaRu1, double 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, double 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
 
uint16_t m_channelWidth
 channel width in MHz
 
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
 
uint16_t m_frequency
 frequency in MHz
 
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 EXTENSIVE = Duration::EXTENSIVE
 
static constexpr auto QUICK = Duration::QUICK
 
static constexpr auto 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 2935 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 2941 of file wifi-phy-ofdma-test.cc.

Constructor & Destructor Documentation

◆ TestUlOfdmaPhyTransmission()

TestUlOfdmaPhyTransmission::TestUlOfdmaPhyTransmission ( )

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

◆ ~TestUlOfdmaPhyTransmission()

TestUlOfdmaPhyTransmission::~TestUlOfdmaPhyTransmission ( )
override

Definition at line 3461 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 3642 of file wifi-phy-ofdma-test.cc.

References 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 3624 of file wifi-phy-ofdma-test.cc.

References 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,
double  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 in W

Definition at line 3533 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,
double  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 in W

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 3551 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 3600 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 3499 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 3516 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 3608 of file wifi-phy-ofdma-test.cc.

References 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

◆ 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 3826 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 3446 of file wifi-phy-ofdma-test.cc.

References m_phyInterferer, NS_LOG_FUNCTION, ns3::Simulator::Schedule(), ns3::WaveformGenerator::SetPeriod(), ns3::WaveformGenerator::SetTxPowerSpectralDensity(), ns3::WaveformGenerator::Start(), 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 3270 of file wifi-phy-ofdma-test.cc.

References ns3::HePhy::GetHeMcs7(), m_channelWidth, 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::SetMode(), ns3::WifiTxVector::SetNss(), ns3::WifiTxVector::SetRu(), 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 3841 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 3667 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, 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 4110 of file wifi-phy-ofdma-test.cc.

References AID, ns3::WifiPhy::AssignStreams(), CHANNEL_WIDTH, CheckPhyState(), 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 3485 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 3466 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,
double  rxPowerNonOfdmaRu1,
double  rxPowerNonOfdmaRu2,
double  rxPowerOfdmaRu1,
double  rxPowerOfdmaRu2 
)
private

Schedule power measurement related checks.

Parameters
delaythe reference delay used to schedule the events
rxPowerNonOfdmaRu1the received power (in watts) on the non-OFDMA part of RU1
rxPowerNonOfdmaRu2the received power (in watts) on the non-OFDMA part of RU2
rxPowerOfdmaRu1the received power (in watts) on RU1
rxPowerOfdmaRu2the received power (in watts) 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 3972 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 3847 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 3215 of file wifi-phy-ofdma-test.cc.

References ns3::HePhy::GetHeMcs7(), m_channelWidth, m_phyAp, m_phySta1, m_phySta2, m_phySta3, 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 3394 of file wifi-phy-ofdma-test.cc.

References ns3::HePhy::ConvertHeTbPpduDurationToLSigLength(), 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 3683 of file wifi-phy-ofdma-test.cc.

Referenced by Reset(), and RunOne().

+ Here is the caller graph for this function:

◆ SetPsdLimit()

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

Set the PSD limit.

Parameters
phythe PHY
psdLimitthe PSD limit in dBm/MHz

Definition at line 3691 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 3323 of file wifi-phy-ofdma-test.cc.

References AID, CHANNEL_WIDTH, ns3::HePhy::ConvertHeTbPpduDurationToLSigLength(), ns3::HePhy::GetHeMcs7(), ns3::WifiPhy::GetLatestPhyEntity(), ns3::WifiPhy::GetPhyBand(), m_channelWidth, m_expectedPpduDuration, m_phyAp, 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 3456 of file wifi-phy-ofdma-test.cc.

References m_phyInterferer, and ns3::WaveformGenerator::Stop().

Referenced by GenerateInterference().

+ Here is the call graph for this function:
+ 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 3586 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 3184 of file wifi-phy-ofdma-test.cc.

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

◆ m_channelWidth

uint16_t TestUlOfdmaPhyTransmission::m_channelWidth
private

◆ m_countRxBytesFromSta1

uint32_t TestUlOfdmaPhyTransmission::m_countRxBytesFromSta1
private

count RX bytes from STA 1

Definition at line 3192 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 3193 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 3190 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 3191 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 3188 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 3189 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 3197 of file wifi-phy-ofdma-test.cc.

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

◆ m_frequency

uint16_t TestUlOfdmaPhyTransmission::m_frequency
private

frequency in MHz

Definition at line 3195 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 3186 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 3179 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: