A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
EmlsrOperationsTestBase Class Reference

Base class for EMLSR Operations tests. More...

#include "wifi-emlsr-test-base.h"

+ Inheritance diagram for EmlsrOperationsTestBase:
+ Collaboration diagram for EmlsrOperationsTestBase:

Classes

struct  FrameInfo
 Information about transmitted frames. More...
 

Public Types

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

Public Member Functions

 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
 
TestCaseoperator= (const TestCase &)=delete
 

Protected Member Functions

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.
 
void DoSetup () override
 Implementation to do any local setup required for this TestCase.
 
Ptr< PacketSocketClientGetApplication (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.
 
virtual void Transmit (Ptr< WifiMac > mac, uint8_t phyId, WifiConstPsduMap psduMap, WifiTxVector txVector, double txPowerW)
 Callback invoked when a FEM passes PSDUs to the PHY.
 
- 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.
 
TestCaseGetParent () 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.
 

Protected Attributes

Ptr< ApWifiMacm_apMac
 AP wifi MAC.
 
std::array< std::string, 3 > m_channelsStr
 array of strings defining the channels for the MLD links
 
std::vector< PacketSocketAddressm_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< Timem_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< Timem_transitionDelay
 Transition Delay advertised by the non-AP MLD.
 
Time m_transitionTimeout {MicroSeconds(128)}
 Transition Timeout advertised by the AP MLD.
 
std::vector< FrameInfom_txPsdus
 transmitted PSDUs
 
std::vector< PacketSocketAddressm_ulSockets
 packet socket address for UL traffic
 

Private Member Functions

void BaEstablishedDl (Mac48Address recipient, uint8_t tid, std::optional< Mac48Address >)
 Callback connected to the QosTxop's BaEstablished trace source of the AP's BE AC.
 
void BaEstablishedUl (std::size_t index, Mac48Address recipient, uint8_t tid, std::optional< Mac48Address >)
 Callback connected to the QosTxop's BaEstablished trace source of a STA's BE AC.
 
void SetSsid (std::size_t count)
 Set the SSID on the next station that needs to start the association procedure, or start traffic if no other station left.
 
void StaAssociated (uint16_t aid, Mac48Address)
 Callback connected to the ApWifiMac's AssociatedSta trace source.
 
virtual void StartTraffic ()
 Start the generation of traffic (needs to be overridden)
 

Additional Inherited Members

- 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
 

Detailed Description

Base class for EMLSR Operations tests.

This base class setups and configures one AP MLD, a variable number of non-AP MLDs with EMLSR activated and a variable number of non-AP MLD with EMLSR deactivated. Every MLD has three links, each operating on a distinct PHY band (2.4 GHz, 5 GHz and 6 GHz). Therefore, it is expected that three links are setup by the non-AP MLD(s). The values for the Padding Delay, the Transition Delay and the Transition Timeout are provided as argument to the constructor of this class, along with the IDs of the links on which EMLSR mode must be enabled for the non-AP MLDs (this information is used to set the EmlsrLinkSet attribute of the DefaultEmlsrManager installed on the non-AP MLDs).

Definition at line 56 of file wifi-emlsr-test-base.h.

Member Enumeration Documentation

◆ TrafficDirection

Enumeration for traffic directions.

Enumerator
DOWNLINK 
UPLINK 

Definition at line 68 of file wifi-emlsr-test-base.h.

Constructor & Destructor Documentation

◆ EmlsrOperationsTestBase()

EmlsrOperationsTestBase::EmlsrOperationsTestBase ( const std::string & name)

Constructor.

Parameters
nameThe name of the new TestCase created

Definition at line 46 of file wifi-emlsr-test-base.cc.

◆ ~EmlsrOperationsTestBase()

EmlsrOperationsTestBase::~EmlsrOperationsTestBase ( )
overridedefault

Member Function Documentation

◆ BaEstablishedDl()

void EmlsrOperationsTestBase::BaEstablishedDl ( Mac48Address recipient,
uint8_t tid,
std::optional< Mac48Address >  )
private

Callback connected to the QosTxop's BaEstablished trace source of the AP's BE AC.

Parameters
recipientthe recipient of the established Block Ack agreement
tidthe TID

Definition at line 526 of file wifi-emlsr-test-base.cc.

References DOWNLINK, GetApplication(), m_apMac, m_establishBaDl, m_establishBaUl, m_staMacs, m_startAid, ns3::MilliSeconds(), NS_TEST_ASSERT_MSG_EQ, ns3::Simulator::Schedule(), SetSsid(), and UPLINK.

Referenced by DoSetup(), and SetSsid().

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

◆ BaEstablishedUl()

void EmlsrOperationsTestBase::BaEstablishedUl ( std::size_t index,
Mac48Address recipient,
uint8_t tid,
std::optional< Mac48Address >  )
private

Callback connected to the QosTxop's BaEstablished trace source of a STA's BE AC.

Parameters
indexthe index of the STA which the callback is connected to
recipientthe recipient of the established Block Ack agreement
tidthe TID

Definition at line 561 of file wifi-emlsr-test-base.cc.

References GetApplication(), m_establishBaUl, m_staMacs, ns3::MilliSeconds(), ns3::Simulator::Schedule(), SetSsid(), and UPLINK.

Referenced by DoSetup(), and SetSsid().

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

◆ CheckAuxPhysSleepMode()

void EmlsrOperationsTestBase::CheckAuxPhysSleepMode ( Ptr< StaWifiMac > staMac,
bool sleep )
protected

Check whether aux PHYs of the given device are in sleep mode/awake.

Parameters
staMacthe MAC of the given device
sleepwhether aux PHYs should be in sleep mode

Definition at line 172 of file wifi-emlsr-test-base.cc.

References ns3::Time::GetTimeStep(), m_mainPhyId, m_putAuxPhyToSleep, ns3::Simulator::Now(), NS_TEST_EXPECT_MSG_EQ, and ns3::Simulator::Schedule().

Referenced by EmlsrUlTxopTest::CheckBlockAck(), EmlsrUlTxopTest::CheckCtsFrames(), EmlsrDlTxopTest::CheckInitialControlFrame(), and EmlsrDlTxopTest::Transmit().

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

◆ CheckBlockedLink()

void EmlsrOperationsTestBase::CheckBlockedLink ( Ptr< WifiMac > mac,
Mac48Address dest,
uint8_t linkId,
WifiQueueBlockedReason reason,
bool blocked,
std::string description,
bool testUnblockedForOtherReasons = true )
protected

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.

Parameters
macthe MAC of the given device
destthe MAC address of the given destination
linkIdthe ID of the given link
reasonthe reason for blocking transmissions to test
blockedwhether transmissions are blocked for the given reason
descriptiontext indicating when this check is performed
testUnblockedForOtherReasonswhether to test if transmissions are unblocked for all the reasons other than the one provided

Definition at line 622 of file wifi-emlsr-test-base.cc.

References ns3::AC_BE, NS_TEST_EXPECT_MSG_EQ, ns3::WIFI_QOSDATA_QUEUE, and ns3::WIFI_UNICAST.

Referenced by EmlsrDlTxopTest::CheckBlockAck(), EmlsrDlTxopTest::CheckInitialControlFrame(), EmlsrDlTxopTest::CheckPmModeAfterAssociation(), EmlsrDlTxopTest::CheckQosFrames(), EmlsrUlTxopTest::CheckQosFrames(), EmlsrDlTxopTest::CheckStaEmlNotificationFrame(), and SingleLinkEmlsrTest::DoRun().

+ Here is the caller graph for this function:

◆ CheckMainPhyTraceInfo()

void EmlsrOperationsTestBase::CheckMainPhyTraceInfo ( std::size_t index,
std::string_view reason,
const std::optional< uint8_t > & fromLinkId,
uint8_t toLinkId,
bool checkFromLinkId = true,
bool checkToLinkId = true )
protected

Check information provided by the EMLSR Manager MainPhySwitch trace.

Parameters
indexthe ID of the EMLSR client this check refers to
reasonthe reason for main PHY to switch
fromLinkIdthe ID of the link the main PHY is moving from (if any)
toLinkIdthe ID of the link the main PHY is moving to
checkFromLinkIdwhether to check the given fromLinkId value
checkToLinkIdwhether to check the given toLinkId value

Definition at line 225 of file wifi-emlsr-test-base.cc.

References m_traceInfo, NS_TEST_ASSERT_MSG_EQ, and NS_TEST_EXPECT_MSG_EQ.

Referenced by EmlsrUlTxopTest::CheckBlockAck(), EmlsrUlTxopTest::CheckCtsFrames(), and EmlsrDlTxopTest::CheckInitialControlFrame().

+ Here is the caller graph for this function:

◆ CheckMsdTimerRunning()

void EmlsrOperationsTestBase::CheckMsdTimerRunning ( Ptr< StaWifiMac > staMac,
uint8_t linkId,
bool isRunning,
const std::string & msg )
protected

Check whether the MediumSyncDelay timer is running on the given link of the given device.

Parameters
staMacthe MAC of the given device
linkIdthe ID of the given link
isRunningwhether the MediumSyncDelay timer is running
msgmessage to print in case the check failed

Definition at line 148 of file wifi-emlsr-test-base.cc.

References ns3::Time::As(), ns3::Time::MS, ns3::Simulator::Now(), NS_TEST_ASSERT_MSG_EQ, and NS_TEST_EXPECT_MSG_EQ.

Referenced by EmlsrLinkSwitchTest::CheckRtsFrame(), and Transmit().

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

◆ DoSetup()

void EmlsrOperationsTestBase::DoSetup ( )
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 ns3::TestCase.

Reimplemented in EmlsrSwitchMainPhyBackTest, EmlsrUlOfdmaTest, EmlsrUlTxopTest, and SingleLinkEmlsrTest.

Definition at line 262 of file wifi-emlsr-test-base.cc.

References ns3::SpectrumWifiPhyHelper::AddChannel(), ns3::WifiHelper::AssignStreams(), BaEstablishedDl(), BaEstablishedUl(), ns3::NodeList::Begin(), ns3::Config::ConnectWithoutContext(), ns3::CreateObject(), ns3::WifiPhyHelper::DLT_IEEE802_11_RADIO, ns3::DynamicCast(), ns3::NodeList::End(), ns3::NetDeviceContainer::Get(), ns3::PacketSocketHelper::Install(), m_apMac, m_channelsStr, m_dlSockets, m_duration, m_freqRanges, m_linksToEnableEmlsrOn, m_mainPhyId, m_nEmlsrStations, m_nNonEmlsrStations, m_nPhysPerEmlsrDevice, m_paddingDelay, m_putAuxPhyToSleep, m_rngRun, m_rngSeed, m_staMacs, m_startAid, m_streamNo, m_transitionDelay, m_transitionTimeout, m_ulSockets, MainPhySwitchInfoCallback(), ns3::MakeCallback(), NS_ASSERT_MSG, NS_TEST_ASSERT_MSG_NE, ns3::Simulator::Schedule(), ns3::Seconds(), ns3::WifiPhyHelper::Set(), ns3::Config::SetDefault(), ns3::WifiPhyHelper::SetPcapCaptureType(), ns3::WifiPhyHelper::SetPcapDataLinkType(), ns3::PacketSocketAddress::SetProtocol(), ns3::RngSeedManager::SetRun(), ns3::RngSeedManager::SetSeed(), ns3::PacketSocketAddress::SetSingleDevice(), StaAssociated(), Transmit(), ns3::WIFI_STANDARD_80211be, and ns3::wifiAcList.

Referenced by EmlOmnExchangeTest::DoSetup(), EmlsrCcaBusyTest::DoSetup(), EmlsrCheckNavAndCcaLastPifsTest::DoSetup(), EmlsrDlTxopTest::DoSetup(), EmlsrIcfSentDuringMainPhySwitchTest::DoSetup(), EmlsrLinkSwitchTest::DoSetup(), EmlsrSwitchMainPhyBackTest::DoSetup(), EmlsrUlOfdmaTest::DoSetup(), EmlsrUlTxopTest::DoSetup(), and SingleLinkEmlsrTest::DoSetup().

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

◆ GetApplication()

Ptr< PacketSocketClient > EmlsrOperationsTestBase::GetApplication ( TrafficDirection dir,
std::size_t staId,
std::size_t count,
std::size_t pktSize,
uint8_t priority = 0 ) const
protected
Parameters
dirthe traffic direction (downlink/uplink)
staIdthe index (starting at 0) of the non-AP MLD generating/receiving packets
countthe number of packets to generate
pktSizethe size of the packets to generate
priorityuser priority for generated packets
Returns
an application generating the given number packets of the given size from/to the AP MLD to/from the given non-AP MLD

Definition at line 472 of file wifi-emlsr-test-base.cc.

References ns3::CreateObject(), dir, DOWNLINK, m_dlSockets, m_duration, m_ulSockets, ns3::MicroSeconds(), ns3::Simulator::Now(), pktSize, and ns3::Seconds().

Referenced by BaEstablishedDl(), BaEstablishedUl(), EmlsrUlTxopTest::CheckBlockAck(), EmlsrDlTxopTest::CheckQosFrames(), EmlsrLinkSwitchTest::CheckQosFrames(), EmlsrUlTxopTest::CheckQosFrames(), EmlsrSwitchMainPhyBackTest::MainPhySwitchInfoCallback(), EmlsrCheckNavAndCcaLastPifsTest::RunOne(), EmlsrIcfSentDuringMainPhySwitchTest::RunOne(), EmlsrSwitchMainPhyBackTest::RunOne(), StaAssociated(), EmlsrDlTxopTest::StartTraffic(), EmlsrUlTxopTest::StartTraffic(), EmlsrUlOfdmaTest::Transmit(), and EmlsrCcaBusyTest::TransmitPacketToAp().

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

◆ MainPhySwitchInfoCallback()

void EmlsrOperationsTestBase::MainPhySwitchInfoCallback ( std::size_t index,
const EmlsrMainPhySwitchTrace & info )
protectedvirtual

Callback connected to the EMLSR Manager MainPhySwitch trace source.

Parameters
indexthe index of the EMLSR client whose main PHY switch event is logged
infothe information associated with the main PHY switch event

Reimplemented in EmlsrSwitchMainPhyBackTest.

Definition at line 218 of file wifi-emlsr-test-base.cc.

References ns3::EmlsrMainPhySwitchTrace::Clone(), and m_traceInfo.

Referenced by DoSetup(), and EmlsrSwitchMainPhyBackTest::MainPhySwitchInfoCallback().

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

◆ SetSsid()

void EmlsrOperationsTestBase::SetSsid ( std::size_t count)
private

Set the SSID on the next station that needs to start the association procedure, or start traffic if no other station left.

Parameters
countthe number of STAs that completed the association procedure

Definition at line 585 of file wifi-emlsr-test-base.cc.

References BaEstablishedDl(), BaEstablishedUl(), m_apMac, m_nEmlsrStations, m_nNonEmlsrStations, m_staMacs, ns3::MakeCallback(), ns3::MicroSeconds(), StaAssociated(), StartTraffic(), and ns3::wifiAcList.

Referenced by BaEstablishedDl(), BaEstablishedUl(), and StaAssociated().

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

◆ StaAssociated()

void EmlsrOperationsTestBase::StaAssociated ( uint16_t aid,
Mac48Address  )
private

Callback connected to the ApWifiMac's AssociatedSta trace source.

Start generating traffic (if needed) when all stations are associated.

Parameters
aidthe AID assigned to the previous associated STA

Definition at line 491 of file wifi-emlsr-test-base.cc.

References DOWNLINK, GetApplication(), m_apMac, m_establishBaDl, m_establishBaUl, m_lastAid, m_staMacs, m_startAid, ns3::MilliSeconds(), ns3::Simulator::Schedule(), SetSsid(), and UPLINK.

Referenced by DoSetup(), and SetSsid().

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

◆ StartTraffic()

virtual void EmlsrOperationsTestBase::StartTraffic ( )
inlineprivatevirtual

Start the generation of traffic (needs to be overridden)

Reimplemented in EmlsrCcaBusyTest, EmlsrCheckNavAndCcaLastPifsTest, EmlsrDlTxopTest, EmlsrIcfSentDuringMainPhySwitchTest, EmlsrSwitchMainPhyBackTest, EmlsrUlOfdmaTest, and EmlsrUlTxopTest.

Definition at line 267 of file wifi-emlsr-test-base.h.

Referenced by SetSsid().

+ Here is the caller graph for this function:

◆ Transmit()

void EmlsrOperationsTestBase::Transmit ( Ptr< WifiMac > mac,
uint8_t phyId,
WifiConstPsduMap psduMap,
WifiTxVector txVector,
double txPowerW )
protectedvirtual

Callback invoked when a FEM passes PSDUs to the PHY.

Parameters
macthe MAC transmitting the PSDUs
phyIdthe ID of the PHY transmitting the PSDUs
psduMapthe PSDU map
txVectorthe TX vector
txPowerWthe tx power in Watts

Reimplemented in EmlOmnExchangeTest, EmlsrCheckNavAndCcaLastPifsTest, EmlsrDlTxopTest, EmlsrIcfSentDuringMainPhySwitchTest, EmlsrLinkSwitchTest, EmlsrSwitchMainPhyBackTest, EmlsrUlOfdmaTest, EmlsrUlTxopTest, and SingleLinkEmlsrTest.

Definition at line 52 of file wifi-emlsr-test-base.cc.

References ns3::WifiPhy::CalculateTxDuration(), CheckMsdTimerRunning(), ns3::DynamicCast(), m_txPsdus, ns3::EmlsrManager::MEDIUM_SYNC_THRESHOLD_USEC, ns3::MicroSeconds(), ns3::Simulator::Now(), NS_LOG_INFO, NS_TEST_ASSERT_MSG_EQ, ns3::PeekPointer(), ns3::WifiActionHeader::Print(), and ns3::Simulator::Schedule().

Referenced by DoSetup(), EmlOmnExchangeTest::Transmit(), EmlsrCheckNavAndCcaLastPifsTest::Transmit(), EmlsrDlTxopTest::Transmit(), EmlsrIcfSentDuringMainPhySwitchTest::Transmit(), EmlsrLinkSwitchTest::Transmit(), EmlsrSwitchMainPhyBackTest::Transmit(), EmlsrUlOfdmaTest::Transmit(), EmlsrUlTxopTest::Transmit(), and SingleLinkEmlsrTest::Transmit().

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

Member Data Documentation

◆ m_apMac

◆ m_channelsStr

std::array<std::string, 3> EmlsrOperationsTestBase::m_channelsStr
protected
Initial value:
{"{2, 0, BAND_2_4GHZ, 0}"s,
"{36, 0, BAND_5GHZ, 0}"s,
"{1, 0, BAND_6GHZ, 0}"s}

array of strings defining the channels for the MLD links

Definition at line 185 of file wifi-emlsr-test-base.h.

Referenced by EmlsrCheckNavAndCcaLastPifsTest::DoSetup(), and DoSetup().

◆ m_dlSockets

std::vector<PacketSocketAddress> EmlsrOperationsTestBase::m_dlSockets
protected

packet socket address for DL traffic

Definition at line 217 of file wifi-emlsr-test-base.h.

Referenced by DoSetup(), and GetApplication().

◆ m_duration

◆ m_establishBaDl

◆ m_establishBaUl

◆ m_freqRanges

const std::array<FrequencyRange, 3> EmlsrOperationsTestBase::m_freqRanges
protected
Initial value:
constexpr FrequencyRange WIFI_SPECTRUM_6_GHZ
Identifier for the frequency range covering the wifi spectrum in the 6 GHz band.
constexpr FrequencyRange WIFI_SPECTRUM_5_GHZ
Identifier for the frequency range covering the wifi spectrum in the 5 GHz band.
constexpr FrequencyRange WIFI_SPECTRUM_2_4_GHZ
Identifier for the frequency range covering the wifi spectrum in the 2.4 GHz band.

array of frequency ranges for MLD links

Definition at line 190 of file wifi-emlsr-test-base.h.

Referenced by DoSetup().

◆ m_lastAid

uint16_t EmlsrOperationsTestBase::m_lastAid {0}
protected

AID of last associated station.

Definition at line 220 of file wifi-emlsr-test-base.h.

Referenced by EmlsrDlTxopTest::EnableEmlsrMode(), StaAssociated(), and EmlsrDlTxopTest::StartTraffic().

◆ m_linksToEnableEmlsrOn

◆ m_mainPhyId

uint8_t EmlsrOperationsTestBase::m_mainPhyId {0}
protected

ID of the main PHY.

Definition at line 197 of file wifi-emlsr-test-base.h.

Referenced by EmlsrCcaBusyTest::EmlsrCcaBusyTest(), EmlsrCheckNavAndCcaLastPifsTest::EmlsrCheckNavAndCcaLastPifsTest(), EmlsrDlTxopTest::EmlsrDlTxopTest(), EmlsrIcfSentDuringMainPhySwitchTest::EmlsrIcfSentDuringMainPhySwitchTest(), EmlsrLinkSwitchTest::EmlsrLinkSwitchTest(), EmlsrSwitchMainPhyBackTest::EmlsrSwitchMainPhyBackTest(), EmlsrUlOfdmaTest::EmlsrUlOfdmaTest(), EmlsrUlTxopTest::EmlsrUlTxopTest(), SingleLinkEmlsrTest::SingleLinkEmlsrTest(), EmlsrUlTxopTest::BackoffGenerated(), CheckAuxPhysSleepMode(), EmlsrUlTxopTest::CheckBlockAck(), EmlsrUlTxopTest::CheckCtsFrames(), EmlOmnExchangeTest::CheckEmlNotification(), EmlsrDlTxopTest::CheckInitialControlFrame(), EmlsrLinkSwitchTest::CheckInitialControlFrame(), EmlsrDlTxopTest::CheckPmModeAfterAssociation(), EmlsrCcaBusyTest::CheckPoint1(), EmlsrLinkSwitchTest::CheckQosFrames(), EmlsrUlTxopTest::CheckQosFrames(), EmlsrDlTxopTest::CheckResults(), EmlsrUlTxopTest::CheckResults(), EmlsrLinkSwitchTest::CheckRtsFrame(), EmlsrUlTxopTest::CheckRtsFrames(), DoSetup(), EmlsrUlTxopTest::DoSetup(), EmlsrIcfSentDuringMainPhySwitchTest::EmlsrLinkSwitchCb(), EmlsrSwitchMainPhyBackTest::InsertEventsForQosTid4(), EmlsrCheckNavAndCcaLastPifsTest::RunOne(), EmlsrIcfSentDuringMainPhySwitchTest::RunOne(), EmlsrSwitchMainPhyBackTest::RunOne(), EmlsrCcaBusyTest::StartTraffic(), EmlsrUlTxopTest::StartTraffic(), EmlOmnExchangeTest::Transmit(), EmlsrDlTxopTest::Transmit(), EmlsrLinkSwitchTest::Transmit(), and EmlsrUlTxopTest::Transmit().

◆ m_nEmlsrStations

◆ m_nNonEmlsrStations

◆ m_nPhysPerEmlsrDevice

std::size_t EmlsrOperationsTestBase::m_nPhysPerEmlsrDevice {3}
protected

number of PHYs per EMLSR client

Definition at line 200 of file wifi-emlsr-test-base.h.

Referenced by SingleLinkEmlsrTest::SingleLinkEmlsrTest(), and DoSetup().

◆ m_paddingDelay

◆ m_putAuxPhyToSleep

bool EmlsrOperationsTestBase::m_putAuxPhyToSleep {false}
protected

whether aux PHYs are put to sleep during DL/UL TXOPs

Definition at line 213 of file wifi-emlsr-test-base.h.

Referenced by EmlsrDlTxopTest::EmlsrDlTxopTest(), EmlsrUlTxopTest::EmlsrUlTxopTest(), CheckAuxPhysSleepMode(), and DoSetup().

◆ m_rngRun

uint64_t EmlsrOperationsTestBase::m_rngRun {1}
protected

RNG run value.

Definition at line 195 of file wifi-emlsr-test-base.h.

Referenced by DoSetup().

◆ m_rngSeed

uint32_t EmlsrOperationsTestBase::m_rngSeed {1}
protected

RNG seed value.

Definition at line 194 of file wifi-emlsr-test-base.h.

Referenced by DoSetup().

◆ m_staMacs

std::vector<Ptr<StaWifiMac> > EmlsrOperationsTestBase::m_staMacs
protected

MACs of the non-AP MLDs.

Definition at line 216 of file wifi-emlsr-test-base.h.

Referenced by EmlsrUlTxopTest::BackoffGenerated(), BaEstablishedDl(), BaEstablishedUl(), EmlsrDlTxopTest::CheckApEmlNotificationFrame(), EmlsrDlTxopTest::CheckBlockAck(), EmlsrUlTxopTest::CheckBlockAck(), EmlsrUlTxopTest::CheckCtsFrames(), EmlOmnExchangeTest::CheckEmlCapabilitiesInAssocResp(), EmlOmnExchangeTest::CheckEmlNotification(), EmlOmnExchangeTest::CheckEmlsrLinks(), EmlsrIcfSentDuringMainPhySwitchTest::CheckInDeviceInterference(), EmlsrDlTxopTest::CheckInitialControlFrame(), EmlsrLinkSwitchTest::CheckInitialControlFrame(), EmlsrDlTxopTest::CheckPmModeAfterAssociation(), EmlsrCcaBusyTest::CheckPoint1(), EmlsrCcaBusyTest::CheckPoint2(), EmlsrCcaBusyTest::CheckPoint3(), EmlsrDlTxopTest::CheckQosFrames(), EmlsrLinkSwitchTest::CheckQosFrames(), EmlsrUlTxopTest::CheckQosFrames(), EmlsrDlTxopTest::CheckResults(), EmlsrUlOfdmaTest::CheckResults(), EmlsrUlTxopTest::CheckResults(), EmlsrLinkSwitchTest::CheckRtsFrame(), EmlsrUlTxopTest::CheckRtsFrames(), EmlsrDlTxopTest::CheckStaEmlNotificationFrame(), SingleLinkEmlsrTest::DoRun(), EmlOmnExchangeTest::DoSetup(), EmlsrCcaBusyTest::DoSetup(), EmlsrIcfSentDuringMainPhySwitchTest::DoSetup(), EmlsrLinkSwitchTest::DoSetup(), DoSetup(), EmlsrUlTxopTest::DoSetup(), EmlsrIcfSentDuringMainPhySwitchTest::EmlsrLinkSwitchCb(), EmlsrDlTxopTest::EnableEmlsrMode(), EmlsrSwitchMainPhyBackTest::InsertEventsForQosTid4(), EmlsrSwitchMainPhyBackTest::MainPhySwitchInfoCallback(), EmlsrCheckNavAndCcaLastPifsTest::RunOne(), EmlsrIcfSentDuringMainPhySwitchTest::RunOne(), EmlsrSwitchMainPhyBackTest::RunOne(), SetSsid(), StaAssociated(), EmlsrCcaBusyTest::StartTraffic(), EmlsrDlTxopTest::StartTraffic(), EmlsrUlTxopTest::StartTraffic(), EmlOmnExchangeTest::Transmit(), EmlsrDlTxopTest::Transmit(), EmlsrLinkSwitchTest::Transmit(), EmlsrUlOfdmaTest::Transmit(), and EmlsrCcaBusyTest::TransmitPacketToAp().

◆ m_startAid

uint16_t EmlsrOperationsTestBase::m_startAid {1}
protected

first AID to allocate to stations

Definition at line 219 of file wifi-emlsr-test-base.h.

Referenced by BaEstablishedDl(), DoSetup(), and StaAssociated().

◆ m_streamNo

int64_t EmlsrOperationsTestBase::m_streamNo {5}
protected

RNG stream number.

Definition at line 196 of file wifi-emlsr-test-base.h.

Referenced by DoSetup().

◆ m_traceInfo

std::map<std::size_t, std::shared_ptr<EmlsrMainPhySwitchTrace> > EmlsrOperationsTestBase::m_traceInfo
protected

EMLSR client ID-indexed map of trace info from last main PHY switch.

Definition at line 223 of file wifi-emlsr-test-base.h.

Referenced by EmlsrUlTxopTest::CheckCtsFrames(), CheckMainPhyTraceInfo(), and MainPhySwitchInfoCallback().

◆ m_transitionDelay

◆ m_transitionTimeout

Time EmlsrOperationsTestBase::m_transitionTimeout {MicroSeconds(128)}
protected

◆ m_txPsdus

◆ m_ulSockets

std::vector<PacketSocketAddress> EmlsrOperationsTestBase::m_ulSockets
protected

packet socket address for UL traffic

Definition at line 218 of file wifi-emlsr-test-base.h.

Referenced by DoSetup(), and GetApplication().


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