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

PHY CCA thresholds test. More...

+ Inheritance diagram for WifiPhyCcaThresholdsTest:
+ Collaboration diagram for WifiPhyCcaThresholdsTest:

Public Member Functions

 WifiPhyCcaThresholdsTest ()
 
- 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

Ptr< HePpduCreateDummyHePpdu (uint16_t bandwidth, const WifiPhyOperatingChannel &channel)
 Create a HE PPDU.
 
Ptr< HtPpduCreateDummyHtPpdu (uint16_t bandwidth, const WifiPhyOperatingChannel &channel)
 Create a HT PPDU.
 
Ptr< OfdmPpduCreateDummyNonHtPpdu (const WifiPhyOperatingChannel &channel)
 Create a non-HT PPDU.
 
Ptr< WifiPsduCreateDummyPsdu ()
 Create a dummy PSDU whose payload is 1000 bytes.
 
Ptr< VhtPpduCreateDummyVhtPpdu (uint16_t bandwidth, const WifiPhyOperatingChannel &channel)
 Create a VHT PPDU.
 
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 RunOne ()
 Run tests for given CCA attributes.
 
void VerifyCcaThreshold (const Ptr< PhyEntity > phy, const Ptr< const WifiPpdu > ppdu, WifiChannelListType channelType, double expectedCcaThresholdDbm)
 Function to verify the CCA threshold that is being reported by a given PHY entity upon reception of a signal or a PPDU.
 

Private Attributes

double m_CcaEdThresholdDbm
 The current CCA-ED threshold for a 20 MHz subchannel (in dBm)
 
double m_CcaSensitivityDbm
 The current CCA sensitivity threshold for signals that occupy the primary 20 MHz channel (in dBm)
 
Ptr< WifiNetDevicem_device
 The WifiNetDevice.
 
Ptr< ObssPdAlgorithmm_obssPdAlgorithm
 The OBSS-PD algorithm.
 
double m_obssPdLevel
 The current OBSS-PD level (in dBm)
 
Ptr< SpectrumWifiPhym_phy
 The spectrum PHY.
 
VhtConfiguration::SecondaryCcaSensitivityThresholds m_secondaryCcaSensitivityThresholds
 The current CCA sensitivity thresholds for signals that do not occupy the primary 20 MHz channel (in dBm)
 
Ptr< VhtConfigurationm_vhtConfiguration
 The VHT configuration.
 

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

PHY CCA thresholds test.

Definition at line 75 of file wifi-phy-cca-test.cc.

Constructor & Destructor Documentation

◆ WifiPhyCcaThresholdsTest()

WifiPhyCcaThresholdsTest::WifiPhyCcaThresholdsTest ( )

Definition at line 154 of file wifi-phy-cca-test.cc.

Member Function Documentation

◆ CreateDummyHePpdu()

Ptr< HePpdu > WifiPhyCcaThresholdsTest::CreateDummyHePpdu ( uint16_t  bandwidth,
const WifiPhyOperatingChannel channel 
)
private

Create a HE PPDU.

Parameters
bandwidththe bandwidth used for the transmission the PPDU in MHz
channelthe operating channel of the PHY used for the transmission
Returns
a HE PPDU

Definition at line 203 of file wifi-phy-cca-test.cc.

References CreateDummyPsdu(), ns3::HePhy::GetHeMcs0(), ns3::MicroSeconds(), and ns3::WIFI_PREAMBLE_HE_SU.

Referenced by RunOne().

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

◆ CreateDummyHtPpdu()

Ptr< HtPpdu > WifiPhyCcaThresholdsTest::CreateDummyHtPpdu ( uint16_t  bandwidth,
const WifiPhyOperatingChannel channel 
)
private

Create a HT PPDU.

Parameters
bandwidththe bandwidth used for the transmission the PPDU in MHz
channelthe operating channel of the PHY used for the transmission
Returns
a HT PPDU

Definition at line 183 of file wifi-phy-cca-test.cc.

References CreateDummyPsdu(), ns3::HtPhy::GetHtMcs0(), ns3::MicroSeconds(), and ns3::WIFI_PREAMBLE_HT_MF.

Referenced by RunOne().

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

◆ CreateDummyNonHtPpdu()

Ptr< OfdmPpdu > WifiPhyCcaThresholdsTest::CreateDummyNonHtPpdu ( const WifiPhyOperatingChannel channel)
private

Create a non-HT PPDU.

Parameters
channelthe operating channel of the PHY used for the transmission
Returns
a non-HT PPDU

Definition at line 174 of file wifi-phy-cca-test.cc.

References CreateDummyPsdu(), ns3::OfdmPhy::GetOfdmRate6Mbps(), and ns3::WIFI_PREAMBLE_LONG.

Referenced by RunOne().

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

◆ CreateDummyPsdu()

Ptr< WifiPsdu > WifiPhyCcaThresholdsTest::CreateDummyPsdu ( )
private

Create a dummy PSDU whose payload is 1000 bytes.

Returns
a dummy PSDU whose payload is 1000 bytes

Definition at line 164 of file wifi-phy-cca-test.cc.

References ns3::WifiMacHeader::SetQosTid(), ns3::WifiMacHeader::SetType(), and ns3::WIFI_MAC_QOSDATA.

Referenced by CreateDummyHePpdu(), CreateDummyHtPpdu(), CreateDummyNonHtPpdu(), and CreateDummyVhtPpdu().

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

◆ CreateDummyVhtPpdu()

Ptr< VhtPpdu > WifiPhyCcaThresholdsTest::CreateDummyVhtPpdu ( uint16_t  bandwidth,
const WifiPhyOperatingChannel channel 
)
private

Create a VHT PPDU.

