A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
ns3::QosWifiMacHelper Class Reference

create QoS-enabled MAC layers for a ns3::WifiNetDevice. More...

#include <qos-wifi-mac-helper.h>

+ Inheritance diagram for ns3::QosWifiMacHelper:

Public Member Functions

 QosWifiMacHelper ()
 
virtual ~QosWifiMacHelper ()
 
void SetBlockAckInactivityTimeoutForAc (enum AcIndex ac, uint16_t timeout)
 
void SetBlockAckThresholdForAc (enum AcIndex ac, uint8_t threshold)
 
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())
 
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())
 

Static Public Member Functions

static QosWifiMacHelper Default (void)
 

Private Member Functions

virtual Ptr< WifiMacCreate (void) const
 
void Setup (Ptr< WifiMac > mac, enum AcIndex ac, std::string dcaAttrName) const
 

Private Attributes

std::map< AcIndex, ObjectFactorym_aggregators
 
std::map< AcIndex, uint16_t > m_bAckInactivityTimeouts
 
std::map< AcIndex, uint8_t > m_bAckThresholds
 
ObjectFactory m_mac
 

Detailed Description

create QoS-enabled MAC layers for a ns3::WifiNetDevice.

This class can create MACs of type ns3::ApWifiMac, ns3::StaWifiMac, and, ns3::AdhocWifiMac, with QosSupported attribute set to True.

Definition at line 36 of file qos-wifi-mac-helper.h.

Constructor & Destructor Documentation

ns3::QosWifiMacHelper::QosWifiMacHelper ( )

Create a QosWifiMacHelper that is used to make life easier when working with Wifi devices using a QOS MAC layer.

Definition at line 30 of file qos-wifi-mac-helper.cc.

ns3::QosWifiMacHelper::~QosWifiMacHelper ( )
virtual

Destroy a QosWifiMacHelper

Definition at line 34 of file qos-wifi-mac-helper.cc.

Member Function Documentation

Ptr< WifiMac > ns3::QosWifiMacHelper::Create ( void  ) const
privatevirtual
Returns
a newly-created MAC object.

This method implements the pure virtual method defined in ns3::WifiMacHelper.

Implements ns3::WifiMacHelper.

Definition at line 141 of file qos-wifi-mac-helper.cc.

References ns3::AC_BE, ns3::AC_BK, ns3::AC_VI, ns3::AC_VO, and ns3::ObjectFactory::Create().

QosWifiMacHelper ns3::QosWifiMacHelper::Default ( void  )
static

Create a mac helper in a default working state.

Definition at line 39 of file qos-wifi-mac-helper.cc.

References SetType().

void ns3::QosWifiMacHelper::SetBlockAckInactivityTimeoutForAc ( enum AcIndex  ac,
uint16_t  timeout 
)

Sets value of block ack inactivity timeout for a specific access class. timeout represents number of blocks of 1024 microseconds. When this timer expires the relative block ack agreement is teared down. Timer is reset in an recipient station every time that a block ack request or a MPDU with ack policy BLOCK ACK is received. Timer is reset in a originator station every time that a block ack frame is received.

Parameters
acaccess category for which we are setting block ack threshold. Possibilities are: AC_BK, AC_BE, AC_VI, AC_VO.
timeoutnumber of block of 1024 microseconds.

Definition at line 110 of file qos-wifi-mac-helper.cc.

void ns3::QosWifiMacHelper::SetBlockAckThresholdForAc ( enum AcIndex  ac,
uint8_t  threshold 
)

This method sets value of block ack threshold for a specific access class. If number of packets in the respective queue reaches this value block ack mechanism is used.

Parameters
acaccess category for which we are setting block ack threshold. Possibilities are: AC_BK, AC_BE, AC_VI, AC_VO.
thresholdthe threshold (number of packets)

Definition at line 104 of file qos-wifi-mac-helper.cc.

void ns3::QosWifiMacHelper::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

Parameters
acaccess category for which we are setting aggregator. Possibilities are: AC_BK, AC_BE, AC_VI, AC_VO.
typethe type of ns3::MsduAggregator to create.
n0the name of the attribute to set
v0the value of the attribute to set
n1the name of the attribute to set
v1the value of the attribute to set
n2the name of the attribute to set
v2the value of the attribute to set
n3the name of the attribute to set
v3the value of the attribute to set

All the attributes specified in this method should exist in the requested aggregator.

Definition at line 76 of file qos-wifi-mac-helper.cc.

References ns3::ObjectFactory::Set(), and ns3::ObjectFactory::SetTypeId().

Referenced by WifiMsduAggregatorThroughputTest::DoRun().

void ns3::QosWifiMacHelper::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.

Parameters
typethe type of ns3::WifiMac to create.
n0the name of the attribute to set
v0the value of the attribute to set
n1the name of the attribute to set
v1the value of the attribute to set
n2the name of the attribute to set
v2the value of the attribute to set
n3the name of the attribute to set
v3the value of the attribute to set
n4the name of the attribute to set
v4the value of the attribute to set
n5the name of the attribute to set
v5the value of the attribute to set
n6the name of the attribute to set
v6the value of the attribute to set
n7the name of the attribute to set
v7the value of the attribute to set

All the attributes specified in this method should exist in the requested mac.

Definition at line 54 of file qos-wifi-mac-helper.cc.

References ns3::ObjectFactory::Set(), and ns3::ObjectFactory::SetTypeId().

Referenced by Default(), and WifiMsduAggregatorThroughputTest::DoRun().


The documentation for this class was generated from the following files: