A Discrete-Event Network Simulator
API
ns3::WifiMode Class Reference

represent a single transmission modeA WifiMode is implemented by a single integer which is used to lookup in a global array the characteristics of the associated transmission mode. More...

#include "wifi-mode.h"

Public Member Functions

 WifiMode ()
 Create an invalid WifiMode. More...
 
 WifiMode (std::string name)
 Create a WifiMode if the given string represents a valid WifiMode name. More...
 
enum WifiCodeRate GetCodeRate (uint8_t nss) const
 
uint16_t GetConstellationSize (uint8_t nss) const
 
uint64_t GetDataRate (uint32_t channelWidth, bool isShortGuardInterval, uint8_t nss) const
 
uint8_t GetMcsValue (void) const
 
enum WifiModulationClass GetModulationClass () const
 
uint64_t GetPhyRate (uint32_t channelWidth, bool isShortGuardInterval, uint8_t nss) const
 
uint32_t GetUid (void) const
 
std::string GetUniqueName (void) const
 
bool IsMandatory (void) const
 

Private Member Functions

 WifiMode (uint32_t uid)
 Create a WifiMode from a given unique ID. More...
 

Private Attributes

uint32_t m_uid
 

Friends

class WifiModeFactory
 

Detailed Description

represent a single transmission mode

A WifiMode is implemented by a single integer which is used to lookup in a global array the characteristics of the associated transmission mode.

It is thus extremely cheap to keep a WifiMode variable around.

See also
WifiMode Attribute

Definition at line 97 of file wifi-mode.h.

Constructor & Destructor Documentation

ns3::WifiMode::WifiMode ( )

Create an invalid WifiMode.

Calling any method on the instance created will trigger an assert. This is useful to separate the declaration of a WifiMode variable from its initialization.

Definition at line 381 of file wifi-mode.cc.

ns3::WifiMode::WifiMode ( std::string  name)

Create a WifiMode if the given string represents a valid WifiMode name.

Parameters
namestd::string of a valid WifiMode name

Definition at line 391 of file wifi-mode.cc.

References ns3::WifiModeFactory::GetFactory(), and ns3::WifiModeFactory::Search().

+ Here is the call graph for this function:

ns3::WifiMode::WifiMode ( uint32_t  uid)
private

Create a WifiMode from a given unique ID.

Parameters
uidunique ID

Definition at line 386 of file wifi-mode.cc.

Member Function Documentation

uint16_t ns3::WifiMode::GetConstellationSize ( uint8_t  nss) const
Parameters
nssthe considered number of streams
Returns
the size of the modulation constellation.

Definition at line 282 of file wifi-mode.cc.

References ns3::WifiModeFactory::WifiModeItem::constellationSize, ns3::WifiModeFactory::Get(), ns3::WifiModeFactory::GetFactory(), m_uid, ns3::WifiModeFactory::WifiModeItem::mcsValue, ns3::WifiModeFactory::WifiModeItem::modClass, NS_ASSERT, ns3::WIFI_MOD_CLASS_HT, and ns3::WIFI_MOD_CLASS_VHT.

Referenced by ns3::NistErrorRateModel::GetChunkSuccessRate(), ns3::YansErrorRateModel::GetChunkSuccessRate(), and GetDataRate().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

uint64_t ns3::WifiMode::GetDataRate ( uint32_t  channelWidth,
bool  isShortGuardInterval,
uint8_t  nss 
) const
Parameters
channelWidththe considered channel width in MHz
isShortGuardIntervalwhether short guard interval is considered or not
nssthe considered number of streams
Returns
the data bit rate of this signal.

Definition at line 100 of file wifi-mode.cc.

References ns3::WifiModeFactory::Get(), GetCodeRate(), GetConstellationSize(), ns3::WifiModeFactory::GetFactory(), m_uid, ns3::WifiModeFactory::WifiModeItem::mcsValue, ns3::WifiModeFactory::WifiModeItem::modClass, NS_ASSERT, NS_FATAL_ERROR, ns3::WIFI_CODE_RATE_1_2, ns3::WIFI_CODE_RATE_2_3, ns3::WIFI_CODE_RATE_3_4, ns3::WIFI_CODE_RATE_5_6, ns3::WIFI_CODE_RATE_UNDEFINED, ns3::WIFI_MOD_CLASS_DSSS, ns3::WIFI_MOD_CLASS_ERP_OFDM, ns3::WIFI_MOD_CLASS_HR_DSSS, ns3::WIFI_MOD_CLASS_HT, ns3::WIFI_MOD_CLASS_OFDM, and ns3::WIFI_MOD_CLASS_VHT.

