31 : m_channelIt (
WifiPhy::m_frequencyChannels.end ()),
52 NS_LOG_FUNCTION (
this << +number << frequency << width << standard << band);
57 &&
FindFirst (number, frequency, width, standard, band, std::next (channelIt))
67 throw std::runtime_error (
"WifiPhyOperatingChannel: No unique channel found given the specified criteria");
86 throw std::runtime_error (
"WifiPhyOperatingChannel: No default channel found of the given width and for the given PHY standard and band");
94 NS_LOG_FUNCTION (
this << +number << frequency << width << standard << band);
99 if (number != 0 && std::get<0> (
channel) != number)
103 if (frequency != 0 && std::get<1> (
channel) != frequency)
111 if (width != 0 && std::get<2> (
channel) != width)
119 if (std::get<4> (
channel) != band)
155 if (primaryChannelWidth % 20 != 0)
157 NS_LOG_DEBUG (
"The operating channel width is not a multiple of 20 MHz; return 0");
168 while (width < primaryChannelWidth)
static const std::set< FrequencyChannelInfo > m_frequencyChannels
Available frequency channels.
WifiPhyOperatingChannel()
Create an uninitialized PHY operating channel.
void Set(uint8_t number, uint16_t frequency, uint16_t width, WifiPhyStandard standard, WifiPhyBand band)
Set the channel according to the specified parameters if a unique frequency channel matches the speci...
uint8_t GetNumber(void) const
Return the channel number identifying the whole operating channel.
bool IsSet(void) const
Return true if a valid channel has been set, false otherwise.
uint8_t GetPrimaryChannelIndex(uint16_t primaryChannelWidth) const
If the operating channel width is a multiple of 20 MHz, return the index of the primary channel of th...
void SetPrimary20Index(uint8_t index)
Set the index of the primary 20 MHz channel (0 indicates the 20 MHz subchannel with the lowest center...
ConstIterator m_channelIt
const iterator pointing to the configured frequency channel
uint16_t GetWidth(void) const
Return the width of the whole operating channel (in MHz).
ConstIterator FindFirst(uint8_t number, uint16_t frequency, uint16_t width, WifiPhyStandard standard, WifiPhyBand band, ConstIterator start) const
Find the first channel matching the specified parameters.
uint8_t m_primary20Index
index of the primary20 channel (0 indicates the 20 MHz subchannel with the lowest center frequency)
void SetDefault(uint16_t width, WifiPhyStandard standard, WifiPhyBand band)
Set the default channel of the given width and for the given PHY standard and band.
uint16_t GetFrequency(void) const
Return the center frequency of the operating channel (in MHz).
uint16_t GetPrimaryChannelCenterFrequency(uint16_t primaryChannelWidth) const
Get the center frequency of the primary channel of the given width.
virtual ~WifiPhyOperatingChannel()
std::set< FrequencyChannelInfo >::const_iterator ConstIterator
Typedef for a const iterator pointing to a channel in the set of available channels.
#define NS_ASSERT(condition)
At runtime, in debugging builds, if this condition is not true, the program prints the source file,...
#define NS_ABORT_MSG_IF(cond, msg)
Abnormal program termination if a condition is true, with a message.
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
#define NS_LOG_DEBUG(msg)
Use NS_LOG to output a message of level LOG_DEBUG.
#define NS_LOG_LOGIC(msg)
Use NS_LOG to output a message of level LOG_LOGIC.
#define NS_LOG_FUNCTION_NOARGS()
Output the name of the function.
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by ",...
WifiPhyStandard
Identifies the PHY specification that a Wifi device is configured to use.
WifiPhyBand
Identifies the PHY band.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
std::tuple< uint8_t, uint16_t, uint16_t, FrequencyChannelType, WifiPhyBand > FrequencyChannelInfo
A tuple (number, frequency, width, type, band) identifying a frequency channel.
FrequencyChannelType GetFrequencyChannelType(WifiPhyStandard standard)
Get the type of the frequency channel for the given PHY standard.
uint16_t GetMaximumChannelWidth(WifiPhyStandard standard)
Get the maximum channel width in MHz allowed for the given PHY standard.