A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
ns3::CtrlTriggerSpecialUserInfoField Class Reference

Special User Info field of Trigger frames. More...

#include "ctrl-headers.h"

+ Collaboration diagram for ns3::CtrlTriggerSpecialUserInfoField:

Public Member Functions

 CtrlTriggerSpecialUserInfoField (TriggerFrameType triggerType)
 Constructor.
 
Buffer::Iterator Deserialize (Buffer::Iterator start)
 Deserialize the Special User Info field from the given buffer.
 
const CtrlBAckRequestHeaderGetMuBarTriggerDepUserInfo () const
 Get the Trigger Dependent Special User Info subfield for the MU-BAR variant of Trigger frames, which includes a BAR Type subfield.
 
uint32_t GetSerializedSize () const
 Get the expected size of this Special User Info field.
 
TriggerFrameType GetType () const
 Get the type of the Trigger Frame this Special User Info field belongs to.
 
uint8_t GetUlBwExt () const
 Get the UL Bandwidth Extension subfield value of the solicited EHT TB PPDU.
 
CtrlTriggerSpecialUserInfoFieldoperator= (const CtrlTriggerSpecialUserInfoField &other)
 Copy assignment operator.
 
Buffer::Iterator Serialize (Buffer::Iterator start) const
 Serialize the Special User Info field to the given buffer.
 
void SetMuBarTriggerDepUserInfo (const CtrlBAckRequestHeader &bar)
 Set the Trigger Dependent Special User Info subfield for the MU-BAR variant of Trigger frames, which includes the BAR Type subfield.
 
void SetUlBwExt (MHz_u bw)
 Set the UL Bandwidth Extension subfield value of the solicited EHT TB PPDU.
 

Private Attributes

CtrlBAckRequestHeader m_muBarTriggerDependentUserInfo {}
 MU-BAR variant of Trigger Dependent User Info subfield.
 
TriggerFrameType m_triggerType {}
 Trigger type.
 
uint8_t m_ulBwExt {}
 UL Bandwidth Extension.
 

Detailed Description

Special User Info field of Trigger frames.

Trigger frames have been extended by 802.11be amendment and may include one Special User Info field for a solicited EHT TB PPDU (see Section 9.3.1.22.3 of D7.0). The Special User Info field is located immediately after the Common Info field, it does not carry user specific information but carries extended common information not provided in the Common Info field.

Definition at line 923 of file ctrl-headers.h.

Constructor & Destructor Documentation

◆ CtrlTriggerSpecialUserInfoField()

ns3::CtrlTriggerSpecialUserInfoField::CtrlTriggerSpecialUserInfoField ( TriggerFrameType triggerType)
explicit

Constructor.

Parameters
triggerTypethe Trigger frame type

Definition at line 1768 of file ctrl-headers.cc.

Member Function Documentation

◆ Deserialize()

Buffer::Iterator ns3::CtrlTriggerSpecialUserInfoField::Deserialize ( Buffer::Iterator start)

Deserialize the Special User Info field from the given buffer.

Parameters
startan iterator which points to where the header should read from
Returns
Buffer::Iterator to the next available buffer

Definition at line 1847 of file ctrl-headers.cc.

References ns3::AID_SPECIAL_USER, ns3::BASIC_TRIGGER, ns3::BFRP_TRIGGER, ns3::CtrlBAckRequestHeader::Deserialize(), ns3::GCR_MU_BAR_TRIGGER, m_muBarTriggerDependentUserInfo, m_triggerType, m_ulBwExt, ns3::MU_BAR_TRIGGER, ns3::Buffer::Iterator::Next(), ns3::NFRP_TRIGGER, NS_ABORT_MSG_IF, ns3::Buffer::Iterator::ReadLsbtohU32(), and ns3::Buffer::Iterator::ReadU8().

+ Here is the call graph for this function:

◆ GetMuBarTriggerDepUserInfo()

const CtrlBAckRequestHeader & ns3::CtrlTriggerSpecialUserInfoField::GetMuBarTriggerDepUserInfo ( ) const

Get the Trigger Dependent Special User Info subfield for the MU-BAR variant of Trigger frames, which includes a BAR Type subfield.

Returns
the BlockAckRequest header object including the BAR Control subfield and the BAR Information subfield

Definition at line 1926 of file ctrl-headers.cc.

References m_muBarTriggerDependentUserInfo, m_triggerType, ns3::MU_BAR_TRIGGER, and NS_ABORT_MSG_IF.

◆ GetSerializedSize()

uint32_t ns3::CtrlTriggerSpecialUserInfoField::GetSerializedSize ( ) const

Get the expected size of this Special User Info field.

Returns
the expected size of this Special User Info field.

Definition at line 1790 of file ctrl-headers.cc.

References ns3::BASIC_TRIGGER, ns3::BFRP_TRIGGER, ns3::CtrlBAckRequestHeader::GetSerializedSize(), m_muBarTriggerDependentUserInfo, m_triggerType, and ns3::MU_BAR_TRIGGER.