Referenced by TxDurationTest::CheckPayloadDuration(), ns3::MeshWifiInterfaceMac::CheckSupportedRates(), TxDurationTest::CheckTxDuration(), ns3::NistErrorRateModel::GetChunkSuccessRate(), ns3::YansErrorRateModel::GetChunkSuccessRate(), ns3::WaveMacLow::GetDataTxVector(), ns3::StaWifiMac::GetHtCapabilities(), ns3::ApWifiMac::GetHtCapabilities(), ns3::WifiPhy::GetPayloadDuration(), GetPhyRate(), ns3::MeshWifiInterfaceMac::GetSupportedRates(), ns3::StaWifiMac::GetSupportedRates(), ns3::ApWifiMac::GetSupportedRates(), ns3::StaWifiMac::Receive(), ns3::ApWifiMac::Receive(), ns3::MeshWifiInterfaceMac::Receive(), ns3::YansWifiPhy::SendPacket(), PowerRateAdaptationTest::TestAparf(), and PowerRateAdaptationTest::TestParf().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

uint64_t ns3::WifiMode::GetPhyRate ( uint32_t  channelWidth,
bool  isShortGuardInterval,
uint8_t  nss 
) const
Parameters
channelWidththe considered channel width in MHz
isShortGuardIntervalwhether short guard interval is considered or not
nssthe considered number of streams
Returns
the physical bit rate of this signal.

If a transmission mode uses 1/2 FEC, and if its data rate is 3.25Mbps, the phy rate is 6.5Mbps

Definition at line 73 of file wifi-mode.cc.

References GetCodeRate(), GetDataRate(), ns3::WIFI_CODE_RATE_1_2, ns3::WIFI_CODE_RATE_2_3, ns3::WIFI_CODE_RATE_3_4, ns3::WIFI_CODE_RATE_5_6, and ns3::WIFI_CODE_RATE_UNDEFINED.

Referenced by ns3::InterferenceHelper::CalculateChunkSuccessRate(), ns3::YansErrorRateModel::GetChunkSuccessRate(), and ns3::WifiRemoteStationManager::GetControlAnswerMode().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

uint32_t ns3::WifiMode::GetUid ( void  ) const
Returns
the uid associated to this wireless mode.

Each specific wireless mode should have a different uid. For example, the 802.11b 1Mbps and the 802.11b 2Mbps modes should have different uids.

Definition at line 369 of file wifi-mode.cc.

References m_uid.

Referenced by ns3::operator==().

+ Here is the caller graph for this function:

std::string ns3::WifiMode::GetUniqueName ( void  ) const
Returns
a human-readable representation of this WifiMode instance.

Definition at line 338 of file wifi-mode.cc.

References ns3::WifiModeFactory::Get(), ns3::WifiModeFactory::GetFactory(), m_uid, and ns3::WifiModeFactory::WifiModeItem::uniqueUid.

Referenced by ns3::WifiPhy::GetPayloadDuration(), ns3::operator<<(), and ns3::WaveNetDevice::RegisterTxProfile().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool ns3::WifiMode::IsMandatory ( void  ) const
Returns
true if this mode is a mandatory mode, false otherwise.

Definition at line 346 of file wifi-mode.cc.

References ns3::WifiModeFactory::Get(), ns3::WifiModeFactory::GetFactory(), ns3::WifiModeFactory::WifiModeItem::isMandatory, and m_uid.

Referenced by ns3::WifiRemoteStationManager::GetControlAnswerMode(), ns3::ApWifiMac::GetSupportedRates(), and ns3::WifiRemoteStationManager::Reset().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Friends And Related Function Documentation

friend class WifiModeFactory
friend

Definition at line 181 of file wifi-mode.h.

Member Data Documentation

uint32_t ns3::WifiMode::m_uid
private

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