9#ifndef WIFI_MAC_HELPER_H
10#define WIFI_MAC_HELPER_H
12#include "ns3/object-factory.h"
13#include "ns3/qos-utils.h"
14#include "ns3/wifi-standards.h"
60 template <
typename... Args>
61 void SetType(std::string type, Args&&... args);
69 template <
typename... Args>
70 void SetDcf(Args&&... args);
79 template <
typename... Args>
88 template <
typename... Args>
97 template <
typename... Args>
107 template <
typename... Args>
117 template <
typename... Args>
127 template <
typename... Args>
137 template <
typename... Args>
148 template <
typename... Args>
158 template <
typename... Args>
168 template <
typename... Args>
183 std::map<AcIndex, ObjectFactory, std::greater<>>
m_edca;
204template <
typename... Args>
212template <
typename... Args>
219template <
typename... Args>
223 auto it =
m_edca.find(aci);
225 it->second.Set(args...);
228template <
typename... Args>
235template <
typename... Args>
242template <
typename... Args>
250template <
typename... Args>
258template <
typename... Args>
266template <
typename... Args>
274template <
typename... Args>
282template <
typename... Args>
290template <
typename... Args>
Instantiate subclasses of ns3::Object.
void Set(const std::string &name, const AttributeValue &value, Args &&... args)
Set an attribute to be set during construction.
void SetTypeId(TypeId tid)
Set the TypeId of the Objects to be created by this factory.
Smart pointer class similar to boost::intrusive_ptr.
create MAC layers for a ns3::WifiNetDevice.
ObjectFactory m_apEmlsrManager
AP EMLSR Manager object factory.
void SetChannelAccessManager(Args &&... args)
Helper function used to set the Channel Access Manager object.
void SetDcf(Args &&... args)
Helper function used to create and set the Txop object.
std::map< AcIndex, ObjectFactory, std::greater<> > m_edca
QosTxop (EDCA) object factories.
ObjectFactory m_mac
MAC object factory.
ObjectFactory m_queueScheduler
MAC queue scheduler.
void SetAckManager(std::string type, Args &&... args)
Helper function used to set the Acknowledgment Manager.
void SetFrameExchangeManager(Args &&... args)
Helper function used to set the Frame Exchange Manager object.
virtual ~WifiMacHelper()
Destroy a WifiMacHelper.
virtual Ptr< WifiMac > Create(Ptr< WifiNetDevice > device, WifiStandard standard) const
ObjectFactory m_protectionManager
Factory to create a protection manager.
ObjectFactory m_muScheduler
Multi-user Scheduler object factory.
void SetProtectionManager(std::string type, Args &&... args)
Helper function used to set the Protection Manager.
void SetMacQueueScheduler(std::string type, Args &&... args)
Helper function used to set the MAC queue scheduler.
ObjectFactory m_assocManager
Association Manager.
void SetEdca(AcIndex aci, Args &&... args)
Helper function used to create and set the QosTxop object corresponding to the given AC.
WifiMacHelper()
Create a WifiMacHelper to make life easier for people who want to work with Wifi MAC layers.
void SetApEmlsrManager(std::string type, Args &&... args)
Helper function used to set the AP EMLSR Manager that can be installed on an EHT AP MLD.
ObjectFactory m_emlsrManager
EMLSR Manager object factory.
ObjectFactory m_dcf
Txop (DCF) object factory.
void SetAssocManager(std::string type, Args &&... args)
Helper function used to set the Association Manager.
void SetMultiUserScheduler(std::string type, Args &&... args)
Helper function used to set the Multi User Scheduler that can be aggregated to an HE AP's MAC.
void SetEmlsrManager(std::string type, Args &&... args)
Helper function used to set the EMLSR Manager that can be installed on an EHT non-AP MLD.
ObjectFactory m_ackManager
Factory to create an acknowledgment manager.
void SetType(std::string type, Args &&... args)
ObjectFactory m_frameExchangeManager
Frame Exchange Manager object factory.
ObjectFactory m_channelAccessManager
Channel Access Manager object factory.
#define NS_ASSERT_MSG(condition, message)
At runtime, in debugging builds, if this condition is not true, the program prints the message to out...
WifiStandard
Identifies the IEEE 802.11 specifications that a Wifi device can be configured to use.
AcIndex
This enumeration defines the Access Categories as an enumeration with values corresponding to the AC ...
Every class exported by the ns3 library is enclosed in the ns3 namespace.