A Discrete-Event Network Simulator
API
TestInterBssConstantObssPdAlgo Class Reference

Wifi Test. More...

+ Inheritance diagram for TestInterBssConstantObssPdAlgo:
+ Collaboration diagram for TestInterBssConstantObssPdAlgo:

Public Member Functions

 TestInterBssConstantObssPdAlgo ()
 
 ~TestInterBssConstantObssPdAlgo ()
 
void DoRun (void) 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 (void) const
 
TestCaseoperator= (const TestCase &)=delete
 

Private Member Functions

Ptr< ListPositionAllocatorAllocatePositions (double d1, double d2, double d3, double d4, double d5)
 Allocate the node positions. More...
 
void CheckPhyDropReasons (Ptr< WifiNetDevice > device, std::vector< WifiPhyRxfailureReason > expectedDropReasons)
 Check if the Phy drop reasons for a device are as expected. More...
 
void CheckPhyState (Ptr< WifiNetDevice > device, WifiPhyState expectedState)
 Check if the Phy State for a device is an expected value. More...
 
void CheckResults ()
 Check the results. More...
 
void ClearDropReasons ()
 Clear the drop reasons. More...
 
void NotifyPhyRxDrop (std::string context, Ptr< const Packet > p, WifiPhyRxfailureReason reason)
 Notify Phy receive drops. More...
 
void NotifyPhyRxEnd (std::string context, Ptr< const Packet > p)
 Notify Phy receive ends. More...
 
void NotifyPhyTxBegin (std::string context, Ptr< const Packet > p, double txPowerW)
 Notify Phy transmit begin. More...
 
void ResetResults ()
 Reset the results. More...
 
void RunOne ()
 Run one function. More...
 
void SendOnePacket (Ptr< WifiNetDevice > tx_dev, Ptr< WifiNetDevice > rx_dev, uint32_t payloadSize)
 Send one packet function. More...
 
void SetExpectedTxPower (double txPowerDbm)
 Set the expected transmit power in dBm. More...
 
void SetupSimulation ()
 Setup the simulation. More...
 

Private Attributes

NetDeviceContainer m_apDevices
 AP devices. More...
 
uint8_t m_bssColor1
 color for BSS 1 More...
 
uint8_t m_bssColor2
 color for BSS 2 More...
 
uint8_t m_bssColor3
 color for BSS 3 More...
 
std::vector< WifiPhyRxfailureReasonm_dropReasonsAp1
 drop reasons for AP1 More...
 
std::vector< WifiPhyRxfailureReasonm_dropReasonsAp2
 drop reasons for AP2 More...
 
std::vector< WifiPhyRxfailureReasonm_dropReasonsSta1
 drop reasons for STA1 More...
 
std::vector< WifiPhyRxfailureReasonm_dropReasonsSta2
 drop reasons for STA2 More...
 
double m_expectedTxPowerDbm
 expected transmit power in dBm More...
 
unsigned int m_numAp1PacketsReceived
 number of received packets from AP1 More...
 
unsigned int m_numAp1PacketsSent
 number of sent packets from AP1 More...
 
unsigned int m_numAp2PacketsReceived
 number of received packets from AP2 More...
 
unsigned int m_numAp2PacketsSent
 number of sent packets from AP2 More...
 
unsigned int m_numSta1PacketsReceived
 number of received packets from STA1 More...
 
unsigned int m_numSta1PacketsSent
 number of sent packets from STA1 More...
 
unsigned int m_numSta2PacketsReceived
 number of received packets from STA2 More...
 
unsigned int m_numSta2PacketsSent
 number of sent packets from STA2 More...
 
double m_obssPdLevelDbm
 OBSS-PD level in dBm. More...
 
double m_obssRxPowerDbm
 forced RX power in dBm for OBSS More...
 
unsigned int m_payloadSize1
 size in bytes of packet payload in BSS 1 More...
 
unsigned int m_payloadSize2
 size in bytes of packet payload in BSS 2 More...
 
unsigned int m_payloadSize3
 size in bytes of packet payload in BSS 3 More...
 
