22 #include "ns3/msdu-aggregator.h"
23 #include "ns3/mpdu-aggregator.h"
24 #include "ns3/wifi-mac.h"
25 #include "ns3/edca-txop-n.h"
26 #include "ns3/pointer.h"
27 #include "ns3/boolean.h"
28 #include "ns3/uinteger.h"
29 #include "ns3/mac-low.h"
49 helper.
SetType (
"ns3::StaWifiMac",
93 it->second.SetTypeId (type);
94 it->second.Set (n0, v0);
95 it->second.Set (n1, v1);
96 it->second.Set (n2, v2);
97 it->second.Set (n3, v3);
103 factory.
Set (n0, v0);
104 factory.
Set (n1, v1);
105 factory.
Set (n2, v2);
106 factory.
Set (n3, v3);
121 it->second.SetTypeId (type);
122 it->second.Set (n0, v0);
123 it->second.Set (n1, v1);
124 it->second.Set (n2, v2);
125 it->second.Set (n3, v3);
131 factory.
Set (n0, v0);
132 factory.
Set (n1, v1);
133 factory.
Set (n2, v2);
134 factory.
Set (n3, v3);
155 mac->GetAttribute (edcaAttrName, ptr);
158 std::map<AcIndex, ObjectFactory>::const_iterator it_msdu =
m_msduAggregators.find (ac);
166 std::map<AcIndex, ObjectFactory>::const_iterator it_mpdu =
m_mpduAggregators.find (ac);
Abstract class that concrete mpdu aggregators have to implement.
std::map< AcIndex, ObjectFactory > m_mpduAggregators
A-MPDU aggregators.
Smart pointer class similar to boost::intrusive_ptr.
AttributeValue implementation for Boolean.
std::map< AcIndex, ObjectFactory > m_msduAggregators
A-MSDU aggregators.
void SetBlockAckInactivityTimeout(uint16_t timeout)
Set the Block Ack inactivity timeout.
Hold a value for an Attribute.
void Setup(Ptr< WifiMac > mac, enum AcIndex ac, std::string edcaAttrName) const
Setup function.
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
Block ACK thresholds.
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.
ObjectFactory m_mac
MAC object.
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
Block ACK inactivity timeouts.
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.
void SetMsduAggregator(const Ptr< MsduAggregator > aggr)
Set the aggregator used to construct A-MSDU subframes.
QosWifiMacHelper()
Create a QosWifiMacHelper that is used to make life easier when working with Wifi devices using a QOS...
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.
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(), std::string n8="", const AttributeValue &v8=EmptyAttributeValue(), std::string n9="", const AttributeValue &v9=EmptyAttributeValue(), std::string n10="", const AttributeValue &v10=EmptyAttributeValue())
Set the underlying type of the MAC and its attributes.
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(const Ptr< MpduAggregator > aggr)
Set the aggregator used to construct A-MPDU subframes.