Wifi Test. More...
Public Member Functions | |
TestInterBssConstantObssPdAlgo (WifiStandard standard) | |
Constructor. More... | |
~TestInterBssConstantObssPdAlgo () override | |
void | DoRun () 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 () const |
TestCase & | operator= (const TestCase &)=delete |
Private Member Functions | |
Ptr< ListPositionAllocator > | AllocatePositions (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< WifiPhyRxfailureReason > | m_dropReasonsAp1 |
drop reasons for AP1 More... | |
std::vector< WifiPhyRxfailureReason > | m_dropReasonsAp2 |
drop reasons for AP2 More... | |
std::vector< WifiPhyRxfailureReason > | m_dropReasonsSta1 |
drop reasons for STA1 More... | |
std::vector< WifiPhyRxfailureReason > | m_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... | |
WifiStandard | m_standard |
the standard to use for the test 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... | |
TestCase * | GetParent () const |
Get the parent of this TestCase. More... | |
bool | IsStatusFailure () const |
Check if any tests failed. More... | |
bool | IsStatusSuccess () 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 () const |
Check if this run should assert on failure. More... | |
bool | MustContinueOnFailure () 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... | |
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 77 of file inter-bss-test-suite.cc.
TestInterBssConstantObssPdAlgo::TestInterBssConstantObssPdAlgo | ( | WifiStandard | standard | ) |
Constructor.
standard | The standard to use for the test |
Definition at line 217 of file inter-bss-test-suite.cc.
|
override |
Definition at line 241 of file inter-bss-test-suite.cc.
References ClearDropReasons().
|
private |
Allocate the node positions.
d1 | distance d1 (in meters) |
d2 | distance d2 (in meters) |
d3 | distance d3 (in meters) |
d4 | distance d4 (in meters) |
d5 | distance d5 (in meters) |
Definition at line 247 of file inter-bss-test-suite.cc.
Referenced by RunOne().
|
private |
Check if the Phy drop reasons for a device are as expected.
device | the device to check |
expectedDropReasons | the expected PHY drop reasons |
Definition at line 788 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().
|
private |
Check if the Phy State for a device is an expected value.
device | the device to check |
expectedState | the expected PHY state |
Definition at line 773 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().
|
private |
Check the results.
Definition at line 644 of file inter-bss-test-suite.cc.
References m_numAp1PacketsReceived, m_numAp1PacketsSent, m_numAp2PacketsReceived, m_numAp2PacketsSent, m_numSta1PacketsReceived, m_numSta1PacketsSent, m_numSta2PacketsReceived, m_numSta2PacketsSent, and NS_TEST_ASSERT_MSG_EQ.
Referenced by RunOne().
|
private |
Clear the drop reasons.
Definition at line 635 of file inter-bss-test-suite.cc.
References m_dropReasonsAp1, m_dropReasonsAp2, m_dropReasonsSta1, and m_dropReasonsSta2.
Referenced by ~TestInterBssConstantObssPdAlgo(), ResetResults(), and SetupSimulation().
|
overridevirtual |
Implementation to actually run this TestCase.
Subclasses should override this method to conduct their tests.
Implements ns3::TestCase.
Definition at line 942 of file inter-bss-test-suite.cc.
References m_bssColor1, m_bssColor2, m_bssColor3, m_obssPdLevelDbm, m_obssRxPowerDbm, and RunOne().
|
private |
Notify Phy receive drops.
context | the context |
p | the packet |
reason | the reason why it was dropped |
Definition at line 733 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().
|
private |
Notify Phy receive ends.
context | the context |
p | the packet |
Definition at line 710 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().
|
private |
Notify Phy transmit begin.
context | the context |
p | the packet |
txPowerW | the tx power |
Definition at line 673 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().
|
private |
Reset the results.
Definition at line 620 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().
|
private |
Run one function.
Definition at line 828 of file inter-bss-test-suite.cc.
References AllocatePositions(), third::channel, CheckResults(), ns3::Config::Connect(), ns3::NodeContainer::Create(), ns3::NetDeviceContainer::Get(), ns3::NodeContainer::Get(), ns3::WifiNetDevice::GetHeConfiguration(), ns3::NetDeviceContainer::GetN(), ns3::Object::GetObject(), m_apDevices, m_bssColor1, m_bssColor2, m_bssColor3, m_obssPdLevelDbm, m_obssRxPowerDbm, m_staDevices, m_standard, m_txPowerDbm, third::mac, ns3::MakeCallback(), third::mobility, NotifyPhyRxDrop(), NotifyPhyRxEnd(), NotifyPhyTxBegin(), third::phy, ResetResults(), ns3::Config::Set(), SetupSimulation(), third::ssid, third::wifi, and third::wifiStaNodes.
Referenced by DoRun().
|
private |
Send one packet function.
tx_dev | the transmitting device |
rx_dev | the receiving device |
payloadSize | the payload size |
Definition at line 758 of file inter-bss-test-suite.cc.
References ns3::WifiNetDevice::GetAddress(), and ns3::WifiNetDevice::Send().
Referenced by SetupSimulation().
|
private |
Set the expected transmit power in dBm.
txPowerDbm | the transmit power in dBm |
Definition at line 767 of file inter-bss-test-suite.cc.
References m_expectedTxPowerDbm.
Referenced by SetupSimulation().
|
private |
Setup the simulation.
Definition at line 264 of file inter-bss-test-suite.cc.
References CCA_BUSY, CheckPhyDropReasons(), CheckPhyState(), ClearDropReasons(), ns3::FILTERED, 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, ns3::OBSS_PD_CCA_RESET, RX, ns3::Seconds(), SendOnePacket(), SetExpectedTxPower(), and TX.
Referenced by RunOne().
|
private |
AP devices.
Definition at line 203 of file inter-bss-test-suite.cc.
Referenced by RunOne(), and SetupSimulation().
|
private |
color for BSS 1
Definition at line 210 of file inter-bss-test-suite.cc.
Referenced by DoRun(), RunOne(), and SetupSimulation().
|
private |
color for BSS 2
Definition at line 211 of file inter-bss-test-suite.cc.
Referenced by DoRun(), RunOne(), and SetupSimulation().
|
private |
color for BSS 3
Definition at line 212 of file inter-bss-test-suite.cc.
|
private |
drop reasons for AP1
Definition at line 195 of file inter-bss-test-suite.cc.
Referenced by CheckPhyDropReasons(), ClearDropReasons(), and NotifyPhyRxDrop().
|
private |
drop reasons for AP2
Definition at line 196 of file inter-bss-test-suite.cc.
Referenced by CheckPhyDropReasons(), ClearDropReasons(), and NotifyPhyRxDrop().
|
private |
drop reasons for STA1
Definition at line 193 of file inter-bss-test-suite.cc.
Referenced by CheckPhyDropReasons(), ClearDropReasons(), and NotifyPhyRxDrop().
|
private |
drop reasons for STA2
Definition at line 194 of file inter-bss-test-suite.cc.
Referenced by CheckPhyDropReasons(), ClearDropReasons(), and NotifyPhyRxDrop().
|
private |
expected transmit power in dBm
Definition at line 208 of file inter-bss-test-suite.cc.
Referenced by NotifyPhyTxBegin(), ResetResults(), and SetExpectedTxPower().
|
private |
number of received packets from AP1
Definition at line 190 of file inter-bss-test-suite.cc.
Referenced by CheckResults(), NotifyPhyRxEnd(), and ResetResults().
|
private |
number of sent packets from AP1
Definition at line 185 of file inter-bss-test-suite.cc.
Referenced by CheckResults(), NotifyPhyTxBegin(), and ResetResults().
|
private |
number of received packets from AP2
Definition at line 191 of file inter-bss-test-suite.cc.
Referenced by CheckResults(), NotifyPhyRxEnd(), and ResetResults().
|
private |
number of sent packets from AP2
Definition at line 186 of file inter-bss-test-suite.cc.
Referenced by CheckResults(), NotifyPhyTxBegin(), and ResetResults().
|
private |
number of received packets from STA1
Definition at line 188 of file inter-bss-test-suite.cc.
Referenced by CheckResults(), NotifyPhyRxEnd(), and ResetResults().
|
private |
number of sent packets from STA1
Definition at line 183 of file inter-bss-test-suite.cc.
Referenced by CheckResults(), NotifyPhyTxBegin(), and ResetResults().
|
private |
number of received packets from STA2
Definition at line 189 of file inter-bss-test-suite.cc.
Referenced by CheckResults(), NotifyPhyRxEnd(), and ResetResults().
|
private |
number of sent packets from STA2
Definition at line 184 of file inter-bss-test-suite.cc.
Referenced by CheckResults(), NotifyPhyTxBegin(), and ResetResults().
|
private |
OBSS-PD level in dBm.
Definition at line 206 of file inter-bss-test-suite.cc.
Referenced by DoRun(), RunOne(), and SetupSimulation().
|
private |
forced RX power in dBm for OBSS
Definition at line 207 of file inter-bss-test-suite.cc.
Referenced by DoRun(), RunOne(), and SetupSimulation().
|
private |
size in bytes of packet payload in BSS 1
Definition at line 198 of file inter-bss-test-suite.cc.
Referenced by NotifyPhyRxDrop(), NotifyPhyRxEnd(), NotifyPhyTxBegin(), and SetupSimulation().
|
private |
size in bytes of packet payload in BSS 2
Definition at line 199 of file inter-bss-test-suite.cc.
Referenced by NotifyPhyRxDrop(), NotifyPhyRxEnd(), NotifyPhyTxBegin(), and SetupSimulation().
|
private |
size in bytes of packet payload in BSS 3
Definition at line 200 of file inter-bss-test-suite.cc.
Referenced by SetupSimulation().
|
private |
STA devices.
Definition at line 202 of file inter-bss-test-suite.cc.
Referenced by RunOne(), and SetupSimulation().
|
private |
the standard to use for the test
Definition at line 214 of file inter-bss-test-suite.cc.
Referenced by RunOne().
|
private |
configured transmit power in dBm
Definition at line 205 of file inter-bss-test-suite.cc.
Referenced by ResetResults(), RunOne(), and SetupSimulation().