A Discrete-Event Network Simulator
API
ns3::CommonInfoBasicMle Struct Reference

Common Info field of the Basic Multi-Link element. More...

#include "multi-link-element.h"

+ Collaboration diagram for ns3::CommonInfoBasicMle:

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< EmlCapabilitiesm_emlCapabilities
 EML Capabilities. More...
 
std::optional< uint8_t > m_linkIdInfo
 Link ID Info. More...
 
std::optional< MediumSyncDelayInfom_mediumSyncDelayInfo
 Medium Synchronization Delay Information. More...
 
std::optional< MldCapabilitiesm_mldCapabilities
 MLD Capabilities. More...
 
Mac48Address m_mldMacAddress
 Subfields. More...
 

Detailed Description

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.

Member Function Documentation

◆ DecodeEmlsrPaddingDelay()

Time ns3::CommonInfoBasicMle::DecodeEmlsrPaddingDelay ( uint8_t  value)
static
Parameters
valuethe value for the EMLSR Padding Delay subfield
Returns
the corresponding EMLSR Padding delay

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().

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

◆ DecodeEmlsrTransitionDelay()

Time ns3::CommonInfoBasicMle::DecodeEmlsrTransitionDelay ( uint8_t  value)
static
Parameters
valuethe value for the EMLSR Transition Delay subfield
Returns
the corresponding EMLSR Transition delay

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().

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

◆ Deserialize()

uint8_t ns3::CommonInfoBasicMle::Deserialize ( Buffer::Iterator  start,
uint16_t  presence 
)

Deserialize the Common Info field.

Parameters
startiterator pointing to where the Common Info field should be read from
presencethe value of the Presence Bitmap field indicating which subfields are present in the Common Info field
Returns
the number of bytes read

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().

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

◆ EncodeEmlsrPaddingDelay()

uint8_t ns3::CommonInfoBasicMle::EncodeEmlsrPaddingDelay ( Time  delay)
static
Parameters
delaythe EMLSR Padding delay
Returns
the encoded value for the EMLSR Padding Delay subfield

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().

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

◆ EncodeEmlsrTransitionDelay()

uint8_t ns3::CommonInfoBasicMle::EncodeEmlsrTransitionDelay ( Time  delay)
static
Parameters
delaythe EMLSR Transition delay
Returns
the encoded value for the EMLSR Transition Delay subfield

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().

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

◆ GetMediumSyncDelayTimer()

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.

Returns
the timer duration

Definition at line 237 of file multi-link-element.cc.

References m_mediumSyncDelayInfo, ns3::MicroSeconds(), and NS_ASSERT.

+ Here is the call graph for this function:

◆ GetMediumSyncMaxNTxops()

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.

Returns
the number of TXOPs

Definition at line 284 of file multi-link-element.cc.

References m_mediumSyncDelayInfo, and NS_ASSERT.

◆ GetMediumSyncOfdmEdThreshold()

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.

Returns
the threshold in dBm

Definition at line 257 of file multi-link-element.cc.

References m_mediumSyncDelayInfo, and NS_ASSERT.

◆ GetPresenceBitmap()

uint16_t ns3::CommonInfoBasicMle::GetPresenceBitmap ( ) const

Get the Presence Bitmap subfield of the Common Info field.

CommonInfoBasicMle.

Returns
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.

◆ GetSize()

uint8_t ns3::CommonInfoBasicMle::GetSize ( void  ) const

Get the size of the serialized Common Info field.

Returns
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().

+ Here is the caller graph for this function:

◆ Serialize()

void ns3::CommonInfoBasicMle::Serialize ( Buffer::Iterator start) const

Serialize the Common Info field.

Parameters
startiterator 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().

+ Here is the call graph for this function:

◆ SetMediumSyncDelayTimer()

void ns3::CommonInfoBasicMle::SetMediumSyncDelayTimer ( Time  delay)

Set the Medium Synchronization Duration subfield of the Medium Synchronization Delay Information in the Common Info field.

Parameters
delaythe 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().

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

◆ SetMediumSyncMaxNTxops()

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.

Parameters
nTxopsthe 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().

+ Here is the caller graph for this function:

◆ SetMediumSyncOfdmEdThreshold()

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.

Parameters
thresholdthe 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().

+ Here is the caller graph for this function:

Member Data Documentation

◆ m_bssParamsChangeCount

std::optional<uint8_t> ns3::CommonInfoBasicMle::m_bssParamsChangeCount

◆ m_emlCapabilities

std::optional<EmlCapabilities> ns3::CommonInfoBasicMle::m_emlCapabilities

◆ m_linkIdInfo

std::optional<uint8_t> ns3::CommonInfoBasicMle::m_linkIdInfo

◆ m_mediumSyncDelayInfo

◆ m_mldCapabilities

std::optional<MldCapabilities> ns3::CommonInfoBasicMle::m_mldCapabilities

◆ m_mldMacAddress

Mac48Address ns3::CommonInfoBasicMle::m_mldMacAddress

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