+ Here is the call graph for this function:

◆ GetType()

TriggerFrameType ns3::CtrlTriggerSpecialUserInfoField::GetType ( ) const

Get the type of the Trigger Frame this Special User Info field belongs to.

Returns
the type of the Trigger Frame this Special User Info field belongs to

Definition at line 1880 of file ctrl-headers.cc.

References m_triggerType.

◆ GetUlBwExt()

uint8_t ns3::CtrlTriggerSpecialUserInfoField::GetUlBwExt ( ) const

Get the UL Bandwidth Extension subfield value of the solicited EHT TB PPDU.

Returns
the UL Bandwidth Extension subfield value

Definition at line 1909 of file ctrl-headers.cc.

References m_ulBwExt.

◆ operator=()

CtrlTriggerSpecialUserInfoField & ns3::CtrlTriggerSpecialUserInfoField::operator= ( const CtrlTriggerSpecialUserInfoField & other)

Copy assignment operator.

Parameters
otherthe Special User Info field to copy
Returns
a reference to the copied object

Checks that the given Special User Info fields is included in the same type of Trigger Frame.

Definition at line 1774 of file ctrl-headers.cc.

References m_muBarTriggerDependentUserInfo, m_triggerType, and m_ulBwExt.

◆ Serialize()

Buffer::Iterator ns3::CtrlTriggerSpecialUserInfoField::Serialize ( Buffer::Iterator start) const

Serialize the Special User Info field to the given buffer.

Parameters
startan iterator which points to where the header should be written
Returns
Buffer::Iterator to the next available buffer

Definition at line 1813 of file ctrl-headers.cc.

References ns3::AID_SPECIAL_USER, ns3::BASIC_TRIGGER, ns3::BFRP_TRIGGER, ns3::GCR_MU_BAR_TRIGGER, ns3::CtrlBAckRequestHeader::GetSerializedSize(), m_muBarTriggerDependentUserInfo, m_triggerType, m_ulBwExt, ns3::MU_BAR_TRIGGER, ns3::Buffer::Iterator::Next(), ns3::NFRP_TRIGGER, NS_ABORT_MSG_IF, ns3::CtrlBAckRequestHeader::Serialize(), ns3::Buffer::Iterator::WriteHtolsbU32(), and ns3::Buffer::Iterator::WriteU8().

+ Here is the call graph for this function:

◆ SetMuBarTriggerDepUserInfo()

void ns3::CtrlTriggerSpecialUserInfoField::SetMuBarTriggerDepUserInfo ( const CtrlBAckRequestHeader & bar)

Set the Trigger Dependent Special User Info subfield for the MU-BAR variant of Trigger frames, which includes the BAR Type subfield.

The BAR Type subfield must indicate a Compressed BAR in an MU BAR Trigger frame.

Parameters
barthe BlockAckRequest header object including the BAR Control subfield and the BAR Information subfield

Definition at line 1915 of file ctrl-headers.cc.

References ns3::BlockAckReqType::COMPRESSED, ns3::CtrlBAckRequestHeader::GetType(), m_muBarTriggerDependentUserInfo, m_triggerType, ns3::BlockAckReqType::m_variant, ns3::MU_BAR_TRIGGER, ns3::BlockAckReqType::MULTI_TID, and NS_ABORT_MSG_IF.

+ Here is the call graph for this function:

◆ SetUlBwExt()

void ns3::CtrlTriggerSpecialUserInfoField::SetUlBwExt ( MHz_u bw)

Set the UL Bandwidth Extension subfield value of the solicited EHT TB PPDU.

Parameters
bwbandwidth (allowed values: 20 MHz, 40 MHz, 80 MHz, 160 MHz, 320 MHz)

Definition at line 1886 of file ctrl-headers.cc.

References m_ulBwExt, and NS_FATAL_ERROR.

Member Data Documentation

◆ m_muBarTriggerDependentUserInfo

CtrlBAckRequestHeader ns3::CtrlTriggerSpecialUserInfoField::m_muBarTriggerDependentUserInfo {}
private

MU-BAR variant of Trigger Dependent User Info subfield.

Definition at line 1011 of file ctrl-headers.h.

Referenced by Deserialize(), GetMuBarTriggerDepUserInfo(), GetSerializedSize(), operator=(), Serialize(), and SetMuBarTriggerDepUserInfo().

◆ m_triggerType

TriggerFrameType ns3::CtrlTriggerSpecialUserInfoField::m_triggerType {}
private

◆ m_ulBwExt

uint8_t ns3::CtrlTriggerSpecialUserInfoField::m_ulBwExt {}
private

UL Bandwidth Extension.

Definition at line 1010 of file ctrl-headers.h.

Referenced by Deserialize(), GetUlBwExt(), operator=(), Serialize(), and SetUlBwExt().


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