21 #include "ns3/msdu-aggregator.h"
22 #include "ns3/wifi-mac.h"
23 #include "ns3/edca-txop-n.h"
24 #include "ns3/pointer.h"
25 #include "ns3/boolean.h"
26 #include "ns3/uinteger.h"
27 #include "ns3/mpdu-aggregator.h"
28 #include "ns3/mac-low.h"
49 helper.
SetType (
"ns3::StaWifiMac",
84 std::map<AcIndex, ObjectFactory>::iterator it =
m_aggregators.find (ac);
87 it->second.SetTypeId (type);
88 it->second.Set (n0, v0);
89 it->second.Set (n1, v1);
90 it->second.Set (n2, v2);
91 it->second.Set (n3, v3);
100 factory.
Set (n3, v3);
135 std::map<AcIndex, ObjectFactory>::const_iterator it =
m_aggregators.find (ac);
137 mac->GetAttribute (dcaAttrName, ptr);
Abstract class that concrete mpdu aggregators have to implement.
std::map< AcIndex, ObjectFactory > m_aggregators
TypeId GetTypeId(void) const
Get the TypeId which will be created by this ObjectFactory.
Smart pointer class similar to boost::intrusive_ptr.
AttributeValue implementation for Boolean.
void SetBlockAckInactivityTimeout(uint16_t timeout)
Hold a value for an Attribute.
virtual void SetType(std::string type, std::string n0="", const AttributeValue &v0=EmptyAttributeValue(), std::string n1="", const AttributeValue &v1=EmptyAttributeValue(), std::string n2="", const AttributeValue &v2=EmptyAttributeValue(), std::string n3="", const AttributeValue &v3=EmptyAttributeValue(), std::string n4="", const AttributeValue &v4=EmptyAttributeValue(), std::string n5="", const AttributeValue &v5=EmptyAttributeValue(), std::string n6="", const AttributeValue &v6=EmptyAttributeValue(), std::string n7="", const AttributeValue &v7=EmptyAttributeValue())
Set the underlying type of the MAC and its attributes.
void SetTypeId(TypeId tid)
Set the TypeId of the Objects to be created by this factory.
void SetMsduAggregatorForAc(AcIndex ac, std::string type, std::string n0="", const AttributeValue &v0=EmptyAttributeValue(), std::string n1="", const AttributeValue &v1=EmptyAttributeValue(), std::string n2="", const AttributeValue &v2=EmptyAttributeValue(), std::string n3="", const AttributeValue &v3=EmptyAttributeValue())
Set the class, type and attributes for the Msdu aggregator.
std::map< AcIndex, uint8_t > m_bAckThresholds
Ptr< MacLow > Low(void)
Return the MacLow associated with this EdcaTxopN.
This queue contains packets for a particular access class.
void SetBlockAckThresholdForAc(enum AcIndex ac, uint8_t threshold)
This method sets value of block ack threshold for a specific access class.
Ptr< Object > Create(void) const
Create an Object instance of the configured TypeId.
base class for all MAC-level wifi objects.
std::map< AcIndex, uint16_t > m_bAckInactivityTimeouts
void SetMpduAggregatorForAc(enum AcIndex ac, std::string type, std::string n0="", const AttributeValue &v0=EmptyAttributeValue(), std::string n1="", const AttributeValue &v1=EmptyAttributeValue(), std::string n2="", const AttributeValue &v2=EmptyAttributeValue(), std::string n3="", const AttributeValue &v3=EmptyAttributeValue())
Set the class, type and attributes for the Mpdu aggregator.
void SetBlockAckThreshold(uint8_t threshold)
Set threshold for block ACK mechanism.
QosWifiMacHelper()
Create a QosWifiMacHelper that is used to make life easier when working with Wifi devices using a QOS...
ObjectFactory m_mpduAggregator
static QosWifiMacHelper Default(void)
Create a mac helper in a default working state.
create QoS-enabled MAC layers for a ns3::WifiNetDevice.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Hold objects of type Ptr.
virtual ~QosWifiMacHelper()
Destroy a QosWifiMacHelper.
virtual Ptr< WifiMac > Create(void) const
void Set(std::string name, const AttributeValue &value)
Set an attribute to be set during construction.
uint16_t GetUid(void) const
void SetMsduAggregator(Ptr< MsduAggregator > aggr)
void Setup(Ptr< WifiMac > mac, enum AcIndex ac, std::string dcaAttrName) const
Instantiate subclasses of ns3::Object.
void SetBlockAckInactivityTimeoutForAc(enum AcIndex ac, uint16_t timeout)
Sets value of block ack inactivity timeout for a specific access class.
Abstract class that concrete msdu aggregators have to implement.
AcIndex
This enumeration defines the Access Categories as an enumeration with values corresponding to the AC ...
void SetMpduAggregator(Ptr< MpduAggregator > aggregator)
Set up MpduAggregator associated with this MacLow.