RU Specification. More...
#include "he-ru.h"
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... | |
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.
ns3::HeRu::RuSpec::RuSpec | ( | RuType | ruType, |
std::size_t | index, | ||
bool | primary80MHz | ||
) |
Constructor.
ruType | the RU type |
index | the RU index (starting at 1) |
primary80MHz | whether the RU is allocated in the primary 80MHz channel |
Definition at line 157 of file he-ru.cc.
References NS_ABORT_MSG_IF.
std::size_t ns3::HeRu::RuSpec::GetIndex | ( | void | ) | const |
Get 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().
std::size_t ns3::HeRu::RuSpec::GetPhyIndex | ( | void | ) | const |
Get the RU PHY index.
Definition at line 212 of file he-ru.cc.
References NS_ABORT_MSG_IF.
Referenced by ns3::HeRu::DoesOverlap(), ns3::HePhy::GetCenterFrequencyForNonOfdmaPart(), ns3::HePhy::GetNonOfdmaBand(), ns3::HePhy::GetRuBandForRx(), ns3::HePhy::GetRuBandForTx(), ns3::operator<<(), and ns3::SpectrumWifiPhy::UpdateInterferenceHelperBands().
bool ns3::HeRu::RuSpec::GetPrimary80MHz | ( | void | ) | const |
Get the primary 80 MHz flag.
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().
HeRu::RuType ns3::HeRu::RuSpec::GetRuType | ( | void | ) | const |
Get the RU type.
Definition at line 167 of file he-ru.cc.
References NS_ABORT_MSG_IF.
Referenced by TxDurationTest::CheckHeMuTxDuration(), ns3::HeRu::DoesOverlap(), ns3::HePhy::GetChannelWidthAndBand(), ns3::HePhy::GetDataRateFromTxVector(), ns3::HePhy::GetNonOfdmaBand(), ns3::HePhy::GetNonOfdmaWidth(), ns3::HePhy::GetPhyRateFromTxVector(), ns3::WifiPhyHelper::GetRadiotapHeader(), ns3::HePhy::GetRuBandForRx(), ns3::HePhy::GetRuBandForTx(), ns3::HePhy::GetTxPowerSpectralDensity(), ns3::operator<<(), TestMultipleHeTbPreambles::RxHeTbPpdu(), and ns3::CtrlTriggerUserInfoField::SetRuAllocation().
bool ns3::HeRu::RuSpec::IsPhyIndexSet | ( | void | ) | const |
Return 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<<().
bool ns3::HeRu::RuSpec::operator!= | ( | const RuSpec & | other | ) | const |
bool ns3::HeRu::RuSpec::operator== | ( | const RuSpec & | other | ) | const |
Compare this RU to the given RU.
other | the given RU |
Definition at line 602 of file he-ru.cc.
References m_index, m_primary80MHz, and m_ruType.
void ns3::HeRu::RuSpec::SetPhyIndex | ( | uint16_t | bw, |
uint8_t | p20Index | ||
) |
Set the RU PHY index.
bw | the width of the channel of which the RU is part (in MHz) |
p20Index | the 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().
|
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==().
|
private |
|
private |
true if the RU is allocated in the primary 80MHz channel
Definition at line 140 of file he-ru.h.
Referenced by operator==().
|
private |