Test the transmission of UL frames from EMLSR clients. More...
#include "wifi-emlsr-test.h"
Classes | |
struct | Params |
Parameters for the EMLSR UL TXOP test. More... | |
Public Member Functions | |
EmlsrUlTxopTest (const Params ¶ms) | |
Constructor. | |
~EmlsrUlTxopTest () override=default | |
Public Member Functions inherited from EmlsrOperationsTestBase | |
EmlsrOperationsTestBase (const std::string &name) | |
Constructor. | |
~EmlsrOperationsTestBase () override=default | |
Public Member Functions inherited from ns3::TestCase | |
TestCase (const TestCase &)=delete | |
virtual | ~TestCase () |
Destructor. | |
std::string | GetName () const |
TestCase & | operator= (const TestCase &)=delete |
Protected Member Functions | |
void | CheckBlockAck (const WifiConstPsduMap &psduMap, const WifiTxVector &txVector, uint8_t linkId) |
Check that appropriate actions are taken when an MLD transmits a PPDU containing BlockAck frames on the given link. | |
void | CheckCtsFrames (Ptr< const WifiMpdu > mpdu, const WifiTxVector &txVector, uint8_t linkId) |
Check that appropriate actions are taken by the EMLSR client when receiving a CTS frame on the given link. | |
void | CheckQosFrames (const WifiConstPsduMap &psduMap, const WifiTxVector &txVector, uint8_t linkId) |
Check that appropriate actions are taken when an MLD transmits a PPDU containing QoS data frames on the given link. | |
void | CheckResults () |
Check that the simulation produced the expected results. | |
void | CheckRtsFrames (Ptr< const WifiMpdu > mpdu, const WifiTxVector &txVector, uint8_t linkId) |
Check that appropriate actions are taken by the EMLSR client when transmitting an RTS frame on the given link. | |
void | DoRun () override |
Implementation to actually run this TestCase. | |
void | DoSetup () override |
Implementation to do any local setup required for this TestCase. | |
void | Transmit (Ptr< WifiMac > mac, uint8_t phyId, WifiConstPsduMap psduMap, WifiTxVector txVector, double txPowerW) override |
Callback invoked when a FEM passes PSDUs to the PHY. | |
Protected Member Functions inherited from EmlsrOperationsTestBase | |
void | CheckAuxPhysSleepMode (Ptr< StaWifiMac > staMac, bool sleep) |
Check whether aux PHYs of the given device are in sleep mode/awake. | |
void | CheckBlockedLink (Ptr< WifiMac > mac, Mac48Address dest, uint8_t linkId, WifiQueueBlockedReason reason, bool blocked, std::string description, bool testUnblockedForOtherReasons=true) |
Check whether QoS data unicast transmissions addressed to the given destination on the given link are blocked or unblocked for the given reason on the given device. | |
void | CheckMainPhyTraceInfo (std::size_t index, std::string_view reason, const std::optional< uint8_t > &fromLinkId, uint8_t toLinkId, bool checkFromLinkId=true, bool checkToLinkId=true) |
Check information provided by the EMLSR Manager MainPhySwitch trace. | |
void | CheckMsdTimerRunning (Ptr< StaWifiMac > staMac, uint8_t linkId, bool isRunning, const std::string &msg) |
Check whether the MediumSyncDelay timer is running on the given link of the given device. | |
Ptr< PacketSocketClient > | GetApplication (TrafficDirection dir, std::size_t staId, std::size_t count, std::size_t pktSize) const |
void | MainPhySwitchInfoCallback (std::size_t index, const EmlsrMainPhySwitchTrace &info) |
Callback connected to the EMLSR Manager MainPhySwitch trace source. | |
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. | |
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. | |
Private Member Functions | |
void | BackoffGenerated (uint32_t backoff, uint8_t linkId) |
Callback invoked when a new backoff value is generated by the EMLSR client. | |
void | StartTraffic () override |
Start the generation of traffic (needs to be overridden) | |
Private Attributes | |
Time | m_5thQosFrameTxTime |
start transmission time of the 5th QoS data frame | |
MHz_u | m_auxPhyChannelWidth |
max width supported by aux PHYs | |
std::optional< Time > | m_backoffEndTime |
expected backoff end time on main PHY link | |
MHz_u | m_channelWidth |
width of the channels used by MLDs | |
bool | m_checkBackoffStarted |
whether we are checking the generated backoff values | |
std::optional< bool > | m_corruptCts |
whether the transmitted CTS must be corrupted | |
std::size_t | m_countBlockAck |
counter for BlockAck frames | |
std::size_t | m_countQoSframes |
counter for QoS frames | |
std::size_t | m_countRtsframes |
counter for RTS frames | |
Time | m_emlsrEnabledTime |
when EMLSR mode has been enabled on all EMLSR clients | |
std::set< uint8_t > | m_emlsrLinks |
IDs of the links on which EMLSR mode has to be enabled. | |
Ptr< ListErrorModel > | m_errorModel |
error rate model to corrupt packets | |
Time | m_firstUlPktsGenTime |
generation time of the first two UL packets | |
bool | m_genBackoffIfTxopWithoutTx |
whether the backoff should be invoked when the AC gains the right to start a TXOP but it does not transmit any frame | |
Time | m_lastMsdExpiryTime |
expiry time of the last MediumSyncDelay timer | |
Time | m_mediumSyncDuration |
duration of the MediumSyncDelay timer | |
uint8_t | m_msdMaxNTxops |
Max number of TXOPs that an EMLSR client is allowed to attempt to initiate while the MediumSyncDelay timer is running (zero indicates no limit) | |
std::optional< uint8_t > | m_nonEmlsrLink |
ID of the non-EMLSR link (if any) | |
uint8_t | m_nSlotsLeftAlert |
value for ChannelAccessManager NSlotsLeft attribute | |
bool | m_switchMainPhyBackDelayTimeout |
whether a SwitchMainPhyBackDelay timer expires after that the main PHY moved to an aux PHY link | |
const Time | m_unblockMainPhyLinkDelay |
delay between the time the first two UL packets are generated and the time transmissions are unblocked on the link where the main PHY is operating on | |
bool | m_useAuxPhyCca |
whether CCA info from aux PHY is used when aux PHY is not TX capable | |
Additional Inherited Members | |
Public Types inherited from EmlsrOperationsTestBase | |
enum | TrafficDirection : uint8_t { DOWNLINK = 0 , UPLINK } |
Enumeration for traffic directions. More... | |
Public Types inherited from ns3::TestCase | |
enum class | Duration { QUICK = 1 , EXTENSIVE = 2 , TAKES_FOREVER = 3 } |
How long the test takes to execute. More... | |
Static Public Attributes inherited from ns3::TestCase | |
static constexpr auto | QUICK = Duration::QUICK |
Deprecated test duration simple enums. | |
static constexpr auto | EXTENSIVE = Duration::EXTENSIVE |
static constexpr auto | TAKES_FOREVER = Duration::TAKES_FOREVER |
Protected Attributes inherited from EmlsrOperationsTestBase | |
Ptr< ApWifiMac > | m_apMac |
AP wifi MAC. | |
std::vector< PacketSocketAddress > | m_dlSockets |
packet socket address for DL traffic | |
Time | m_duration {0} |
simulation duration | |
bool | m_establishBaDl {false} |
whether BA needs to be established (for TID 0) with the AP as originator | |
bool | m_establishBaUl {false} |
whether BA needs to be established (for TID 0) with the AP as recipient | |
uint16_t | m_lastAid {0} |
AID of last associated station. | |
std::set< uint8_t > | m_linksToEnableEmlsrOn |
IDs of the links on which EMLSR mode has to be enabled. | |
uint8_t | m_mainPhyId {0} |
ID of the main PHY. | |
std::size_t | m_nEmlsrStations {1} |
number of stations to create that activate EMLSR | |
std::size_t | m_nNonEmlsrStations {0} |
number of stations to create that do not activate EMLSR | |
std::vector< Time > | m_paddingDelay |
Padding Delay advertised by the non-AP MLD. | |
bool | m_putAuxPhyToSleep {false} |
whether aux PHYs are put to sleep during DL/UL TXOPs | |
std::vector< Ptr< StaWifiMac > > | m_staMacs |
MACs of the non-AP MLDs. | |
std::map< std::size_t, std::shared_ptr< EmlsrMainPhySwitchTrace > > | m_traceInfo |
EMLSR client ID-indexed map of trace info from last main PHY switch. | |
std::vector< Time > | m_transitionDelay |
Transition Delay advertised by the non-AP MLD. | |
Time | m_transitionTimeout {MicroSeconds(128)} |
Transition Timeout advertised by the AP MLD. | |
std::vector< FrameInfo > | m_txPsdus |
transmitted PSDUs | |
std::vector< PacketSocketAddress > | m_ulSockets |
packet socket address for UL traffic | |
Test the transmission of UL frames from EMLSR clients.
This test considers an AP MLD and a non-AP MLD that support EMLSR. The non-AP MLD setups three links, while the set of EMLSR links is configurable. Block ack agreements (for TID 0) for both DL and UL directions are established after that the EML Operating Mode Notification frames are exchanged to enable the EMLSR mode on the EMLSR links. Aux PHYs on the EMLSR client do not switch link, hence the main PHY will switch link (if needed) when terminating a TXOP.
It is checked that:
Also, if the PutAuxPhyToSleep attribute is set to true, it is checked that aux PHYs are in sleep mode a SIFS after receiving the ICF and are still in sleep mode right before receiving a Block Ack frame, and they are resumed from sleep after receiving the Block Ack frame.
Definition at line 593 of file wifi-emlsr-test.h.
EmlsrUlTxopTest::EmlsrUlTxopTest | ( | const Params & | params | ) |
Constructor.
params | parameters for the EMLSR UL TXOP test |
Definition at line 2576 of file wifi-emlsr-test.cc.
References EmlsrOperationsTestBase::m_duration, m_emlsrLinks, EmlsrOperationsTestBase::m_establishBaDl, EmlsrOperationsTestBase::m_establishBaUl, EmlsrOperationsTestBase::m_linksToEnableEmlsrOn, EmlsrOperationsTestBase::m_mainPhyId, EmlsrOperationsTestBase::m_nEmlsrStations, EmlsrOperationsTestBase::m_nNonEmlsrStations, m_nonEmlsrLink, EmlsrOperationsTestBase::m_putAuxPhyToSleep, EmlsrOperationsTestBase::m_transitionDelay, ns3::MicroSeconds(), NS_ABORT_MSG_IF, and ns3::Seconds().
|
overridedefault |
|
private |
Callback invoked when a new backoff value is generated by the EMLSR client.
backoff | the generated backoff value |
linkId | the ID of the link for which the backoff value has been generated |
Definition at line 2677 of file wifi-emlsr-test.cc.
References ns3::AC_BE, m_backoffEndTime, m_checkBackoffStarted, m_genBackoffIfTxopWithoutTx, EmlsrOperationsTestBase::m_mainPhyId, EmlsrOperationsTestBase::m_staMacs, ns3::Simulator::Now(), NS_LOG_DEBUG, NS_LOG_INFO, NS_TEST_EXPECT_MSG_EQ, and ns3::Time::US.
Referenced by DoSetup().
|
protected |
Check that appropriate actions are taken when an MLD transmits a PPDU containing BlockAck frames on the given link.
psduMap | the PSDU carrying BlockAck frames |
txVector | the TXVECTOR used to send the PPDU |
linkId | the ID of the given link |
Definition at line 2970 of file wifi-emlsr-test.cc.
References ns3::AC_BE, ns3::Time::As(), ns3::WifiPhy::CalculateTxDuration(), EmlsrOperationsTestBase::CheckAuxPhysSleepMode(), EmlsrOperationsTestBase::CheckMainPhyTraceInfo(), ns3::TimeValue::Get(), EmlsrOperationsTestBase::GetApplication(), EmlsrOperationsTestBase::m_apMac, m_backoffEndTime, m_checkBackoffStarted, m_countBlockAck, m_lastMsdExpiryTime, EmlsrOperationsTestBase::m_mainPhyId, m_nonEmlsrLink, m_nSlotsLeftAlert, EmlsrOperationsTestBase::m_staMacs, m_switchMainPhyBackDelayTimeout, EmlsrOperationsTestBase::m_traceInfo, Max, ns3::Time::Max(), ns3::NanoSeconds(), ns3::Simulator::Now(), ns3::Time::NS, NS_LOG_INFO, NS_TEST_ASSERT_MSG_EQ, NS_TEST_EXPECT_MSG_EQ, ns3::Simulator::Schedule(), ns3::Seconds(), EmlsrOperationsTestBase::UPLINK, and ns3::WIFI_QOSDATA_QUEUE.
Referenced by Transmit().
|
protected |
Check that appropriate actions are taken by the EMLSR client when receiving a CTS frame on the given link.
mpdu | the MPDU carrying the CTS frame |
txVector | the TXVECTOR used to send the PPDU |
linkId | the ID of the given link |
Definition at line 3326 of file wifi-emlsr-test.cc.
References ns3::WifiPhy::CalculateTxDuration(), EmlsrOperationsTestBase::CheckAuxPhysSleepMode(), EmlsrOperationsTestBase::CheckMainPhyTraceInfo(), ns3::Time::IsZero(), EmlsrOperationsTestBase::m_apMac, m_corruptCts, m_errorModel, m_firstUlPktsGenTime, EmlsrOperationsTestBase::m_mainPhyId, m_nonEmlsrLink, EmlsrOperationsTestBase::m_staMacs, EmlsrOperationsTestBase::m_traceInfo, ns3::MAX_PROPAGATION_DELAY_USEC, ns3::MicroSeconds(), NS_LOG_INFO, NS_TEST_EXPECT_MSG_EQ, NS_TEST_EXPECT_MSG_GT, ns3::Simulator::Schedule(), and ns3::ListErrorModel::SetList().
Referenced by Transmit().
|
protected |
Check that appropriate actions are taken when an MLD transmits a PPDU containing QoS data frames on the given link.
psduMap | the PSDU(s) carrying QoS data frames |
txVector | the TXVECTOR used to send the PPDU |
linkId | the ID of the given link |
Definition at line 2818 of file wifi-emlsr-test.cc.
References ns3::AC_BE, ns3::DataRate::CalculateBytesTxTime(), ns3::WifiPhy::CalculatePhyPreambleAndHeaderDuration(), ns3::WifiPhy::CalculateTxDuration(), EmlsrOperationsTestBase::CheckBlockedLink(), EmlsrOperationsTestBase::GetApplication(), ns3::WifiMode::GetDataRate(), ns3::WifiTxVector::GetMode(), EmlsrOperationsTestBase::m_apMac, m_countQoSframes, EmlsrOperationsTestBase::m_mainPhyId, m_nonEmlsrLink, EmlsrOperationsTestBase::m_staMacs, ns3::MAX_PROPAGATION_DELAY_USEC, ns3::MicroSeconds(), NS_LOG_INFO, ns3::Simulator::Schedule(), ns3::Simulator::ScheduleNow(), ns3::SU_STA_ID, EmlsrOperationsTestBase::UPLINK, and ns3::WIFI_QOSDATA_QUEUE.
Referenced by Transmit().
|
protected |
Check that the simulation produced the expected results.
EMLSR client with EMLSR mode enabled on all links (main PHY ID = 1).
main PHY│ blocked,│ aux PHYs││main PHY blocked│ cannot │ transmit│ │ ┌───┐ ┌──┐ [link 0] │CTS│ │BA│ ────────────────────────┬───┬┴───┴┬───┬───┬┴──┴───────────────────────────────────────── │RTS│ │QoS│QoS│ └───┘ │ 6 │ 7 │ └───┴───┘ gen backoff gen backoff if MediumSyncDelay ┌──┐ (also many times) not running timer expired ┌──┐ [link 1] │BA│ │ if allowed │ │ │BA│ ─────────┬───┬───┬┴──┴───────────────────────────┬───┬─────┬───┬────┬───┬───┬┴──┴─────── │QoS│QoS│ │RTS│ ... │RTS│ │QoS│QoS│ │ 4 │ 5 │ └───┘ └───┘ │ 8 │ 9 │ └───┴───┘ └───┴───┘
[link 2] ───────────────────────────────────────────────────────────────────────────
EMLSR client with EMLSR mode enabled on links 0 and 1 (main PHY ID = 1).
main PHY │ and │ non-EMLSR│ link │ blocked,│ aux PHYs││main PHY blocked│ cannot │ transmit│ │ ┌───┐ ┌──┐ [link 0] │CTS│ │BA│ ────────────────────────┬───┬┴───┴┬───┬───┬┴──┴───────────────────────────────────────── │RTS│ │QoS│QoS│ └───┘ │ 8 │ 9 │ └───┴───┘ gen backoff gen backoff if MediumSyncDelay ┌──┐ (also many times) not running timer expired ┌──┐ [link 1] │BA│ │ if allowed │ │ │BA│ ─────────┬───┬───┬┴──┴───────────────────────────┬───┬─────┬───┬────┬───┬───┬┴──┴─────── │QoS│QoS│ │RTS│ ... │RTS│ │QoS│QoS│ │ 4 │ 5 │ └───┘ └───┘ │ 10│ 11│ └───┴───┘ └───┴───┘ ┌──┐ [link 2] │BA│ ──────────┬───┬───┬┴──┴──────────────────────────────────────────────────────────── │QoS│QoS│ │ 6 │ 7 │ └───┴───┘
For both scenarios, after the last frame exchange on the main PHY link, we have the following frame exchanges on an EMLSR link where an aux PHY is operating on. After the first frame exchange, aux PHYs are configured as non-TX capable. Note that the two frame exchanges may occur on distinct auxiliary EMLSR links.
| main PHY || main PHY |
[ link ] ┌───┐ ┌───┐ ┌──┐|switches to||switches to| ┌──┐ [0 or 2] │CTS│ │CTS│ │BA│| preferred ||auxiliary |PIFS| │BA│ ──────┬───┬┴───X────┬───┬┴───┴┬───┬───┬┴──┴──────────────────────────────┬───┬───┬┴──┴─── │RTS│ │RTS│ │QoS│QoS│ │QoS│QoS│ └───┘ └───┘ │ X │ Y │ │ Z │ W │ └───┴───┘ └───┴───┘ For all EMLSR links scenario, X=10, Y=11, Z=12, W=13 For the scenario with a non-EMLSR link, X=12, Y=13, Z=14, W=15
Definition at line 3410 of file wifi-emlsr-test.cc.
References ns3::WifiPhy::CalculateTxDuration(), ns3::CtrlTriggerHeader::IsMuRts(), m_5thQosFrameTxTime, m_auxPhyChannelWidth, m_channelWidth, m_countRtsframes, m_firstUlPktsGenTime, m_genBackoffIfTxopWithoutTx, m_lastMsdExpiryTime, EmlsrOperationsTestBase::m_mainPhyId, m_msdMaxNTxops, m_nonEmlsrLink, m_nSlotsLeftAlert, EmlsrOperationsTestBase::m_staMacs, m_switchMainPhyBackDelayTimeout, EmlsrOperationsTestBase::m_txPsdus, m_unblockMainPhyLinkDelay, m_useAuxPhyCca, NS_TEST_ASSERT_MSG_EQ, NS_TEST_EXPECT_MSG_EQ, NS_TEST_EXPECT_MSG_GT_OR_EQ, NS_TEST_EXPECT_MSG_LT, NS_TEST_EXPECT_MSG_LT_OR_EQ, and NS_TEST_EXPECT_MSG_NE.
Referenced by DoRun().
|
protected |
Check that appropriate actions are taken by the EMLSR client when transmitting an RTS frame on the given link.
mpdu | the MPDU carrying the RTS frame |
txVector | the TXVECTOR used to send the PPDU |
linkId | the ID of the given link |
Definition at line 3288 of file wifi-emlsr-test.cc.
References ns3::CreateObject(), ns3::WifiTxVector::GetChannelWidth(), ns3::Time::IsZero(), m_corruptCts, m_countRtsframes, m_errorModel, m_firstUlPktsGenTime, EmlsrOperationsTestBase::m_mainPhyId, EmlsrOperationsTestBase::m_staMacs, NS_LOG_INFO, NS_TEST_EXPECT_MSG_EQ, and ns3::ListErrorModel::SetList().
Referenced by Transmit().
|
overrideprotectedvirtual |
Implementation to actually run this TestCase.
Subclasses should override this method to conduct their tests.
Implements ns3::TestCase.
Definition at line 3399 of file wifi-emlsr-test.cc.
References CheckResults(), ns3::Simulator::Destroy(), EmlsrOperationsTestBase::m_duration, ns3::Simulator::Run(), and ns3::Simulator::Stop().
|
overrideprotectedvirtual |
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 EmlsrOperationsTestBase.
Definition at line 2624 of file wifi-emlsr-test.cc.
References ns3::AC_BE, BackoffGenerated(), ns3::Count20MHzSubchannels(), ns3::CreateObject(), EmlsrOperationsTestBase::DoSetup(), EmlsrOperationsTestBase::m_apMac, m_auxPhyChannelWidth, m_channelWidth, m_errorModel, m_genBackoffIfTxopWithoutTx, EmlsrOperationsTestBase::m_mainPhyId, m_mediumSyncDuration, m_msdMaxNTxops, m_nSlotsLeftAlert, EmlsrOperationsTestBase::m_staMacs, m_useAuxPhyCca, ns3::MakeCallback(), ns3::MicroSeconds(), ns3::Config::SetDefault(), ns3::WIFI_PHY_BAND_2_4GHZ, ns3::WIFI_PHY_BAND_5GHZ, and ns3::WIFI_PHY_BAND_6GHZ.
|
overrideprivatevirtual |
Start the generation of traffic (needs to be overridden)
Reimplemented from EmlsrOperationsTestBase.
Definition at line 2774 of file wifi-emlsr-test.cc.
References EmlsrOperationsTestBase::GetApplication(), EmlsrOperationsTestBase::m_apMac, m_firstUlPktsGenTime, EmlsrOperationsTestBase::m_mainPhyId, m_nonEmlsrLink, EmlsrOperationsTestBase::m_staMacs, m_unblockMainPhyLinkDelay, ns3::MilliSeconds(), ns3::Simulator::Now(), NS_LOG_INFO, ns3::Simulator::Schedule(), and EmlsrOperationsTestBase::UPLINK.
|
overrideprotectedvirtual |
Callback invoked when a FEM passes PSDUs to the PHY.
mac | the MAC transmitting the PSDUs |
phyId | the ID of the PHY transmitting the PSDUs |
psduMap | the PSDU map |
txVector | the TX vector |
txPowerW | the tx power in Watts |
Reimplemented from EmlsrOperationsTestBase.
Definition at line 2734 of file wifi-emlsr-test.cc.
References CheckBlockAck(), CheckCtsFrames(), CheckQosFrames(), CheckRtsFrames(), EmlsrOperationsTestBase::m_mainPhyId, EmlsrOperationsTestBase::m_txPsdus, NS_ASSERT_MSG, NS_TEST_EXPECT_MSG_EQ, EmlsrOperationsTestBase::Transmit(), ns3::WIFI_MAC_CTL_BACKRESP, ns3::WIFI_MAC_CTL_CTS, ns3::WIFI_MAC_CTL_RTS, ns3::WIFI_MAC_MGT_ASSOCIATION_REQUEST, and ns3::WIFI_MAC_QOSDATA.
|
private |
start transmission time of the 5th QoS data frame
Definition at line 729 of file wifi-emlsr-test.h.
Referenced by CheckResults().
|
private |
max width supported by aux PHYs
Definition at line 702 of file wifi-emlsr-test.h.
Referenced by CheckResults(), and DoSetup().
|
private |
expected backoff end time on main PHY link
Definition at line 715 of file wifi-emlsr-test.h.
Referenced by BackoffGenerated(), and CheckBlockAck().
|
private |
width of the channels used by MLDs
Definition at line 701 of file wifi-emlsr-test.h.
Referenced by CheckResults(), and DoSetup().
|
private |
whether we are checking the generated backoff values
Definition at line 714 of file wifi-emlsr-test.h.
Referenced by BackoffGenerated(), and CheckBlockAck().
|
private |
whether the transmitted CTS must be corrupted
Definition at line 728 of file wifi-emlsr-test.h.
Referenced by CheckCtsFrames(), and CheckRtsFrames().
|
private |
counter for BlockAck frames
Definition at line 718 of file wifi-emlsr-test.h.
Referenced by CheckBlockAck().
|
private |
counter for QoS frames
Definition at line 717 of file wifi-emlsr-test.h.
Referenced by CheckQosFrames().
|
private |
counter for RTS frames
Definition at line 719 of file wifi-emlsr-test.h.
Referenced by CheckResults(), and CheckRtsFrames().
|
private |
when EMLSR mode has been enabled on all EMLSR clients
Definition at line 708 of file wifi-emlsr-test.h.
|
private |
IDs of the links on which EMLSR mode has to be enabled.
Definition at line 700 of file wifi-emlsr-test.h.
Referenced by EmlsrUlTxopTest().
|
private |
error rate model to corrupt packets
Definition at line 716 of file wifi-emlsr-test.h.
Referenced by CheckCtsFrames(), CheckRtsFrames(), and DoSetup().
|
private |
generation time of the first two UL packets
Definition at line 709 of file wifi-emlsr-test.h.
Referenced by CheckCtsFrames(), CheckResults(), CheckRtsFrames(), and StartTraffic().
|
private |
whether the backoff should be invoked when the AC gains the right to start a TXOP but it does not transmit any frame
Definition at line 720 of file wifi-emlsr-test.h.
Referenced by BackoffGenerated(), CheckResults(), and DoSetup().
|
private |
expiry time of the last MediumSyncDelay timer
Definition at line 713 of file wifi-emlsr-test.h.
Referenced by CheckBlockAck(), and CheckResults().
|
private |
duration of the MediumSyncDelay timer
Definition at line 703 of file wifi-emlsr-test.h.
Referenced by DoSetup().
|
private |
Max number of TXOPs that an EMLSR client is allowed to attempt to initiate while the MediumSyncDelay timer is running (zero indicates no limit)
Definition at line 704 of file wifi-emlsr-test.h.
Referenced by CheckResults(), and DoSetup().
|
private |
ID of the non-EMLSR link (if any)
Definition at line 707 of file wifi-emlsr-test.h.
Referenced by EmlsrUlTxopTest(), CheckBlockAck(), CheckCtsFrames(), CheckQosFrames(), CheckResults(), and StartTraffic().
|
private |
value for ChannelAccessManager NSlotsLeft attribute
Definition at line 725 of file wifi-emlsr-test.h.
Referenced by CheckBlockAck(), CheckResults(), and DoSetup().
|
private |
whether a SwitchMainPhyBackDelay timer expires after that the main PHY moved to an aux PHY link
Definition at line 726 of file wifi-emlsr-test.h.
Referenced by CheckBlockAck(), and CheckResults().
|
private |
delay between the time the first two UL packets are generated and the time transmissions are unblocked on the link where the main PHY is operating on
Definition at line 710 of file wifi-emlsr-test.h.
Referenced by CheckResults(), and StartTraffic().
|
private |
whether CCA info from aux PHY is used when aux PHY is not TX capable
Definition at line 723 of file wifi-emlsr-test.h.
Referenced by CheckResults(), and DoSetup().