A Discrete-Event Network Simulator
API
ns3::CtrlTriggerUserInfoField Class Reference

User Info field of Trigger frames. More...

#include "ctrl-headers.h"

+ Collaboration diagram for ns3::CtrlTriggerUserInfoField:

Public Member Functions

 CtrlTriggerUserInfoField (TriggerFrameType triggerType, TriggerFrameVariant variant)
 Constructor. More...
 
 ~CtrlTriggerUserInfoField ()
 Destructor. More...
 
Buffer::Iterator Deserialize (Buffer::Iterator start)
 Deserialize the User Info field from the given buffer. More...
 
uint16_t GetAid12 () const
 Get the value of the AID12 subfield. More...
 
bool GetMoreRaRu () const
 Return true if more RA-RUs are allocated in subsequent Trigger frames that are sent before the end of the current TXOP. More...
 
uint8_t GetMpduMuSpacingFactor () const
 Get the MPDU MU spacing factor. More...
 
const CtrlBAckRequestHeaderGetMuBarTriggerDepUserInfo () const
 Get the Trigger Dependent User Info subfield for the MU-BAR variant of Trigger frames, which includes a BAR Control subfield and a BAR Information subfield. More...
 
uint8_t GetMuRtsRuAllocation () const
 This method can only be called on MU-RTS Trigger Frames. More...
 
uint8_t GetNRaRus () const
 Get the number of contiguous RUs for Random Access. More...
 
uint8_t GetNss () const
 Get the number of spatial streams. More...
 
WifiPreamble GetPreambleType () const
 
AcIndex GetPreferredAc () const
 Get the Preferred AC subfield. More...
 
HeRu::RuSpec GetRuAllocation () const
 Get the RU specified by the RU Allocation subfield. More...
 
uint32_t GetSerializedSize () const
 Get the expected size of this User Info field. More...
 
uint8_t GetStartingSs () const
 Get the starting spatial stream. More...
 
uint8_t GetTidAggregationLimit () const
 Get the TID Aggregation Limit. More...
 
TriggerFrameType GetType () const
 Get the type of the Trigger Frame this User Info field belongs to. More...
 
bool GetUlDcm () const
 Get the UL DCM subfield, which indicates whether or not DCM is used This method can only be used with HE variant User Info field. More...
 
bool GetUlFecCodingType () const
 Get the UL FEC Coding Type subfield, which indicates whether BCC or LDPC is used. More...
 
uint8_t GetUlMcs () const
 Get the UL MCS subfield, which indicates the MCS of the solicited HE TB PPDU. More...
 
int8_t GetUlTargetRssi () const
 Get the expected receive signal power for the solicited HE TB PPDU. More...
 
bool HasRaRuForAssociatedSta () const
 Check if this User Info field allocates a Random Access RU for stations associated with the AP that transmitted the Trigger frame. More...
 
bool HasRaRuForUnassociatedSta () const
 Check if this User Info field allocates a Random Access RU for stations not associated with the AP that transmitted the Trigger frame. More...
 
bool IsUlTargetRssiMaxTxPower () const
 Return true if the UL Target RSSI subfield indicates to the station to transmit an HE TB PPDU response at its maximum transmit power for the assigned MCS. More...
 
CtrlTriggerUserInfoFieldoperator= (const CtrlTriggerUserInfoField &userInfo)
 Copy assignment operator. More...
 
void Print (std::ostream &os) const
 Print the content of this User Info field. More...
 
Buffer::Iterator Serialize (Buffer::Iterator start) const
 Serialize the User Info field to the given buffer. More...
 
void SetAid12 (uint16_t aid)
 Set the AID12 subfield, which carries the 12 LSBs of the AID of the station for which this User Info field is intended. More...
 
void SetBasicTriggerDepUserInfo (uint8_t spacingFactor, uint8_t tidLimit, AcIndex prefAc)
 Set the Trigger Dependent User Info subfield for Basic Trigger frames. More...
 
void SetMuBarTriggerDepUserInfo (const CtrlBAckRequestHeader &bar)
 Set the Trigger Dependent User Info subfield for the MU-BAR variant of Trigger frames, which includes a BAR Control subfield and a BAR Information subfield. More...
 
void SetMuRtsRuAllocation (uint8_t value)
 Set the RU Allocation subfield based on the given value for the B7-B1 bits. More...
 
