Test the transmission of UL frames from EMLSR clients. More...
#include "wifi-emlsr-basic-exchanges-test.h"
Classes | |
struct | Params |
Parameters for the EMLSR UL TXOP test. More... | |
Public Member Functions | |
EmlsrUlTxopTest (const Params ¶ms) | |
Constructor. | |
~EmlsrUlTxopTest () override=default | |
![]() | |
EmlsrOperationsTestBase (const std::string &name) | |
Constructor. | |
~EmlsrOperationsTestBase () override=default | |
![]() | |
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. | |
![]() | |
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, uint8_t priority=0) const |
virtual void | MainPhySwitchInfoCallback (std::size_t index, const EmlsrMainPhySwitchTrace &info) |
Callback connected to the EMLSR Manager MainPhySwitch trace source. | |
![]() | |
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 | |
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) | |
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 | |
Additional Inherited Members | |
![]() | |
enum | TrafficDirection : uint8_t { DOWNLINK = 0 , UPLINK } |
Enumeration for traffic directions. More... | |
![]() | |
enum class | Duration { QUICK = 1 , EXTENSIVE = 2 , TAKES_FOREVER = 3 } |
How long the test takes to execute. More... | |
![]() | |
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 |
![]() | |
Ptr< ApWifiMac > | m_apMac |
AP wifi MAC. | |
std::array< std::string, 3 > | m_channelsStr |
array of strings defining the channels for the MLD links | |
std::vector< PacketSocketAddress > | m_dlSockets |
packet socket address for DL traffic | |
Time | m_duration {0} |
simulation duration | |
std::vector< uint8_t > | m_establishBaDl {} |
the TIDs for which BA needs to be established with the AP as originator | |
std::vector< uint8_t > | m_establishBaUl {} |
the TIDs for which BA needs to be established with the AP as recipient | |
const std::array< FrequencyRange, 3 > | m_freqRanges |
array of frequency ranges for MLD links | |
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::size_t | m_nPhysPerEmlsrDevice {3} |
number of PHYs per EMLSR client | |
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 | |
uint64_t | m_rngRun {1} |
RNG run value. | |
uint32_t | m_rngSeed {1} |
RNG seed value. | |
std::vector< Ptr< StaWifiMac > > | m_staMacs |
MACs of the non-AP MLDs. | |
uint16_t | m_startAid {1} |
first AID to allocate to stations | |
int64_t | m_streamNo {5} |
RNG stream number. | |
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 249 of file wifi-emlsr-basic-exchanges-test.h.
EmlsrUlTxopTest::EmlsrUlTxopTest | ( | const Params & | params | ) |
Constructor.
params | parameters for the EMLSR UL TXOP test |
Definition at line 1763 of file wifi-emlsr-basic-exchanges-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 1859 of file wifi-emlsr-basic-exchanges-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 2152 of file wifi-emlsr-basic-exchanges-test.cc.
References ns3::AC_BE, ns3::WifiPhy::CalculateTxDuration(), EmlsrOperationsTestBase::CheckAuxPhysSleepMode(), EmlsrOperationsTestBase::CheckMainPhyTraceInfo(), EmlsrOperationsTestBase::GetApplication(), EmlsrOperationsTestBase::m_apMac, m_backoffEndTime, m_checkBackoffStarted, m_countBlockAck, m_lastMsdExpiryTime, EmlsrOperationsTestBase::m_mainPhyId, m_nonEmlsrLink, EmlsrOperationsTestBase::m_staMacs, Max, ns3::NanoSeconds(), ns3::Simulator::Now(), NS_LOG_INFO, NS_TEST_ASSERT_MSG_EQ, NS_TEST_EXPECT_MSG_EQ, ns3::Simulator::Schedule(), 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 2337 of file wifi-emlsr-basic-exchanges-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(), ns3::ListErrorModel::SetList(), and ns3::StaticCast().
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 2000 of file wifi-emlsr-basic-exchanges-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.
[ link ] ┌───┐ ┌───┐ ┌──┐ [0 or 2] │CTS│ │CTS│ │BA│ ──────┬───┬┴───X────┬───┬┴───┴┬───┬───┬┴──┴───────────────────────────────────────── │RTS│ │RTS│ │QoS│QoS│ └───┘ └───┘ │ X │ Y │ └───┴───┘ For all EMLSR links scenario, X=10, Y=11 For the scenario with a non-EMLSR link, X=12, Y=13
Definition at line 2425 of file wifi-emlsr-basic-exchanges-test.cc.
References ns3::WifiPhy::CalculateTxDuration(), ns3::CtrlTriggerHeader::IsMuRts(), m_auxPhyChannelWidth, m_countRtsframes, m_firstUlPktsGenTime, m_lastMsdExpiryTime, EmlsrOperationsTestBase::m_mainPhyId, m_msdMaxNTxops, m_nonEmlsrLink, EmlsrOperationsTestBase::m_staMacs, EmlsrOperationsTestBase::m_txPsdus, m_unblockMainPhyLinkDelay, 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 2299 of file wifi-emlsr-basic-exchanges-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 2414 of file wifi-emlsr-basic-exchanges-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 1807 of file wifi-emlsr-basic-exchanges-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, EmlsrOperationsTestBase::m_staMacs, 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 1956 of file wifi-emlsr-basic-exchanges-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 1916 of file wifi-emlsr-basic-exchanges-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 |
max width supported by aux PHYs
Definition at line 351 of file wifi-emlsr-basic-exchanges-test.h.
Referenced by CheckResults(), and DoSetup().
|
private |
expected backoff end time on main PHY link
Definition at line 364 of file wifi-emlsr-basic-exchanges-test.h.
Referenced by BackoffGenerated(), and CheckBlockAck().
|
private |
width of the channels used by MLDs
Definition at line 350 of file wifi-emlsr-basic-exchanges-test.h.
Referenced by DoSetup().
|
private |
whether we are checking the generated backoff values
Definition at line 363 of file wifi-emlsr-basic-exchanges-test.h.
Referenced by BackoffGenerated(), and CheckBlockAck().
|
private |
whether the transmitted CTS must be corrupted
Definition at line 372 of file wifi-emlsr-basic-exchanges-test.h.
Referenced by CheckCtsFrames(), and CheckRtsFrames().
|
private |
counter for BlockAck frames
Definition at line 367 of file wifi-emlsr-basic-exchanges-test.h.
Referenced by CheckBlockAck().
|
private |
counter for QoS frames
Definition at line 366 of file wifi-emlsr-basic-exchanges-test.h.
Referenced by CheckQosFrames().
|
private |
counter for RTS frames
Definition at line 368 of file wifi-emlsr-basic-exchanges-test.h.
Referenced by CheckResults(), and CheckRtsFrames().
|
private |
when EMLSR mode has been enabled on all EMLSR clients
Definition at line 357 of file wifi-emlsr-basic-exchanges-test.h.
|
private |
IDs of the links on which EMLSR mode has to be enabled.
Definition at line 349 of file wifi-emlsr-basic-exchanges-test.h.
Referenced by EmlsrUlTxopTest().
|
private |
error rate model to corrupt packets
Definition at line 365 of file wifi-emlsr-basic-exchanges-test.h.
Referenced by CheckCtsFrames(), CheckRtsFrames(), and DoSetup().
|
private |
generation time of the first two UL packets
Definition at line 358 of file wifi-emlsr-basic-exchanges-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 369 of file wifi-emlsr-basic-exchanges-test.h.
Referenced by BackoffGenerated(), and DoSetup().
|
private |
expiry time of the last MediumSyncDelay timer
Definition at line 362 of file wifi-emlsr-basic-exchanges-test.h.
Referenced by CheckBlockAck(), and CheckResults().
|
private |
duration of the MediumSyncDelay timer
Definition at line 352 of file wifi-emlsr-basic-exchanges-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 353 of file wifi-emlsr-basic-exchanges-test.h.
Referenced by CheckResults(), and DoSetup().
|
private |
ID of the non-EMLSR link (if any)
Definition at line 356 of file wifi-emlsr-basic-exchanges-test.h.
Referenced by EmlsrUlTxopTest(), CheckBlockAck(), CheckCtsFrames(), CheckQosFrames(), CheckResults(), and StartTraffic().
|
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 359 of file wifi-emlsr-basic-exchanges-test.h.
Referenced by CheckResults(), and StartTraffic().