Parameters
bandwidththe bandwidth used for the transmission the PPDU in MHz
channelthe operating channel of the PHY used for the transmission
Returns
a VHT PPDU

Definition at line 193 of file wifi-phy-cca-test.cc.

References CreateDummyPsdu(), ns3::VhtPhy::GetVhtMcs0(), ns3::MicroSeconds(), and ns3::WIFI_PREAMBLE_VHT_SU.

Referenced by RunOne().

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

◆ DoRun()

void WifiPhyCcaThresholdsTest::DoRun ( )
overrideprivatevirtual

Implementation to actually run this TestCase.

Subclasses should override this method to conduct their tests.

Implements ns3::TestCase.

Definition at line 530 of file wifi-phy-cca-test.cc.

References ns3::Simulator::Destroy(), m_CcaEdThresholdDbm, m_CcaSensitivityDbm, m_obssPdLevel, m_secondaryCcaSensitivityThresholds, and RunOne().

+ Here is the call graph for this function:

◆ DoSetup()

void WifiPhyCcaThresholdsTest::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 233 of file wifi-phy-cca-test.cc.

References ns3::SpectrumWifiPhy::AddChannel(), ns3::Object::AggregateObject(), ns3::WifiPhy::ConfigureStandard(), ns3::ObssPdAlgorithm::ConnectWifiNetDevice(), ns3::WifiPhyOperatingChannel::FindFirst(), m_device, m_obssPdAlgorithm, m_phy, m_vhtConfiguration, ns3::SpectrumWifiPhy::SetDevice(), ns3::WifiPhy::SetInterferenceHelper(), ns3::WifiPhy::SetOperatingChannel(), ns3::WifiNetDevice::SetPhy(), ns3::WifiNetDevice::SetStandard(), ns3::WifiNetDevice::SetVhtConfiguration(), ns3::WIFI_PHY_BAND_5GHZ, and ns3::WIFI_STANDARD_80211ax.

+ Here is the call graph for this function:

◆ DoTeardown()

void WifiPhyCcaThresholdsTest::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 260 of file wifi-phy-cca-test.cc.

References ns3::Object::Dispose(), and m_device.

+ Here is the call graph for this function:

◆ RunOne()

void WifiPhyCcaThresholdsTest::RunOne ( )
private

◆ VerifyCcaThreshold()

void WifiPhyCcaThresholdsTest::VerifyCcaThreshold ( const Ptr< PhyEntity phy,
const Ptr< const WifiPpdu ppdu,
WifiChannelListType  channelType,
double  expectedCcaThresholdDbm 
)
private

Function to verify the CCA threshold that is being reported by a given PHY entity upon reception of a signal or a PPDU.

Parameters
phythe PHY entity to verify
ppduthe incoming PPDU or signal (if nullptr)
channelTypethe channel list type that indicates which channel the PPDU or the signal occupies
expectedCcaThresholdDbmthe CCA threshold in dBm that is expected to be reported

Definition at line 213 of file wifi-phy-cca-test.cc.

References NS_LOG_FUNCTION, NS_LOG_INFO, and NS_TEST_EXPECT_MSG_EQ_TOL.

Referenced by RunOne().

+ Here is the caller graph for this function:

Member Data Documentation

◆ m_CcaEdThresholdDbm

double WifiPhyCcaThresholdsTest::m_CcaEdThresholdDbm
private

The current CCA-ED threshold for a 20 MHz subchannel (in dBm)

Definition at line 142 of file wifi-phy-cca-test.cc.

Referenced by DoRun(), and RunOne().

◆ m_CcaSensitivityDbm

double WifiPhyCcaThresholdsTest::m_CcaSensitivityDbm
private

The current CCA sensitivity threshold for signals that occupy the primary 20 MHz channel (in dBm)

Definition at line 143 of file wifi-phy-cca-test.cc.

Referenced by DoRun(), and RunOne().

◆ m_device

Ptr<WifiNetDevice> WifiPhyCcaThresholdsTest::m_device
private

The WifiNetDevice.

Definition at line 137 of file wifi-phy-cca-test.cc.

Referenced by DoSetup(), and DoTeardown().

◆ m_obssPdAlgorithm

Ptr<ObssPdAlgorithm> WifiPhyCcaThresholdsTest::m_obssPdAlgorithm
private

The OBSS-PD algorithm.

Definition at line 139 of file wifi-phy-cca-test.cc.

Referenced by DoSetup(), and RunOne().

◆ m_obssPdLevel

double WifiPhyCcaThresholdsTest::m_obssPdLevel
private

The current OBSS-PD level (in dBm)

Definition at line 151 of file wifi-phy-cca-test.cc.

Referenced by DoRun(), and RunOne().

◆ m_phy

Ptr<SpectrumWifiPhy> WifiPhyCcaThresholdsTest::m_phy
private

The spectrum PHY.

Definition at line 138 of file wifi-phy-cca-test.cc.

Referenced by DoSetup(), and RunOne().

◆ m_secondaryCcaSensitivityThresholds

VhtConfiguration::SecondaryCcaSensitivityThresholds WifiPhyCcaThresholdsTest::m_secondaryCcaSensitivityThresholds
private

The current CCA sensitivity thresholds for signals that do not occupy the primary 20 MHz channel (in dBm)

Definition at line 147 of file wifi-phy-cca-test.cc.

Referenced by DoRun(), and RunOne().

◆ m_vhtConfiguration

Ptr<VhtConfiguration> WifiPhyCcaThresholdsTest::m_vhtConfiguration
private

The VHT configuration.

Definition at line 140 of file wifi-phy-cca-test.cc.

Referenced by DoSetup(), and RunOne().


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