void SetRaRuInformation (uint8_t nRaRu, bool moreRaRu)
 Set the RA-RU Information subfield, which is present when the AID12 subfield is 0 or 2045. More...
 
void SetRuAllocation (HeRu::RuSpec ru)
 Set the RU Allocation subfield according to the specified RU. More...
 
void SetSsAllocation (uint8_t startingSs, uint8_t nSs)
 Set the SS Allocation subfield, which is present when the AID12 subfield is neither 0 nor 2045. More...
 
void SetUlDcm (bool dcm)
 Set the UL DCM subfield, which indicates whether or not DCM is used. More...
 
void SetUlFecCodingType (bool ldpc)
 Set the UL FEC Coding Type subfield, which indicates whether BCC or LDPC is used. More...
 
void SetUlMcs (uint8_t mcs)
 Set the UL MCS subfield, which indicates the MCS of the solicited HE TB PPDU. More...
 
void SetUlTargetRssi (int8_t dBm)
 Set the UL Target RSSI subfield to indicate the expected receive signal power in dBm. More...
 
void SetUlTargetRssiMaxTxPower ()
 Set the UL Target RSSI subfield to indicate to the station to transmit an HE TB PPDU response at its maximum transmit power for the assigned MCS. More...
 

Private Attributes

uint16_t m_aid12
 Association ID of the addressed station. More...
 
uint8_t m_basicTriggerDependentUserInfo
 Basic Trigger variant of Trigger Dependent User Info subfield. More...
 
union {
   struct {
      bool   moreRaRu
 More RA-RU in subsequent Trigger frames. More...
 
      uint8_t   nRaRu
 Number of Random Access RUs. More...
 
   }   raRuInformation
 Used when AID12 is 0 or 2045. More...
 
   struct {
      uint8_t   nSs
 Number of spatial streams. More...
 
