Common Info field of the Basic Multi-Link element. More...
#include "multi-link-element.h"
Classes | |
struct | EmlCapabilities |
EML Capabilities subfield. More... | |
struct | MediumSyncDelayInfo |
Medium Synchronization Delay Information subfield. More... | |
struct | MldCapabilities |
MLD Capabilities subfield. More... | |
Public Member Functions | |
uint8_t | Deserialize (Buffer::Iterator start, uint16_t presence) |
Deserialize the Common Info field. More... | |
Time | GetMediumSyncDelayTimer () const |
Get the Medium Synchronization Duration subfield of the Medium Synchronization Delay Information in the Common Info field. More... | |
std::optional< uint8_t > | GetMediumSyncMaxNTxops () const |
Get the maximum number of TXOPs a non-AP STA is allowed to attempt to initiate while the MediumSyncDelay timer is running at a non-AP STA. More... | |
int8_t | GetMediumSyncOfdmEdThreshold () const |
Get the Medium Synchronization OFDM ED Threshold in dBm. More... | |
uint16_t | GetPresenceBitmap () const |
Get the Presence Bitmap subfield of the Common Info field. More... | |
uint8_t | GetSize () const |
Get the size of the serialized Common Info field. More... | |
void | Serialize (Buffer::Iterator &start) const |
Serialize the Common Info field. More... | |
void | SetMediumSyncDelayTimer (Time delay) |
Set the Medium Synchronization Duration subfield of the Medium Synchronization Delay Information in the Common Info field. More... | |
void | SetMediumSyncMaxNTxops (uint8_t nTxops) |
Set the Medium Synchronization Maximum Number of TXOPs subfield of the Medium Synchronization Delay Information in the Common Info field. More... | |
void | SetMediumSyncOfdmEdThreshold (int8_t threshold) |
Set the Medium Synchronization OFDM ED Threshold subfield of the Medium Synchronization Delay Information in the Common Info field. More... | |
Static Public Member Functions | |
static Time | DecodeEmlsrPaddingDelay (uint8_t value) |
static Time | DecodeEmlsrTransitionDelay (uint8_t value) |
static uint8_t | EncodeEmlsrPaddingDelay (Time delay) |
static uint8_t | EncodeEmlsrTransitionDelay (Time delay) |
Public Attributes | |
std::optional< uint8_t > | m_bssParamsChangeCount |
BSS Parameters Change Count. More... | |
std::optional< EmlCapabilities > | m_emlCapabilities |
EML Capabilities. More... | |
std::optional< uint8_t > | m_linkIdInfo |
Link ID Info. More... | |
std::optional< MediumSyncDelayInfo > | m_mediumSyncDelayInfo |
Medium Synchronization Delay Information. More... | |
std::optional< MldCapabilities > | m_mldCapabilities |
MLD Capabilities. More... | |
Mac48Address | m_mldMacAddress |
Subfields. More... | |
Common Info field of the Basic Multi-Link element.
See Sec. 9.4.2.312.2.2 of 802.11be D1.5
Definition at line 46 of file multi-link-element.h.
|
static |
value | the value for the EMLSR Padding Delay subfield |
Definition at line 179 of file multi-link-element.cc.
References ns3::MicroSeconds(), and NS_ABORT_MSG_IF.
Referenced by ns3::MultiLinkElement::GetEmlsrPaddingDelay(), and ns3::MgtEmlOmn::Print().
|
static |
value | the value for the EMLSR Transition Delay subfield |
Definition at line 212 of file multi-link-element.cc.
References ns3::MicroSeconds(), and NS_ABORT_MSG_IF.
Referenced by ns3::EhtFrameExchangeManager::EmlsrSwitchToListening(), ns3::MultiLinkElement::GetEmlsrTransitionDelay(), and ns3::MgtEmlOmn::Print().
uint8_t ns3::CommonInfoBasicMle::Deserialize | ( | Buffer::Iterator | start, |
uint16_t | presence | ||
) |
Deserialize the Common Info field.
start | iterator pointing to where the Common Info field should be read from |
presence | the value of the Presence Bitmap field indicating which subfields are present in the Common Info field |
Definition at line 97 of file multi-link-element.cc.
References m_bssParamsChangeCount, m_emlCapabilities, m_linkIdInfo, m_mediumSyncDelayInfo, m_mldCapabilities, m_mldMacAddress, NS_ABORT_MSG_IF, ns3::ReadFrom(), ns3::Buffer::Iterator::ReadLsbtohU16(), ns3::Buffer::Iterator::ReadU8(), and two-ray-to-three-gpp-ch-calibration::start.
Referenced by BasicMultiLinkElementTest::DoRun().
|
static |
delay | the EMLSR Padding delay |
Definition at line 157 of file multi-link-element.cc.
References ns3::Time::As(), ns3::Time::GetMicroSeconds(), NS_ABORT_MSG, and ns3::Time::US.
Referenced by ns3::MultiLinkElement::SetEmlsrPaddingDelay().
|
static |
delay | the EMLSR Transition delay |
Definition at line 190 of file multi-link-element.cc.
References ns3::Time::As(), ns3::Time::GetMicroSeconds(), NS_ABORT_MSG, and ns3::Time::US.
Referenced by ns3::MultiLinkElement::SetEmlsrTransitionDelay().
Time ns3::CommonInfoBasicMle::GetMediumSyncDelayTimer | ( | ) | const |
Get the Medium Synchronization Duration subfield of the Medium Synchronization Delay Information in the Common Info field.
Make sure that the Medium Synchronization Delay Information subfield is present.
Definition at line 237 of file multi-link-element.cc.
References m_mediumSyncDelayInfo, ns3::MicroSeconds(), and NS_ASSERT.
std::optional< uint8_t > ns3::CommonInfoBasicMle::GetMediumSyncMaxNTxops | ( | ) | const |
Get the maximum number of TXOPs a non-AP STA is allowed to attempt to initiate while the MediumSyncDelay timer is running at a non-AP STA.
If no value is returned, no limit is imposed on the number of TXOPs. Make sure that the Medium Synchronization Delay Information subfield is present.
Definition at line 284 of file multi-link-element.cc.
References m_mediumSyncDelayInfo, and NS_ASSERT.
int8_t ns3::CommonInfoBasicMle::GetMediumSyncOfdmEdThreshold | ( | ) | const |
Get the Medium Synchronization OFDM ED Threshold in dBm.
Make sure that the Medium Synchronization Delay Information subfield is present.
Definition at line 257 of file multi-link-element.cc.
References m_mediumSyncDelayInfo, and NS_ASSERT.
uint16_t ns3::CommonInfoBasicMle::GetPresenceBitmap | ( | ) | const |
Get the Presence Bitmap subfield of the Common Info field.
Definition at line 35 of file multi-link-element.cc.
References m_bssParamsChangeCount, m_emlCapabilities, m_linkIdInfo, m_mediumSyncDelayInfo, and m_mldCapabilities.
uint8_t ns3::CommonInfoBasicMle::GetSize | ( | void | ) | const |
Get the size of the serialized Common Info field.
Definition at line 46 of file multi-link-element.cc.
References m_bssParamsChangeCount, m_emlCapabilities, m_linkIdInfo, m_mediumSyncDelayInfo, and m_mldCapabilities.
Referenced by Serialize().
void ns3::CommonInfoBasicMle::Serialize | ( | Buffer::Iterator & | start | ) | const |
Serialize the Common Info field.
start | iterator pointing to where the Common Info field should be written to |
Definition at line 58 of file multi-link-element.cc.
References GetSize(), m_bssParamsChangeCount, m_emlCapabilities, m_linkIdInfo, m_mediumSyncDelayInfo, m_mldCapabilities, m_mldMacAddress, two-ray-to-three-gpp-ch-calibration::start, and ns3::WriteTo().
void ns3::CommonInfoBasicMle::SetMediumSyncDelayTimer | ( | Time | delay | ) |
Set the Medium Synchronization Duration subfield of the Medium Synchronization Delay Information in the Common Info field.
delay | the timer duration (must be a multiple of 32 microseconds) |
Definition at line 223 of file multi-link-element.cc.
References ns3::Time::GetMicroSeconds(), m_mediumSyncDelayInfo, and NS_ABORT_MSG_IF.
Referenced by BasicMultiLinkElementTest::GetMultiLinkElement(), and ns3::ApWifiMac::GetMultiLinkElement().
void ns3::CommonInfoBasicMle::SetMediumSyncMaxNTxops | ( | uint8_t | nTxops | ) |
Set the Medium Synchronization Maximum Number of TXOPs subfield of the Medium Synchronization Delay Information in the Common Info field.
A value of zero indicates no limit on the maximum number of TXOPs.
nTxops | the maximum number of TXOPs a non-AP STA is allowed to attempt to initiate while the MediumSyncDelay timer is running at a non-AP STA |
Definition at line 264 of file multi-link-element.cc.
References m_mediumSyncDelayInfo, and NS_ASSERT_MSG.
Referenced by BasicMultiLinkElementTest::GetMultiLinkElement().
void ns3::CommonInfoBasicMle::SetMediumSyncOfdmEdThreshold | ( | int8_t | threshold | ) |
Set the Medium Synchronization OFDM ED Threshold subfield of the Medium Synchronization Delay Information in the Common Info field.
threshold | the threshold in dBm (ranges from -72 to -62 dBm) |
Definition at line 244 of file multi-link-element.cc.
References m_mediumSyncDelayInfo, and NS_ABORT_MSG_IF.
Referenced by BasicMultiLinkElementTest::GetMultiLinkElement().
std::optional<uint8_t> ns3::CommonInfoBasicMle::m_bssParamsChangeCount |
BSS Parameters Change Count.
Definition at line 88 of file multi-link-element.h.
Referenced by Deserialize(), BasicMultiLinkElementTest::DoRun(), BasicMultiLinkElementTest::GetMultiLinkElement(), GetPresenceBitmap(), GetSize(), and Serialize().
std::optional<EmlCapabilities> ns3::CommonInfoBasicMle::m_emlCapabilities |
EML Capabilities.
Definition at line 91 of file multi-link-element.h.
Referenced by Deserialize(), BasicMultiLinkElementTest::DoRun(), BasicMultiLinkElementTest::GetMultiLinkElement(), GetPresenceBitmap(), GetSize(), and Serialize().
std::optional<uint8_t> ns3::CommonInfoBasicMle::m_linkIdInfo |
Link ID Info.
Definition at line 87 of file multi-link-element.h.
Referenced by Deserialize(), BasicMultiLinkElementTest::DoRun(), BasicMultiLinkElementTest::GetMultiLinkElement(), GetPresenceBitmap(), GetSize(), and Serialize().
std::optional<MediumSyncDelayInfo> ns3::CommonInfoBasicMle::m_mediumSyncDelayInfo |
Medium Synchronization Delay Information.
Definition at line 90 of file multi-link-element.h.
Referenced by Deserialize(), BasicMultiLinkElementTest::DoRun(), GetMediumSyncDelayTimer(), GetMediumSyncMaxNTxops(), GetMediumSyncOfdmEdThreshold(), BasicMultiLinkElementTest::GetMultiLinkElement(), GetPresenceBitmap(), GetSize(), Serialize(), SetMediumSyncDelayTimer(), SetMediumSyncMaxNTxops(), and SetMediumSyncOfdmEdThreshold().
std::optional<MldCapabilities> ns3::CommonInfoBasicMle::m_mldCapabilities |
MLD Capabilities.
Definition at line 92 of file multi-link-element.h.
Referenced by Deserialize(), ns3::StaWifiMac::GetMultiLinkElement(), ns3::ApWifiMac::GetMultiLinkElement(), GetPresenceBitmap(), GetSize(), and Serialize().
Mac48Address ns3::CommonInfoBasicMle::m_mldMacAddress |
Subfields.
MLD MAC Address
Definition at line 86 of file multi-link-element.h.
Referenced by Deserialize(), BasicMultiLinkElementTest::DoRun(), BasicMultiLinkElementTest::GetMultiLinkElement(), and Serialize().