Wifi Test. More...
Inheritance diagram for TestInterBssConstantObssPdAlgo:
Collaboration diagram for TestInterBssConstantObssPdAlgo:Public Member Functions | |
| TestInterBssConstantObssPdAlgo (WifiStandard standard) | |
| Constructor. | |
| ~TestInterBssConstantObssPdAlgo () override | |
| void | DoRun () override |
| Implementation to actually run this TestCase. | |
Public Member Functions inherited from ns3::TestCase | |
| TestCase (const TestCase &)=delete | |
| virtual | ~TestCase () |
| Destructor. | |
| 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. | |
| void | CheckPhyDropReasons (Ptr< WifiNetDevice > device, std::vector< WifiPhyRxfailureReason > expectedDropReasons) |
| Check if the Phy drop reasons for a device are as expected. | |
| void | CheckPhyState (Ptr< WifiNetDevice > device, WifiPhyState expectedState) |
| Check if the Phy State for a device is an expected value. | |
| void | CheckResults () |
| Check the results. | |
| void | ClearDropReasons () |
| Clear the drop reasons. | |
| void | NotifyPhyRxDrop (std::string context, Ptr< const Packet > p, WifiPhyRxfailureReason reason) |
| Notify Phy receive drops. | |
| void | NotifyPhyRxEnd (std::string context, Ptr< const Packet > p) |
| Notify Phy receive ends. | |
| void | NotifyPhyTxBegin (std::string context, Ptr< const Packet > p, double txPowerW) |
| Notify Phy transmit begin. | |
| void | ResetResults () |
| Reset the results. | |
| void | RunOne () |
| Run one function. | |
| void | SendOnePacket (Ptr< WifiNetDevice > tx_dev, Ptr< WifiNetDevice > rx_dev, uint32_t payloadSize) |
| Send one packet function. | |
| void | SetExpectedTxPower (double txPowerDbm) |
| Set the expected transmit power in dBm. | |
| void | SetupSimulation () |
| Setup the simulation. | |
Private Attributes | |
| NetDeviceContainer | m_apDevices |
| AP devices. | |
| uint8_t | m_bssColor1 |
| color for BSS 1 | |
| uint8_t | m_bssColor2 |
| color for BSS 2 | |
| uint8_t | m_bssColor3 |
| color for BSS 3 | |
| std::vector< WifiPhyRxfailureReason > | m_dropReasonsAp1 |
| drop reasons for AP1 | |
| std::vector< WifiPhyRxfailureReason > | m_dropReasonsAp2 |
| drop reasons for AP2 | |
| std::vector< WifiPhyRxfailureReason > | m_dropReasonsSta1 |
| drop reasons for STA1 | |
| std::vector< WifiPhyRxfailureReason > | m_dropReasonsSta2 |
| drop reasons for STA2 | |
| double | m_expectedTxPowerDbm |
| expected transmit power in dBm | |
| unsigned int | m_numAp1PacketsReceived |
| number of received packets from AP1 | |
| unsigned int | m_numAp1PacketsSent |
| number of sent packets from AP1 | |
| unsigned int | m_numAp2PacketsReceived |
| number of received packets from AP2 | |
| unsigned int | m_numAp2PacketsSent |
| number of sent packets from AP2 | |
| unsigned int | m_numSta1PacketsReceived |
| number of received packets from STA1 | |
| unsigned int | m_numSta1PacketsSent |
| number of sent packets from STA1 | |
| unsigned int | m_numSta2PacketsReceived |
| number of received packets from STA2 | |
| unsigned int | m_numSta2PacketsSent |
| number of sent packets from STA2 | |
| double | m_obssPdLevelDbm |
| OBSS-PD level in dBm. | |
| double | m_obssRxPowerDbm |
| forced RX power in dBm for OBSS | |
| unsigned int | m_payloadSize1 |
| size in bytes of packet payload in BSS 1 | |
| unsigned int | m_payloadSize2 |
| size in bytes of packet payload in BSS 2 | |
| unsigned int | m_payloadSize3 |
| size in bytes of packet payload in BSS 3 | |
| NetDeviceContainer | m_staDevices |
| STA devices. | |
| WifiStandard | m_standard |
| the standard to use for the test | |
| double | m_txPowerDbm |
| configured transmit power in dBm | |
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. | |
| void | AddTestCase (TestCase *testCase, TestDuration duration=QUICK) |
| Add an individual child TestCase to this test suite. | |
| TestCase * | GetParent () 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. | |
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().
Here is the call graph for this function:
|
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().
Here is the caller graph for this function:
|
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 m_dropReasonsAp1, m_dropReasonsAp2, m_dropReasonsSta1, m_dropReasonsSta2, ns3::Simulator::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:
|
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::Simulator::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:
|
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().
Here is the caller graph for this function:
|
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().
Here is the caller graph for this function:
|
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().
Here is the call graph for this function:
|
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(), 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:
|
private |
Notify Phy receive ends.
| context | the context |
| p | the packet |
Definition at line 710 of file inter-bss-test-suite.cc.
References ConvertContextToNodeId(), 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:
|
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(), 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:
|
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().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Run one function.
Definition at line 828 of file inter-bss-test-suite.cc.
References AllocatePositions(), CheckResults(), ns3::Config::Connect(), ns3::NodeContainer::Create(), ns3::Simulator::Destroy(), ns3::NetDeviceContainer::Get(), ns3::NodeContainer::Get(), ns3::NetDeviceContainer::GetN(), ns3::Object::GetObject(), m_apDevices, m_bssColor1, m_bssColor2, m_bssColor3, m_obssPdLevelDbm, m_obssRxPowerDbm, m_staDevices, m_standard, m_txPowerDbm, ns3::MakeCallback(), NotifyPhyRxDrop(), NotifyPhyRxEnd(), NotifyPhyTxBegin(), ResetResults(), ns3::Simulator::Run(), ns3::Config::Set(), ns3::RngSeedManager::SetRun(), ns3::RngSeedManager::SetSeed(), and SetupSimulation().
Referenced by DoRun().
Here is the call graph for this function:
Here is the caller graph for this function:
|
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.
Referenced by SetupSimulation().
Here is the caller graph for this function:
|
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().
Here is the caller graph for this function:
|
private |
Setup the simulation.
Definition at line 264 of file inter-bss-test-suite.cc.
References CheckPhyDropReasons(), CheckPhyState(), ClearDropReasons(), ns3::FILTERED, ns3::NetDeviceContainer::Get(), m_apDevices, m_bssColor1, m_bssColor2, m_obssPdLevelDbm, m_obssRxPowerDbm, m_payloadSize1, m_payloadSize2, m_payloadSize3, m_staDevices, m_txPowerDbm, ns3::MicroSeconds(), ns3::OBSS_PD_CCA_RESET, ns3::Simulator::Schedule(), ns3::Seconds(), SendOnePacket(), SetExpectedTxPower(), and ns3::Simulator::Stop().
Referenced by RunOne().
Here is the call graph for this function:
Here is the caller graph for this function:
|
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().