NetDeviceContainer m_staDevices
 STA devices. More...
 
double m_txPowerDbm
 configured transmit power in dBm 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...
 
TestCaseGetParent () const
 Get the parent of this TestCsse. More...
 
bool IsStatusFailure (void) const
 Check if any tests failed. More...
 
bool IsStatusSuccess (void) 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 (void) const
 Check if this run should assert on failure. More...
 
bool MustContinueOnFailure (void) 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...
 

Detailed Description

Wifi Test.

This test case tests the transmission of inter-BSS cases and verify behavior of 11ax OBSS_PD spatial reuse.

The topology for this test case is made of three networks, each with one AP and one STA:

AP –d1– STA1 –d2– AP2 –d3– STA2 –d4– AP3 –d5– STA3 TX1 RX1 TX2 RX2 TX3 RX3

Main parameters: OBSS_PD level = -72dbm Received Power by TX1 from TX2 = [-62dbm, -82dbm] Received SINR by RX1 from TX1 > 3dB (enough to pass MCS0 reception) Received SINR by RX2 from TX2 > 3dB (enough to pass MCS0 reception) Received SINR by RX3 from TX3 > 3dB (enough to pass MCS0 reception) TX1/RX1 BSS Color = 1 TX2/RX2 transmission PPDU BSS Color = [2 0] TX3/RX3 BSS color = 3 (BSS 3 only used to test some corner cases) PHY = 11ax, MCS 0, 80MHz

Definition at line 78 of file inter-bss-test-suite.cc.

Constructor & Destructor Documentation

◆ TestInterBssConstantObssPdAlgo()

TestInterBssConstantObssPdAlgo::TestInterBssConstantObssPdAlgo ( )

Definition at line 206 of file inter-bss-test-suite.cc.

◆ ~TestInterBssConstantObssPdAlgo()

TestInterBssConstantObssPdAlgo::~TestInterBssConstantObssPdAlgo ( )

Definition at line 229 of file inter-bss-test-suite.cc.

References ClearDropReasons().

+ Here is the call graph for this function:

Member Function Documentation

◆ AllocatePositions()

Ptr< ListPositionAllocator > TestInterBssConstantObssPdAlgo::AllocatePositions ( double  d1,
double  d2,
double  d3,
double  d4,
double  d5 
)
private

Allocate the node positions.

Parameters
d1distance d1 (in meters)
d2distance d2 (in meters)
d3distance d3 (in meters)
d4distance d4 (in meters)
d5distance d5 (in meters)
Returns
the node positions

Definition at line 235 of file inter-bss-test-suite.cc.

Referenced by RunOne().

+ Here is the caller graph for this function:

◆ CheckPhyDropReasons()

void TestInterBssConstantObssPdAlgo::CheckPhyDropReasons ( Ptr< WifiNetDevice device,
std::vector< WifiPhyRxfailureReason expectedDropReasons 
)
private

Check if the Phy drop reasons for a device are as expected.

Parameters
devicethe device to check
expectedDropReasonsthe expected PHY drop reasons

Definition at line 514 of file inter-bss-test-suite.cc.

References ns3::Node::GetId(), ns3::WifiNetDevice::GetNode(), m_dropReasonsAp1, m_dropReasonsAp2, m_dropReasonsSta1, m_dropReasonsSta2, ns3::Now(), and NS_TEST_ASSERT_MSG_EQ.

Referenced by SetupSimulation().

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

◆ CheckPhyState()

void TestInterBssConstantObssPdAlgo::CheckPhyState ( Ptr< WifiNetDevice device,
WifiPhyState  expectedState 
)
private

Check if the Phy State for a device is an expected value.

Parameters
devicethe device to check
expectedStatethe expected PHY state

Definition at line 502 of file inter-bss-test-suite.cc.

References ns3::PointerValue::Get(), ns3::WifiNetDevice::GetPhy(), ns3::Now(), NS_TEST_ASSERT_MSG_EQ, and third::phy.

Referenced by SetupSimulation().

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

