A Discrete-Event Network Simulator
API
ns3::MuEdcaParameterSet Class Reference

The MU EDCA Parameter Set. More...

#include "mu-edca-parameter-set.h"

+ Inheritance diagram for ns3::MuEdcaParameterSet:
+ Collaboration diagram for ns3::MuEdcaParameterSet:

Classes

struct  ParameterRecord
 MU AC Parameter Record type. More...
 

Public Member Functions

 MuEdcaParameterSet ()
 
uint8_t DeserializeInformationField (Buffer::Iterator start, uint8_t length)
 Deserialize information field function. More...
 
WifiInformationElementId ElementId () const
 Get the wifi information element ID. More...
 
WifiInformationElementId ElementIdExt () const
 Get the wifi information element ID extension. More...
 
uint8_t GetInformationFieldSize () const
 Get information field size function. More...
 
uint8_t GetMuAifsn (uint8_t aci) const
 Get the AIFSN subfield of the ACI/AIFSN field in the MU AC Parameter Record field corresponding to the given AC Index (aci). More...
 
uint16_t GetMuCwMax (uint8_t aci) const
 Get the CWmax value encoded by the ECWmax subfield of the ECWmin/ECWmax field in the MU AC Parameter Record field corresponding to the given AC Index (aci). More...
 
uint16_t GetMuCwMin (uint8_t aci) const
 Get the CWmin value encoded by the ECWmin subfield of the ECWmin/ECWmax field in the MU AC Parameter Record field corresponding to the given AC Index (aci). More...
 
Time GetMuEdcaTimer (uint8_t aci) const
 Get the MU EDCA Timer value encoded in the MU AC Parameter Record field corresponding to the given AC Index (aci). More...
 
uint8_t GetQosInfo (void) const
 Return the QoS Info field in the MuEdcaParameterSet information element. More...
 
uint16_t GetSerializedSize () const
 Return the serialized size of this EDCA Parameter Set. More...
 
bool IsPresent (void) const
 Return true if a valid MU EDCA Parameter Set is present in this object. More...
 
Buffer::Iterator Serialize (Buffer::Iterator start) const
 This information element is a bit special in that it is only included if the STA is an HE STA. More...
 
void SerializeInformationField (Buffer::Iterator start) const
 Serialize information field function. More...
 
void SetMuAifsn (uint8_t aci, uint8_t aifsn)
 Set the AIFSN subfield of the ACI/AIFSN field in the MU AC Parameter Record field corresponding to the given AC Index (aci). More...
 
void SetMuCwMax (uint8_t aci, uint16_t cwMax)
 Set the ECWmax subfield of the ECWmin/ECWmax field in the MU AC Parameter Record field corresponding to the given AC Index (aci). More...
 
void SetMuCwMin (uint8_t aci, uint16_t cwMin)
 Set the ECWmin subfield of the ECWmin/ECWmax field in the MU AC Parameter Record field corresponding to the given AC Index (aci). More...
 
void SetMuEdcaTimer (uint8_t aci, Time timer)
 Set the MU EDCA Timer field in the MU AC Parameter Record field corresponding to the given AC Index (aci). More...
 
void SetQosInfo (uint8_t qosInfo)
 Set the QoS Info field in the MuEdcaParameterSet information element. More...
 
- Public Member Functions inherited from ns3::WifiInformationElement
virtual ~WifiInformationElement ()
 
Buffer::Iterator Deserialize (Buffer::Iterator i)
 Deserialize entire IE, which must be present. More...
 
Buffer::Iterator DeserializeIfPresent (Buffer::Iterator i)
 Deserialize entire IE if it is present. More...
 
virtual bool operator== (WifiInformationElement const &a) const
 Compare two IEs for equality by ID & Length, and then through memcmp of serialised version. More...
 
virtual void Print (std::ostream &os) const
 Generate human-readable form of IE. More...
 
- Public Member Functions inherited from ns3::SimpleRefCount< WifiInformationElement >
 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...
 
