81 RuSpec (
RuType ruType, std::size_t index,
bool primary80MHz);
245 std::size_t& nCentral26TonesRus);
std::vector< SubcarrierRange > SubcarrierGroup
a vector of subcarrier ranges defining a subcarrier group
RuSpec()
Default constructor.
bool GetPrimary80MHz(void) const
Get the primary 80 MHz flag.
static bool DoesOverlap(uint16_t bw, RuSpec ru, const std::vector< RuSpec > &v)
Check whether the given RU overlaps with the given set of RUs.
std::pair< int16_t, int16_t > SubcarrierRange
(lowest index, highest index) pair defining a subcarrier range
std::ostream & operator<<(std::ostream &os, const Angles &a)
static RuSpec FindOverlappingRu(uint16_t bw, RuSpec referenceRu, RuType searchedRuType)
Find the RU allocation of the given RU type overlapping the given reference RU allocation.
std::map< BwTonesPair, std::vector< SubcarrierGroup > > SubcarrierGroups
map (bandwidth, number of tones) pairs to the group of subcarrier ranges
static uint16_t GetBandwidth(RuType ruType)
Get the approximate bandwidth occupied by a RU.
static const SubcarrierGroups m_heRuSubcarrierGroups
Subcarrier groups for all RUs (with indices being applicable to primary 80 MHz channel) ...
void SetPhyIndex(uint16_t bw, uint8_t p20Index)
Set the RU PHY index.
static std::size_t GetNRus(uint16_t bw, RuType ruType)
Get the number of distinct RUs of the given type (number of tones) available in a HE PPDU of the give...
static RuType GetRuType(uint16_t bandwidth)
Get the RU corresponding to the approximate bandwidth.
static SubcarrierGroup GetSubcarrierGroup(uint16_t bw, RuType ruType, std::size_t phyIndex)
Get the subcarrier group of the RU having the given PHY index among all the RUs of the given type (nu...
Every class exported by the ns3 library is enclosed in the ns3 namespace.
RuType GetRuType(void) const
Get the RU type.
RuType
The different HE Resource Unit (RU) types.
static RuType GetEqualSizedRusForStations(uint16_t bandwidth, std::size_t &nStations, std::size_t &nCentral26TonesRus)
Given the channel bandwidth and the number of stations candidate for being assigned an RU...
std::size_t m_index
RU index (starting at 1) as defined by Tables 27-7 to 27-9 of 802.11ax D8.0.
static std::vector< HeRu::RuSpec > GetCentral26TonesRus(uint16_t bw, HeRu::RuType ruType)
Get the set of 26-tone RUs that can be additionally allocated if the given bandwidth is split in RUs ...
bool m_primary80MHz
true if the RU is allocated in the primary 80MHz channel
std::pair< uint8_t, RuType > BwTonesPair
(bandwidth, number of tones) pair
This class stores the subcarrier groups of all the available HE RUs.
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 ...
std::size_t GetIndex(void) const
Get the RU index.
bool IsPhyIndexSet(void) const
Return true if the RU PHY index has been set, false otherwise.
static std::vector< HeRu::RuSpec > GetRusOfType(uint16_t bw, HeRu::RuType ruType)
Get the set of distinct RUs of the given type (number of tones) available in a HE PPDU of the given b...
std::size_t GetPhyIndex(void) const
Get the RU PHY index.