◆ CheckResults()

void TestInterBssConstantObssPdAlgo::CheckResults ( )
private

◆ ClearDropReasons()

void TestInterBssConstantObssPdAlgo::ClearDropReasons ( )
private

Clear the drop reasons.

Definition at line 393 of file inter-bss-test-suite.cc.

References m_dropReasonsAp1, m_dropReasonsAp2, m_dropReasonsSta1, and m_dropReasonsSta2.

Referenced by ~TestInterBssConstantObssPdAlgo(), ResetResults(), and SetupSimulation().

+ Here is the caller graph for this function:

◆ DoRun()

void TestInterBssConstantObssPdAlgo::DoRun ( void  )
overridevirtual

Implementation to actually run this TestCase.

Subclasses should override this method to conduct their tests.

Implements ns3::TestCase.

Definition at line 641 of file inter-bss-test-suite.cc.

References m_bssColor1, m_bssColor2, m_bssColor3, m_obssPdLevelDbm, m_obssRxPowerDbm, and RunOne().

+ Here is the call graph for this function:

◆ NotifyPhyRxDrop()

void TestInterBssConstantObssPdAlgo::NotifyPhyRxDrop ( std::string  context,
Ptr< const Packet p,
WifiPhyRxfailureReason  reason 
)
private

Notify Phy receive drops.

Parameters
contextthe context
pthe packet
reasonthe reason why it was dropped

Definition at line 465 of file inter-bss-test-suite.cc.

References ConvertContextToNodeId(), ns3::Packet::GetSize(), m_dropReasonsAp1, m_dropReasonsAp2, m_dropReasonsSta1, m_dropReasonsSta2, m_payloadSize1, m_payloadSize2, and pktSize.

Referenced by RunOne().

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

◆ NotifyPhyRxEnd()

void TestInterBssConstantObssPdAlgo::NotifyPhyRxEnd ( std::string  context,
Ptr< const Packet p 
)
private

Notify Phy receive ends.

Parameters
contextthe context
pthe packet

Definition at line 442 of file inter-bss-test-suite.cc.

References ConvertContextToNodeId(), ns3::Packet::GetSize(), m_numAp1PacketsReceived, m_numAp2PacketsReceived, m_numSta1PacketsReceived, m_numSta2PacketsReceived, m_payloadSize1, m_payloadSize2, and pktSize.

Referenced by RunOne().

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

◆ NotifyPhyTxBegin()

void TestInterBssConstantObssPdAlgo::NotifyPhyTxBegin ( std::string  context,
Ptr< const Packet p,
double  txPowerW 
)
private

Notify Phy transmit begin.

Parameters
contextthe context
pthe packet
txPowerWthe tx power

Definition at line 415 of file inter-bss-test-suite.cc.

References ConvertContextToNodeId(), ns3::Packet::GetSize(), m_expectedTxPowerDbm, m_numAp1PacketsSent, m_numAp2PacketsSent, m_numSta1PacketsSent, m_numSta2PacketsSent, m_payloadSize1, m_payloadSize2, NS_TEST_EXPECT_MSG_EQ, pktSize, ns3::TestDoubleIsEqual(), and ns3::WToDbm().

Referenced by RunOne().

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

◆ ResetResults()

void TestInterBssConstantObssPdAlgo::ResetResults ( void  )
private

Reset the results.

Definition at line 378 of file inter-bss-test-suite.cc.

References ClearDropReasons(), m_expectedTxPowerDbm, m_numAp1PacketsReceived, m_numAp1PacketsSent, m_numAp2PacketsReceived, m_numAp2PacketsSent, m_numSta1PacketsReceived, m_numSta1PacketsSent, m_numSta2PacketsReceived, m_numSta2PacketsSent, and m_txPowerDbm.

Referenced by RunOne().

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

◆ RunOne()

◆ SendOnePacket()

void TestInterBssConstantObssPdAlgo::SendOnePacket ( Ptr< WifiNetDevice tx_dev,
Ptr< WifiNetDevice rx_dev,
uint32_t  payloadSize 
)
private

