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 ()
 
WifiInformationElementId ElementId () const override
 Get the wifi information element ID. More...
 
WifiInformationElementId ElementIdExt () const override
 Get the wifi information element ID extension. 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 () const
 Return the QoS Info field in the MuEdcaParameterSet information element. 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 may possibly be fragmented into multiple elements), which must be present. More...
 
Buffer::Iterator DeserializeIfPresent (Buffer::Iterator i)
 Deserialize entire IE (which may possibly be fragmented into multiple elements) if it is present. More...
 
uint16_t GetSerializedSize () const
 Get the size of the serialized IE including Element ID and length fields (for every element this IE is possibly fragmented into). More...
 
virtual bool operator== (const WifiInformationElement &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...
 
Buffer::Iterator Serialize (Buffer::Iterator i) const
 Serialize entire IE including Element ID and length fields. 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 () const
 Get the reference count of the object. More...
 
SimpleRefCountoperator= (const SimpleRefCount &o[[maybe_unused]])
 Assignment operator. More...
 
void Ref () const
 Increment the reference count. More...
 
void Unref () const
 Decrement the reference count. More...
 

Private Member Functions

uint16_t DeserializeInformationField (Buffer::Iterator start, uint16_t length) override
 Deserialize information (i.e., the body of the IE, not including the Element ID and length octets) More...
 
uint16_t GetInformationFieldSize () const override
 Length of serialized information (i.e., the length of the body of the IE, not including the Element ID and length octets. More...
 
void SerializeInformationField (Buffer::Iterator start) const override
 Serialize information (i.e., the body of the IE, not including the Element ID and length octets) 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 37 of file mu-edca-parameter-set.h.

Constructor & Destructor Documentation

◆ MuEdcaParameterSet()

ns3::MuEdcaParameterSet::MuEdcaParameterSet ( )

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

Member Function Documentation

◆ DeserializeInformationField()

uint16_t ns3::MuEdcaParameterSet::DeserializeInformationField ( Buffer::Iterator  start,
uint16_t  length 
)
overrideprivatevirtual

Deserialize information (i.e., the body of the IE, not including the Element ID and length octets)

Parameters
startan iterator which points to where the information should be written.
lengththe expected number of bytes to read
Returns
the number of bytes read

Implements ns3::WifiInformationElement.

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

References ns3::Buffer::Iterator::ReadU8(), and two-ray-to-three-gpp-ch-calibration::start.

+ Here is the call graph for this function:

◆ ElementId()

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

Get the wifi information element ID.

Returns
the wifi information element ID

Implements ns3::WifiInformationElement.

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

References IE_EXTENSION.

◆ ElementIdExt()

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

Get the wifi information element ID extension.

Returns
the wifi information element ID extension

Reimplemented from ns3::WifiInformationElement.

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

References IE_EXT_MU_EDCA_PARAMETER_SET.

◆ GetInformationFieldSize()

uint16_t ns3::MuEdcaParameterSet::GetInformationFieldSize ( ) const
overrideprivatevirtual

Length of serialized information (i.e., the length of the body of the IE, not including the Element ID and length octets.

This is the value that will appear in the second octet of the entire IE - the length field - if the IE is not fragmented)

Returns
the length of serialized information

Implements ns3::WifiInformationElement.

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

◆ 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 107 of file mu-edca-parameter-set.cc.

References NS_ABORT_MSG_IF.

◆ 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 122 of file mu-edca-parameter-set.cc.

References NS_ABORT_MSG_IF.

◆ 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 114 of file mu-edca-parameter-set.cc.

References NS_ABORT_MSG_IF.

◆ 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 130 of file mu-edca-parameter-set.cc.

References 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:

◆ GetQosInfo()

uint8_t ns3::MuEdcaParameterSet::GetQosInfo ( ) const

Return the QoS Info field in the MuEdcaParameterSet information element.

Returns
the QoS Info field in the MuEdcaParameterSet information element

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

◆ SerializeInformationField()

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

Serialize information (i.e., the body of the IE, not including the Element ID and length octets)

Parameters
startan iterator which points to where the information should be written.

Implements ns3::WifiInformationElement.

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

References two-ray-to-three-gpp-ch-calibration::start.

◆ 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 53 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 75 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 63 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 87 of file mu-edca-parameter-set.cc.

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

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 47 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 145 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 146 of file mu-edca-parameter-set.h.


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