A Discrete-Event Network Simulator
API
TestMultiUserScheduler Class Reference

Dummy Multi User Scheduler used to test OFDMA ack sequences. More...

+ Inheritance diagram for TestMultiUserScheduler:
+ Collaboration diagram for TestMultiUserScheduler:

Public Member Functions

 TestMultiUserScheduler ()
 
virtual ~TestMultiUserScheduler ()
 
- Public Member Functions inherited from ns3::MultiUserScheduler
 MultiUserScheduler ()
 
virtual ~MultiUserScheduler ()
 
DlMuInfoGetDlMuInfo (void)
 Get the information required to perform a DL MU transmission. More...
 
UlMuInfoGetUlMuInfo (void)
 Get the information required to solicit an UL MU transmission. More...
 
TxFormat NotifyAccessGranted (Ptr< QosTxop > edca, Time availableTime, bool initialFrame)
 Notify the Multi-user Scheduler that the given AC of the AP gained channel access. More...
 
- Public Member Functions inherited from ns3::Object
 Object ()
 Constructor. More...
 
virtual ~Object ()
 Destructor. More...
 
void AggregateObject (Ptr< Object > other)
 Aggregate two Objects together. More...
 
void Dispose (void)
 Dispose of this Object. More...
 
AggregateIterator GetAggregateIterator (void) const
 Get an iterator to the Objects aggregated to this one. More...
 
virtual TypeId GetInstanceTypeId (void) const
 Get the most derived TypeId for this Object. More...
 
template<>
Ptr< ObjectGetObject () const
 Specialization of () for objects of type ns3::Object. More...
 
template<typename T >
Ptr< T > GetObject (TypeId tid) const
 Get a pointer to the requested aggregated Object by TypeId. More...
 
template<>
Ptr< ObjectGetObject (TypeId tid) const
 Specialization of (TypeId tid) for objects of type ns3::Object. More...
 
template<typename T >
Ptr< T > GetObject (void) const
 Get a pointer to the requested aggregated Object. More...
 
void Initialize (void)
 Invoke DoInitialize on all Objects aggregated to this one. More...
 
bool IsInitialized (void) const
 Check if the object has been initialized. More...
 
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 Default constructor. More...
 
 SimpleRefCount (const SimpleRefCount &o[[maybe_unused]])
 Copy constructor. More...
 
uint32_t GetReferenceCount (void) const
 Get the reference count of the object. More...
 
SimpleRefCountoperator= ([[maybe_unused]] const SimpleRefCount &o)
 Assignment operator. More...
 
void Ref (void) const
 Increment the reference count. More...
 
void Unref (void) const
 Decrement the reference count. More...
 
- Public Member Functions inherited from ns3::ObjectBase
virtual ~ObjectBase ()
 Virtual destructor. More...
 
void GetAttribute (std::string name, AttributeValue &value) const
 Get the value of an attribute, raising fatal errors if unsuccessful. More...
 
bool GetAttributeFailSafe (std::string name, AttributeValue &value) const
 Get the value of an attribute without raising erros. More...
 
void SetAttribute (std::string name, const AttributeValue &value)
 Set a single attribute, raising fatal errors if unsuccessful. More...
 
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
 Set a single attribute without raising errors. More...
 
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
 Connect a TraceSource to a Callback with a context. More...
 
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
 Connect a TraceSource to a Callback without a context. More...
 
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected with a context. More...
 
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected without a context. More...
 

Static Public Member Functions

static TypeId GetTypeId (void)
 Get the type ID. More...
 
- Static Public Member Functions inherited from ns3::MultiUserScheduler
static TypeId GetTypeId (void)
 Get the type ID. More...
 
- Static Public Member Functions inherited from ns3::Object
static TypeId GetTypeId (void)
 Register this type. More...
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId (void)
 Get the type ID. More...
 

Private Member Functions

DlMuInfo ComputeDlMuInfo (void) override
 Compute the information required to perform a DL MU transmission. More...
 
UlMuInfo ComputeUlMuInfo (void) override
 Prepare the information required to solicit an UL MU transmission. More...
 
void ComputeWifiTxVector (void)
 Compute the TX vector to use for MU PPDUs. More...
 
TxFormat SelectTxFormat (void) override
 Select the format of the next transmission. More...
 

Private Attributes

WifiPsduMap m_psduMap
 the DL MU PPDU to transmit More...
 
CtrlTriggerHeader m_trigger
 Trigger Frame to send. More...
 
WifiMacHeader m_triggerHdr
 MAC header for Trigger Frame. More...
 
TxFormat m_txFormat
 the format of next transmission More...
 
WifiTxParameters m_txParams
 TX parameters. More...
 
WifiTxVector m_txVector
 the TX vector for MU PPDUs More...
 
TriggerFrameType m_ulTriggerType
 Trigger Frame type for UL MU. More...
 

Additional Inherited Members

- Public Types inherited from ns3::MultiUserScheduler
enum  TxFormat { NO_TX = 0 , SU_TX , DL_MU_TX , UL_MU_TX }
 Enumeration of the possible transmission formats. More...
 
- Protected Member Functions inherited from ns3::MultiUserScheduler
void DoDispose (void) override
 Destructor implementation. More...
 
void DoInitialize (void) override
 Initialize() implementation. More...
 
TxFormat GetLastTxFormat (void) const
 Get the format of the last transmission, as determined by the last call to NotifyAccessGranted that did not return NO_TX. More...
 
