A Discrete-Event Network Simulator
API
ns3::HeRu::RuSpec Class Reference

RU Specification. More...

#include "he-ru.h"

+ Collaboration diagram for ns3::HeRu::RuSpec:

Public Member Functions

 RuSpec ()
 Default constructor. More...
 
 RuSpec (RuType ruType, std::size_t index, bool primary80MHz)
 Constructor. More...
 
std::size_t GetIndex (void) const
 Get the RU index. More...
 
std::size_t GetPhyIndex (void) const
 Get the RU PHY index. More...
 
bool GetPrimary80MHz (void) const
 Get the primary 80 MHz flag. More...
 
RuType GetRuType (void) const
 Get the RU type. More...
 
bool IsPhyIndexSet (void) const
 Return true if the RU PHY index has been set, false otherwise. More...
 
bool operator!= (const RuSpec &other) const
 Compare this RU to the given RU. More...
 
bool operator== (const RuSpec &other) const
 Compare this RU to the given RU. More...
 
void SetPhyIndex (uint16_t bw, uint8_t p20Index)
 Set the RU PHY index. More...
 

Private Attributes

std::size_t m_index
 RU index (starting at 1) as defined by Tables 27-7 to 27-9 of 802.11ax D8.0. More...
 
std::size_t m_phyIndex
 the RU PHY index, which is used to indicate whether an RU is located in the lower half or the higher half of a 160MHz channel. More...
 
bool m_primary80MHz
 true if the RU is allocated in the primary 80MHz channel More...
 
RuType m_ruType
 RU type. More...
 

Detailed Description

RU Specification.

Stores the information carried by the RU Allocation subfield of the User Info field of Trigger frames (see 9.3.1.22.1 of 802.11ax D8.0). Note that primary80MHz must be true if ruType is RU_2x996_TONE. Internally, this class also stores the RU PHY index (ranging from 1 to the number of RUs of the given type in a channel of the considered width), so that this class contains all the information needed to locate the RU in a 160 MHz channel.

Definition at line 67 of file he-ru.h.

Constructor & Destructor Documentation

◆ RuSpec() [1/2]

ns3::HeRu::RuSpec::RuSpec ( )

Default constructor.

Definition at line 152 of file he-ru.cc.

◆ RuSpec() [2/2]

ns3::HeRu::RuSpec::RuSpec ( RuType  ruType,
std::size_t  index,
bool  primary80MHz 
)

Constructor.

Parameters
ruTypethe RU type
indexthe RU index (starting at 1)
primary80MHzwhether the RU is allocated in the primary 80MHz channel

Definition at line 157 of file he-ru.cc.

References NS_ABORT_MSG_IF.

Member Function Documentation

◆ GetIndex()

std::size_t ns3::HeRu::RuSpec::GetIndex ( void  ) const

Get the RU index.

Returns
the RU index

Definition at line 174 of file he-ru.cc.

References NS_ABORT_MSG_IF.

Referenced by ns3::HeRu::DoesOverlap(), ns3::HePhy::GetNonOfdmaWidth(), ns3::WifiPhyHelper::GetRadiotapHeader(), ns3::operator<<(), and ns3::CtrlTriggerUserInfoField::SetRuAllocation().

+ Here is the caller graph for this function:

◆ GetPhyIndex()

std::size_t ns3::HeRu::RuSpec::GetPhyIndex ( void  ) const

◆ GetPrimary80MHz()

bool ns3::HeRu::RuSpec::GetPrimary80MHz ( void  ) const

Get the primary 80 MHz flag.

Returns
true if the RU is in the primary 80 MHz channel and false otherwise

Definition at line 181 of file he-ru.cc.

References NS_ABORT_MSG_IF.

Referenced by ns3::HeRu::DoesOverlap(), ns3::HeRu::FindOverlappingRu(), ns3::WifiPhyHelper::GetRadiotapHeader(), ns3::operator<<(), and ns3::CtrlTriggerUserInfoField::SetRuAllocation().

+ Here is the caller graph for this function:

◆ GetRuType()

◆ IsPhyIndexSet()

bool ns3::HeRu::RuSpec::IsPhyIndexSet ( void  ) const

Return true if the RU PHY index has been set, false otherwise.

Returns
true if the RU PHY index has been set, false otherwise

Definition at line 206 of file he-ru.cc.

Referenced by ns3::WifiTxVector::GetNumRusPerHeSigBContentChannel(), and ns3::operator<<().

+ Here is the caller graph for this function:

◆ operator!=()

bool ns3::HeRu::RuSpec::operator!= ( const RuSpec other) const

Compare this RU to the given RU.

Parameters
otherthe given RU
Returns
true if this RU differs from the given RU, false otherwise

Definition at line 613 of file he-ru.cc.

◆ operator==()

bool ns3::HeRu::RuSpec::operator== ( const RuSpec other) const

Compare this RU to the given RU.

Parameters
otherthe given RU
Returns
true if this RU compares equal to the given RU, false otherwise

Definition at line 602 of file he-ru.cc.

References m_index, m_primary80MHz, and m_ruType.

◆ SetPhyIndex()

void ns3::HeRu::RuSpec::SetPhyIndex ( uint16_t  bw,
uint8_t  p20Index 
)

Set the RU PHY index.

Parameters
bwthe width of the channel of which the RU is part (in MHz)
p20Indexthe index of the primary20 channel

Definition at line 188 of file he-ru.cc.

References ns3::HeRu::GetNRus(), and ns3::HeRu::RU_2x996_TONE.

Referenced by ns3::HePhy::GetCenterFrequencyForNonOfdmaPart(), ns3::HePhy::GetNonOfdmaBand(), ns3::WifiTxVector::GetNumRusPerHeSigBContentChannel(), TestUlOfdmaPhyTransmission::GetTxVectorForHeTbPpdu(), TestMultipleHeTbPreambles::RxHeTbPpdu(), TestUlOfdmaPhyTransmission::SetTrigVector(), and ns3::SpectrumWifiPhy::UpdateInterferenceHelperBands().

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

Member Data Documentation

◆ m_index

std::size_t ns3::HeRu::RuSpec::m_index
private

RU index (starting at 1) as defined by Tables 27-7 to 27-9 of 802.11ax D8.0.

Definition at line 138 of file he-ru.h.

Referenced by operator==().

◆ m_phyIndex

std::size_t ns3::HeRu::RuSpec::m_phyIndex
private

the RU PHY index, which is used to indicate whether an RU is located in the lower half or the higher half of a 160MHz channel.

For channel widths less than 160MHz, the RU PHY index equals the RU index

Definition at line 141 of file he-ru.h.

◆ m_primary80MHz

bool ns3::HeRu::RuSpec::m_primary80MHz
private

true if the RU is allocated in the primary 80MHz channel

Definition at line 140 of file he-ru.h.

Referenced by operator==().

◆ m_ruType

RuType ns3::HeRu::RuSpec::m_ruType
private

RU type.

Definition at line 137 of file he-ru.h.

Referenced by operator==().


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