Send one packet function.

Parameters
tx_devthe transmitting device
rx_devthe receiving device
payloadSizethe payload size

Definition at line 489 of file inter-bss-test-suite.cc.

References ns3::WifiNetDevice::GetAddress(), and ns3::WifiNetDevice::Send().

Referenced by SetupSimulation().

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

◆ SetExpectedTxPower()

void TestInterBssConstantObssPdAlgo::SetExpectedTxPower ( double  txPowerDbm)
private

Set the expected transmit power in dBm.

Parameters
txPowerDbmthe transmit power in dBm

Definition at line 496 of file inter-bss-test-suite.cc.

References m_expectedTxPowerDbm.

Referenced by SetupSimulation().

+ Here is the caller graph for this function:

◆ SetupSimulation()

void TestInterBssConstantObssPdAlgo::SetupSimulation ( )
private

Member Data Documentation

◆ m_apDevices

NetDeviceContainer TestInterBssConstantObssPdAlgo::m_apDevices
private

AP devices.

Definition at line 194 of file inter-bss-test-suite.cc.

Referenced by RunOne(), and SetupSimulation().

◆ m_bssColor1

uint8_t TestInterBssConstantObssPdAlgo::m_bssColor1
private

color for BSS 1

Definition at line 201 of file inter-bss-test-suite.cc.

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

◆ m_bssColor2

uint8_t TestInterBssConstantObssPdAlgo::m_bssColor2
private

color for BSS 2

Definition at line 202 of file inter-bss-test-suite.cc.

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

◆ m_bssColor3

uint8_t TestInterBssConstantObssPdAlgo::m_bssColor3
private

color for BSS 3

Definition at line 203 of file inter-bss-test-suite.cc.

Referenced by DoRun(), and RunOne().

◆ m_dropReasonsAp1

std::vector<WifiPhyRxfailureReason> TestInterBssConstantObssPdAlgo::m_dropReasonsAp1
private

drop reasons for AP1

Definition at line 186 of file inter-bss-test-suite.cc.

Referenced by CheckPhyDropReasons(), ClearDropReasons(), and NotifyPhyRxDrop().

◆ m_dropReasonsAp2

std::vector<WifiPhyRxfailureReason> TestInterBssConstantObssPdAlgo::m_dropReasonsAp2
private

drop reasons for AP2

Definition at line 187 of file inter-bss-test-suite.cc.

Referenced by CheckPhyDropReasons(), ClearDropReasons(), and NotifyPhyRxDrop().

◆ m_dropReasonsSta1

std::vector<WifiPhyRxfailureReason> TestInterBssConstantObssPdAlgo::m_dropReasonsSta1
private

drop reasons for STA1

Definition at line 184 of file inter-bss-test-suite.cc.

Referenced by CheckPhyDropReasons(), ClearDropReasons(), and NotifyPhyRxDrop().

◆ m_dropReasonsSta2

std::vector<WifiPhyRxfailureReason> TestInterBssConstantObssPdAlgo::m_dropReasonsSta2
private

drop reasons for STA2

Definition at line 185 of file inter-bss-test-suite.cc.

Referenced by CheckPhyDropReasons(), ClearDropReasons(), and NotifyPhyRxDrop().

◆ m_expectedTxPowerDbm

double TestInterBssConstantObssPdAlgo::m_expectedTxPowerDbm
private

expected transmit power in dBm

Definition at line 199 of file inter-bss-test-suite.cc.

Referenced by NotifyPhyTxBegin(), ResetResults(), and SetExpectedTxPower().

◆ m_numAp1PacketsReceived

unsigned int TestInterBssConstantObssPdAlgo::m_numAp1PacketsReceived
private

number of received packets from AP1

Definition at line 181 of file inter-bss-test-suite.cc.

Referenced by CheckResults(), NotifyPhyRxEnd(), and ResetResults().

◆ m_numAp1PacketsSent

unsigned int TestInterBssConstantObssPdAlgo::m_numAp1PacketsSent
private