SimpleRefCountoperator= ([[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...
 

Private Attributes

uint8_t m_qosInfo
 QoS info field. More...
 
std::array< ParameterRecord, 4 > m_records
 MU AC Parameter Record fields. More...
 

Detailed Description

The MU EDCA Parameter Set.

The 802.11ax MU EDCA Parameter Set.

Definition at line 36 of file mu-edca-parameter-set.h.

Constructor & Destructor Documentation

◆ MuEdcaParameterSet()

ns3::MuEdcaParameterSet::MuEdcaParameterSet ( )

Definition at line 27 of file mu-edca-parameter-set.cc.

Member Function Documentation

◆ DeserializeInformationField()

uint8_t ns3::MuEdcaParameterSet::DeserializeInformationField ( Buffer::Iterator  start,
uint8_t  length 
)
virtual

Deserialize information field function.

Parameters
startthe iterator
lengththe length
Returns
the size

Implements ns3::WifiInformationElement.

Definition at line 194 of file mu-edca-parameter-set.cc.

References ns3::Buffer::Iterator::ReadU8(), and visualizer.core::start().

+ Here is the call graph for this function:

◆ ElementId()

WifiInformationElementId ns3::MuEdcaParameterSet::ElementId ( ) const
virtual

Get the wifi information element ID.

Returns
the wifi information element ID

Implements ns3::WifiInformationElement.

Definition at line 34 of file mu-edca-parameter-set.cc.

References IE_EXTENSION.

◆ ElementIdExt()

WifiInformationElementId ns3::MuEdcaParameterSet::ElementIdExt ( ) const
virtual

Get the wifi information element ID extension.

Returns
the wifi information element ID extension

Reimplemented from ns3::WifiInformationElement.

Definition at line 40 of file mu-edca-parameter-set.cc.

References IE_EXT_MU_EDCA_PARAMETER_SET.

◆ GetInformationFieldSize()

uint8_t ns3::MuEdcaParameterSet::GetInformationFieldSize ( void  ) const
virtual

Get information field size function.

Returns
the information field size

Implements ns3::WifiInformationElement.

Definition at line 151 of file mu-edca-parameter-set.cc.

References NS_ASSERT.

◆ GetMuAifsn()

uint8_t ns3::MuEdcaParameterSet::GetMuAifsn ( uint8_t  aci) const

Get the AIFSN subfield of the ACI/AIFSN field in the MU AC Parameter Record field corresponding to the given AC Index (aci).

Parameters
acithe AC Index
Returns
the value of the AIFSN subfield

Definition at line 121 of file mu-edca-parameter-set.cc.

References NS_ABORT_MSG_IF.

Referenced by ns3::StaWifiMac::UpdateApInfoFromAssocResp(), and ns3::StaWifiMac::UpdateApInfoFromBeacon().

+ Here is the caller graph for this function:

◆ GetMuCwMax()

uint16_t ns3::MuEdcaParameterSet::GetMuCwMax ( uint8_t  aci) const

Get the CWmax value encoded by the ECWmax subfield of the ECWmin/ECWmax field in the MU AC Parameter Record field corresponding to the given AC Index (aci).

Parameters
acithe AC Index
Returns
the CWmax value

Definition at line 136 of file mu-edca-parameter-set.cc.

References NS_ABORT_MSG_IF.

Referenced by ns3::StaWifiMac::UpdateApInfoFromAssocResp(), and ns3::StaWifiMac::UpdateApInfoFromBeacon().

+ Here is the caller graph for this function:

◆ GetMuCwMin()

uint16_t ns3::MuEdcaParameterSet::GetMuCwMin ( uint8_t  aci) const

Get the CWmin value encoded by the ECWmin subfield of the ECWmin/ECWmax field in the MU AC Parameter Record field corresponding to the given AC Index (aci).

Parameters
acithe AC Index
Returns
the CWmin value

Definition at line 128 of file mu-edca-parameter-set.cc.

References NS_ABORT_MSG_IF.

Referenced by ns3::StaWifiMac::UpdateApInfoFromAssocResp(), and ns3::StaWifiMac::UpdateApInfoFromBeacon().

+ Here is the caller graph for this function:

◆ GetMuEdcaTimer()

Time ns3::MuEdcaParameterSet::GetMuEdcaTimer ( uint8_t  aci) const

Get the MU EDCA Timer value encoded in the MU AC Parameter Record field corresponding to the given AC Index (aci).

Parameters
acithe AC Index
Returns
the MU EDCA Timer value

Definition at line 144 of file mu-edca-parameter-set.cc.

References ns3::MicroSeconds(), and NS_ABORT_MSG_IF.

Referenced by ns3::StaWifiMac::UpdateApInfoFromAssocResp(), and ns3::StaWifiMac::UpdateApInfoFromBeacon().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetQosInfo()

uint8_t ns3::MuEdcaParameterSet::GetQosInfo ( void  ) const

Return the QoS Info field in the MuEdcaParameterSet information element.

Returns
the QoS Info field in the MuEdcaParameterSet information element

Definition at line 115 of file mu-edca-parameter-set.cc.

◆ GetSerializedSize()

uint16_t ns3::MuEdcaParameterSet::GetSerializedSize ( void  ) const
virtual

Return the serialized size of this EDCA Parameter Set.

Returns
the serialized size of this EDCA Parameter Set

Reimplemented from ns3::WifiInformationElement.

Definition at line 169 of file mu-edca-parameter-set.cc.

Referenced by ns3::MgtAssocResponseHeader::GetSerializedSize(), and ns3::MgtProbeResponseHeader::GetSerializedSize().

+ Here is the caller graph for this function:

◆ IsPresent()

bool ns3::MuEdcaParameterSet::IsPresent ( void  ) const

Return true if a valid MU EDCA Parameter Set is present in this object.

Returns
true if a valid MU EDCA Parameter Set is present in this object

Definition at line 46 of file mu-edca-parameter-set.cc.

References NS_ABORT_MSG_IF.

Referenced by ns3::StaWifiMac::UpdateApInfoFromAssocResp(), and ns3::StaWifiMac::UpdateApInfoFromBeacon().

+ Here is the caller graph for this function:

◆ Serialize()

Buffer::Iterator ns3::MuEdcaParameterSet::Serialize ( Buffer::Iterator  start) const
virtual

This information element is a bit special in that it is only included if the STA is an HE STA.

To support this we override the Serialize and GetSerializedSize methods of WifiInformationElement.

Parameters
startiterator start
Returns
an iterator

Reimplemented from ns3::WifiInformationElement.

Definition at line 159 of file mu-edca-parameter-set.cc.

Referenced by ns3::MgtAssocResponseHeader::Serialize(), and ns3::MgtProbeResponseHeader::Serialize().

+ Here is the caller graph for this function:

◆ SerializeInformationField()

void ns3::MuEdcaParameterSet::SerializeInformationField ( Buffer::Iterator  start) const
virtual

Serialize information field function.

Parameters
startthe iterator

Implements ns3::WifiInformationElement.

Definition at line 179 of file mu-edca-parameter-set.cc.

References visualizer.core::start().

+ Here is the call graph for this function:

◆ SetMuAifsn()

void ns3::MuEdcaParameterSet::SetMuAifsn ( uint8_t  aci,
uint8_t  aifsn 
)

Set the AIFSN subfield of the ACI/AIFSN field in the MU AC Parameter Record field corresponding to the given AC Index (aci).

Note that aifsn can either be zero (EDCA disabled) or in the range from 2 to 15.

Parameters
acithe AC Index
aifsnthe value for the AIFSN subfield

Definition at line 67 of file mu-edca-parameter-set.cc.

References NS_ABORT_MSG_IF.

Referenced by ns3::ApWifiMac::GetMuEdcaParameterSet().

+ Here is the caller graph for this function:

◆ SetMuCwMax()

void ns3::MuEdcaParameterSet::SetMuCwMax ( uint8_t  aci,
uint16_t  cwMax 
)

Set the ECWmax subfield of the ECWmin/ECWmax field in the MU AC Parameter Record field corresponding to the given AC Index (aci).

Note that cwMax must be a power of 2 minus 1 in the range from 0 to 32767.

Parameters
acithe AC Index
cwMaxthe CWmax value encoded by the ECWmax field

Definition at line 89 of file mu-edca-parameter-set.cc.

References NS_ABORT_MSG_IF.

Referenced by ns3::ApWifiMac::GetMuEdcaParameterSet().

+ Here is the caller graph for this function:

◆ SetMuCwMin()

void ns3::MuEdcaParameterSet::SetMuCwMin ( uint8_t  aci,
uint16_t  cwMin 
)

Set the ECWmin subfield of the ECWmin/ECWmax field in the MU AC Parameter Record field corresponding to the given AC Index (aci).

Note that cwMin must be a power of 2 minus 1 in the range from 0 to 32767.

Parameters
acithe AC Index
cwMinthe CWmin value encoded by the ECWmin field

Definition at line 77 of file mu-edca-parameter-set.cc.

References NS_ABORT_MSG_IF.

Referenced by ns3::ApWifiMac::GetMuEdcaParameterSet().

+ Here is the caller graph for this function:

◆ SetMuEdcaTimer()

void ns3::MuEdcaParameterSet::SetMuEdcaTimer ( uint8_t  aci,
Time  timer 
)

Set the MU EDCA Timer field in the MU AC Parameter Record field corresponding to the given AC Index (aci).

Note that timer must be an integer multiple of 8 TUs (i.e., 8 * 1024 = 8192 microseconds) in the range from 8.192 milliseconds to 2088.96 milliseconds. A value of 0 is used to indicate that the MU EDCA Parameter Set element must not be sent and therefore it is only allowed if the MU EDCA Timer is set to 0 for all ACs.

Parameters
acithe AC Index
timerthe value for the timer encoded by the MU EDCA Timer field

Definition at line 101 of file mu-edca-parameter-set.cc.

References ns3::Time::GetMicroSeconds(), ns3::Time::IsStrictlyPositive(), ns3::MicroSeconds(), and NS_ABORT_MSG_IF.

Referenced by ns3::ApWifiMac::GetMuEdcaParameterSet().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetQosInfo()

void ns3::MuEdcaParameterSet::SetQosInfo ( uint8_t  qosInfo)

Set the QoS Info field in the MuEdcaParameterSet information element.

Parameters
qosInfothe QoS Info field in the MuEdcaParameterSet information element

Definition at line 61 of file mu-edca-parameter-set.cc.

Referenced by ns3::ApWifiMac::GetMuEdcaParameterSet().

+ Here is the caller graph for this function:

Member Data Documentation

◆ m_qosInfo

uint8_t ns3::MuEdcaParameterSet::m_qosInfo
private

QoS info field.

Definition at line 189 of file mu-edca-parameter-set.h.

◆ m_records

std::array<ParameterRecord, 4> ns3::MuEdcaParameterSet::m_records
private

MU AC Parameter Record fields.

Definition at line 190 of file mu-edca-parameter-set.h.


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