This class stores the subcarrier groups of all the available HE RUs. More...
#include "he-ru.h"
Classes | |
struct | RuSpec |
RU Specification. More... | |
Public Types | |
typedef std::pair< uint8_t, RuType > | BwTonesPair |
(bandwidth, number of tones) pair More... | |
enum | RuType { RU_26_TONE = 0, RU_52_TONE, RU_106_TONE, RU_242_TONE, RU_484_TONE, RU_996_TONE, RU_2x996_TONE } |
The different HE Resource Unit (RU) types. More... | |
typedef std::vector< SubcarrierRange > | SubcarrierGroup |
a vector of subcarrier ranges defining a subcarrier group More... | |
typedef std::map< BwTonesPair, std::vector< SubcarrierGroup > > | SubcarrierGroups |
map (bandwidth, number of tones) pairs to the group of subcarrier ranges More... | |
typedef std::pair< int16_t, int16_t > | SubcarrierRange |
(lowest index, highest index) pair defining a subcarrier range More... | |
Static Public Member Functions | |
static uint16_t | GetBandwidth (RuType ruType) |
Get the approximate bandwidth occupied by a RU. More... | |
static RuType | GetEqualSizedRusForStations (uint16_t bandwidth, std::size_t &nStations) |
Given the channel bandwidth and the number of stations candidate for being assigned an RU, maximize the number of candidate stations that can be assigned an RU subject to the constraint that all the stations must be assigned an RU of the same size (in terms of number of tones). More... | |
static std::size_t | GetNRus (uint8_t bw, RuType ruType) |
Get the number of distinct RUs of the given type (number of tones) available in a HE PPDU of the given bandwidth. More... | |
static SubcarrierGroup | GetSubcarrierGroup (uint8_t bw, RuType ruType, std::size_t index) |
Get the subcarrier group of the RU having the given index among all the RUs of the given type (number of tones) available in a HE PPDU of the given bandwidth. More... | |
Static Public Attributes | |
static const SubcarrierGroups | m_heRuSubcarrierGroups |
This class stores the subcarrier groups of all the available HE RUs.
typedef std::pair<uint8_t, RuType> ns3::HeRu::BwTonesPair |
typedef std::vector<SubcarrierRange> ns3::HeRu::SubcarrierGroup |
typedef std::map<BwTonesPair, std::vector<SubcarrierGroup> > ns3::HeRu::SubcarrierGroups |
typedef std::pair<int16_t, int16_t> ns3::HeRu::SubcarrierRange |
enum ns3::HeRu::RuType |
|
static |
Get the approximate bandwidth occupied by a RU.
ruType | the RU type |
Definition at line 299 of file he-ru.cc.
References NS_ABORT_MSG, RU_106_TONE, RU_242_TONE, RU_26_TONE, RU_2x996_TONE, RU_484_TONE, RU_52_TONE, and RU_996_TONE.
Referenced by ns3::WifiPhy::EndReceive(), ns3::WifiMode::GetDataRate(), and ns3::WifiPhy::GetReceptionStatus().
|
static |
Given the channel bandwidth and the number of stations candidate for being assigned an RU, maximize the number of candidate stations that can be assigned an RU subject to the constraint that all the stations must be assigned an RU of the same size (in terms of number of tones).
bandwidth | the channel bandwidth in MHz |
nStations | the number of candidate stations. On return, it is set to the number of stations that are assigned an RU |
Definition at line 324 of file he-ru.cc.
References m_heRuSubcarrierGroups, NS_ABORT_IF, and RU_2x996_TONE.
|
static |
Get the number of distinct RUs of the given type (number of tones) available in a HE PPDU of the given bandwidth.
bw | the bandwidth (MHz) of the HE PPDU (20, 40, 80, 160) |
ruType | the RU type (number of tones) |
Definition at line 152 of file he-ru.cc.
References m_heRuSubcarrierGroups, and RU_2x996_TONE.
Referenced by GetSubcarrierGroup(), ns3::SpectrumWifiPhy::StartRx(), and ns3::SpectrumWifiPhy::UpdateInterferenceHelperBands().
|
static |
Get the subcarrier group of the RU having the given index among all the RUs of the given type (number of tones) available in a HE PPDU of the given bandwidth.
A subcarrier group is defined as one or more pairs indicating the lowest frequency index and the highest frequency index. Note that for channel width of 160 MHz the returned range is relative to the 160 MHz channel (i.e. -1012 to 1012). The index parameter is used to distinguish between primary and secondary 80 MHz subchannels.
bw | the bandwidth (MHz) of the HE PPDU (20, 40, 80, 160) |
ruType | the RU type (number of tones) |
index | the index (starting at 1) of the RU |
Definition at line 172 of file he-ru.cc.
References GetNRus(), m_heRuSubcarrierGroups, NS_ABORT_MSG_IF, and RU_2x996_TONE.
Referenced by ns3::WifiPhy::GetRuBand(), ns3::SpectrumWifiPhy::StartRx(), and ns3::SpectrumWifiPhy::UpdateInterferenceHelperBands().
|
static |
Definition at line 154 of file he-ru.h.
Referenced by GetEqualSizedRusForStations(), GetNRus(), and GetSubcarrierGroup().