      uint8_t   startingSs
 Starting spatial stream. More...
 
   }   ssAllocation
 Used when AID12 is neither 0 nor 2045. More...
 
m_bits26To31
 Fields occupying bits 26-31 in the User Info field. More...
 
CtrlBAckRequestHeader m_muBarTriggerDependentUserInfo
 MU-BAR variant of Trigger Dependent User Info subfield. More...
 
bool m_ps160
 identifies the location of the RU (EHT variant only) More...
 
uint8_t m_ruAllocation
 RU Allocation. More...
 
TriggerFrameType m_triggerType
 Trigger frame type. More...
 
bool m_ulDcm
 whether or not to use Dual Carrier Modulation (HE variant only) More...
 
bool m_ulFecCodingType
 UL FEC Coding Type. More...
 
uint8_t m_ulMcs
 MCS to be used by the addressed station. More...
 
uint8_t m_ulTargetRssi
 Expected receive signal power. More...
 
TriggerFrameVariant m_variant
 User Info field variant. More...
 

Detailed Description

User Info field of Trigger frames.

Trigger frames, introduced by 802.11ax amendment (see Section 9.3.1.23 of D3.0), include one or more User Info fields, each of which carries information about the HE TB PPDU that the addressed station sends in response to the Trigger frame.

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

Constructor & Destructor Documentation

◆ CtrlTriggerUserInfoField()

ns3::CtrlTriggerUserInfoField::CtrlTriggerUserInfoField ( TriggerFrameType  triggerType,
TriggerFrameVariant  variant 
)

Constructor.

Parameters
triggerTypethe Trigger frame type
variantthe Trigger Frame variant

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

References m_bits26To31.

◆ ~CtrlTriggerUserInfoField()

ns3::CtrlTriggerUserInfoField::~CtrlTriggerUserInfoField ( )

Destructor.

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

Member Function Documentation

◆ Deserialize()

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

Deserialize the 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 1243 of file ctrl-headers.cc.

References ns3::BASIC_TRIGGER, ns3::BFRP_TRIGGER, ns3::CtrlBAckRequestHeader::Deserialize(), ns3::EHT, ns3::GCR_MU_BAR_TRIGGER, ns3::HE, m_aid12, m_basicTriggerDependentUserInfo, m_bits26To31, m_muBarTriggerDependentUserInfo, m_ps160, m_ruAllocation, m_triggerType, m_ulDcm, m_ulFecCodingType, m_ulMcs, m_ulTargetRssi, m_variant, ns3::MU_BAR_TRIGGER, ns3::Buffer::Iterator::Next(), ns3::NFRP_TRIGGER, NS_ABORT_MSG_IF, ns3::Buffer::Iterator::ReadLsbtohU32(), ns3::Buffer::Iterator::ReadU8(), and two-ray-to-three-gpp-ch-calibration::start.

Referenced by ns3::CtrlTriggerHeader::Deserialize().

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

◆ GetAid12()

uint16_t ns3::CtrlTriggerUserInfoField::GetAid12 ( ) const

Get the value of the AID12 subfield.

Returns
the AID12 subfield

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

References m_aid12.

Referenced by ns3::CtrlTriggerHeader::FindUserInfoWithAid().

+ Here is the caller graph for this function:

◆ GetMoreRaRu()

bool ns3::CtrlTriggerUserInfoField::GetMoreRaRu ( ) const

Return true if more RA-RUs are allocated in subsequent Trigger frames that are sent before the end of the current TXOP.

This method can only be called if the AID12 subfield has been set to 0 or 2045

Returns
true if more RA-RUs are allocated in subsequent Trigger frames

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

References m_aid12, m_bits26To31, and NS_ABORT_MSG_IF.

◆ GetMpduMuSpacingFactor()

uint8_t ns3::CtrlTriggerUserInfoField::GetMpduMuSpacingFactor ( ) const

Get the MPDU MU spacing factor.

This method can only be called if this User Info field is included in a Basic Trigger frame.

Returns
the MPDU MU spacing factor

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

References ns3::BASIC_TRIGGER, m_basicTriggerDependentUserInfo, m_triggerType, and NS_ABORT_MSG_IF.

◆ GetMuBarTriggerDepUserInfo()

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

Get the Trigger Dependent User Info subfield for the MU-BAR variant of Trigger frames, which includes a BAR Control subfield and a BAR Information subfield.

The BAR Control subfield must indicate either a Compressed BlockAckReq variant or a Multi-TID BlockAckReq variant.

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

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

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

◆ GetMuRtsRuAllocation()

uint8_t ns3::CtrlTriggerUserInfoField::GetMuRtsRuAllocation ( ) const

This method can only be called on MU-RTS Trigger Frames.

Returns
the value of B7–B1 of the RU Allocation subfield (
See also
SetMuRtsRuAllocation)

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

References m_ruAllocation, m_triggerType, ns3::MU_RTS_TRIGGER, and NS_ABORT_MSG_IF.

◆ GetNRaRus()

uint8_t ns3::CtrlTriggerUserInfoField::GetNRaRus ( ) const

Get the number of contiguous RUs for Random Access.

This method can only be called if the AID12 subfield has been set to 0 or 2045

Returns
the number of contiguous RA-RUs (a value between 1 and 32)

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

References m_aid12, m_bits26To31, and NS_ABORT_MSG_IF.

◆ GetNss()

uint8_t ns3::CtrlTriggerUserInfoField::GetNss ( ) const

Get the number of spatial streams.

Returns
the number of spatial streams (a value between 1 and 8)

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

References m_aid12, and m_bits26To31.

◆ GetPreambleType()

WifiPreamble ns3::CtrlTriggerUserInfoField::GetPreambleType ( ) const
Returns
the preamble type of the TB PPDU solicited by this User Info field.

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

References ns3::EHT, ns3::HE, m_variant, NS_ABORT_MSG, ns3::WIFI_PREAMBLE_EHT_TB, ns3::WIFI_PREAMBLE_HE_TB, and ns3::WIFI_PREAMBLE_LONG.

◆ GetPreferredAc()

AcIndex ns3::CtrlTriggerUserInfoField::GetPreferredAc ( ) const

Get the Preferred AC subfield.

This method can only be called if this User Info field is included in a Basic Trigger frame.

Returns
the Preferred AC subfield

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

References ns3::BASIC_TRIGGER, m_basicTriggerDependentUserInfo, m_triggerType, and NS_ABORT_MSG_IF.

◆ GetRuAllocation()

HeRu::RuSpec ns3::CtrlTriggerUserInfoField::GetRuAllocation ( ) const

Get the RU specified by the RU Allocation subfield.

This method cannot be called on MU-RTS Trigger Frames (call GetMuRtsRuAllocation instead).

Returns
the RU this User Info field is allocating

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

References m_ruAllocation, m_triggerType, ns3::MU_RTS_TRIGGER, NS_ABORT_MSG_IF, NS_FATAL_ERROR, ns3::HeRu::RU_106_TONE, ns3::HeRu::RU_242_TONE, ns3::HeRu::RU_26_TONE, ns3::HeRu::RU_2x996_TONE, ns3::HeRu::RU_484_TONE, ns3::HeRu::RU_52_TONE, and ns3::HeRu::RU_996_TONE.

◆ GetSerializedSize()

uint32_t ns3::CtrlTriggerUserInfoField::GetSerializedSize ( ) const

Get the expected size of this User Info field.

Returns
the expected size of this User Info field.

Definition at line 1163 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:

◆ GetStartingSs()

uint8_t ns3::CtrlTriggerUserInfoField::GetStartingSs ( ) const

Get the starting spatial stream.

Returns
the starting spatial stream (a value between 1 and 8)

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

References m_aid12, and m_bits26To31.

◆ GetTidAggregationLimit()

uint8_t ns3::CtrlTriggerUserInfoField::GetTidAggregationLimit ( ) const

Get the TID Aggregation Limit.

This method can only be called if this User Info field is included in a Basic Trigger frame.

Returns
the TID Aggregation Limit

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

References ns3::BASIC_TRIGGER, m_basicTriggerDependentUserInfo, m_triggerType, and NS_ABORT_MSG_IF.

◆ GetType()

TriggerFrameType ns3::CtrlTriggerUserInfoField::GetType ( ) const

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

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

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

References m_triggerType.

Referenced by ns3::CtrlTriggerHeader::AddUserInfoField().

+ Here is the caller graph for this function:

◆ GetUlDcm()

bool ns3::CtrlTriggerUserInfoField::GetUlDcm ( ) const

Get the UL DCM subfield, which indicates whether or not DCM is used This method can only be used with HE variant User Info field.

Returns
true if DCM is used

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

References ns3::HE, m_ulDcm, m_variant, and NS_ASSERT_MSG.

◆ GetUlFecCodingType()

bool ns3::CtrlTriggerUserInfoField::GetUlFecCodingType ( ) const

Get the UL FEC Coding Type subfield, which indicates whether BCC or LDPC is used.

Returns
true if LDPC is used

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

References m_ulFecCodingType.

◆ GetUlMcs()

uint8_t ns3::CtrlTriggerUserInfoField::GetUlMcs ( ) const

Get the UL MCS subfield, which indicates the MCS of the solicited HE TB PPDU.

Returns
the MCS index (a value between 0 and 11)

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

References m_ulMcs.

◆ GetUlTargetRssi()

int8_t ns3::CtrlTriggerUserInfoField::GetUlTargetRssi ( ) const

Get the expected receive signal power for the solicited HE TB PPDU.

This method can only be called if IsUlTargetRssiMaxTxPower returns false.

Returns
the expected receive signal power in dBm

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

References m_ulTargetRssi, and NS_ABORT_MSG_IF.

◆ HasRaRuForAssociatedSta()

bool ns3::CtrlTriggerUserInfoField::HasRaRuForAssociatedSta ( ) const

Check if this User Info field allocates a Random Access RU for stations associated with the AP that transmitted the Trigger frame.

Returns
true if a Random Access RU for associated stations is allocated

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

References m_aid12.

◆ HasRaRuForUnassociatedSta()

bool ns3::CtrlTriggerUserInfoField::HasRaRuForUnassociatedSta ( ) const

Check if this User Info field allocates a Random Access RU for stations not associated with the AP that transmitted the Trigger frame.

Returns
true if a Random Access RU for unassociated stations is allocated

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

References m_aid12.

◆ IsUlTargetRssiMaxTxPower()

bool ns3::CtrlTriggerUserInfoField::IsUlTargetRssiMaxTxPower ( ) const

Return true if the UL Target RSSI subfield indicates to the station to transmit an HE TB PPDU response at its maximum transmit power for the assigned MCS.

Returns
true if the UL Target RSSI subfield indicates to the station to transmit an HE TB PPDU response at its maximum transmit power for the assigned MCS

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

References m_ulTargetRssi.

◆ operator=()

CtrlTriggerUserInfoField & ns3::CtrlTriggerUserInfoField::operator= ( const CtrlTriggerUserInfoField userInfo)

Copy assignment operator.

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

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

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

References m_aid12, m_basicTriggerDependentUserInfo, m_bits26To31, m_muBarTriggerDependentUserInfo, m_ps160, m_ruAllocation, m_triggerType, m_ulDcm, m_ulFecCodingType, m_ulMcs, m_ulTargetRssi, m_variant, and NS_ABORT_MSG_IF.

◆ Print()

void ns3::CtrlTriggerUserInfoField::Print ( std::ostream &  os) const

Print the content of this User Info field.

Parameters
osoutput stream

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

References ns3::HE, m_aid12, m_ruAllocation, m_ulMcs, and m_variant.

◆ Serialize()

◆ SetAid12()

void ns3::CtrlTriggerUserInfoField::SetAid12 ( uint16_t  aid)

Set the AID12 subfield, which carries the 12 LSBs of the AID of the station for which this User Info field is intended.

The whole AID can be passed, since the passed value is properly masked.

Parameters
aidthe value for the AID12 subfield

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

References m_aid12.

Referenced by ns3::CtrlTriggerHeader::CtrlTriggerHeader(), ns3::WifiProtectionManager::AddUserInfoToMuRts(), and TestUlOfdmaPowerControl::SendMuBar().

+ Here is the caller graph for this function:

◆ SetBasicTriggerDepUserInfo()

void ns3::CtrlTriggerUserInfoField::SetBasicTriggerDepUserInfo ( uint8_t  spacingFactor,
uint8_t  tidLimit,
AcIndex  prefAc 
)

Set the Trigger Dependent User Info subfield for Basic Trigger frames.

Parameters
spacingFactorthe MPDU MU spacing factor
tidLimitthe value for the TID Aggregation Limit subfield
prefActhe lowest AC recommended for aggregation of MPDUs

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

References ns3::BASIC_TRIGGER, m_basicTriggerDependentUserInfo, m_triggerType, and NS_ABORT_MSG_IF.

◆ SetMuBarTriggerDepUserInfo()

void ns3::CtrlTriggerUserInfoField::SetMuBarTriggerDepUserInfo ( const CtrlBAckRequestHeader bar)

Set the Trigger Dependent User Info subfield for the MU-BAR variant of Trigger frames, which includes a BAR Control subfield and a BAR Information subfield.

The BAR Control subfield must indicate either a Compressed BlockAckReq variant or a Multi-TID BlockAckReq variant.

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

Definition at line 1638 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.

Referenced by TestUlOfdmaPowerControl::SendMuBar().

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

◆ SetMuRtsRuAllocation()

void ns3::CtrlTriggerUserInfoField::SetMuRtsRuAllocation ( uint8_t  value)

Set the RU Allocation subfield based on the given value for the B7-B1 bits.

This method can only be called on MU-RTS Trigger Frames.

B7–B1 of the RU Allocation subfield is set to indicate the primary 20 MHz channel as follows:

