The MU EDCA Parameter Set. More...
#include "mu-edca-parameter-set.h"
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... | |
SimpleRefCount & | operator= (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... | |
The MU EDCA Parameter Set.
The 802.11ax MU EDCA Parameter Set.
Definition at line 37 of file mu-edca-parameter-set.h.
ns3::MuEdcaParameterSet::MuEdcaParameterSet | ( | ) |
Definition at line 28 of file mu-edca-parameter-set.cc.
|
overrideprivatevirtual |
Deserialize information (i.e., the body of the IE, not including the Element ID and length octets)
start | an iterator which points to where the information should be written. |
length | the expected number of bytes to 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.
|
overridevirtual |
Get the wifi information element ID.
Implements ns3::WifiInformationElement.
Definition at line 35 of file mu-edca-parameter-set.cc.
References IE_EXTENSION.
|
overridevirtual |
Get 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.
|
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)
Implements ns3::WifiInformationElement.
Definition at line 137 of file mu-edca-parameter-set.cc.
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).
aci | the AC Index |
Definition at line 107 of file mu-edca-parameter-set.cc.
References NS_ABORT_MSG_IF.
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).
aci | the AC Index |
Definition at line 122 of file mu-edca-parameter-set.cc.
References NS_ABORT_MSG_IF.
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).
aci | the AC Index |
Definition at line 114 of file mu-edca-parameter-set.cc.
References NS_ABORT_MSG_IF.
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).
aci | the AC Index |
Definition at line 130 of file mu-edca-parameter-set.cc.
References ns3::MicroSeconds(), and NS_ABORT_MSG_IF.
Referenced by ns3::ApWifiMac::GetMuEdcaParameterSet().
uint8_t ns3::MuEdcaParameterSet::GetQosInfo | ( | ) | const |
Return the QoS Info field in the MuEdcaParameterSet information element.
Definition at line 101 of file mu-edca-parameter-set.cc.
|
overrideprivatevirtual |
Serialize information (i.e., the body of the IE, not including the Element ID and length octets)
start | an 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.
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.
aci | the AC Index |
aifsn | the 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().
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.
aci | the AC Index |
cwMax | the 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().
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.
aci | the AC Index |
cwMin | the 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().
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.
aci | the AC Index |
timer | the 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().
void ns3::MuEdcaParameterSet::SetQosInfo | ( | uint8_t | qosInfo | ) |
Set the QoS Info field in the MuEdcaParameterSet information element.
qosInfo | the QoS Info field in the MuEdcaParameterSet information element |
Definition at line 47 of file mu-edca-parameter-set.cc.
Referenced by ns3::ApWifiMac::GetMuEdcaParameterSet().
|
private |
QoS info field.
Definition at line 145 of file mu-edca-parameter-set.h.
|
private |
MU AC Parameter Record fields.
Definition at line 146 of file mu-edca-parameter-set.h.