Ptr< WifiRemoteStationManagerGetWifiRemoteStationManager (void) const
 Get the station manager attached to the AP. More...
 
void NotifyNewAggregate (void) override
 Notify all Objects aggregated to this one of a new Object being aggregated. More...
 
- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
 Copy an Object. More...
 
- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 Complete construction of ObjectBase; invoked by derived classes. More...
 
virtual void NotifyConstructionCompleted (void)
 Notifier called once the ObjectBase is fully constructed. More...
 
- Protected Attributes inherited from ns3::MultiUserScheduler
Ptr< ApWifiMacm_apMac
 the AP wifi MAC More...
 
Time m_availableTime
 the time available for frame exchange More...
 
Ptr< QosTxopm_edca
 the AC that gained channel access More...
 
Ptr< HeFrameExchangeManagerm_heFem
 HE Frame Exchange Manager. More...
 
bool m_initialFrame
 true if a TXOP is being started More...
 
uint32_t m_sizeOf8QosNull
 size in bytes of 8 QoS Null frames More...
 

Detailed Description

Dummy Multi User Scheduler used to test OFDMA ack sequences.

This Multi User Scheduler returns SU_TX until the simulation time reaches 1.5 seconds (when all BA agreements have been established). Afterwards, it cycles through UL_MU_TX (with a BSRP Trigger Frame), UL_MU_TX (with a Basic Trigger Frame) and DL_MU_TX. This scheduler requires that 4 stations are associated with the AP.

Definition at line 60 of file wifi-mac-ofdma-test.cc.

Constructor & Destructor Documentation

◆ TestMultiUserScheduler()

TestMultiUserScheduler::TestMultiUserScheduler ( )

Definition at line 105 of file wifi-mac-ofdma-test.cc.

References NS_LOG_FUNCTION.

◆ ~TestMultiUserScheduler()

TestMultiUserScheduler::~TestMultiUserScheduler ( )
virtual

Definition at line 112 of file wifi-mac-ofdma-test.cc.

References NS_LOG_FUNCTION_NOARGS.

Member Function Documentation

◆ ComputeDlMuInfo()

MultiUserScheduler::DlMuInfo TestMultiUserScheduler::ComputeDlMuInfo ( void  )
overrideprivatevirtual

Compute the information required to perform a DL MU transmission.

Returns
the information required to perform a DL MU transmission

Implements ns3::MultiUserScheduler.

Definition at line 295 of file wifi-mac-ofdma-test.cc.

References m_psduMap, m_txParams, and NS_LOG_FUNCTION.

◆ ComputeUlMuInfo()

MultiUserScheduler::UlMuInfo TestMultiUserScheduler::ComputeUlMuInfo ( void  )
overrideprivatevirtual

Prepare the information required to solicit an UL MU transmission.

Returns
the information required to solicit an UL MU transmission

Implements ns3::MultiUserScheduler.

Definition at line 302 of file wifi-mac-ofdma-test.cc.

References m_trigger, m_triggerHdr, m_txParams, and NS_LOG_FUNCTION.

◆ ComputeWifiTxVector()

void TestMultiUserScheduler::ComputeWifiTxVector ( void  )
private

◆ GetTypeId()

TypeId TestMultiUserScheduler::GetTypeId ( void  )
static

Get the type ID.

Returns
the object TypeId

Definition at line 95 of file wifi-mac-ofdma-test.cc.

References ns3::TypeId::SetParent().

+ Here is the call graph for this function:

◆ SelectTxFormat()

Member Data Documentation

◆ m_psduMap

WifiPsduMap TestMultiUserScheduler::m_psduMap
private

the DL MU PPDU to transmit

Definition at line 88 of file wifi-mac-ofdma-test.cc.

Referenced by ComputeDlMuInfo(), and SelectTxFormat().

◆ m_trigger

CtrlTriggerHeader TestMultiUserScheduler::m_trigger
private

Trigger Frame to send.

Definition at line 84 of file wifi-mac-ofdma-test.cc.

Referenced by ComputeUlMuInfo(), and SelectTxFormat().

◆ m_triggerHdr

WifiMacHeader TestMultiUserScheduler::m_triggerHdr
private

MAC header for Trigger Frame.

Definition at line 85 of file wifi-mac-ofdma-test.cc.

Referenced by ComputeUlMuInfo(), and SelectTxFormat().

◆ m_txFormat

TxFormat TestMultiUserScheduler::m_txFormat
private

the format of next transmission

Definition at line 82 of file wifi-mac-ofdma-test.cc.

Referenced by SelectTxFormat().

◆ m_txParams

WifiTxParameters TestMultiUserScheduler::m_txParams
private

TX parameters.

Definition at line 87 of file wifi-mac-ofdma-test.cc.

Referenced by ComputeDlMuInfo(), ComputeUlMuInfo(), and SelectTxFormat().

◆ m_txVector

WifiTxVector TestMultiUserScheduler::m_txVector
private

the TX vector for MU PPDUs

Definition at line 86 of file wifi-mac-ofdma-test.cc.

Referenced by ComputeWifiTxVector(), and SelectTxFormat().

◆ m_ulTriggerType

TriggerFrameType TestMultiUserScheduler::m_ulTriggerType
private

Trigger Frame type for UL MU.

Definition at line 83 of file wifi-mac-ofdma-test.cc.

Referenced by SelectTxFormat().


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