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 () |
| DlMuInfo & | GetDlMuInfo (void) |
| Get the information required to perform a DL MU transmission. More... | |
| UlMuInfo & | GetUlMuInfo (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< Object > | GetObject () 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< Object > | GetObject (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) | |
| Copy constructor. More... | |
| uint32_t | GetReferenceCount (void) const |
| Get the reference count of the object. More... | |
| SimpleRefCount & | operator= (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... | |
| Time | m_tbPpduDuration |
| Duration of the solicited TB PPDUs. More... | |
| Ptr< WifiMacQueueItem > | m_trigger |
| Trigger Frame to send. 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< WifiRemoteStationManager > | GetWifiRemoteStationManager (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< ApWifiMac > | m_apMac |
| the AP wifi MAC More... | |
| Time | m_availableTime |
| the time available for frame exchange More... | |
| Ptr< QosTxop > | m_edca |
| the AC that gained channel access More... | |
| Ptr< HeFrameExchangeManager > | m_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... | |
Related Functions inherited from ns3::ObjectBase | |
| static TypeId | GetObjectIid (void) |
| Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. More... | |
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.
| TestMultiUserScheduler::TestMultiUserScheduler | ( | ) |
Definition at line 105 of file wifi-mac-ofdma-test.cc.
References NS_LOG_FUNCTION.
|
virtual |
Definition at line 112 of file wifi-mac-ofdma-test.cc.
References NS_LOG_FUNCTION_NOARGS.
|
overrideprivatevirtual |
Compute the information required to perform a DL MU transmission.
Implements ns3::MultiUserScheduler.
Definition at line 296 of file wifi-mac-ofdma-test.cc.
References m_psduMap, m_txParams, and NS_LOG_FUNCTION.
|
overrideprivatevirtual |
Prepare the information required to solicit an UL MU transmission.
Implements ns3::MultiUserScheduler.
Definition at line 303 of file wifi-mac-ofdma-test.cc.
References m_tbPpduDuration, m_trigger, m_txParams, and NS_LOG_FUNCTION.
|
private |
Compute the TX vector to use for MU PPDUs.
Definition at line 243 of file wifi-mac-ofdma-test.cc.
References ns3::WifiTxVector::GetPreambleType(), ns3::MultiUserScheduler::GetWifiRemoteStationManager(), ns3::MultiUserScheduler::m_apMac, m_txVector, NS_ABORT_MSG, NS_ABORT_MSG_IF, ns3::WifiTxVector::SetChannelWidth(), ns3::WifiTxVector::SetGuardInterval(), ns3::WifiTxVector::SetHeMuUserInfo(), ns3::WifiTxVector::SetPreambleType(), ns3::WifiTxVector::SetTxPowerLevel(), and ns3::WIFI_PREAMBLE_HE_MU.
Referenced by SelectTxFormat().
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Get the type ID.
Definition at line 95 of file wifi-mac-ofdma-test.cc.
References ns3::TypeId::SetParent().
Here is the call graph for this function:
|
overrideprivatevirtual |
Select the format of the next transmission.
Implements ns3::MultiUserScheduler.
Definition at line 118 of file wifi-mac-ofdma-test.cc.
References ns3::AC_BE, ns3::Packet::AddHeader(), ns3::BASIC_TRIGGER, ns3::BSRP_TRIGGER, ns3::WifiTxParameters::Clear(), ComputeWifiTxVector(), ns3::MultiUserScheduler::DL_MU_TX, ns3::WifiMacHeader::GetAddr1(), ns3::CtrlTriggerHeader::GetGuardInterval(), ns3::WifiTxParameters::m_acknowledgment, ns3::MultiUserScheduler::m_apMac, ns3::MultiUserScheduler::m_availableTime, ns3::MultiUserScheduler::m_heFem, ns3::MultiUserScheduler::m_initialFrame, ns3::WifiTxParameters::m_protection, m_psduMap, ns3::MultiUserScheduler::m_sizeOf8QosNull, m_tbPpduDuration, m_trigger, ns3::WifiTxParameters::m_txDuration, m_txFormat, m_txParams, ns3::WifiTxParameters::m_txVector, m_txVector, m_ulTriggerType, Min, ns3::Now(), NS_ABORT_MSG, NS_ABORT_MSG_IF, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::Seconds(), ns3::WifiMacHeader::SetAddr1(), ns3::WifiMacHeader::SetAddr2(), ns3::WifiMacHeader::SetDsNotFrom(), ns3::WifiMacHeader::SetDsNotTo(), ns3::WifiTxVector::SetGuardInterval(), ns3::CtrlTriggerHeader::SetUlLength(), ns3::MultiUserScheduler::SU_TX, ns3::MultiUserScheduler::UL_MU_TX, and ns3::WIFI_MAC_CTL_TRIGGER.
Here is the call graph for this function:
|
private |
the DL MU PPDU to transmit
Definition at line 88 of file wifi-mac-ofdma-test.cc.
Referenced by ComputeDlMuInfo(), and SelectTxFormat().
|
private |
Duration of the solicited TB PPDUs.
Definition at line 85 of file wifi-mac-ofdma-test.cc.
Referenced by ComputeUlMuInfo(), and SelectTxFormat().
|
private |
Trigger Frame to send.
Definition at line 84 of file wifi-mac-ofdma-test.cc.
Referenced by ComputeUlMuInfo(), and SelectTxFormat().
|
private |
the format of next transmission
Definition at line 82 of file wifi-mac-ofdma-test.cc.
Referenced by SelectTxFormat().
|
private |
TX parameters.
Definition at line 87 of file wifi-mac-ofdma-test.cc.
Referenced by ComputeDlMuInfo(), ComputeUlMuInfo(), and SelectTxFormat().
|
private |
the TX vector for MU PPDUs
Definition at line 86 of file wifi-mac-ofdma-test.cc.
Referenced by ComputeWifiTxVector(), and SelectTxFormat().
|
private |
Trigger Frame type for UL MU.
Definition at line 83 of file wifi-mac-ofdma-test.cc.
Referenced by SelectTxFormat().