  • 61 if the primary 20 MHz channel is the only 20 MHz channel or the lowest frequency 20 MHz channel in the primary 40 MHz channel or primary 80 MHz channel
  • 62 if the primary 20 MHz channel is the second lowest frequency 20 MHz channel in the primary 40 MHz channel or primary 80 MHz channel
  • 63 if the primary 20 MHz channel is the third lowest frequency 20 MHz channel in the primary 80 MHz channel
  • 64 if the primary 20 MHz channel is the fourth lowest frequency 20 MHz channel in the primary 80 MHz channel

B7–B1 of the RU Allocation subfield is set to indicate the primary 40 MHz channel as follows:

  • 65 if the primary 40 MHz channel is the only 40 MHz channel or the lowest frequency 40 MHz channel in the primary 80 MHz channel
  • 66 if the primary 40 MHz channel is the second lowest frequency 40 MHz channel in the primary 80 MHz channel

B7–B1 of the RU Allocation subfield is set to 67 to indicate the primary 80 MHz channel.

B7–B1 of the RU Allocation subfield is set to 68 to indicate the primary and secondary 80 MHz channel.

Parameters
valuethe value for B7–B1 of the RU Allocation subfield

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

References m_ruAllocation, m_triggerType, ns3::MU_RTS_TRIGGER, and NS_ABORT_MSG_IF.

Referenced by ns3::WifiProtectionManager::AddUserInfoToMuRts().

+ Here is the caller graph for this function:

◆ SetRaRuInformation()

void ns3::CtrlTriggerUserInfoField::SetRaRuInformation ( uint8_t  nRaRu,
bool  moreRaRu 
)

Set the RA-RU Information subfield, which is present when the AID12 subfield is 0 or 2045.

This method must be called after setting the AID12 subfield to 0 or 2045.

Parameters
nRaRuthe number (from 1 to 32) of contiguous RUs allocated for Random Access.
moreRaRuwhether RA-RUs are allocated in subsequent Trigger frames

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

References m_aid12, m_bits26To31, moreRaRu, nRaRu, and NS_ABORT_MSG_IF.

◆ SetRuAllocation()

void ns3::CtrlTriggerUserInfoField::SetRuAllocation ( HeRu::RuSpec  ru)

Set the RU Allocation subfield according to the specified RU.

This method cannot be called on MU-RTS Trigger Frames (call SetMuRtsRuAllocation instead).

Parameters
ruthe RU this User Info field is allocating

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

References ns3::HeRu::RuSpec::GetIndex(), ns3::HeRu::RuSpec::GetPrimary80MHz(), ns3::HeRu::RuSpec::GetRuType(), m_ruAllocation, m_triggerType, ns3::MU_RTS_TRIGGER, NS_ABORT_MSG_IF, NS_FATAL_ERROR, ns3::HeRu::RU_106_TONE, ns3::HeRu::RU_242_TONE, ns3::HeRu::RU_26_TONE, ns3::HeRu::RU_2x996_TONE, ns3::HeRu::RU_484_TONE, ns3::HeRu::RU_52_TONE, and ns3::HeRu::RU_996_TONE.

Referenced by ns3::CtrlTriggerHeader::CtrlTriggerHeader(), and TestUlOfdmaPowerControl::SendMuBar().

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

◆ SetSsAllocation()

void ns3::CtrlTriggerUserInfoField::SetSsAllocation ( uint8_t  startingSs,
uint8_t  nSs 
)

Set the SS Allocation subfield, which is present when the AID12 subfield is neither 0 nor 2045.

This method must be called after setting the AID12 subfield to a value other than 0 and 2045.

Parameters
startingSsthe starting spatial stream (a value from 1 to 8)
nSsthe number of spatial streams (a value from 1 to 8)

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

References m_aid12, m_bits26To31, NS_ABORT_MSG_IF, nSs, and startingSs.

Referenced by ns3::CtrlTriggerHeader::CtrlTriggerHeader(), and TestUlOfdmaPowerControl::SendMuBar().

+ Here is the caller graph for this function:

◆ SetUlDcm()

void ns3::CtrlTriggerUserInfoField::SetUlDcm ( bool  dcm)

Set the UL DCM subfield, which indicates whether or not DCM is used.

This method can only be used with HE variant User Info field.

Parameters
dcmwhether to use DCM or not

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

References ns3::HE, m_ulDcm, m_variant, and NS_ASSERT_MSG.

Referenced by TestUlOfdmaPowerControl::SendMuBar().

+ Here is the caller graph for this function:

◆ SetUlFecCodingType()

void ns3::CtrlTriggerUserInfoField::SetUlFecCodingType ( bool  ldpc)

Set the UL FEC Coding Type subfield, which indicates whether BCC or LDPC is used.

Parameters
ldpcwhether to use LDPC or not

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

References m_ulFecCodingType.

Referenced by TestUlOfdmaPowerControl::SendMuBar().

+ Here is the caller graph for this function:

◆ SetUlMcs()

void ns3::CtrlTriggerUserInfoField::SetUlMcs ( uint8_t  mcs)

Set the UL MCS subfield, which indicates the MCS of the solicited HE TB PPDU.

Parameters
mcsthe MCS index (a value between 0 and 11)

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

References ns3::EHT, m_ulMcs, m_variant, and NS_ABORT_MSG_IF.

Referenced by ns3::CtrlTriggerHeader::CtrlTriggerHeader(), and TestUlOfdmaPowerControl::SendMuBar().

+ Here is the caller graph for this function:

◆ SetUlTargetRssi()

void ns3::CtrlTriggerUserInfoField::SetUlTargetRssi ( int8_t  dBm)

Set the UL Target RSSI subfield to indicate the expected receive signal power in dBm.

Parameters
dBmthe expected receive signal power (a value between -110 and -20)

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

References m_ulTargetRssi, and NS_ABORT_MSG_IF.

Referenced by TestUlOfdmaPowerControl::SendMuBar().

+ Here is the caller graph for this function:

◆ SetUlTargetRssiMaxTxPower()

void ns3::CtrlTriggerUserInfoField::SetUlTargetRssiMaxTxPower ( )

Set the UL Target RSSI subfield to indicate to the station to transmit an HE TB PPDU response at its maximum transmit power for the assigned MCS.

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

References m_ulTargetRssi.

Member Data Documentation

◆ m_aid12

uint16_t ns3::CtrlTriggerUserInfoField::m_aid12
private

◆ m_basicTriggerDependentUserInfo

uint8_t ns3::CtrlTriggerUserInfoField::m_basicTriggerDependentUserInfo
private

Basic Trigger variant of Trigger Dependent User Info subfield.

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

Referenced by Deserialize(), GetMpduMuSpacingFactor(), GetPreferredAc(), GetTidAggregationLimit(), operator=(), Serialize(), and SetBasicTriggerDepUserInfo().

◆ 

union { ... } ns3::CtrlTriggerUserInfoField::m_bits26To31

◆ m_muBarTriggerDependentUserInfo

CtrlBAckRequestHeader ns3::CtrlTriggerUserInfoField::m_muBarTriggerDependentUserInfo
private

MU-BAR variant of Trigger Dependent User Info subfield.

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

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

◆ m_ps160

bool ns3::CtrlTriggerUserInfoField::m_ps160
private

identifies the location of the RU (EHT variant only)

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

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

◆ m_ruAllocation

uint8_t ns3::CtrlTriggerUserInfoField::m_ruAllocation
private

◆ m_triggerType

◆ m_ulDcm

bool ns3::CtrlTriggerUserInfoField::m_ulDcm
private

whether or not to use Dual Carrier Modulation (HE variant only)

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

Referenced by Deserialize(), GetUlDcm(), operator=(), Serialize(), and SetUlDcm().

◆ m_ulFecCodingType

bool ns3::CtrlTriggerUserInfoField::m_ulFecCodingType
private

UL FEC Coding Type.

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

Referenced by Deserialize(), GetUlFecCodingType(), operator=(), Serialize(), and SetUlFecCodingType().

◆ m_ulMcs

uint8_t ns3::CtrlTriggerUserInfoField::m_ulMcs
private

MCS to be used by the addressed station.

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

Referenced by Deserialize(), GetUlMcs(), operator=(), Print(), Serialize(), and SetUlMcs().

◆ m_ulTargetRssi

uint8_t ns3::CtrlTriggerUserInfoField::m_ulTargetRssi
private

Expected receive signal power.

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

Referenced by Deserialize(), GetUlTargetRssi(), IsUlTargetRssiMaxTxPower(), operator=(), Serialize(), SetUlTargetRssi(), and SetUlTargetRssiMaxTxPower().

◆ m_variant

TriggerFrameVariant ns3::CtrlTriggerUserInfoField::m_variant
private

User Info field variant.

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

Referenced by Deserialize(), GetPreambleType(), GetUlDcm(), operator=(), Print(), Serialize(), SetUlDcm(), and SetUlMcs().

◆ moreRaRu

bool ns3::CtrlTriggerUserInfoField::moreRaRu

More RA-RU in subsequent Trigger frames.

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

Referenced by SetRaRuInformation().

◆ nRaRu

uint8_t ns3::CtrlTriggerUserInfoField::nRaRu

Number of Random Access RUs.

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

Referenced by SetRaRuInformation().

◆ nSs

uint8_t ns3::CtrlTriggerUserInfoField::nSs

Number of spatial streams.

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

Referenced by SetSsAllocation().

◆ 

struct { ... } ns3::CtrlTriggerUserInfoField::raRuInformation

Used when AID12 is 0 or 2045.

◆ 

struct { ... } ns3::CtrlTriggerUserInfoField::ssAllocation

Used when AID12 is neither 0 nor 2045.

◆ startingSs

uint8_t ns3::CtrlTriggerUserInfoField::startingSs

Starting spatial stream.

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

Referenced by SetSsAllocation().


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