Dummy Multi User Scheduler used to test OFDMA ack sequences. More...
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[[maybe_unused]]) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount (void) const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= ([[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< 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 295 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 302 of file wifi-mac-ofdma-test.cc.
References m_trigger, m_triggerHdr, m_txParams, and NS_LOG_FUNCTION.
|
private |
Compute the TX vector to use for MU PPDUs.
Definition at line 242 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().
|
static |
Get the type ID.
Definition at line 95 of file wifi-mac-ofdma-test.cc.
References ns3::TypeId::SetParent().
|
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::CtrlTriggerHeader::begin(), ns3::BSRP_TRIGGER, ns3::WifiTxParameters::Clear(), ComputeWifiTxVector(), ns3::MultiUserScheduler::DL_MU_TX, ns3::WifiMacHeader::GetAddr1(), ns3::CtrlTriggerHeader::GetGuardInterval(), ns3::CtrlTriggerHeader::GetHeTbTxVector(), 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_trigger, m_triggerHdr, 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.
|
private |
the DL MU PPDU to transmit
Definition at line 88 of file wifi-mac-ofdma-test.cc.
Referenced by ComputeDlMuInfo(), and SelectTxFormat().
|
private |
Trigger Frame to send.
Definition at line 84 of file wifi-mac-ofdma-test.cc.
Referenced by ComputeUlMuInfo(), and SelectTxFormat().
|
private |
MAC header for Trigger Frame.
Definition at line 85 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().