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 () | |
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... | |
SimpleRefCount & | operator= ([[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... | |
The MU EDCA Parameter Set.
The 802.11ax MU EDCA Parameter Set.
Definition at line 36 of file mu-edca-parameter-set.h.
ns3::MuEdcaParameterSet::MuEdcaParameterSet | ( | ) |
Definition at line 27 of file mu-edca-parameter-set.cc.
|
virtual |
Deserialize information field function.
start | the iterator |
length | the length |
Implements ns3::WifiInformationElement.
Definition at line 194 of file mu-edca-parameter-set.cc.
References ns3::Buffer::Iterator::ReadU8(), and visualizer.core::start().
|
virtual |
Get the wifi information element ID.
Implements ns3::WifiInformationElement.
Definition at line 34 of file mu-edca-parameter-set.cc.
References IE_EXTENSION.
|
virtual |
Get 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.
|
virtual |
Get information field size function.
Implements ns3::WifiInformationElement.
Definition at line 151 of file mu-edca-parameter-set.cc.
References NS_ASSERT.
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 121 of file mu-edca-parameter-set.cc.
References NS_ABORT_MSG_IF.
Referenced by ns3::StaWifiMac::UpdateApInfoFromAssocResp(), and ns3::StaWifiMac::UpdateApInfoFromBeacon().
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 136 of file mu-edca-parameter-set.cc.
References NS_ABORT_MSG_IF.
Referenced by ns3::StaWifiMac::UpdateApInfoFromAssocResp(), and ns3::StaWifiMac::UpdateApInfoFromBeacon().
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 128 of file mu-edca-parameter-set.cc.
References NS_ABORT_MSG_IF.
Referenced by ns3::StaWifiMac::UpdateApInfoFromAssocResp(), and ns3::StaWifiMac::UpdateApInfoFromBeacon().
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 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().
uint8_t ns3::MuEdcaParameterSet::GetQosInfo | ( | void | ) | const |
Return the QoS Info field in the MuEdcaParameterSet information element.
Definition at line 115 of file mu-edca-parameter-set.cc.
|
virtual |
Return 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().
bool ns3::MuEdcaParameterSet::IsPresent | ( | void | ) | const |
Return 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().
|
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.
start | iterator start |
Reimplemented from ns3::WifiInformationElement.
Definition at line 159 of file mu-edca-parameter-set.cc.
Referenced by ns3::MgtAssocResponseHeader::Serialize(), and ns3::MgtProbeResponseHeader::Serialize().
|
virtual |
Serialize information field function.
start | the iterator |
Implements ns3::WifiInformationElement.
Definition at line 179 of file mu-edca-parameter-set.cc.
References visualizer.core::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 67 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 89 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 77 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 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().
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 61 of file mu-edca-parameter-set.cc.
Referenced by ns3::ApWifiMac::GetMuEdcaParameterSet().
|
private |
QoS info field.
Definition at line 189 of file mu-edca-parameter-set.h.
|
private |
MU AC Parameter Record fields.
Definition at line 190 of file mu-edca-parameter-set.h.