A Discrete-Event Network Simulator
API
TestInterBssConstantObssPdAlgo Class Reference

Wifi Test. More...

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

Public Member Functions

 TestInterBssConstantObssPdAlgo ()
 
virtual void DoRun (void)
 Implementation to actually run this TestCase. More...
 
- Public Member Functions inherited from ns3::TestCase
virtual ~TestCase ()
 Destructor. More...
 
std::string GetName (void) const
 

Private Member Functions

Ptr< ListPositionAllocatorAllocatePositions (double d1, double d2, double d3, double d4, double d5)
 Allocate the node positions. 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 NotifyPhyRxEnd (std::string context, Ptr< const Packet > p)
 Notify Phy receive endsn. 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)
 
void SetupSimulation ()
 Setup the simulation. More...
 

Private Attributes

NetDeviceContainer m_apDevices
 
uint8_t m_bssColor1
 
uint8_t m_bssColor2
 
uint8_t m_bssColor3
 
double m_expectedTxPowerDbm
 
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
 
double m_obssRxPowerDbm
 
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
 
double m_txPowerDbm
 

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 173 of file inter-bss-test-suite.cc.

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)

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

References ns3::ListPositionAllocator::Add().

Referenced by RunOne().

+ 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.

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

References ns3::PointerValue::Get(), ns3::WifiNetDevice::GetPhy(), ns3::WifiPhyStateHelper::GetState(), 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

◆ DoRun()

void TestInterBssConstantObssPdAlgo::DoRun ( void  )
virtual

Implementation to actually run this TestCase.

Subclasses should override this method to conduct their tests.

Implements ns3::TestCase.

Definition at line 493 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:

◆ NotifyPhyRxEnd()

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

Notify Phy receive endsn.

Parameters
contextthe context
pthe packet

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

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

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 324 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, 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

◆ 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 374 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

Definition at line 381 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

Setup the simulation.

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

References CheckPhyState(), ns3::NetDeviceContainer::Get(), IDLE, m_apDevices, m_bssColor1, m_bssColor2, m_obssPdLevelDbm, m_obssRxPowerDbm, m_payloadSize1, m_payloadSize2, m_payloadSize3, m_staDevices, m_txPowerDbm, ns3::MicroSeconds(), min, RX, ns3::Seconds(), SendOnePacket(), SetExpectedTxPower(), and TX.

Referenced by RunOne().

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

Member Data Documentation

◆ m_apDevices

NetDeviceContainer TestInterBssConstantObssPdAlgo::m_apDevices
private

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

Referenced by RunOne(), and SetupSimulation().

◆ m_bssColor1

uint8_t TestInterBssConstantObssPdAlgo::m_bssColor1
private

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

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

◆ m_bssColor2

uint8_t TestInterBssConstantObssPdAlgo::m_bssColor2
private

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

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

◆ m_bssColor3

uint8_t TestInterBssConstantObssPdAlgo::m_bssColor3
private

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

Referenced by DoRun(), and RunOne().

◆ m_expectedTxPowerDbm

double TestInterBssConstantObssPdAlgo::m_expectedTxPowerDbm
private

Definition at line 166 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 153 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 148 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 154 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 149 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 151 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 146 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 152 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 147 of file inter-bss-test-suite.cc.

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

◆ m_obssPdLevelDbm

double TestInterBssConstantObssPdAlgo::m_obssPdLevelDbm
private

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

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

◆ m_obssRxPowerDbm

double TestInterBssConstantObssPdAlgo::m_obssRxPowerDbm
private

Definition at line 165 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 156 of file inter-bss-test-suite.cc.

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

◆ m_payloadSize2

unsigned int TestInterBssConstantObssPdAlgo::m_payloadSize2
private

size in bytes of packet payload in BSS 2

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

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

◆ m_payloadSize3

unsigned int TestInterBssConstantObssPdAlgo::m_payloadSize3
private

size in bytes of packet payload in BSS 3

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

Referenced by SetupSimulation().

◆ m_staDevices

NetDeviceContainer TestInterBssConstantObssPdAlgo::m_staDevices
private

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

Referenced by RunOne(), and SetupSimulation().

◆ m_txPowerDbm

double TestInterBssConstantObssPdAlgo::m_txPowerDbm
private

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

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


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