number of sent packets from AP1

Definition at line 176 of file inter-bss-test-suite.cc.

Referenced by CheckResults(), NotifyPhyTxBegin(), and ResetResults().

◆ m_numAp2PacketsReceived

unsigned int TestInterBssConstantObssPdAlgo::m_numAp2PacketsReceived
private

number of received packets from AP2

Definition at line 182 of file inter-bss-test-suite.cc.

Referenced by CheckResults(), NotifyPhyRxEnd(), and ResetResults().

◆ m_numAp2PacketsSent

unsigned int TestInterBssConstantObssPdAlgo::m_numAp2PacketsSent
private

number of sent packets from AP2

Definition at line 177 of file inter-bss-test-suite.cc.

Referenced by CheckResults(), NotifyPhyTxBegin(), and ResetResults().

◆ m_numSta1PacketsReceived

unsigned int TestInterBssConstantObssPdAlgo::m_numSta1PacketsReceived
private

number of received packets from STA1

Definition at line 179 of file inter-bss-test-suite.cc.

Referenced by CheckResults(), NotifyPhyRxEnd(), and ResetResults().

◆ m_numSta1PacketsSent

unsigned int TestInterBssConstantObssPdAlgo::m_numSta1PacketsSent
private

number of sent packets from STA1

Definition at line 174 of file inter-bss-test-suite.cc.

Referenced by CheckResults(), NotifyPhyTxBegin(), and ResetResults().

◆ m_numSta2PacketsReceived

unsigned int TestInterBssConstantObssPdAlgo::m_numSta2PacketsReceived
private

number of received packets from STA2

Definition at line 180 of file inter-bss-test-suite.cc.

Referenced by CheckResults(), NotifyPhyRxEnd(), and ResetResults().

◆ m_numSta2PacketsSent

unsigned int TestInterBssConstantObssPdAlgo::m_numSta2PacketsSent
private

number of sent packets from STA2

Definition at line 175 of file inter-bss-test-suite.cc.

Referenced by CheckResults(), NotifyPhyTxBegin(), and ResetResults().

◆ m_obssPdLevelDbm

double TestInterBssConstantObssPdAlgo::m_obssPdLevelDbm
private

OBSS-PD level in dBm.

Definition at line 197 of file inter-bss-test-suite.cc.

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

◆ m_obssRxPowerDbm

double TestInterBssConstantObssPdAlgo::m_obssRxPowerDbm
private

forced RX power in dBm for OBSS

Definition at line 198 of file inter-bss-test-suite.cc.

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

◆ m_payloadSize1

unsigned int TestInterBssConstantObssPdAlgo::m_payloadSize1
private

size in bytes of packet payload in BSS 1

Definition at line 189 of file inter-bss-test-suite.cc.

Referenced by NotifyPhyRxDrop(), NotifyPhyRxEnd(), NotifyPhyTxBegin(), and SetupSimulation().

◆ m_payloadSize2

unsigned int TestInterBssConstantObssPdAlgo::m_payloadSize2
private

size in bytes of packet payload in BSS 2

Definition at line 190 of file inter-bss-test-suite.cc.

Referenced by NotifyPhyRxDrop(), NotifyPhyRxEnd(), NotifyPhyTxBegin(), and SetupSimulation().

◆ m_payloadSize3

unsigned int TestInterBssConstantObssPdAlgo::m_payloadSize3
private

size in bytes of packet payload in BSS 3

Definition at line 191 of file inter-bss-test-suite.cc.

Referenced by SetupSimulation().

◆ m_staDevices

NetDeviceContainer TestInterBssConstantObssPdAlgo::m_staDevices
private

STA devices.

Definition at line 193 of file inter-bss-test-suite.cc.

Referenced by RunOne(), and SetupSimulation().

◆ m_txPowerDbm

double TestInterBssConstantObssPdAlgo::m_txPowerDbm
private

configured transmit power in dBm

Definition at line 196 of file inter-bss-test-suite.cc.

Referenced by ResetResults(), RunOne(), and SetupSimulation().


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