A Discrete-Event Network Simulator
API
ns3::WifiPhy Class Referenceabstract

802.11 PHY layer model More...

#include "wifi-phy.h"

+ Inheritance diagram for ns3::WifiPhy:
+ Collaboration diagram for ns3::WifiPhy:

Public Types

typedef std::pair< uint8_t, WifiPhyStandardChannelNumberStandardPair
 A pair of a ChannelNumber and WifiPhyStandard. More...
 
typedef std::pair< uint16_t, uint8_t > FrequencyWidthPair
 A pair of a center Frequency and a ChannelWidth. More...
 
typedef void(* MonitorSnifferRxCallback) (Ptr< const Packet > packet, uint16_t channelFreqMhz, WifiTxVector txVector, MpduInfo aMpdu, SignalNoiseDbm signalNoise)
 TracedCallback signature for monitor mode receive events. More...
 
typedef void(* MonitorSnifferTxCallback) (const Ptr< const Packet > packet, uint16_t channelFreqMhz, WifiTxVector txVector, MpduInfo aMpdu)
 TracedCallback signature for monitor mode transmit events. More...
 
typedef Callback< void, Ptr< Packet >, double > RxErrorCallback
 arg1: packet received unsuccessfully arg2: snr of packet More...
 
typedef Callback< void, Ptr< Packet >, double, WifiTxVectorRxOkCallback
 arg1: packet received successfully arg2: snr of packet arg3: TXVECTOR of packet arg4: type of preamble used for packet. More...
 
enum  State {
  IDLE, CCA_BUSY, TX, RX,
  SWITCHING, SLEEP
}
 The state of the PHY layer. More...
 

Public Member Functions

 WifiPhy ()
 
virtual ~WifiPhy ()
 
void AddSupportedChannelWidth (uint8_t channelwidth)
 
virtual int64_t AssignStreams (int64_t stream)
 Assign a fixed random variable stream number to the random variables used by this model. More...
 
double CalculateSnr (WifiTxVector txVector, double ber) const
 
Time CalculateTxDuration (uint32_t size, WifiTxVector txVector, uint16_t frequency)
 
Time CalculateTxDuration (uint32_t size, WifiTxVector txVector, uint16_t frequency, MpduType mpdutype, uint8_t incFlag)
 
virtual void ConfigureStandard (WifiPhyStandard standard)
 Configure the PHY-level parameters for different Wi-Fi standard. More...
 
bool DefineChannelNumber (uint8_t channelNumber, WifiPhyStandard standard, uint16_t frequency, uint8_t channelWidth)
 Add a channel definition to the WifiPhy. More...
 
void EndReceive (Ptr< Packet > packet, WifiPreamble preamble, MpduType mpdutype, Ptr< InterferenceHelper::Event > event)
 The last bit of the packet has arrived. More...
 
uint32_t GetBssMembershipSelector (uint32_t selector) const
 The WifiPhy::BssMembershipSelector() method is used (e.g., by a WifiRemoteStationManager) to determine the set of transmission/reception modes that this WifiPhy(-derived class) can support - a set of WifiMode objects which we call the BssMembershipSelectorSet, and which is stored as WifiPhy::m_bssMembershipSelectorSet. More...
 
double GetCcaMode1Threshold (void) const
 Return the CCA threshold (dBm). More...
 
virtual Ptr< ChannelGetChannel (void) const =0
 Return the Channel this WifiPhy is connected to. More...
 
uint8_t GetChannelNumber (void) const
 Return current channel number. More...
 
Time GetChannelSwitchDelay (void) const
 
uint8_t GetChannelWidth (void) const
 
Time GetDelayUntilIdle (void)
 
Ptr< NetDeviceGetDevice (void) const
 Return the device this PHY is associated with. More...
 
double GetEdThreshold (void) const
 Return the energy detection threshold (dBm). More...
 
double GetEdThresholdW (void) const
 Return the energy detection threshold. More...
 
Ptr< ErrorRateModelGetErrorRateModel (void) const
 Return the error rate model this PHY is using. More...
 
Ptr< FrameCaptureModelGetFrameCaptureModel (void) const
 Return the frame capture model this PHY is using. More...
 
uint16_t GetFrequency (void) const
 
bool GetGreenfield (void) const
 Return whether Greenfield is supported. More...
 
Time GetGuardInterval (void) const
 
Time GetLastRxStartTime (void) const
 Return the start time of the last received packet. More...
 
bool GetLdpc (void) const
 Return if LDPC is supported. More...
 
uint8_t GetMaxSupportedRxSpatialStreams (void) const
 
uint8_t GetMaxSupportedTxSpatialStreams (void) const
 
WifiMode GetMcs (uint8_t mcs) const
 The WifiPhy::GetMcs() method is used (e.g., by a WifiRemoteStationManager) to determine the set of transmission/reception MCS indexes that this WifiPhy(-derived class) can support - a set of MCS indexes which we call the DeviceMcsSet, and which is stored as WifiPhy::m_deviceMcsSet. More...
 
WifiModeList GetMembershipSelectorModes (uint32_t selector)
 The WifiPhy::GetMembershipSelectorModes() method is used (e.g., by a WifiRemoteStationManager) to determine the set of transmission/reception modes that this WifiPhy(-derived class) can support - a set of WifiMode objects which we call the BssMembershipSelectorSet, and which is stored as WifiPhy::m_bssMembershipSelectorSet. More...
 
Ptr< MobilityModelGetMobility (void) const
 Return the mobility model this PHY is associated with. More...
 
WifiMode GetMode (uint32_t mode) const
 The WifiPhy::GetNModes() and WifiPhy::GetMode() methods are used (e.g., by a WifiRemoteStationManager) to determine the set of transmission/reception modes that this WifiPhy(-derived class) can support - a set of WifiMode objects which we call the DeviceRateSet, and which is stored as WifiPhy::m_deviceRateSet. More...
 
uint32_t GetNBssMembershipSelectors (void) const
 The WifiPhy::NBssMembershipSelectors() method is used (e.g., by a WifiRemoteStationManager) to determine the set of transmission/reception modes that this WifiPhy(-derived class) can support - a set of WifiMode objects which we call the BssMembershipSelectorSet, and which is stored as WifiPhy::m_bssMembershipSelectorSet. More...
 
uint8_t GetNMcs (void) const
 The WifiPhy::GetNMcs() method is used (e.g., by a WifiRemoteStationManager) to determine the set of transmission/reception MCS indexes that this WifiPhy(-derived class) can support - a set of MCS indexes which we call the DeviceMcsSet, and which is stored as WifiPhy::m_deviceMcsSet. More...
 
uint32_t GetNModes (void) const
 The WifiPhy::GetNModes() and WifiPhy::GetMode() methods are used (e.g., by a WifiRemoteStationManager) to determine the set of transmission/reception modes that this WifiPhy(-derived class) can support - a set of WifiMode objects which we call the DeviceRateSet, and which is stored as WifiPhy::m_deviceRateSet. More...
 
uint32_t GetNTxPower (void) const
 Return the number of available transmission power levels. More...
 
uint8_t GetNumberOfAntennas (void) const
 
Time GetPayloadDuration (uint32_t size, WifiTxVector txVector, uint16_t frequency)
 
Time GetPayloadDuration (uint32_t size, WifiTxVector txVector, uint16_t frequency, MpduType mpdutype, uint8_t incFlag)
 
double GetPowerDbm (uint8_t power) const
 Get the power of the given power level in dBm. More...
 
double GetRxGain (void) const
 Return the reception gain (dB). More...
 
double GetRxNoiseFigure (void) const
 Return the RX noise figure (dBm). More...
 
bool GetShortGuardInterval (void) const
 Return whether short guard interval is supported. More...
 
bool GetShortPlcpPreambleSupported (void) const
 Return whether short PLCP preamble is supported. More...
 
WifiPhyStandard GetStandard (void) const
 Get the configured Wi-Fi standard. More...
 
Time GetStateDuration (void)
 
bool GetStbc (void) const
 Return whether STBC is supported. More...
 
std::vector< uint8_t > GetSupportedChannelWidthSet (void) const
 
double GetTxGain (void) const
 Return the transmission gain (dB). More...
 
double GetTxPowerEnd (void) const
 Return the maximum available transmission power level (dBm). More...
 
double GetTxPowerStart (void) const
 Return the minimum available transmission power level (dBm). More...
 
bool IsMcsSupported (WifiMode mcs) const
 Check if the given WifiMode is supported by the PHY. More...
 
bool IsModeSupported (WifiMode mode) const
 Check if the given WifiMode is supported by the PHY. More...
 
bool IsStateBusy (void)
 
bool IsStateCcaBusy (void)
 
bool IsStateIdle (void)
 
bool IsStateRx (void)
 
bool IsStateSleep (void)
 
bool IsStateSwitching (void)
 
bool IsStateTx (void)
 
void NotifyMonitorSniffRx (Ptr< const Packet > packet, uint16_t channelFreqMhz, WifiTxVector txVector, MpduInfo aMpdu, SignalNoiseDbm signalNoise)
 Public method used to fire a MonitorSniffer trace for a wifi packet being received. More...
 
void NotifyMonitorSniffTx (Ptr< const Packet > packet, uint16_t channelFreqMhz, WifiTxVector txVector, MpduInfo aMpdu)
 Public method used to fire a MonitorSniffer trace for a wifi packet being transmitted. More...
 
void NotifyRxBegin (Ptr< const Packet > packet)
 Public method used to fire a PhyRxBegin trace. More...
 
void NotifyRxDrop (Ptr< const Packet > packet)
 Public method used to fire a PhyRxDrop trace. More...
 
void NotifyRxEnd (Ptr< const Packet > packet)
 Public method used to fire a PhyRxEnd trace. More...
 
void NotifyTxBegin (Ptr< const Packet > packet)
 Public method used to fire a PhyTxBegin trace. More...
 
void NotifyTxDrop (Ptr< const Packet > packet)
 Public method used to fire a PhyTxDrop trace. More...
 
void NotifyTxEnd (Ptr< const Packet > packet)
 Public method used to fire a PhyTxEnd trace. More...
 
void RegisterListener (WifiPhyListener *listener)
 
void ResumeFromSleep (void)
 Resume from sleep mode. More...
 
void SendPacket (Ptr< const Packet > packet, WifiTxVector txVector, MpduType mpdutype=NORMAL_MPDU)
 
void SetCcaMode1Threshold (double threshold)
 Sets the CCA threshold (dBm). More...
 
virtual void SetChannelNumber (uint8_t id)
 Set channel number. More...
 
virtual void SetChannelWidth (uint8_t channelwidth)
 
void SetDevice (const Ptr< NetDevice > device)
 Sets the device this PHY is associated with. More...
 
void SetEdThreshold (double threshold)
 Sets the energy detection threshold (dBm). More...
 
void SetErrorRateModel (const Ptr< ErrorRateModel > rate)
 Sets the error rate model. More...
 
void SetFrameCaptureModel (const Ptr< FrameCaptureModel > rate)
 Sets the frame capture model. More...
 
virtual void SetFrequency (uint16_t freq)
 
void SetGreenfield (bool greenfield)
 Enable or disable Greenfield support. More...
 
void SetGuardInterval (Time guardInterval)
 
void SetLdpc (bool ldpc)
 Enable or disable LDPC. More...
 
void SetMaxSupportedRxSpatialStreams (uint8_t streams)
 
void SetMaxSupportedTxSpatialStreams (uint8_t streams)
 
void SetMobility (const Ptr< MobilityModel > mobility)
 assign a mobility model to this device More...
 
void SetNTxPower (uint32_t n)
 Sets the number of transmission power levels available between the minimum level and the maximum level. More...
 
void SetNumberOfAntennas (uint8_t antennas)
 
void SetReceiveErrorCallback (RxErrorCallback callback)
 
void SetReceiveOkCallback (RxOkCallback callback)
 
void SetRxGain (double gain)
 Sets the reception gain (dB). More...
 
void SetRxNoiseFigure (double noiseFigureDb)
 Sets the RX loss (dB) in the Signal-to-Noise-Ratio due to non-idealities in the receiver. More...
 
void SetShortGuardInterval (bool shortGuardInterval)
 Enable or disable support for HT/VHT short guard interval. More...
 
void SetShortPlcpPreambleSupported (bool preamble)
 Enable or disable short PLCP preamble. More...
 
void SetSleepMode (void)
 Put in sleep mode. More...
 
void SetStbc (bool stbc)
 Enable or disable STBC. More...
 
void SetTxGain (double gain)
 Sets the transmission gain (dB). More...
 
void SetTxPowerEnd (double end)
 Sets the maximum available transmission power level (dBm). More...
 
void SetTxPowerStart (double start)
 Sets the minimum available transmission power level (dBm). More...
 
void StartReceivePacket (Ptr< Packet > packet, WifiTxVector txVector, MpduType mpdutype, Ptr< InterferenceHelper::Event > event)
 Starting receiving the payload of a packet (i.e. More...
 
void StartReceivePreambleAndHeader (Ptr< Packet > packet, double rxPowerW, Time rxDuration)
 Starting receiving the plcp of a packet (i.e. More...
 
virtual void StartTx (Ptr< Packet > packet, WifiTxVector txVector, Time txDuration)=0
 
void UnregisterListener (WifiPhyListener *listener)
 
- Public Member Functions inherited from ns3::Object
 Object ()
 Constructor. More...
 
virtual ~Object ()
 Destructor. More...
 
void AggregateObject (Ptr< Object > other)
 Aggregate two Objects together. More...
 
void Dispose (void)
 Dispose of this Object. More...
 
AggregateIterator GetAggregateIterator (void) const
 Get an iterator to the Objects aggregated to this one. More...
 
virtual TypeId GetInstanceTypeId (void) const
 Get the most derived TypeId for this Object. More...
 
template<typename T >
Ptr< T > GetObject (void) const
 Get a pointer to the requested aggregated Object. More...
 
template<typename T >
Ptr< T > GetObject (TypeId tid) const
 Get a pointer to the requested aggregated Object by TypeId. More...
 
void Initialize (void)
 Invoke DoInitialize on all Objects aggregated to this one. More...
 
bool IsInitialized (void) const
 Check if the object has been initialized. More...
 
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 Default constructor. More...
 
 SimpleRefCount (const SimpleRefCount &o)
 Copy constructor. More...
 
uint32_t GetReferenceCount (void) const
 Get the reference count of the object. More...
 
SimpleRefCountoperator= (const SimpleRefCount &o)
 Assignment operator. More...
 
void Ref (void) const
 Increment the reference count. More...
 
void Unref (void) const
 Decrement the reference count. More...
 
- Public Member Functions inherited from ns3::ObjectBase
virtual ~ObjectBase ()
 Virtual destructor. More...
 
void GetAttribute (std::string name, AttributeValue &value) const
 Get the value of an attribute, raising fatal errors if unsuccessful. More...
 
bool GetAttributeFailSafe (std::string name, AttributeValue &value) const
 Get the value of an attribute without raising erros. More...
 
void SetAttribute (std::string name, const AttributeValue &value)
 Set a single attribute, raising fatal errors if unsuccessful. More...
 
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
 Set a single attribute without raising errors. More...
 
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
 Connect a TraceSource to a Callback with a context. More...
 
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
 Connect a TraceSource to a Callback without a context. More...
 
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected with a context. More...
 
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected without a context. More...
 

Static Public Member Functions

static Time CalculatePlcpPreambleAndHeaderDuration (WifiTxVector txVector)
 
static WifiMode GetDsssRate11Mbps ()
 Return a WifiMode for DSSS at 11Mbps. More...
 
static WifiMode GetDsssRate1Mbps ()
 Return a WifiMode for DSSS at 1Mbps. More...
 
static WifiMode GetDsssRate2Mbps ()
 Return a WifiMode for DSSS at 2Mbps. More...
 
static WifiMode GetDsssRate5_5Mbps ()
 Return a WifiMode for DSSS at 5.5Mbps. More...
 
static WifiMode GetErpOfdmRate12Mbps ()
 Return a WifiMode for ERP-OFDM at 12Mbps. More...
 
static WifiMode GetErpOfdmRate18Mbps ()
 Return a WifiMode for ERP-OFDM at 18Mbps. More...
 
static WifiMode GetErpOfdmRate24Mbps ()
 Return a WifiMode for ERP-OFDM at 24Mbps. More...
 
static WifiMode GetErpOfdmRate36Mbps ()
 Return a WifiMode for ERP-OFDM at 36Mbps. More...
 
static WifiMode GetErpOfdmRate48Mbps ()
 Return a WifiMode for ERP-OFDM at 48Mbps. More...
 
static WifiMode GetErpOfdmRate54Mbps ()
 Return a WifiMode for ERP-OFDM at 54Mbps. More...
 
static WifiMode GetErpOfdmRate6Mbps ()
 Return a WifiMode for ERP-OFDM at 6Mbps. More...
 
static WifiMode GetErpOfdmRate9Mbps ()
 Return a WifiMode for ERP-OFDM at 9Mbps. More...
 
static WifiMode GetHeMcs0 ()
 Return MCS 0 from HE MCS values. More...
 
static WifiMode GetHeMcs1 ()
 Return MCS 1 from HE MCS values. More...
 
static WifiMode GetHeMcs10 ()
 Return MCS 10 from HE MCS values. More...
 
static WifiMode GetHeMcs11 ()
 Return MCS 11 from HE MCS values. More...
 
static WifiMode GetHeMcs2 ()
 Return MCS 2 from HE MCS values. More...
 
static WifiMode GetHeMcs3 ()
 Return MCS 3 from HE MCS values. More...
 
static WifiMode GetHeMcs4 ()
 Return MCS 4 from HE MCS values. More...
 
static WifiMode GetHeMcs5 ()
 Return MCS 5 from HE MCS values. More...
 
static WifiMode GetHeMcs6 ()
 Return MCS 6 from HE MCS values. More...
 
static WifiMode GetHeMcs7 ()
 Return MCS 7 from HE MCS values. More...
 
static WifiMode GetHeMcs8 ()
 Return MCS 8 from HE MCS values. More...
 
static WifiMode GetHeMcs9 ()
 Return MCS 9 from HE MCS values. More...
 
static WifiMode GetHePlcpHeaderMode ()
 
static WifiMode GetHtMcs0 ()
 Return MCS 0 from HT MCS values. More...
 
static WifiMode GetHtMcs1 ()
 Return MCS 1 from HT MCS values. More...
 
static WifiMode GetHtMcs10 ()
 Return MCS 10 from HT MCS values. More...
 
static WifiMode GetHtMcs11 ()
 Return MCS 11 from HT MCS values. More...
 
static WifiMode GetHtMcs12 ()
 Return MCS 12 from HT MCS values. More...
 
static WifiMode GetHtMcs13 ()
 Return MCS 13 from HT MCS values. More...
 
static WifiMode GetHtMcs14 ()
 Return MCS 14 from HT MCS values. More...
 
static WifiMode GetHtMcs15 ()
 Return MCS 15 from HT MCS values. More...
 
static WifiMode GetHtMcs16 ()
 Return MCS 16 from HT MCS values. More...
 
static WifiMode GetHtMcs17 ()
 Return MCS 17 from HT MCS values. More...
 
static WifiMode GetHtMcs18 ()
 Return MCS 18 from HT MCS values. More...
 
static WifiMode GetHtMcs19 ()
 Return MCS 19 from HT MCS values. More...
 
static WifiMode GetHtMcs2 ()
 Return MCS 2 from HT MCS values. More...
 
static WifiMode GetHtMcs20 ()
 Return MCS 20 from HT MCS values. More...
 
static WifiMode GetHtMcs21 ()
 Return MCS 21 from HT MCS values. More...
 
static WifiMode GetHtMcs22 ()
 Return MCS 22 from HT MCS values. More...
 
static WifiMode GetHtMcs23 ()
 Return MCS 23 from HT MCS values. More...
 
static WifiMode GetHtMcs24 ()
 Return MCS 24 from HT MCS values. More...
 
static WifiMode GetHtMcs25 ()
 Return MCS 25 from HT MCS values. More...
 
static WifiMode GetHtMcs26 ()
 Return MCS 26 from HT MCS values. More...
 
static WifiMode GetHtMcs27 ()
 Return MCS 27 from HT MCS values. More...
 
static WifiMode GetHtMcs28 ()
 Return MCS 28 from HT MCS values. More...
 
static WifiMode GetHtMcs29 ()
 Return MCS 29 from HT MCS values. More...
 
static WifiMode GetHtMcs3 ()
 Return MCS 3 from HT MCS values. More...
 
static WifiMode GetHtMcs30 ()
 Return MCS 30 from HT MCS values. More...
 
static WifiMode GetHtMcs31 ()
 Return MCS 31 from HT MCS values. More...
 
static WifiMode GetHtMcs4 ()
 Return MCS 4 from HT MCS values. More...
 
static WifiMode GetHtMcs5 ()
 Return MCS 5 from HT MCS values. More...
 
static WifiMode GetHtMcs6 ()
 Return MCS 6 from HT MCS values. More...
 
static WifiMode GetHtMcs7 ()
 Return MCS 7 from HT MCS values. More...
 
static WifiMode GetHtMcs8 ()
 Return MCS 8 from HT MCS values. More...
 
static WifiMode GetHtMcs9 ()
 Return MCS 9 from HT MCS values. More...
 
static WifiMode GetHtPlcpHeaderMode ()
 
static WifiMode GetOfdmRate12Mbps ()
 Return a WifiMode for OFDM at 12Mbps. More...
 
static WifiMode GetOfdmRate12MbpsBW10MHz ()
 Return a WifiMode for OFDM at 12Mbps with 10MHz channel spacing. More...
 
static WifiMode GetOfdmRate12MbpsBW5MHz ()
 Return a WifiMode for OFDM at 12Mbps with 5MHz channel spacing. More...
 
static WifiMode GetOfdmRate13_5MbpsBW5MHz ()
 Return a WifiMode for OFDM at 13.5Mbps with 5MHz channel spacing. More...
 
static WifiMode GetOfdmRate18Mbps ()
 Return a WifiMode for OFDM at 18Mbps. More...
 
static WifiMode GetOfdmRate18MbpsBW10MHz ()
 Return a WifiMode for OFDM at 18Mbps with 10MHz channel spacing. More...
 
static WifiMode GetOfdmRate1_5MbpsBW5MHz ()
 Return a WifiMode for OFDM at 1.5Mbps with 5MHz channel spacing. More...
 
static WifiMode GetOfdmRate24Mbps ()
 Return a WifiMode for OFDM at 24Mbps. More...
 
static WifiMode GetOfdmRate24MbpsBW10MHz ()
 Return a WifiMode for OFDM at 24Mbps with 10MHz channel spacing. More...
 
static WifiMode GetOfdmRate27MbpsBW10MHz ()
 Return a WifiMode for OFDM at 27Mbps with 10MHz channel spacing. More...
 
static WifiMode GetOfdmRate2_25MbpsBW5MHz ()
 Return a WifiMode for OFDM at 2.25Mbps with 5MHz channel spacing. More...
 
static WifiMode GetOfdmRate36Mbps ()
 Return a WifiMode for OFDM at 36Mbps. More...
 
static WifiMode GetOfdmRate3MbpsBW10MHz ()
 Return a WifiMode for OFDM at 3Mbps with 10MHz channel spacing. More...
 
static WifiMode GetOfdmRate3MbpsBW5MHz ()
 Return a WifiMode for OFDM at 3Mbps with 5MHz channel spacing. More...
 
static WifiMode GetOfdmRate48Mbps ()
 Return a WifiMode for OFDM at 48Mbps. More...
 
static WifiMode GetOfdmRate4_5MbpsBW10MHz ()
 Return a WifiMode for OFDM at 4.5Mbps with 10MHz channel spacing. More...
 
static WifiMode GetOfdmRate4_5MbpsBW5MHz ()
 Return a WifiMode for OFDM at 4.5Mbps with 5MHz channel spacing. More...
 
static WifiMode GetOfdmRate54Mbps ()
 Return a WifiMode for OFDM at 54Mbps. More...
 
static WifiMode GetOfdmRate6Mbps ()
 Return a WifiMode for OFDM at 6Mbps. More...
 
static WifiMode GetOfdmRate6MbpsBW10MHz ()
 Return a WifiMode for OFDM at 6Mbps with 10MHz channel spacing. More...
 
static WifiMode GetOfdmRate6MbpsBW5MHz ()
 Return a WifiMode for OFDM at 6Mbps with 5MHz channel spacing. More...
 
static WifiMode GetOfdmRate9Mbps ()
 Return a WifiMode for OFDM at 9Mbps. More...
 
static WifiMode GetOfdmRate9MbpsBW10MHz ()
 Return a WifiMode for OFDM at 9Mbps with 10MHz channel spacing. More...
 
static WifiMode GetOfdmRate9MbpsBW5MHz ()
 Return a WifiMode for OFDM at 9Mbps with 5MHz channel spacing. More...
 
static Time GetPlcpHeaderDuration (WifiTxVector txVector)
 
static WifiMode GetPlcpHeaderMode (WifiTxVector txVector)
 
static Time GetPlcpHtSigHeaderDuration (WifiPreamble preamble)
 
static Time GetPlcpPreambleDuration (WifiTxVector txVector)
 
static Time GetPlcpSigA1Duration (WifiPreamble preamble)
 
static Time GetPlcpSigA2Duration (WifiPreamble preamble)
 
static Time GetPlcpSigBDuration (WifiPreamble preamble)
 
static Time GetPlcpTrainingSymbolDuration (WifiTxVector txVector)
 
static TypeId GetTypeId (void)
 Get the type ID. More...
 
static WifiMode GetVhtMcs0 ()
 Return MCS 0 from VHT MCS values. More...
 
static WifiMode GetVhtMcs1 ()
 Return MCS 1 from VHT MCS values. More...
 
static WifiMode GetVhtMcs2 ()
 Return MCS 2 from VHT MCS values. More...
 
static WifiMode GetVhtMcs3 ()
 Return MCS 3 from VHT MCS values. More...
 
static WifiMode GetVhtMcs4 ()
 Return MCS 4 from VHT MCS values. More...
 
static WifiMode GetVhtMcs5 ()
 Return MCS 5 from VHT MCS values. More...
 
static WifiMode GetVhtMcs6 ()
 Return MCS 6 from VHT MCS values. More...
 
static WifiMode GetVhtMcs7 ()
 Return MCS 7 from VHT MCS values. More...
 
static WifiMode GetVhtMcs8 ()
 Return MCS 8 from VHT MCS values. More...
 
static WifiMode GetVhtMcs9 ()
 Return MCS 9 from VHT MCS values. More...
 
static WifiMode GetVhtPlcpHeaderMode ()
 
static bool Is2_4Ghz (double frequency)
 
static bool Is5Ghz (double frequency)
 
static bool IsValidTxVector (WifiTxVector txVector)
 The standard disallows certain combinations of WifiMode, number of spatial streams, and channel widths. More...
 
- Static Public Member Functions inherited from ns3::Object
static TypeId GetTypeId (void)
 Register this type. More...
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId (void)
 Get the type ID. More...
 

Protected Member Functions

bool DoChannelSwitch (uint8_t id)
 The default implementation does nothing and returns true. More...
 
virtual void DoDispose (void)
 Destructor implementation. More...
 
bool DoFrequencySwitch (uint16_t frequency)
 The default implementation does nothing and returns true. More...
 
virtual void DoInitialize (void)
 Initialize() implementation. More...
 
void SwitchMaybeToCcaBusy (void)
 Check if Phy state should move to CCA busy state based on current state of interference tracker. More...
 
- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
 Copy an Object. More...
 
virtual void NotifyNewAggregate (void)
 Notify all Objects aggregated to this one of a new Object being aggregated. More...
 
- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 Complete construction of ObjectBase; invoked by derived classes. More...
 
virtual void NotifyConstructionCompleted (void)
 Notifier called once the ObjectBase is fully constructed. More...
 

Protected Attributes

EventId m_endPlcpRxEvent
 the end PLCP receive event More...
 
EventId m_endRxEvent
 the end reeive event More...
 
InterferenceHelper m_interference
 Pointer to InterferenceHelper. More...
 
uint16_t m_mpdusNum
 carries the number of expected mpdus that are part of an A-MPDU More...
 
bool m_plcpSuccess
 Flag if the PLCP of the packet or the first MPDU in an A-MPDU has been received. More...
 
Ptr< UniformRandomVariablem_random
 Provides uniform random variables. More...
 
uint64_t m_rxMpduReferenceNumber
 A-MPDU reference number to identify all received subframes belonging to the same received A-MPDU. More...
 
Ptr< WifiPhyStateHelperm_state
 Pointer to WifiPhyStateHelper. More...
 
uint64_t m_txMpduReferenceNumber
 A-MPDU reference number to identify all transmitted subframes belonging to the same received A-MPDU. More...
 

Private Types

typedef std::map< ChannelNumberStandardPair, FrequencyWidthPairChannelToFrequencyWidthMap
 channel to frequency width map typedef More...
 

Private Member Functions

void AbortCurrentReception (void)
 Due to newly arrived signal, the current reception cannot be continued and has to be aborted. More...
 
void Configure80211_10Mhz (void)
 Configure WifiPhy with appropriate channel frequency and supported rates for 802.11a standard with 10MHz channel spacing. More...
 
void Configure80211_5Mhz ()
 Configure WifiPhy with appropriate channel frequency and supported rates for 802.11a standard with 5MHz channel spacing. More...
 
void Configure80211a (void)
 Configure WifiPhy with appropriate channel frequency and supported rates for 802.11a standard. More...
 
void Configure80211ac (void)
 Configure WifiPhy with appropriate channel frequency and supported rates for 802.11ac standard. More...
 
void Configure80211ax (void)
 Configure WifiPhy with appropriate channel frequency and supported rates for 802.11ax standard. More...
 
void Configure80211b (void)
 Configure WifiPhy with appropriate channel frequency and supported rates for 802.11b standard. More...
 
void Configure80211g (void)
 Configure WifiPhy with appropriate channel frequency and supported rates for 802.11g standard. More...
 
void Configure80211n (void)
 Configure WifiPhy with appropriate channel frequency and supported rates for 802.11n standard. More...
 
void ConfigureChannelForStandard (WifiPhyStandard standard)
 Configure the PHY-level parameters for different Wi-Fi standard. More...
 
void ConfigureDefaultsForStandard (WifiPhyStandard standard)
 Configure the PHY-level parameters for different Wi-Fi standard. More...
 
void ConfigureHolland (void)
 Configure WifiPhy with appropriate channel frequency and supported rates for holland. More...
 
void ConfigureHtDeviceMcsSet (void)
 Configure the device Mcs set with the appropriate HtMcs modes for the number of available transmit spatial streams. More...
 
uint8_t FindChannelNumberForFrequencyWidth (uint16_t frequency, uint8_t width) const
 Look for channel number matching the frequency and width. More...
 
FrequencyWidthPair GetFrequencyWidthForChannelNumberStandard (uint8_t channelNumber, WifiPhyStandard standard) const
 Lookup frequency/width pair for channelNumber/standard pair. More...
 
void InitializeFrequencyChannelNumber (void)
 post-construction setting of frequency and/or channel number More...
 
void MaybeCcaBusyDuration (void)
 Eventually switch to CCA busy. More...
 
void StartRx (Ptr< Packet > packet, WifiTxVector txVector, MpduType mpdutype, double rxPowerW, Time rxDuration, Ptr< InterferenceHelper::Event > event)
 Starting receiving the packet after having detected the medium is idle or after a reception switch. More...
 

Private Attributes

std::vector< uint32_t > m_bssMembershipSelectorSet
 the BSS membership selector set More...
 
double m_ccaMode1ThresholdW
 Clear channel assessment (CCA) threshold in watts. More...
 
uint16_t m_channelCenterFrequency
 Center frequency in MHz. More...
 
uint8_t m_channelNumber
 Operating channel number. More...
 
Time m_channelSwitchDelay
 Time required to switch between channel. More...
 
uint8_t m_channelWidth
 Channel width. More...
 
Ptr< InterferenceHelper::Eventm_currentEvent
 Hold the current event. More...
 
Ptr< NetDevicem_device
 Pointer to the device. More...
 
WifiModeList m_deviceMcsSet
 the device MCS set More...
 
WifiModeList m_deviceRateSet
 This vector holds the set of transmission modes that this WifiPhy(-derived class) can support. More...
 
double m_edThresholdW
 Energy detection threshold in watts. More...
 
Ptr< FrameCaptureModelm_frameCaptureModel
 Frame capture model. More...
 
bool m_frequencyChannelNumberInitialized
 Store initialization state. More...
 
bool m_greenfield
 Flag if GreenField format is supported. More...
 
Time m_guardInterval
 Supported HE guard interval. More...
 
uint8_t m_initialChannelNumber
 Initial channel number. More...
 
uint16_t m_initialFrequency
 Store frequency until initialization. More...
 
bool m_isConstructed
 true when ready to set frequency More...
 
bool m_ldpc
 Flag if LDPC is used. More...
 
Ptr< MobilityModelm_mobility
 Pointer to the mobility model. More...
 
uint32_t m_nTxPower
 Number of available transmission power levels. More...
 
uint8_t m_numberOfAntennas
 Number of transmitters. More...
 
uint8_t m_numberOfReceivers
 Number of receivers (DEPRECATED) More...
 
uint8_t m_numberOfTransmitters
 Number of transmitters (DEPRECATED) More...
 
TracedCallback< Ptr< const Packet >, uint16_t, WifiTxVector, MpduInfo, SignalNoiseDbmm_phyMonitorSniffRxTrace
 A trace source that emulates a wifi device in monitor mode sniffing a packet being received. More...
 
TracedCallback< Ptr< const Packet >, uint16_t, WifiTxVector, MpduInfom_phyMonitorSniffTxTrace
 A trace source that emulates a wifi device in monitor mode sniffing a packet being transmitted. More...
 
TracedCallback< Ptr< const Packet > > m_phyRxBeginTrace
 The trace source fired when a packet begins the reception process from the medium. More...
 
TracedCallback< Ptr< const Packet > > m_phyRxDropTrace
 The trace source fired when the phy layer drops a packet it has received. More...
 
TracedCallback< Ptr< const Packet > > m_phyRxEndTrace
 The trace source fired when a packet ends the reception process from the medium. More...
 
TracedCallback< Ptr< const Packet > > m_phyTxBeginTrace
 The trace source fired when a packet begins the transmission process on the medium. More...
 
TracedCallback< Ptr< const Packet > > m_phyTxDropTrace
 The trace source fired when the phy layer drops a packet as it tries to transmit it. More...
 
TracedCallback< Ptr< const Packet > > m_phyTxEndTrace
 The trace source fired when a packet ends the transmission process on the medium. More...
 
double m_rxGainDb
 Reception gain (dB) More...
 
uint8_t m_rxSpatialStreams
 Number of supported RX spatial streams. More...
 
bool m_shortGuardInterval
 Flag if HT/VHT short guard interval is supported. More...
 
bool m_shortPreamble
 Flag if short PLCP preamble is supported. More...
 
WifiPhyStandard m_standard
 WifiPhyStandard. More...
 
bool m_stbc
 Flag if STBC is used. More...
 
std::vector< uint8_t > m_supportedChannelWidthSet
 Supported channel width. More...
 
double m_totalAmpduNumSymbols
 Number of symbols previously transmitted for the MPDUs in an A-MPDU, used for the computation of the number of symbols needed for the last MPDU in the A-MPDU. More...
 
uint32_t m_totalAmpduSize
 Total size of the previously transmitted MPDUs in an A-MPDU, used for the computation of the number of symbols needed for the last MPDU in the A-MPDU. More...
 
double m_txGainDb
 Transmission gain (dB) More...
 
double m_txPowerBaseDbm
 Minimum transmission power (dBm) More...
 
double m_txPowerEndDbm
 Maximum transmission power (dBm) More...
 
uint8_t m_txSpatialStreams
 Number of supported TX spatial streams. More...
 

Static Private Attributes

static ChannelToFrequencyWidthMap m_channelToFrequencyWidth
 the channel to frequency width map More...
 

Additional Inherited Members

Detailed Description

802.11 PHY layer model

Config Paths

ns3::WifiPhy is accessible through the following paths with Config::Set and Config::Connect:

  • "/NodeList/[i]/DeviceList/[i]/$ns3::WifiNetDevice/Phy"
  • "/NodeList/[i]/DeviceList/[i]/$ns3::WaveNetDevice/PhyEntities/[i]"

Attributes

  • Frequency: The operating center frequency (MHz)
    • Set with class: ns3::UintegerValue
    • Underlying type: uint16_t 0:65535
    • Initial value: 0
    • Flags: construct write read
  • ChannelWidth: Whether 5MHz, 10MHz, 20MHz, 22MHz, 40MHz, 80 MHz or 160 MHz.
    • Set with class: ns3::UintegerValue
    • Underlying type: uint8_t 5:160
    • Initial value: 20
    • Flags: construct write read
  • ChannelNumber: If set to non-zero defined value, will control Frequency and ChannelWidth assignment
    • Set with class: ns3::UintegerValue
    • Underlying type: uint8_t 0:196
    • Initial value: 0
    • Flags: construct write read
  • EnergyDetectionThreshold: The energy of a received signal should be higher than this threshold (dbm) to allow the PHY layer to detect the signal.
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: -96
    • Flags: construct write read
  • CcaMode1Threshold: The energy of a received signal should be higher than this threshold (dbm) to allow the PHY layer to declare CCA BUSY state.
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: -99
    • Flags: construct write read
  • TxGain: Transmission gain (dB).
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 0
    • Flags: construct write read
  • RxGain: Reception gain (dB).
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 0
    • Flags: construct write read
  • TxPowerLevels: Number of transmission power levels available between TxPowerStart and TxPowerEnd included.
    • Set with class: ns3::UintegerValue
    • Underlying type: uint32_t 0:4294967295
    • Initial value: 1
    • Flags: construct write read
  • TxPowerEnd: Maximum available transmission level (dbm).
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 16.0206
    • Flags: construct write read
  • TxPowerStart: Minimum available transmission level (dbm).
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 16.0206
    • Flags: construct write read
  • RxNoiseFigure: Loss (dB) in the Signal-to-Noise-Ratio due to non-idealities in the receiver. According to Wikipedia (http://en.wikipedia.org/wiki/Noise_figure), this is "the difference in decibels (dB) between the noise output of the actual receiver to the noise output of an ideal receiver with the same overall gain and bandwidth when the receivers are connected to sources at the standard noise temperature T0 (usually 290 K)".
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 7
    • Flags: construct write read
  • State: The state of the PHY layer.
  • ChannelSwitchDelay: Delay between two short frames transmitted on different frequencies.
    • Set with class: ns3::TimeValue
    • Underlying type: Time –9223372036854775808.0ns:+9223372036854775807.0ns
    • Initial value: +250000.0ns
    • Flags: construct write read
  • TxAntennas: The number of supported Tx antennas.
    • Set with class: ns3::UintegerValue
    • Underlying type: uint8_t 1:8
    • Initial value: 1
    • Flags: construct write read
  • RxAntennas: The number of supported Rx antennas.
    • Set with class: ns3::UintegerValue
    • Underlying type: uint8_t 1:8
    • Initial value: 1
    • Flags: construct write read
  • Antennas: The number of antennas on the device.
    • Set with class: ns3::UintegerValue
    • Underlying type: uint8_t 1:8
    • Initial value: 1
    • Flags: construct write read
  • MaxSupportedTxSpatialStreams: The maximum number of supported TX spatial streams.This parameter is only valuable for 802.11n/ac/ax STAs and APs.
    • Set with class: ns3::UintegerValue
    • Underlying type: uint8_t 1:8
    • Initial value: 1
    • Flags: construct write read
  • MaxSupportedRxSpatialStreams: The maximum number of supported RX spatial streams.This parameter is only valuable for 802.11n/ac/ax STAs and APs.
    • Set with class: ns3::UintegerValue
    • Underlying type: uint8_t 1:8
    • Initial value: 1
    • Flags: construct write read
  • ShortGuardEnabled: Whether or not short guard interval is enabled for HT/VHT transmissions.This parameter is only valuable for 802.11n/ac/ax STAs and APs.
    • Set with class: BooleanValue
    • Underlying type: bool
    • Initial value: false
    • Flags: construct write read
  • GuardInterval: Whether 800ns, 1600ns or 3200ns guard interval is used for HE transmissions.This parameter is only valuable for 802.11ax STAs and APs.
    • Set with class: ns3::TimeValue
    • Underlying type: Time +400.0ns:+3200.0ns
    • Initial value: +3200.0ns
    • Flags: construct write read
  • LdpcEnabled: Whether or not LDPC is enabled (not supported yet!).
    • Set with class: BooleanValue
    • Underlying type: bool
    • Initial value: false
    • Flags: construct write read
  • STBCEnabled: Whether or not STBC is enabled (not supported yet!).
    • Set with class: BooleanValue
    • Underlying type: bool
    • Initial value: false
    • Flags: construct write read
  • GreenfieldEnabled: Whether or not Greenfield is enabled.This parameter is only valuable for 802.11n STAs and APs.
    • Set with class: BooleanValue
    • Underlying type: bool
    • Initial value: false
    • Flags: construct write read
  • ShortPlcpPreambleSupported: Whether or not short PLCP preamble is supported.This parameter is only valuable for 802.11b STAs and APs.Note: 802.11g APs and STAs always support short PLCP preamble.
    • Set with class: BooleanValue
    • Underlying type: bool
    • Initial value: false
    • Flags: construct write read
  • FrameCaptureModel: Ptr to an object that implements the frame capture model

TraceSources

  • PhyTxBegin: Trace source indicating a packet has begun transmitting over the channel medium
    Callback signature: ns3::Packet::TracedCallback
  • PhyTxEnd: Trace source indicating a packet has been completely transmitted over the channel. NOTE: the only official WifiPhy implementation available to this date never fires this trace source.
    Callback signature: ns3::Packet::TracedCallback
  • PhyTxDrop: Trace source indicating a packet has been dropped by the device during transmission
    Callback signature: ns3::Packet::TracedCallback
  • PhyRxBegin: Trace source indicating a packet has begun being received from the channel medium by the device
    Callback signature: ns3::Packet::TracedCallback
  • PhyRxEnd: Trace source indicating a packet has been completely received from the channel medium by the device
    Callback signature: ns3::Packet::TracedCallback
  • PhyRxDrop: Trace source indicating a packet has been dropped by the device during reception
    Callback signature: ns3::Packet::TracedCallback
  • MonitorSnifferRx: Trace source simulating a wifi device in monitor mode sniffing all received frames
    Callback signature: ns3::WifiPhy::MonitorSnifferRxTracedCallback
  • MonitorSnifferTx: Trace source simulating the capability of a wifi device in monitor mode to sniff all frames being transmitted
    Callback signature: ns3::WifiPhy::MonitorSnifferTxTracedCallback

Size of this type is 568 bytes (on a 64-bit architecture).

Definition at line 164 of file wifi-phy.h.

Member Typedef Documentation

A pair of a ChannelNumber and WifiPhyStandard.

Definition at line 644 of file wifi-phy.h.

channel to frequency width map typedef

Definition at line 1967 of file wifi-phy.h.

typedef std::pair<uint16_t, uint8_t> ns3::WifiPhy::FrequencyWidthPair

A pair of a center Frequency and a ChannelWidth.

Definition at line 648 of file wifi-phy.h.

typedef void(* ns3::WifiPhy::MonitorSnifferRxCallback) (Ptr< const Packet > packet, uint16_t channelFreqMhz, WifiTxVector txVector, MpduInfo aMpdu, SignalNoiseDbm signalNoise)

TracedCallback signature for monitor mode receive events.

Parameters
packetthe packet being received
channelFreqMhzthe frequency in MHz at which the packet is received. Note that in real devices this is normally the frequency to which the receiver is tuned, and this can be different than the frequency at which the packet was originally transmitted. This is because it is possible to have the receiver tuned on a given channel and still to be able to receive packets on a nearby channel.
txVectorthe TXVECTOR that holds rx parameters
aMpduthe type of the packet (0 is not A-MPDU, 1 is a MPDU that is part of an A-MPDU and 2 is the last MPDU in an A-MPDU) and the A-MPDU reference number (must be a different value for each A-MPDU but the same for each subframe within one A-MPDU)
signalNoisesignal power and noise power in dBm
Todo:
WifiTxVector should be passed by const reference because of its size.

Definition at line 1296 of file wifi-phy.h.

typedef void(* ns3::WifiPhy::MonitorSnifferTxCallback) (const Ptr< const Packet > packet, uint16_t channelFreqMhz, WifiTxVector txVector, MpduInfo aMpdu)

TracedCallback signature for monitor mode transmit events.

Parameters
packetthe packet being transmitted
channelFreqMhzthe frequency in MHz at which the packet is transmitted.
txVectorthe TXVECTOR that holds tx parameters
aMpduthe type of the packet (0 is not A-MPDU, 1 is a MPDU that is part of an A-MPDU and 2 is the last MPDU in an A-MPDU) and the A-MPDU reference number (must be a different value for each A-MPDU but the same for each subframe within one A-MPDU)
Todo:
WifiTxVector should be passed by const reference because of its size.

Definition at line 1330 of file wifi-phy.h.

arg1: packet received unsuccessfully arg2: snr of packet

Definition at line 210 of file wifi-phy.h.

arg1: packet received successfully arg2: snr of packet arg3: TXVECTOR of packet arg4: type of preamble used for packet.

Definition at line 205 of file wifi-phy.h.

Constructor & Destructor Documentation

ns3::WifiPhy::WifiPhy ( )
ns3::WifiPhy::~WifiPhy ( )
virtual

Definition at line 398 of file wifi-phy.cc.

References NS_LOG_FUNCTION.

Member Function Documentation

void ns3::WifiPhy::AbortCurrentReception ( void  )
private

Due to newly arrived signal, the current reception cannot be continued and has to be aborted.

Definition at line 3642 of file wifi-phy.cc.

References ns3::EventId::Cancel(), ns3::EventId::IsRunning(), m_currentEvent, m_endPlcpRxEvent, m_endRxEvent, m_interference, m_state, NotifyRxDrop(), ns3::InterferenceHelper::NotifyRxEnd(), and NS_LOG_FUNCTION.

Referenced by StartReceivePreambleAndHeader().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::WifiPhy::AddSupportedChannelWidth ( uint8_t  channelwidth)
Parameters
channelwidthchannel width (in MHz) to support

Definition at line 1413 of file wifi-phy.cc.

References m_supportedChannelWidthSet, and NS_LOG_FUNCTION.

Referenced by SetChannelWidth().

+ Here is the caller graph for this function:

int64_t ns3::WifiPhy::AssignStreams ( int64_t  stream)
virtual

Assign a fixed random variable stream number to the random variables used by this model.

Return the number of streams (possibly zero) that have been assigned.

Parameters
streamfirst stream index to use
Returns
the number of stream indices assigned by this model

Definition at line 3736 of file wifi-phy.cc.

References m_random, NS_LOG_FUNCTION, and ns3::RandomVariableStream::SetStream().

+ Here is the call graph for this function:

Time ns3::WifiPhy::CalculatePlcpPreambleAndHeaderDuration ( WifiTxVector  txVector)
static
Parameters
txVectorthe transmission parameters used for this packet
Returns
the total amount of time this PHY will stay busy for the transmission of the PLCP preamble and PLCP header.

Definition at line 2240 of file wifi-phy.cc.

References GetPlcpHeaderDuration(), GetPlcpHtSigHeaderDuration(), GetPlcpPreambleDuration(), GetPlcpSigA1Duration(), GetPlcpSigA2Duration(), GetPlcpSigBDuration(), GetPlcpTrainingSymbolDuration(), and ns3::WifiTxVector::GetPreambleType().

Referenced by CalculateTxDuration(), ns3::SimpleFrameCaptureModel::CaptureNewFrame(), and StartRx().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

double ns3::WifiPhy::CalculateSnr ( WifiTxVector  txVector,
double  ber 
) const
Parameters
txVectorthe transmission vector
berthe probability of bit error rate
Returns
the minimum snr which is required to achieve the requested ber for the specified transmission vector. (W/W)

Definition at line 750 of file wifi-phy.cc.

References ns3::InterferenceHelper::GetErrorRateModel(), and m_interference.

+ Here is the call graph for this function:

Time ns3::WifiPhy::CalculateTxDuration ( uint32_t  size,
WifiTxVector  txVector,
uint16_t  frequency,
MpduType  mpdutype,
uint8_t  incFlag 
)
Parameters
sizethe number of bytes in the packet to send
txVectorthe TXVECTOR used for the transmission of this packet
frequencythe channel center frequency (MHz)
mpdutypethe type of the MPDU as defined in WifiPhy::MpduType.
incFlagthis flag is used to indicate that the static variables need to be update or not. This function is called a couple of times for the same packet so static variables should not be increased each time.
Returns
the total amount of time this PHY will stay busy for the transmission of these bytes.

Definition at line 2254 of file wifi-phy.cc.

References CalculatePlcpPreambleAndHeaderDuration(), and GetPayloadDuration().

+ Here is the call graph for this function:

void ns3::WifiPhy::Configure80211_10Mhz ( void  )
private

Configure WifiPhy with appropriate channel frequency and supported rates for 802.11a standard with 10MHz channel spacing.

Definition at line 879 of file wifi-phy.cc.

References GetOfdmRate12MbpsBW10MHz(), GetOfdmRate18MbpsBW10MHz(), GetOfdmRate24MbpsBW10MHz(), GetOfdmRate27MbpsBW10MHz(), GetOfdmRate3MbpsBW10MHz(), GetOfdmRate4_5MbpsBW10MHz(), GetOfdmRate6MbpsBW10MHz(), GetOfdmRate9MbpsBW10MHz(), m_deviceRateSet, and NS_LOG_FUNCTION.

Referenced by ConfigureStandard().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::WifiPhy::Configure80211_5Mhz ( void  )
private

Configure WifiPhy with appropriate channel frequency and supported rates for 802.11a standard with 5MHz channel spacing.

Definition at line 894 of file wifi-phy.cc.

References GetOfdmRate12MbpsBW5MHz(), GetOfdmRate13_5MbpsBW5MHz(), GetOfdmRate1_5MbpsBW5MHz(), GetOfdmRate2_25MbpsBW5MHz(), GetOfdmRate3MbpsBW5MHz(), GetOfdmRate4_5MbpsBW5MHz(), GetOfdmRate6MbpsBW5MHz(), GetOfdmRate9MbpsBW5MHz(), m_deviceRateSet, and NS_LOG_FUNCTION.

Referenced by ConfigureStandard().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::WifiPhy::Configure80211a ( void  )
private

Configure WifiPhy with appropriate channel frequency and supported rates for 802.11a standard.

Definition at line 837 of file wifi-phy.cc.

References GetOfdmRate12Mbps(), GetOfdmRate18Mbps(), GetOfdmRate24Mbps(), GetOfdmRate36Mbps(), GetOfdmRate48Mbps(), GetOfdmRate54Mbps(), GetOfdmRate6Mbps(), GetOfdmRate9Mbps(), m_deviceRateSet, and NS_LOG_FUNCTION.

Referenced by Configure80211n(), and ConfigureStandard().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::WifiPhy::Configure80211ac ( void  )
private

Configure WifiPhy with appropriate channel frequency and supported rates for 802.11ac standard.

Definition at line 1007 of file wifi-phy.cc.

References Configure80211n(), GetVhtMcs0(), GetVhtMcs1(), GetVhtMcs2(), GetVhtMcs3(), GetVhtMcs4(), GetVhtMcs5(), GetVhtMcs6(), GetVhtMcs7(), GetVhtMcs8(), GetVhtMcs9(), m_bssMembershipSelectorSet, m_deviceMcsSet, NS_LOG_FUNCTION, and VHT_PHY.

Referenced by Configure80211ax(), and ConfigureStandard().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::WifiPhy::Configure80211ax ( void  )
private

Configure WifiPhy with appropriate channel frequency and supported rates for 802.11ax standard.

Definition at line 1027 of file wifi-phy.cc.

References Configure80211ac(), Configure80211n(), GetFrequency(), GetHeMcs0(), GetHeMcs1(), GetHeMcs10(), GetHeMcs11(), GetHeMcs2(), GetHeMcs3(), GetHeMcs4(), GetHeMcs5(), GetHeMcs6(), GetHeMcs7(), GetHeMcs8(), GetHeMcs9(), HE_PHY, Is5Ghz(), m_bssMembershipSelectorSet, m_deviceMcsSet, and NS_LOG_FUNCTION.

Referenced by ConfigureStandard().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::WifiPhy::Configure80211b ( void  )
private

Configure WifiPhy with appropriate channel frequency and supported rates for 802.11b standard.

Definition at line 852 of file wifi-phy.cc.

References GetDsssRate11Mbps(), GetDsssRate1Mbps(), GetDsssRate2Mbps(), GetDsssRate5_5Mbps(), m_deviceRateSet, and NS_LOG_FUNCTION.

Referenced by Configure80211g(), Configure80211n(), and ConfigureStandard().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::WifiPhy::Configure80211g ( void  )
private

Configure WifiPhy with appropriate channel frequency and supported rates for 802.11g standard.

Definition at line 863 of file wifi-phy.cc.

References Configure80211b(), GetErpOfdmRate12Mbps(), GetErpOfdmRate18Mbps(), GetErpOfdmRate24Mbps(), GetErpOfdmRate36Mbps(), GetErpOfdmRate48Mbps(), GetErpOfdmRate54Mbps(), GetErpOfdmRate6Mbps(), GetErpOfdmRate9Mbps(), m_deviceRateSet, and NS_LOG_FUNCTION.

Referenced by Configure80211n(), and ConfigureStandard().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::WifiPhy::Configure80211n ( void  )
private

Configure WifiPhy with appropriate channel frequency and supported rates for 802.11n standard.

Definition at line 990 of file wifi-phy.cc.

References Configure80211a(), Configure80211b(), Configure80211g(), ConfigureHtDeviceMcsSet(), GetFrequency(), HT_PHY, Is2_4Ghz(), Is5Ghz(), m_bssMembershipSelectorSet, and NS_LOG_FUNCTION.

Referenced by Configure80211ac(), Configure80211ax(), and ConfigureStandard().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::WifiPhy::ConfigureChannelForStandard ( WifiPhyStandard  standard)
private

Configure the PHY-level parameters for different Wi-Fi standard.

This method is called when the Frequency or ChannelNumber attributes are set by the user. If the Frequency or ChannelNumber are valid for the standard, they are used instead.

Parameters
standardthe Wi-Fi standard

Definition at line 1097 of file wifi-phy.cc.

References f(), FindChannelNumberForFrequencyWidth(), GetChannelNumber(), GetChannelWidth(), GetFrequency(), GetFrequencyWidthForChannelNumberStandard(), NS_FATAL_ERROR, NS_LOG_DEBUG, NS_LOG_FUNCTION, SetChannelNumber(), SetChannelWidth(), SetFrequency(), and ns3::WIFI_PHY_STANDARD_UNSPECIFIED.

Referenced by ConfigureStandard().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::WifiPhy::ConfigureDefaultsForStandard ( WifiPhyStandard  standard)
private

Configure the PHY-level parameters for different Wi-Fi standard.

This method is called when defaults for each standard must be selected.

Parameters
standardthe Wi-Fi standard

Definition at line 756 of file wifi-phy.cc.

References GetChannelNumber(), NS_ASSERT, NS_LOG_FUNCTION, NS_LOG_WARN, SetChannelWidth(), SetFrequency(), ns3::WIFI_PHY_STANDARD_80211_10MHZ, ns3::WIFI_PHY_STANDARD_80211_5MHZ, ns3::WIFI_PHY_STANDARD_80211a, ns3::WIFI_PHY_STANDARD_80211ac, ns3::WIFI_PHY_STANDARD_80211ax_2_4GHZ, ns3::WIFI_PHY_STANDARD_80211ax_5GHZ, ns3::WIFI_PHY_STANDARD_80211b, ns3::WIFI_PHY_STANDARD_80211g, ns3::WIFI_PHY_STANDARD_80211n_2_4GHZ, ns3::WIFI_PHY_STANDARD_80211n_5GHZ, ns3::WIFI_PHY_STANDARD_holland, and ns3::WIFI_PHY_STANDARD_UNSPECIFIED.

Referenced by ConfigureStandard().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::WifiPhy::ConfigureHolland ( void  )
private

Configure WifiPhy with appropriate channel frequency and supported rates for holland.

Definition at line 909 of file wifi-phy.cc.

References GetOfdmRate12Mbps(), GetOfdmRate18Mbps(), GetOfdmRate36Mbps(), GetOfdmRate54Mbps(), GetOfdmRate6Mbps(), m_deviceRateSet, and NS_LOG_FUNCTION.

Referenced by ConfigureStandard().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::WifiPhy::ConfigureHtDeviceMcsSet ( void  )
private
bool ns3::WifiPhy::DefineChannelNumber ( uint8_t  channelNumber,
WifiPhyStandard  standard,
uint16_t  frequency,
uint8_t  channelWidth 
)

Add a channel definition to the WifiPhy.

The pair (channelNumber, WifiPhyStandard) may then be used to lookup a pair (frequency, channelWidth).

If the channel is not already defined for the standard, the method should return true; otherwise false.

Parameters
channelNumberthe channel number to define
standardthe applicable WifiPhyStandard
frequencythe frequency (MHz)
channelWidththe channel width (MHz)
Returns
true if the channel definition succeeded

Definition at line 1052 of file wifi-phy.cc.

References f(), m_channelToFrequencyWidth, NS_LOG_DEBUG, and NS_LOG_FUNCTION.

Referenced by SetChannelFrequencyTest::DoRun().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool ns3::WifiPhy::DoChannelSwitch ( uint8_t  id)
protected

The default implementation does nothing and returns true.

This method is typically called internally by SetChannelNumber ().

Perform any actions necessary when user changes channel number

Parameters
idchannel number to try to switch to
Returns
true if WifiPhy can actually change the number; false if not
See also
SetChannelNumber

Definition at line 1502 of file wifi-phy.cc.

References ns3::EventId::Cancel(), CCA_BUSY, ns3::InterferenceHelper::EraseEvents(), GetChannelNumber(), GetChannelSwitchDelay(), GetDelayUntilIdle(), IDLE, ns3::Object::IsInitialized(), IsStateSwitching(), m_endPlcpRxEvent, m_endRxEvent, m_interference, m_state, NS_ASSERT, NS_LOG_DEBUG, RX, ns3::Simulator::Schedule(), SetChannelNumber(), SLEEP, and TX.

Referenced by SetChannelNumber().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::WifiPhy::DoDispose ( void  )
protectedvirtual

Destructor implementation.

This method is called by Dispose() or by the Object's destructor, whichever comes first.

Subclasses are expected to implement their real destruction code in an overriden version of this method and chain up to their parent's implementation once they are done. i.e, for simplicity, the destructor of every subclass should be empty and its content should be moved to the associated DoDispose() method.

It is safe to call GetObject() from within this method.

Reimplemented from ns3::Object.

Reimplemented in ns3::SpectrumWifiPhy, and ns3::YansWifiPhy.

Definition at line 404 of file wifi-phy.cc.

References m_device, m_deviceMcsSet, m_deviceRateSet, m_mobility, m_state, and NS_LOG_FUNCTION.

bool ns3::WifiPhy::DoFrequencySwitch ( uint16_t  frequency)
protected

The default implementation does nothing and returns true.

This method is typically called internally by SetFrequency ().

Perform any actions necessary when user changes frequency

Parameters
frequencyfrequency to try to switch to
Returns
true if WifiPhy can actually change the frequency; false if not
See also
SetFrequency

Definition at line 1554 of file wifi-phy.cc.

References ns3::EventId::Cancel(), CCA_BUSY, ns3::InterferenceHelper::EraseEvents(), GetChannelSwitchDelay(), GetDelayUntilIdle(), GetFrequency(), IDLE, ns3::Object::IsInitialized(), IsStateSwitching(), m_endPlcpRxEvent, m_endRxEvent, m_interference, m_state, NS_ASSERT, NS_LOG_DEBUG, RX, ns3::Simulator::Schedule(), SetFrequency(), SLEEP, and TX.

Referenced by SetFrequency().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::WifiPhy::DoInitialize ( void  )
protectedvirtual

Initialize() implementation.

This method is called only once by Initialize(). If the user calls Initialize() multiple times, DoInitialize() is called only the first time.

Subclasses are expected to override this method and chain up to their parent's implementation once they are done. It is safe to call GetObject() and AggregateObject() from within this method.

Reimplemented from ns3::Object.

Reimplemented in ns3::SpectrumWifiPhy.

Definition at line 415 of file wifi-phy.cc.

References InitializeFrequencyChannelNumber(), m_frequencyChannelNumberInitialized, m_isConstructed, NS_LOG_DEBUG, and NS_LOG_FUNCTION.

Referenced by ns3::SpectrumWifiPhy::DoInitialize().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::WifiPhy::EndReceive ( Ptr< Packet packet,
WifiPreamble  preamble,
MpduType  mpdutype,
Ptr< InterferenceHelper::Event event 
)

The last bit of the packet has arrived.

Parameters
packetthe packet that the last bit has arrived
preamblethe preamble of the arriving packet
mpdutypethe type of the MPDU as defined in WifiPhy::MpduType.
eventthe corresponding event of the first time the packet arrives

Definition at line 2541 of file wifi-phy.cc.

References ns3::InterferenceHelper::CalculatePlcpPayloadSnrPer(), GetFrequency(), ns3::Packet::GetSize(), ns3::UniformRandomVariable::GetValue(), IsStateRx(), ns3::LAST_MPDU_IN_AGGREGATE, m_currentEvent, m_interference, m_plcpSuccess, m_random, m_rxMpduReferenceNumber, m_state, ns3::SignalNoiseDbm::noise, NotifyMonitorSniffRx(), NotifyRxDrop(), ns3::InterferenceHelper::NotifyRxEnd(), NotifyRxEnd(), ns3::Simulator::Now(), NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::RatioToDb(), ns3::SignalNoiseDbm::signal, ns3::MpduInfo::type, and ns3::WIFI_PREAMBLE_NONE.

Referenced by StartRx().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

uint8_t ns3::WifiPhy::FindChannelNumberForFrequencyWidth ( uint16_t  frequency,
uint8_t  width 
) const
private

Look for channel number matching the frequency and width.

Parameters
frequencyThe center frequency to use
widthThe channel width to use
Returns
the channel number if found, zero if not

Definition at line 1069 of file wifi-phy.cc.

References f(), m_channelToFrequencyWidth, NS_LOG_DEBUG, and NS_LOG_FUNCTION.

Referenced by ConfigureChannelForStandard(), and SetFrequency().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

uint32_t ns3::WifiPhy::GetBssMembershipSelector ( uint32_t  selector) const

The WifiPhy::BssMembershipSelector() method is used (e.g., by a WifiRemoteStationManager) to determine the set of transmission/reception modes that this WifiPhy(-derived class) can support - a set of WifiMode objects which we call the BssMembershipSelectorSet, and which is stored as WifiPhy::m_bssMembershipSelectorSet.

Parameters
selectorindex in array of supported memberships
Returns
the memebership selector whose index is specified.

Definition at line 1357 of file wifi-phy.cc.

References m_bssMembershipSelectorSet.

Referenced by GetMembershipSelectorModes(), ns3::StaWifiMac::GetSupportedRates(), ns3::ApWifiMac::GetSupportedRates(), and ns3::StaWifiMac::Receive().

+ Here is the caller graph for this function:

double ns3::WifiPhy::GetCcaMode1Threshold ( void  ) const

Return the CCA threshold (dBm).

Returns
the CCA threshold in dBm

Definition at line 506 of file wifi-phy.cc.

References m_ccaMode1ThresholdW, and ns3::WToDbm().

Referenced by GetTypeId(), MaybeCcaBusyDuration(), ResumeFromSleep(), and SwitchMaybeToCcaBusy().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

virtual Ptr<Channel> ns3::WifiPhy::GetChannel ( void  ) const
pure virtual

Return the Channel this WifiPhy is connected to.

Returns
the Channel this WifiPhy is connected to

Implemented in ns3::SpectrumWifiPhy, and ns3::YansWifiPhy.

Referenced by ns3::WifiNetDevice::DoGetChannel(), ns3::WifiNetDevice::GetChannel(), and ns3::WaveNetDevice::GetChannel().

+ Here is the caller graph for this function:

Time ns3::WifiPhy::GetChannelSwitchDelay ( void  ) const
Returns
the required time for channel switch operation of this WifiPhy

Definition at line 744 of file wifi-phy.cc.

References m_channelSwitchDelay.

Referenced by ns3::DefaultChannelScheduler::AssignDefaultCchAccess(), DoChannelSwitch(), DoFrequencySwitch(), and ns3::DefaultChannelScheduler::SwitchToNextChannel().

+ Here is the caller graph for this function:

Time ns3::WifiPhy::GetDelayUntilIdle ( void  )
Returns
the predicted delay until this PHY can become WifiPhy::IDLE.

The PHY will never become WifiPhy::IDLE before the delay returned by this method but it could become really idle later.

Definition at line 3613 of file wifi-phy.cc.

References m_state.

Referenced by DoChannelSwitch(), DoFrequencySwitch(), and SetSleepMode().

+ Here is the caller graph for this function:

Ptr< NetDevice > ns3::WifiPhy::GetDevice ( void  ) const

Return the device this PHY is associated with.

Returns
the device this PHY is associated with

Definition at line 676 of file wifi-phy.cc.

References m_device.

WifiMode ns3::WifiPhy::GetDsssRate11Mbps ( )
static

Return a WifiMode for DSSS at 11Mbps.

Returns
a WifiMode for DSSS at 11Mbps

Definition at line 2631 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_UNDEFINED, and ns3::WIFI_MOD_CLASS_HR_DSSS.

Referenced by Configure80211b(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetDsssRate1Mbps ( )
static

Return a WifiMode for DSSS at 1Mbps.

Returns
a WifiMode for DSSS at 1Mbps

Definition at line 2592 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_UNDEFINED, and ns3::WIFI_MOD_CLASS_DSSS.

Referenced by Configure80211b(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and GetPlcpHeaderMode().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetDsssRate2Mbps ( )
static

Return a WifiMode for DSSS at 2Mbps.

Returns
a WifiMode for DSSS at 2Mbps

Definition at line 2604 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_UNDEFINED, and ns3::WIFI_MOD_CLASS_DSSS.

Referenced by Configure80211b(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and GetPlcpHeaderMode().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetDsssRate5_5Mbps ( )
static

Return a WifiMode for DSSS at 5.5Mbps.

Returns
a WifiMode for DSSS at 5.5Mbps

Definition at line 2619 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_UNDEFINED, and ns3::WIFI_MOD_CLASS_HR_DSSS.

Referenced by Configure80211b(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

double ns3::WifiPhy::GetEdThreshold ( void  ) const

Return the energy detection threshold (dBm).

Returns
the energy detection threshold in dBm

Definition at line 493 of file wifi-phy.cc.

References m_edThresholdW, and ns3::WToDbm().

Referenced by GetTypeId().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

double ns3::WifiPhy::GetEdThresholdW ( void  ) const

Return the energy detection threshold.

Returns
the energy detection threshold.

Definition at line 487 of file wifi-phy.cc.

References m_edThresholdW.

Referenced by StartRx().

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetErpOfdmRate12Mbps ( )
static

Return a WifiMode for ERP-OFDM at 12Mbps.

Returns
a WifiMode for ERP-OFDM at 12Mbps

Definition at line 2670 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_1_2, and ns3::WIFI_MOD_CLASS_ERP_OFDM.

Referenced by Configure80211g(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetErpOfdmRate18Mbps ( )
static

Return a WifiMode for ERP-OFDM at 18Mbps.

Returns
a WifiMode for ERP-OFDM at 18Mbps

Definition at line 2682 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_3_4, and ns3::WIFI_MOD_CLASS_ERP_OFDM.

Referenced by Configure80211g(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetErpOfdmRate24Mbps ( )
static

Return a WifiMode for ERP-OFDM at 24Mbps.

Returns
a WifiMode for ERP-OFDM at 24Mbps

Definition at line 2694 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_1_2, and ns3::WIFI_MOD_CLASS_ERP_OFDM.

Referenced by Configure80211g(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetErpOfdmRate36Mbps ( )
static

Return a WifiMode for ERP-OFDM at 36Mbps.

Returns
a WifiMode for ERP-OFDM at 36Mbps

Definition at line 2706 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_3_4, and ns3::WIFI_MOD_CLASS_ERP_OFDM.

Referenced by Configure80211g(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetErpOfdmRate48Mbps ( )
static

Return a WifiMode for ERP-OFDM at 48Mbps.

Returns
a WifiMode for ERP-OFDM at 48Mbps

Definition at line 2718 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_2_3, and ns3::WIFI_MOD_CLASS_ERP_OFDM.

Referenced by Configure80211g(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetErpOfdmRate54Mbps ( )
static

Return a WifiMode for ERP-OFDM at 54Mbps.

Returns
a WifiMode for ERP-OFDM at 54Mbps

Definition at line 2730 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_3_4, and ns3::WIFI_MOD_CLASS_ERP_OFDM.

Referenced by Configure80211g(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetErpOfdmRate6Mbps ( )
static

Return a WifiMode for ERP-OFDM at 6Mbps.

Returns
a WifiMode for ERP-OFDM at 6Mbps

Definition at line 2646 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_1_2, and ns3::WIFI_MOD_CLASS_ERP_OFDM.

Referenced by Configure80211g(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and GetPlcpHeaderMode().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetErpOfdmRate9Mbps ( )
static

Return a WifiMode for ERP-OFDM at 9Mbps.

Returns
a WifiMode for ERP-OFDM at 9Mbps

Definition at line 2658 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_3_4, and ns3::WIFI_MOD_CLASS_ERP_OFDM.

Referenced by Configure80211g(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Ptr< ErrorRateModel > ns3::WifiPhy::GetErrorRateModel ( void  ) const

Return the error rate model this PHY is using.

Returns
the error rate model this PHY is using

Definition at line 708 of file wifi-phy.cc.

References ns3::InterferenceHelper::GetErrorRateModel(), and m_interference.

+ Here is the call graph for this function:

Ptr< FrameCaptureModel > ns3::WifiPhy::GetFrameCaptureModel ( void  ) const

Return the frame capture model this PHY is using.

Returns
the frame capture model this PHY is using

Definition at line 720 of file wifi-phy.cc.

References m_frameCaptureModel.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

WifiPhy::FrequencyWidthPair ns3::WifiPhy::GetFrequencyWidthForChannelNumberStandard ( uint8_t  channelNumber,
WifiPhyStandard  standard 
) const
private

Lookup frequency/width pair for channelNumber/standard pair.

Parameters
channelNumberThe channel number to check
standardThe WifiPhyStandard to check
Returns
the FrequencyWidthPair found

Definition at line 1434 of file wifi-phy.cc.

References f(), and m_channelToFrequencyWidth.

Referenced by ConfigureChannelForStandard(), and SetChannelNumber().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool ns3::WifiPhy::GetGreenfield ( void  ) const

Return whether Greenfield is supported.

Returns
true if Greenfield is supported, false otherwise

Definition at line 624 of file wifi-phy.cc.

References m_greenfield.

Referenced by ns3::RegularWifiMac::GetHtCapabilities(), ns3::WifiRemoteStationManager::GetPreambleForTransmission(), GetTypeId(), ns3::WifiRemoteStationManager::LookupState(), and ns3::MacLow::StopMpduAggregation().

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHeMcs0 ( )
static

Return MCS 0 from HE MCS values.

Returns
MCS 0 from HE MCS values

Definition at line 3383 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_HE.

Referenced by Configure80211ax(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), GetHePlcpHeaderMode(), and GetMembershipSelectorModes().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHeMcs1 ( )
static

Return MCS 1 from HE MCS values.

Returns
MCS 1 from HE MCS values

Definition at line 3391 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_HE.

Referenced by Configure80211ax(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and GetMembershipSelectorModes().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHeMcs10 ( )
static

Return MCS 10 from HE MCS values.

Returns
MCS 10 from HE MCS values

Definition at line 3463 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_HE.

Referenced by Configure80211ax(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and GetMembershipSelectorModes().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHeMcs11 ( )
static

Return MCS 11 from HE MCS values.

Returns
MCS 11 from HE MCS values

Definition at line 3471 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_HE.

Referenced by Configure80211ax(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and GetMembershipSelectorModes().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHeMcs2 ( )
static

Return MCS 2 from HE MCS values.

Returns
MCS 2 from HE MCS values

Definition at line 3399 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_HE.

Referenced by Configure80211ax(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and GetMembershipSelectorModes().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHeMcs3 ( )
static

Return MCS 3 from HE MCS values.

Returns
MCS 3 from HE MCS values

Definition at line 3407 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_HE.

Referenced by Configure80211ax(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and GetMembershipSelectorModes().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHeMcs4 ( )
static

Return MCS 4 from HE MCS values.

Returns
MCS 4 from HE MCS values

Definition at line 3415 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_HE.

Referenced by Configure80211ax(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and GetMembershipSelectorModes().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHeMcs5 ( )
static

Return MCS 5 from HE MCS values.

Returns
MCS 5 from HE MCS values

Definition at line 3423 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_HE.

Referenced by Configure80211ax(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and GetMembershipSelectorModes().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHeMcs6 ( )
static

Return MCS 6 from HE MCS values.

Returns
MCS 6 from HE MCS values

Definition at line 3431 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_HE.

Referenced by Configure80211ax(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and GetMembershipSelectorModes().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHeMcs7 ( )
static

Return MCS 7 from HE MCS values.

Returns
MCS 7 from HE MCS values

Definition at line 3439 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_HE.

Referenced by Configure80211ax(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and GetMembershipSelectorModes().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHeMcs8 ( )
static

Return MCS 8 from HE MCS values.

Returns
MCS 8 from HE MCS values

Definition at line 3447 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_HE.

Referenced by Configure80211ax(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and GetMembershipSelectorModes().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHeMcs9 ( )
static

Return MCS 9 from HE MCS values.

Returns
MCS 9 from HE MCS values

Definition at line 3455 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_HE.

Referenced by Configure80211ax(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and GetMembershipSelectorModes().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHePlcpHeaderMode ( )
static
Returns
the WifiMode used for the transmission of the HE-STF, HE-LTF and HE-SIG-B fields

Definition at line 1680 of file wifi-phy.cc.

References GetHeMcs0().

Referenced by ns3::InterferenceHelper::CalculatePlcpHeaderPer().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHtMcs0 ( )
static

Return MCS 0 from HT MCS values.

Returns
MCS 0 from HT MCS values

Definition at line 3042 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_HT.

Referenced by ConfigureHtDeviceMcsSet(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), GetHtPlcpHeaderMode(), and GetMembershipSelectorModes().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHtMcs1 ( )
static

Return MCS 1 from HT MCS values.

Returns
MCS 1 from HT MCS values

Definition at line 3050 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_HT.

Referenced by ConfigureHtDeviceMcsSet(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and GetMembershipSelectorModes().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHtMcs10 ( )
static

Return MCS 10 from HT MCS values.

Returns
MCS 10 from HT MCS values

Definition at line 3122 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_HT.

Referenced by ConfigureHtDeviceMcsSet(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHtMcs11 ( )
static

Return MCS 11 from HT MCS values.

Returns
MCS 11 from HT MCS values

Definition at line 3130 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_HT.

Referenced by ConfigureHtDeviceMcsSet(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHtMcs12 ( )
static

Return MCS 12 from HT MCS values.

Returns
MCS 12 from HT MCS values

Definition at line 3138 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_HT.

Referenced by ConfigureHtDeviceMcsSet(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHtMcs13 ( )
static

Return MCS 13 from HT MCS values.

Returns
MCS 13 from HT MCS values

Definition at line 3146 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_HT.

Referenced by ConfigureHtDeviceMcsSet(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHtMcs14 ( )
static

Return MCS 14 from HT MCS values.

Returns
MCS 14 from HT MCS values

Definition at line 3154 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_HT.

Referenced by ConfigureHtDeviceMcsSet(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHtMcs15 ( )
static

Return MCS 15 from HT MCS values.

Returns
MCS 15 from HT MCS values

Definition at line 3162 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_HT.

Referenced by ConfigureHtDeviceMcsSet(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHtMcs16 ( )
static

Return MCS 16 from HT MCS values.

Returns
MCS 16 from HT MCS values

Definition at line 3170 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_HT.

Referenced by ConfigureHtDeviceMcsSet(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHtMcs17 ( )
static

Return MCS 17 from HT MCS values.

Returns
MCS 17 from HT MCS values

Definition at line 3178 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_HT.

Referenced by ConfigureHtDeviceMcsSet(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHtMcs18 ( )
static

Return MCS 18 from HT MCS values.

Returns
MCS 18 from HT MCS values

Definition at line 3186 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_HT.

Referenced by ConfigureHtDeviceMcsSet(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHtMcs19 ( )
static

Return MCS 19 from HT MCS values.

Returns
MCS 19 from HT MCS values

Definition at line 3194 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_HT.

Referenced by ConfigureHtDeviceMcsSet(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHtMcs2 ( )
static

Return MCS 2 from HT MCS values.

Returns
MCS 2 from HT MCS values

Definition at line 3058 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_HT.

Referenced by ConfigureHtDeviceMcsSet(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and GetMembershipSelectorModes().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHtMcs20 ( )
static

Return MCS 20 from HT MCS values.

Returns
MCS 20 from HT MCS values

Definition at line 3202 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_HT.

Referenced by ConfigureHtDeviceMcsSet(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHtMcs21 ( )
static

Return MCS 21 from HT MCS values.

Returns
MCS 21 from HT MCS values

Definition at line 3210 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_HT.

Referenced by ConfigureHtDeviceMcsSet(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHtMcs22 ( )
static

Return MCS 22 from HT MCS values.

Returns
MCS 22 from HT MCS values

Definition at line 3218 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_HT.

Referenced by ConfigureHtDeviceMcsSet(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHtMcs23 ( )
static

Return MCS 23 from HT MCS values.

Returns
MCS 23 from HT MCS values

Definition at line 3226 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_HT.

Referenced by ConfigureHtDeviceMcsSet(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHtMcs24 ( )
static

Return MCS 24 from HT MCS values.

Returns
MCS 24 from HT MCS values

Definition at line 3234 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_HT.

Referenced by ConfigureHtDeviceMcsSet(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHtMcs25 ( )
static

Return MCS 25 from HT MCS values.

Returns
MCS 25 from HT MCS values

Definition at line 3242 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_HT.

Referenced by ConfigureHtDeviceMcsSet(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHtMcs26 ( )
static

Return MCS 26 from HT MCS values.

Returns
MCS 26 from HT MCS values

Definition at line 3250 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_HT.

Referenced by ConfigureHtDeviceMcsSet(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHtMcs27 ( )
static

Return MCS 27 from HT MCS values.

Returns
MCS 27 from HT MCS values

Definition at line 3258 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_HT.

Referenced by ConfigureHtDeviceMcsSet(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHtMcs28 ( )
static

Return MCS 28 from HT MCS values.

Returns
MCS 28 from HT MCS values

Definition at line 3266 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_HT.

Referenced by ConfigureHtDeviceMcsSet(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHtMcs29 ( )
static

Return MCS 29 from HT MCS values.

Returns
MCS 29 from HT MCS values

Definition at line 3274 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_HT.

Referenced by ConfigureHtDeviceMcsSet(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHtMcs3 ( )
static

Return MCS 3 from HT MCS values.

Returns
MCS 3 from HT MCS values

Definition at line 3066 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_HT.

Referenced by ConfigureHtDeviceMcsSet(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and GetMembershipSelectorModes().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHtMcs30 ( )
static

Return MCS 30 from HT MCS values.

Returns
MCS 30 from HT MCS values

Definition at line 3282 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_HT.

Referenced by ConfigureHtDeviceMcsSet(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHtMcs31 ( )
static

Return MCS 31 from HT MCS values.

Returns
MCS 31 from HT MCS values

Definition at line 3290 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_HT.

Referenced by ConfigureHtDeviceMcsSet(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHtMcs4 ( )
static

Return MCS 4 from HT MCS values.

Returns
MCS 4 from HT MCS values

Definition at line 3074 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_HT.

Referenced by ConfigureHtDeviceMcsSet(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and GetMembershipSelectorModes().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHtMcs5 ( )
static

Return MCS 5 from HT MCS values.

Returns
MCS 5 from HT MCS values

Definition at line 3082 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_HT.

Referenced by ConfigureHtDeviceMcsSet(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and GetMembershipSelectorModes().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHtMcs6 ( )
static

Return MCS 6 from HT MCS values.

Returns
MCS 6 from HT MCS values

Definition at line 3090 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_HT.

Referenced by ConfigureHtDeviceMcsSet(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and GetMembershipSelectorModes().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHtMcs7 ( )
static

Return MCS 7 from HT MCS values.

Returns
MCS 7 from HT MCS values

Definition at line 3098 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_HT.

Referenced by ConfigureHtDeviceMcsSet(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and GetMembershipSelectorModes().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHtMcs8 ( )
static

Return MCS 8 from HT MCS values.

Returns
MCS 8 from HT MCS values

Definition at line 3106 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_HT.

Referenced by ConfigureHtDeviceMcsSet(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHtMcs9 ( )
static

Return MCS 9 from HT MCS values.

Returns
MCS 9 from HT MCS values

Definition at line 3114 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_HT.

Referenced by ConfigureHtDeviceMcsSet(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetHtPlcpHeaderMode ( )
static
Returns
the WifiMode used for the transmission of the HT-SIG and the HT training fields in Mixed Format and greenfield format PLCP header

Definition at line 1668 of file wifi-phy.cc.

References GetHtMcs0().

Referenced by ns3::InterferenceHelper::CalculatePlcpHeaderPer().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Time ns3::WifiPhy::GetLastRxStartTime ( void  ) const

Return the start time of the last received packet.

Returns
the start time of the last received packet

Definition at line 3619 of file wifi-phy.cc.

References m_state.

Referenced by ns3::MacLow::NavCounterResetCtsMissed().

+ Here is the caller graph for this function:

bool ns3::WifiPhy::GetLdpc ( void  ) const

Return if LDPC is supported.

Returns
true if LDPC is supported, false otherwise

Definition at line 598 of file wifi-phy.cc.

References m_ldpc.

Referenced by ns3::RegularWifiMac::GetHtCapabilities(), GetTypeId(), and ns3::RegularWifiMac::GetVhtCapabilities().

+ Here is the caller graph for this function:

uint8_t ns3::WifiPhy::GetMaxSupportedRxSpatialStreams ( void  ) const
Returns
the maximum number of supported RX spatial streams

Definition at line 1345 of file wifi-phy.cc.

References m_rxSpatialStreams.

Referenced by GetTypeId(), ns3::RegularWifiMac::GetVhtCapabilities(), and StartReceivePreambleAndHeader().

+ Here is the caller graph for this function:

uint8_t ns3::WifiPhy::GetMaxSupportedTxSpatialStreams ( void  ) const
WifiMode ns3::WifiPhy::GetMcs ( uint8_t  mcs) const

The WifiPhy::GetMcs() method is used (e.g., by a WifiRemoteStationManager) to determine the set of transmission/reception MCS indexes that this WifiPhy(-derived class) can support - a set of MCS indexes which we call the DeviceMcsSet, and which is stored as WifiPhy::m_deviceMcsSet.

Parameters
mcsindex in array of supported MCS
Returns
the MCS index whose index is specified.

Definition at line 3559 of file wifi-phy.cc.

References m_deviceMcsSet.

Referenced by ns3::WifiRemoteStationManager::AddAllSupportedMcs(), ns3::IdealWifiManager::DoInitialize(), ns3::WifiRemoteStationManager::GetControlAnswerMode(), ns3::RegularWifiMac::GetHeCapabilities(), ns3::RegularWifiMac::GetHtCapabilities(), ns3::MinstrelHtWifiManager::GetHtDeviceMcsList(), ns3::RegularWifiMac::GetVhtCapabilities(), ns3::MinstrelHtWifiManager::GetVhtDeviceMcsList(), IsMcsSupported(), ns3::StaWifiMac::Receive(), ns3::ApWifiMac::Receive(), and ns3::WifiRemoteStationManager::SetupPhy().

+ Here is the caller graph for this function:

WifiModeList ns3::WifiPhy::GetMembershipSelectorModes ( uint32_t  selector)

The WifiPhy::GetMembershipSelectorModes() method is used (e.g., by a WifiRemoteStationManager) to determine the set of transmission/reception modes that this WifiPhy(-derived class) can support - a set of WifiMode objects which we call the BssMembershipSelectorSet, and which is stored as WifiPhy::m_bssMembershipSelectorSet.

Parameters
selectorindex in array of supported memberships
Returns
a WifiModeList that contains the WifiModes associrated with the selected index.
See also
WifiPhy::GetMembershipSelectorModes()

Definition at line 1363 of file wifi-phy.cc.

References GetBssMembershipSelector(), GetHeMcs0(), GetHeMcs1(), GetHeMcs10(), GetHeMcs11(), GetHeMcs2(), GetHeMcs3(), GetHeMcs4(), GetHeMcs5(), GetHeMcs6(), GetHeMcs7(), GetHeMcs8(), GetHeMcs9(), GetHtMcs0(), GetHtMcs1(), GetHtMcs2(), GetHtMcs3(), GetHtMcs4(), GetHtMcs5(), GetHtMcs6(), GetHtMcs7(), GetVhtMcs0(), GetVhtMcs1(), GetVhtMcs2(), GetVhtMcs3(), GetVhtMcs4(), GetVhtMcs5(), GetVhtMcs6(), GetVhtMcs7(), GetVhtMcs8(), GetVhtMcs9(), HE_PHY, HT_PHY, and VHT_PHY.

+ Here is the call graph for this function:

Ptr< MobilityModel > ns3::WifiPhy::GetMobility ( void  ) const

Return the mobility model this PHY is associated with.

This method will return either the mobility model that has been explicitly set by a call to YansWifiPhy::SetMobility(), or else will return the mobility model (if any) that has been aggregated to the node.

Returns
the mobility model this PHY is associated with

Definition at line 688 of file wifi-phy.cc.

References m_device, and m_mobility.

Referenced by ns3::WifiSpectrumPhyInterface::GetMobility(), and ns3::YansWifiChannel::Send().

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetMode ( uint32_t  mode) const

The WifiPhy::GetNModes() and WifiPhy::GetMode() methods are used (e.g., by a WifiRemoteStationManager) to determine the set of transmission/reception modes that this WifiPhy(-derived class) can support - a set of WifiMode objects which we call the DeviceRateSet, and which is stored as WifiPhy::m_deviceRateSet.

It is important to note that the DeviceRateSet is a superset (not necessarily proper) of the OperationalRateSet (which is logically, if not actually, a property of the associated WifiRemoteStationManager), which itself is a superset (again, not necessarily proper) of the BSSBasicRateSet.

Parameters
modeindex in array of supported modes
Returns
the mode whose index is specified.
See also
WifiPhy::GetNModes()

Definition at line 3547 of file wifi-phy.cc.

References m_deviceRateSet.

Referenced by ns3::WifiRemoteStationManager::AddAllSupportedModes(), ns3::MinstrelHtWifiManager::DoGetRtsTxVector(), ns3::IdealWifiManager::DoInitialize(), ns3::MeshWifiInterfaceMac::ForwardDown(), ns3::WifiRemoteStationManager::GetControlAnswerMode(), ns3::MeshWifiInterfaceMac::GetSupportedRates(), ns3::StaWifiMac::GetSupportedRates(), ns3::ApWifiMac::GetSupportedRates(), IsModeSupported(), ns3::StaWifiMac::Receive(), ns3::ApWifiMac::Receive(), ns3::MeshWifiInterfaceMac::Receive(), ns3::RraaWifiManager::SetupPhy(), ns3::RrpaaWifiManager::SetupPhy(), ns3::WifiRemoteStationManager::SetupPhy(), NodeStatistics::SetupPhy(), and ns3::MinstrelWifiManager::SetupPhy().

+ Here is the caller graph for this function:

uint32_t ns3::WifiPhy::GetNBssMembershipSelectors ( void  ) const

The WifiPhy::NBssMembershipSelectors() method is used (e.g., by a WifiRemoteStationManager) to determine the set of transmission/reception modes that this WifiPhy(-derived class) can support - a set of WifiMode objects which we call the BssMembershipSelectorSet, and which is stored as WifiPhy::m_bssMembershipSelectorSet.

Returns
the memebership selector whose index is specified.

Definition at line 1351 of file wifi-phy.cc.

References m_bssMembershipSelectorSet.

Referenced by ns3::StaWifiMac::GetSupportedRates(), ns3::ApWifiMac::GetSupportedRates(), and ns3::StaWifiMac::Receive().

+ Here is the caller graph for this function:

uint8_t ns3::WifiPhy::GetNMcs ( void  ) const

The WifiPhy::GetNMcs() method is used (e.g., by a WifiRemoteStationManager) to determine the set of transmission/reception MCS indexes that this WifiPhy(-derived class) can support - a set of MCS indexes which we call the DeviceMcsSet, and which is stored as WifiPhy::m_deviceMcsSet.

Returns
the MCS index whose index is specified.

Definition at line 3553 of file wifi-phy.cc.

References m_deviceMcsSet.

Referenced by ns3::WifiRemoteStationManager::AddAllSupportedMcs(), ns3::IdealWifiManager::DoInitialize(), ns3::WifiRemoteStationManager::GetControlAnswerMode(), ns3::RegularWifiMac::GetHeCapabilities(), ns3::RegularWifiMac::GetHtCapabilities(), ns3::MinstrelHtWifiManager::GetHtDeviceMcsList(), ns3::RegularWifiMac::GetVhtCapabilities(), ns3::MinstrelHtWifiManager::GetVhtDeviceMcsList(), IsMcsSupported(), ns3::StaWifiMac::Receive(), and ns3::ApWifiMac::Receive().

+ Here is the caller graph for this function:

uint32_t ns3::WifiPhy::GetNModes ( void  ) const

The WifiPhy::GetNModes() and WifiPhy::GetMode() methods are used (e.g., by a WifiRemoteStationManager) to determine the set of transmission/reception modes that this WifiPhy(-derived class) can support - a set of WifiMode objects which we call the DeviceRateSet, and which is stored as WifiPhy::m_deviceRateSet.

It is important to note that the DeviceRateSet is a superset (not necessarily proper) of the OperationalRateSet (which is logically, if not actually, a property of the associated WifiRemoteStationManager), which itself is a superset (again, not necessarily proper) of the BSSBasicRateSet.

Returns
the number of transmission modes supported by this PHY.
See also
WifiPhy::GetMode()

Definition at line 3541 of file wifi-phy.cc.

References m_deviceRateSet.

Referenced by ns3::WifiRemoteStationManager::AddAllSupportedModes(), ns3::MinstrelHtWifiManager::DoGetRtsTxVector(), ns3::IdealWifiManager::DoInitialize(), ns3::MeshWifiInterfaceMac::ForwardDown(), ns3::WifiRemoteStationManager::GetControlAnswerMode(), ns3::MeshWifiInterfaceMac::GetSupportedRates(), ns3::StaWifiMac::GetSupportedRates(), ns3::ApWifiMac::GetSupportedRates(), IsModeSupported(), ns3::StaWifiMac::Receive(), ns3::ApWifiMac::Receive(), ns3::MeshWifiInterfaceMac::Receive(), ns3::RraaWifiManager::SetupPhy(), ns3::RrpaaWifiManager::SetupPhy(), NodeStatistics::SetupPhy(), and ns3::MinstrelWifiManager::SetupPhy().

+ Here is the caller graph for this function:

uint32_t ns3::WifiPhy::GetNTxPower ( void  ) const

Return the number of available transmission power levels.

Returns
the number of available transmission power levels

Definition at line 559 of file wifi-phy.cc.

References m_nTxPower.

uint8_t ns3::WifiPhy::GetNumberOfAntennas ( void  ) const
Returns
the number of antennas on this device

Definition at line 1318 of file wifi-phy.cc.

References m_numberOfAntennas.

Referenced by ns3::WifiRemoteStationManager::GetNumberOfAntennas(), GetTypeId(), SetErrorRateModel(), SetMaxSupportedRxSpatialStreams(), SetMaxSupportedTxSpatialStreams(), and SetRxNoiseFigure().

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetOfdmRate12Mbps ( )
static

Return a WifiMode for OFDM at 12Mbps.

Returns
a WifiMode for OFDM at 12Mbps

Definition at line 2769 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_1_2, and ns3::WIFI_MOD_CLASS_OFDM.

Referenced by Configure80211a(), ConfigureHolland(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetOfdmRate12MbpsBW10MHz ( )
static

Return a WifiMode for OFDM at 12Mbps with 10MHz channel spacing.

Returns
a WifiMode for OFDM at 12Mbps with 10MHz channel spacing

Definition at line 2892 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_1_2, and ns3::WIFI_MOD_CLASS_OFDM.

Referenced by Configure80211_10Mhz(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetOfdmRate12MbpsBW5MHz ( )
static

Return a WifiMode for OFDM at 12Mbps with 5MHz channel spacing.

Returns
a WifiMode for OFDM at 12Mbps with 5MHz channel spacing

Definition at line 3015 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_2_3, and ns3::WIFI_MOD_CLASS_OFDM.

Referenced by Configure80211_5Mhz(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetOfdmRate13_5MbpsBW5MHz ( )
static

Return a WifiMode for OFDM at 13.5Mbps with 5MHz channel spacing.

Returns
a WifiMode for OFDM at 13.5Mbps with 5MHz channel spacing

Definition at line 3027 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_3_4, and ns3::WIFI_MOD_CLASS_OFDM.

Referenced by Configure80211_5Mhz(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetOfdmRate18Mbps ( )
static

Return a WifiMode for OFDM at 18Mbps.

Returns
a WifiMode for OFDM at 18Mbps

Definition at line 2781 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_3_4, and ns3::WIFI_MOD_CLASS_OFDM.

Referenced by Configure80211a(), ConfigureHolland(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetOfdmRate18MbpsBW10MHz ( )
static

Return a WifiMode for OFDM at 18Mbps with 10MHz channel spacing.

Returns
a WifiMode for OFDM at 18Mbps with 10MHz channel spacing

Definition at line 2904 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_3_4, and ns3::WIFI_MOD_CLASS_OFDM.

Referenced by Configure80211_10Mhz(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetOfdmRate1_5MbpsBW5MHz ( )
static

Return a WifiMode for OFDM at 1.5Mbps with 5MHz channel spacing.

Returns
a WifiMode for OFDM at 1.5Mbps with 5MHz channel spacing

Definition at line 2943 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_1_2, and ns3::WIFI_MOD_CLASS_OFDM.

Referenced by Configure80211_5Mhz(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and GetPlcpHeaderMode().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetOfdmRate24Mbps ( )
static

Return a WifiMode for OFDM at 24Mbps.

Returns
a WifiMode for OFDM at 24Mbps

Definition at line 2793 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_1_2, and ns3::WIFI_MOD_CLASS_OFDM.

Referenced by Configure80211a(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetOfdmRate24MbpsBW10MHz ( )
static

Return a WifiMode for OFDM at 24Mbps with 10MHz channel spacing.

Returns
a WifiMode for OFDM at 24Mbps with 10MHz channel spacing

Definition at line 2916 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_2_3, and ns3::WIFI_MOD_CLASS_OFDM.

Referenced by Configure80211_10Mhz(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetOfdmRate27MbpsBW10MHz ( )
static

Return a WifiMode for OFDM at 27Mbps with 10MHz channel spacing.

Returns
a WifiMode for OFDM at 27Mbps with 10MHz channel spacing

Definition at line 2928 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_3_4, and ns3::WIFI_MOD_CLASS_OFDM.

Referenced by Configure80211_10Mhz(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetOfdmRate2_25MbpsBW5MHz ( )
static

Return a WifiMode for OFDM at 2.25Mbps with 5MHz channel spacing.

Returns
a WifiMode for OFDM at 2.25Mbps with 5MHz channel spacing

Definition at line 2955 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_3_4, and ns3::WIFI_MOD_CLASS_OFDM.

Referenced by Configure80211_5Mhz(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetOfdmRate36Mbps ( )
static

Return a WifiMode for OFDM at 36Mbps.

Returns
a WifiMode for OFDM at 36Mbps

Definition at line 2805 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_3_4, and ns3::WIFI_MOD_CLASS_OFDM.

Referenced by Configure80211a(), ConfigureHolland(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetOfdmRate3MbpsBW10MHz ( )
static

Return a WifiMode for OFDM at 3Mbps with 10MHz channel spacing.

Returns
a WifiMode for OFDM at 3Mbps with 10MHz channel spacing

Definition at line 2844 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_1_2, and ns3::WIFI_MOD_CLASS_OFDM.

Referenced by Configure80211_10Mhz(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and GetPlcpHeaderMode().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetOfdmRate3MbpsBW5MHz ( )
static

Return a WifiMode for OFDM at 3Mbps with 5MHz channel spacing.

Returns
a WifiMode for OFDM at 3Mbps with 5MHz channel spacing

Definition at line 2967 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_1_2, and ns3::WIFI_MOD_CLASS_OFDM.

Referenced by Configure80211_5Mhz(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetOfdmRate48Mbps ( )
static

Return a WifiMode for OFDM at 48Mbps.

Returns
a WifiMode for OFDM at 48Mbps

Definition at line 2817 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_2_3, and ns3::WIFI_MOD_CLASS_OFDM.

Referenced by Configure80211a(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetOfdmRate4_5MbpsBW10MHz ( )
static

Return a WifiMode for OFDM at 4.5Mbps with 10MHz channel spacing.

Returns
a WifiMode for OFDM at 4.5Mbps with 10MHz channel spacing

Definition at line 2856 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_3_4, and ns3::WIFI_MOD_CLASS_OFDM.

Referenced by Configure80211_10Mhz(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetOfdmRate4_5MbpsBW5MHz ( )
static

Return a WifiMode for OFDM at 4.5Mbps with 5MHz channel spacing.

Returns
a WifiMode for OFDM at 4.5Mbps with 5MHz channel spacing

Definition at line 2979 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_3_4, and ns3::WIFI_MOD_CLASS_OFDM.

Referenced by Configure80211_5Mhz(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetOfdmRate54Mbps ( )
static

Return a WifiMode for OFDM at 54Mbps.

Returns
a WifiMode for OFDM at 54Mbps

Definition at line 2829 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_3_4, and ns3::WIFI_MOD_CLASS_OFDM.

Referenced by Configure80211a(), ConfigureHolland(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetOfdmRate6Mbps ( )
static

Return a WifiMode for OFDM at 6Mbps.

Returns
a WifiMode for OFDM at 6Mbps

Definition at line 2745 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_1_2, and ns3::WIFI_MOD_CLASS_OFDM.

Referenced by Configure80211a(), ConfigureHolland(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and GetPlcpHeaderMode().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetOfdmRate6MbpsBW10MHz ( )
static

Return a WifiMode for OFDM at 6Mbps with 10MHz channel spacing.

Returns
a WifiMode for OFDM at 6Mbps with 10MHz channel spacing

Definition at line 2868 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_1_2, and ns3::WIFI_MOD_CLASS_OFDM.

Referenced by Configure80211_10Mhz(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetOfdmRate6MbpsBW5MHz ( )
static

Return a WifiMode for OFDM at 6Mbps with 5MHz channel spacing.

Returns
a WifiMode for OFDM at 6Mbps with 5MHz channel spacing

Definition at line 2991 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_1_2, and ns3::WIFI_MOD_CLASS_OFDM.

Referenced by Configure80211_5Mhz(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetOfdmRate9Mbps ( )
static

Return a WifiMode for OFDM at 9Mbps.

Returns
a WifiMode for OFDM at 9Mbps

Definition at line 2757 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_3_4, and ns3::WIFI_MOD_CLASS_OFDM.

Referenced by Configure80211a(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetOfdmRate9MbpsBW10MHz ( )
static

Return a WifiMode for OFDM at 9Mbps with 10MHz channel spacing.

Returns
a WifiMode for OFDM at 9Mbps with 10MHz channel spacing

Definition at line 2880 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_3_4, and ns3::WIFI_MOD_CLASS_OFDM.

Referenced by Configure80211_10Mhz(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetOfdmRate9MbpsBW5MHz ( )
static

Return a WifiMode for OFDM at 9Mbps with 5MHz channel spacing.

Returns
a WifiMode for OFDM at 9Mbps with 5MHz channel spacing

Definition at line 3003 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_3_4, and ns3::WIFI_MOD_CLASS_OFDM.

Referenced by Configure80211_5Mhz(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Time ns3::WifiPhy::GetPayloadDuration ( uint32_t  size,
WifiTxVector  txVector,
uint16_t  frequency 
)
Parameters
sizethe number of bytes in the packet to send
txVectorthe TXVECTOR used for the transmission of this packet
frequencythe channel center frequency (MHz)
Returns
the duration of the payload

Definition at line 1964 of file wifi-phy.cc.

References ns3::NORMAL_MPDU.

Referenced by CalculateTxDuration(), and TxDurationTest::CheckPayloadDuration().

+ Here is the caller graph for this function:

Time ns3::WifiPhy::GetPayloadDuration ( uint32_t  size,
WifiTxVector  txVector,
uint16_t  frequency,
MpduType  mpdutype,
uint8_t  incFlag 
)
Parameters
sizethe number of bytes in the packet to send
txVectorthe TXVECTOR used for the transmission of this packet
frequencythe channel center frequency (MHz)
mpdutypethe type of the MPDU as defined in WifiPhy::MpduType.
incFlagthis flag is used to indicate that the static variables need to be update or not. This function is called a couple of times for the same packet so static variables should not be increased each time
Returns
the duration of the payload

Definition at line 1970 of file wifi-phy.cc.

References ns3::FemtoSeconds(), ns3::WifiTxVector::GetChannelWidth(), ns3::WifiMode::GetDataRate(), ns3::Time::GetFemtoSeconds(), ns3::WifiTxVector::GetGuardInterval(), ns3::WifiMode::GetMcsValue(), ns3::WifiTxVector::GetMode(), ns3::WifiMode::GetModulationClass(), ns3::Time::GetNanoSeconds(), ns3::WifiTxVector::GetNss(), ns3::WifiTxVector::GetPreambleType(), ns3::WifiMode::GetUniqueName(), Is2_4Ghz(), ns3::WifiTxVector::IsStbc(), ns3::LAST_MPDU_IN_AGGREGATE, m_totalAmpduNumSymbols, m_totalAmpduSize, ns3::MicroSeconds(), ns3::MPDU_IN_AGGREGATE, ns3::NanoSeconds(), ns3::NORMAL_MPDU, NS_ASSERT, NS_FATAL_ERROR, NS_LOG_FUNCTION, ns3::Seconds(), ns3::WIFI_MOD_CLASS_DSSS, ns3::WIFI_MOD_CLASS_ERP_OFDM, ns3::WIFI_MOD_CLASS_HE, ns3::WIFI_MOD_CLASS_HR_DSSS, ns3::WIFI_MOD_CLASS_HT, ns3::WIFI_MOD_CLASS_OFDM, ns3::WIFI_MOD_CLASS_VHT, and ns3::WIFI_PREAMBLE_NONE.

+ Here is the call graph for this function:

Time ns3::WifiPhy::GetPlcpHtSigHeaderDuration ( WifiPreamble  preamble)
static
Parameters
preamblethe type of preamble
Returns
the duration of the HT-SIG in Mixed Format and greenfield format PLCP header

Definition at line 1733 of file wifi-phy.cc.

References ns3::MicroSeconds(), ns3::WIFI_PREAMBLE_HT_GF, and ns3::WIFI_PREAMBLE_HT_MF.

Referenced by ns3::InterferenceHelper::CalculatePlcpHeaderPer(), ns3::InterferenceHelper::CalculatePlcpPayloadPer(), and CalculatePlcpPreambleAndHeaderDuration().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Time ns3::WifiPhy::GetPlcpSigA1Duration ( WifiPreamble  preamble)
static
Parameters
preamblethe type of preamble
Returns
the duration of the SIG-A1 in PLCP header

Definition at line 1748 of file wifi-phy.cc.

References ns3::MicroSeconds(), ns3::WIFI_PREAMBLE_HE_SU, and ns3::WIFI_PREAMBLE_VHT.

Referenced by ns3::InterferenceHelper::CalculatePlcpHeaderPer(), ns3::InterferenceHelper::CalculatePlcpPayloadPer(), and CalculatePlcpPreambleAndHeaderDuration().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Time ns3::WifiPhy::GetPlcpSigA2Duration ( WifiPreamble  preamble)
static
Parameters
preamblethe type of preamble
Returns
the duration of the SIG-A2 in PLCP header

Definition at line 1763 of file wifi-phy.cc.

References ns3::MicroSeconds(), ns3::WIFI_PREAMBLE_HE_SU, and ns3::WIFI_PREAMBLE_VHT.

Referenced by ns3::InterferenceHelper::CalculatePlcpHeaderPer(), ns3::InterferenceHelper::CalculatePlcpPayloadPer(), and CalculatePlcpPreambleAndHeaderDuration().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Time ns3::WifiPhy::GetPlcpSigBDuration ( WifiPreamble  preamble)
static
Parameters
preamblethe type of preamble
Returns
the duration of the SIG-B in PLCP header

Definition at line 1778 of file wifi-phy.cc.

References ns3::MicroSeconds(), ns3::WIFI_PREAMBLE_HE_SU, and ns3::WIFI_PREAMBLE_VHT.

Referenced by ns3::InterferenceHelper::CalculatePlcpHeaderPer(), ns3::InterferenceHelper::CalculatePlcpPayloadPer(), and CalculatePlcpPreambleAndHeaderDuration().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Time ns3::WifiPhy::GetPlcpTrainingSymbolDuration ( WifiTxVector  txVector)
static
Parameters
txVectorthe transmission parameters used for this packet
Returns
the training symbol duration

Definition at line 1686 of file wifi-phy.cc.

References ns3::WifiTxVector::GetNess(), ns3::WifiTxVector::GetNss(), ns3::WifiTxVector::GetPreambleType(), ns3::MicroSeconds(), ns3::WIFI_PREAMBLE_HE_SU, ns3::WIFI_PREAMBLE_HT_GF, ns3::WIFI_PREAMBLE_HT_MF, and ns3::WIFI_PREAMBLE_VHT.

Referenced by ns3::InterferenceHelper::CalculatePlcpHeaderPer(), ns3::InterferenceHelper::CalculatePlcpPayloadPer(), and CalculatePlcpPreambleAndHeaderDuration().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

double ns3::WifiPhy::GetPowerDbm ( uint8_t  power) const

Get the power of the given power level in dBm.

In SpectrumWifiPhy implementation, the power levels are equally spaced (in dBm).

Parameters
powerthe power level
Returns
the transmission power in dBm at the given power level

Definition at line 726 of file wifi-phy.cc.

References m_nTxPower, m_txPowerBaseDbm, m_txPowerEndDbm, NS_ASSERT, and NS_ASSERT_MSG.

Referenced by ns3::ParfWifiManager::CheckInit(), ns3::AparfWifiManager::CheckInit(), ns3::RrpaaWifiManager::CheckInit(), ns3::ParfWifiManager::DoGetDataTxVector(), ns3::AparfWifiManager::DoGetDataTxVector(), ns3::RrpaaWifiManager::DoGetDataTxVector(), SendPacket(), ns3::YansWifiPhy::StartTx(), and ns3::SpectrumWifiPhy::StartTx().

+ Here is the caller graph for this function:

double ns3::WifiPhy::GetRxGain ( void  ) const

Return the reception gain (dB).

Returns
the reception gain in dB

Definition at line 585 of file wifi-phy.cc.

References m_rxGainDb.

Referenced by GetTypeId(), ns3::YansWifiChannel::Receive(), and ns3::SpectrumWifiPhy::StartRx().

+ Here is the caller graph for this function:

double ns3::WifiPhy::GetRxNoiseFigure ( void  ) const

Return the RX noise figure (dBm).

Returns
the RX noise figure in dBm

Definition at line 520 of file wifi-phy.cc.

References ns3::InterferenceHelper::GetNoiseFigure(), m_interference, and ns3::RatioToDb().

Referenced by GetTypeId().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool ns3::WifiPhy::GetShortPlcpPreambleSupported ( void  ) const

Return whether short PLCP preamble is supported.

Returns
if short PLCP preamble is supported or not

Definition at line 664 of file wifi-phy.cc.

References m_shortPreamble.

Referenced by ns3::StaWifiMac::GetCapabilities(), ns3::ApWifiMac::GetShortPreambleEnabled(), and GetTypeId().

+ Here is the caller graph for this function:

WifiPhyStandard ns3::WifiPhy::GetStandard ( void  ) const

Get the configured Wi-Fi standard.

Returns
the Wi-Fi standard that has been configured

Definition at line 1207 of file wifi-phy.cc.

References m_standard.

Referenced by ns3::SpectrumWifiPhy::GetBandBandwidth(), ns3::SpectrumWifiPhy::GetGuardBandwidth(), InitializeFrequencyChannelNumber(), and SetChannelNumber().

+ Here is the caller graph for this function:

Time ns3::WifiPhy::GetStateDuration ( void  )
Returns
the amount of time since the current state has started.

Definition at line 3607 of file wifi-phy.cc.

References m_state.

bool ns3::WifiPhy::GetStbc ( void  ) const

Return whether STBC is supported.

Returns
true if STBC is supported, false otherwise

Definition at line 611 of file wifi-phy.cc.

References m_stbc.

Referenced by ns3::MinstrelHtWifiManager::CalculateFirstMpduTxDuration(), ns3::MinstrelHtWifiManager::CalculateMpduTxDuration(), ns3::WifiRemoteStationManager::DoGetAckTxStbc(), ns3::WifiRemoteStationManager::DoGetBlockAckTxStbc(), ns3::WifiRemoteStationManager::DoGetCtsTxStbc(), and GetTypeId().

+ Here is the caller graph for this function:

std::vector< uint8_t > ns3::WifiPhy::GetSupportedChannelWidthSet ( void  ) const
Returns
a vector containing the supported channel widths, values in MHz

Definition at line 1428 of file wifi-phy.cc.

References m_supportedChannelWidthSet.

double ns3::WifiPhy::GetTxGain ( void  ) const

Return the transmission gain (dB).

Returns
the transmission gain in dB

Definition at line 572 of file wifi-phy.cc.

References m_txGainDb.

Referenced by GetTypeId(), ns3::YansWifiPhy::StartTx(), and ns3::SpectrumWifiPhy::StartTx().

+ Here is the caller graph for this function:

double ns3::WifiPhy::GetTxPowerEnd ( void  ) const

Return the maximum available transmission power level (dBm).

Returns
the maximum available transmission power level (dBm)

Definition at line 546 of file wifi-phy.cc.

References m_txPowerEndDbm.

Referenced by GetTypeId(), ns3::ParfWifiManager::SetupPhy(), ns3::AparfWifiManager::SetupPhy(), and ns3::RrpaaWifiManager::SetupPhy().

+ Here is the caller graph for this function:

double ns3::WifiPhy::GetTxPowerStart ( void  ) const

Return the minimum available transmission power level (dBm).

Returns
the minimum available transmission power level (dBm)

Definition at line 533 of file wifi-phy.cc.

References m_txPowerBaseDbm.

Referenced by GetTypeId(), ns3::ParfWifiManager::SetupPhy(), ns3::AparfWifiManager::SetupPhy(), and ns3::RrpaaWifiManager::SetupPhy().

+ Here is the caller graph for this function:

TypeId ns3::WifiPhy::GetTypeId ( void  )
static
WifiMode ns3::WifiPhy::GetVhtMcs0 ( )
static

Return MCS 0 from VHT MCS values.

Returns
MCS 0 from VHT MCS values

Definition at line 3301 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_VHT.

Referenced by Configure80211ac(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), GetMembershipSelectorModes(), and GetVhtPlcpHeaderMode().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetVhtMcs1 ( )
static

Return MCS 1 from VHT MCS values.

Returns
MCS 1 from VHT MCS values

Definition at line 3309 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_VHT.

Referenced by Configure80211ac(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and GetMembershipSelectorModes().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetVhtMcs2 ( )
static

Return MCS 2 from VHT MCS values.

Returns
MCS 2 from VHT MCS values

Definition at line 3317 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_VHT.

Referenced by Configure80211ac(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and GetMembershipSelectorModes().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetVhtMcs3 ( )
static

Return MCS 3 from VHT MCS values.

Returns
MCS 3 from VHT MCS values

Definition at line 3325 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_VHT.

Referenced by Configure80211ac(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and GetMembershipSelectorModes().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetVhtMcs4 ( )
static

Return MCS 4 from VHT MCS values.

Returns
MCS 4 from VHT MCS values

Definition at line 3333 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_VHT.

Referenced by Configure80211ac(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and GetMembershipSelectorModes().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetVhtMcs5 ( )
static

Return MCS 5 from VHT MCS values.

Returns
MCS 5 from VHT MCS values

Definition at line 3341 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_VHT.

Referenced by Configure80211ac(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and GetMembershipSelectorModes().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetVhtMcs6 ( )
static

Return MCS 6 from VHT MCS values.

Returns
MCS 6 from VHT MCS values

Definition at line 3349 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_VHT.

Referenced by Configure80211ac(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and GetMembershipSelectorModes().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetVhtMcs7 ( )
static

Return MCS 7 from VHT MCS values.

Returns
MCS 7 from VHT MCS values

Definition at line 3357 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_VHT.

Referenced by Configure80211ac(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and GetMembershipSelectorModes().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetVhtMcs8 ( )
static

Return MCS 8 from VHT MCS values.

Returns
MCS 8 from VHT MCS values

Definition at line 3365 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_VHT.

Referenced by Configure80211ac(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and GetMembershipSelectorModes().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetVhtMcs9 ( )
static

Return MCS 9 from VHT MCS values.

Returns
MCS 9 from VHT MCS values

Definition at line 3373 of file wifi-phy.cc.

References ns3::WifiModeFactory::CreateWifiMcs(), and ns3::WIFI_MOD_CLASS_VHT.

Referenced by Configure80211ac(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and GetMembershipSelectorModes().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WifiMode ns3::WifiPhy::GetVhtPlcpHeaderMode ( )
static
Returns
the WifiMode used for the transmission of the VHT-STF, VHT-LTF and VHT-SIG-B fields

Definition at line 1674 of file wifi-phy.cc.

References GetVhtMcs0().

Referenced by ns3::InterferenceHelper::CalculatePlcpHeaderPer().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::WifiPhy::InitializeFrequencyChannelNumber ( void  )
private

post-construction setting of frequency and/or channel number

This method exists to handle the fact that two attribute values, Frequency and ChannelNumber, are coupled. The initialization of these values needs to be deferred until after attribute construction time, to avoid static initialization order issues. This method is typically called either when ConfigureStandard () is called or when DoInitialize () is called.

Definition at line 452 of file wifi-phy.cc.

References GetChannelNumber(), GetStandard(), m_frequencyChannelNumberInitialized, m_initialChannelNumber, m_initialFrequency, NS_ASSERT_MSG, NS_FATAL_ERROR, NS_LOG_FUNCTION, SetChannelNumber(), SetFrequency(), and ns3::WIFI_PHY_STANDARD_UNSPECIFIED.

Referenced by ConfigureStandard(), and DoInitialize().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool ns3::WifiPhy::Is2_4Ghz ( double  frequency)
static
Parameters
frequencythe frequency to check
Returns
whether frequency is in the 2.4 GHz band

Definition at line 1276 of file wifi-phy.cc.

Referenced by Configure80211n(), ns3::RegularWifiMac::GetHeCapabilities(), and GetPayloadDuration().

+ Here is the caller graph for this function:

bool ns3::WifiPhy::Is5Ghz ( double  frequency)
static
Parameters
frequencythe frequency to check
Returns
whether frequency is in the 5 GHz band

Definition at line 1286 of file wifi-phy.cc.

Referenced by Configure80211ax(), Configure80211n(), and ns3::RegularWifiMac::GetHeCapabilities().

+ Here is the caller graph for this function:

bool ns3::WifiPhy::IsMcsSupported ( WifiMode  mcs) const

Check if the given WifiMode is supported by the PHY.

Parameters
mcsthe wifi mode to check
Returns
true if the given mode is supported, false otherwise

Definition at line 3528 of file wifi-phy.cc.

References GetMcs(), and GetNMcs().

Referenced by StartReceivePacket().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool ns3::WifiPhy::IsModeSupported ( WifiMode  mode) const

Check if the given WifiMode is supported by the PHY.

Parameters
modethe wifi mode to check
Returns
true if the given mode is supported, false otherwise

Definition at line 3515 of file wifi-phy.cc.

References GetMode(), and GetNModes().

Referenced by StartReceivePacket().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool ns3::WifiPhy::IsStateBusy ( void  )
Returns
true of the current state of the PHY layer is not WifiPhy::IDLE, false otherwise.

Definition at line 3577 of file wifi-phy.cc.

References m_state.

bool ns3::WifiPhy::IsStateCcaBusy ( void  )
Returns
true of the current state of the PHY layer is WifiPhy::CCA_BUSY, false otherwise.

Definition at line 3565 of file wifi-phy.cc.

References m_state.

bool ns3::WifiPhy::IsStateIdle ( void  )
Returns
true of the current state of the PHY layer is WifiPhy::IDLE, false otherwise.

Definition at line 3571 of file wifi-phy.cc.

References m_state.

Referenced by ns3::MacLow::FastAckTimeout(), and ns3::MacLow::SuperFastAckTimeout().

+ Here is the caller graph for this function:

bool ns3::WifiPhy::IsStateRx ( void  )
Returns
true of the current state of the PHY layer is WifiPhy::RX, false otherwise.

Definition at line 3583 of file wifi-phy.cc.

References m_state.

Referenced by EndReceive(), ns3::MacLow::SendBlockAckAfterAmpdu(), and StartReceivePacket().

+ Here is the caller graph for this function:

bool ns3::WifiPhy::IsStateSleep ( void  )
Returns
true if the current state of the PHY layer is WifiPhy::SLEEP, false otherwise.

Definition at line 3601 of file wifi-phy.cc.

References m_state.

bool ns3::WifiPhy::IsStateSwitching ( void  )
Returns
true of the current state of the PHY layer is WifiPhy::SWITCHING, false otherwise.

Definition at line 3595 of file wifi-phy.cc.

References m_state.

Referenced by DoChannelSwitch(), and DoFrequencySwitch().

+ Here is the caller graph for this function:

bool ns3::WifiPhy::IsStateTx ( void  )
Returns
true of the current state of the PHY layer is WifiPhy::TX, false otherwise.

Definition at line 3589 of file wifi-phy.cc.

References m_state.

Referenced by ns3::MacLow::SendBlockAckAfterAmpdu(), and ns3::MacLow::StartTransmission().

+ Here is the caller graph for this function:

bool ns3::WifiPhy::IsValidTxVector ( WifiTxVector  txVector)
static

The standard disallows certain combinations of WifiMode, number of spatial streams, and channel widths.

This method can be used to check whether this WifiTxVector contains an invalid combination.

Parameters
txVectorthe WifiTxVector to inspect
Returns
true if the WifiTxVector parameters are allowed by the standard

Definition at line 3479 of file wifi-phy.cc.

References ns3::WifiTxVector::GetChannelWidth(), ns3::WifiTxVector::GetMode(), ns3::WifiTxVector::GetNss(), and ns3::WifiMode::GetUniqueName().

Referenced by ns3::IdealWifiManager::DoGetDataTxVector(), and ns3::MinstrelHtWifiManager::IsValidMcs().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::WifiPhy::MaybeCcaBusyDuration ( void  )
private

Eventually switch to CCA busy.

Definition at line 2488 of file wifi-phy.cc.

References ns3::DbmToW(), GetCcaMode1Threshold(), ns3::InterferenceHelper::GetEnergyDuration(), ns3::Time::IsZero(), m_interference, and m_state.

Referenced by StartReceivePreambleAndHeader(), and StartRx().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::WifiPhy::NotifyMonitorSniffRx ( Ptr< const Packet packet,
uint16_t  channelFreqMhz,
WifiTxVector  txVector,
MpduInfo  aMpdu,
SignalNoiseDbm  signalNoise 
)

Public method used to fire a MonitorSniffer trace for a wifi packet being received.

Implemented for encapsulation purposes.

Parameters
packetthe packet being received
channelFreqMhzthe frequency in MHz at which the packet is received. Note that in real devices this is normally the frequency to which the receiver is tuned, and this can be different than the frequency at which the packet was originally transmitted. This is because it is possible to have the receiver tuned on a given channel and still to be able to receive packets on a nearby channel.
txVectorthe TXVECTOR that holds rx parameters
aMpduthe type of the packet (0 is not A-MPDU, 1 is a MPDU that is part of an A-MPDU and 2 is the last MPDU in an A-MPDU) and the A-MPDU reference number (must be a different value for each A-MPDU but the same for each subframe within one A-MPDU)
signalNoisesignal power and noise power in dBm (noise power includes the noise figure)

Definition at line 2304 of file wifi-phy.cc.

References m_phyMonitorSniffRxTrace.

Referenced by EndReceive().

+ Here is the caller graph for this function:

void ns3::WifiPhy::NotifyMonitorSniffTx ( Ptr< const Packet packet,
uint16_t  channelFreqMhz,
WifiTxVector  txVector,
MpduInfo  aMpdu 
)

Public method used to fire a MonitorSniffer trace for a wifi packet being transmitted.

Implemented for encapsulation purposes.

Parameters
packetthe packet being transmitted
channelFreqMhzthe frequency in MHz at which the packet is transmitted.
txVectorthe TXVECTOR that holds tx parameters
aMpduthe type of the packet (0 is not A-MPDU, 1 is a MPDU that is part of an A-MPDU and 2 is the last MPDU in an A-MPDU) and the A-MPDU reference number (must be a different value for each A-MPDU but the same for each subframe within one A-MPDU)

Definition at line 2310 of file wifi-phy.cc.

References m_phyMonitorSniffTxTrace.

Referenced by SendPacket().

+ Here is the caller graph for this function:

void ns3::WifiPhy::NotifyRxBegin ( Ptr< const Packet packet)

Public method used to fire a PhyRxBegin trace.

Implemented for encapsulation purposes.

Parameters
packetthe packet being received

Definition at line 2286 of file wifi-phy.cc.

References m_phyRxBeginTrace.

Referenced by StartRx().

+ Here is the caller graph for this function:

void ns3::WifiPhy::NotifyRxDrop ( Ptr< const Packet packet)

Public method used to fire a PhyRxDrop trace.

Implemented for encapsulation purposes.

Parameters
packetthe packet that was not successfully received

Definition at line 2298 of file wifi-phy.cc.

References m_phyRxDropTrace.

Referenced by AbortCurrentReception(), EndReceive(), StartReceivePacket(), StartReceivePreambleAndHeader(), and StartRx().

+ Here is the caller graph for this function:

void ns3::WifiPhy::NotifyRxEnd ( Ptr< const Packet packet)

Public method used to fire a PhyRxEnd trace.

Implemented for encapsulation purposes.

Parameters
packetthe packet received

Definition at line 2292 of file wifi-phy.cc.

References m_phyRxEndTrace.

Referenced by EndReceive().

+ Here is the caller graph for this function:

void ns3::WifiPhy::NotifyTxBegin ( Ptr< const Packet packet)

Public method used to fire a PhyTxBegin trace.

Implemented for encapsulation purposes.

Parameters
packetthe packet being transmitted

Definition at line 2268 of file wifi-phy.cc.

References m_phyTxBeginTrace.

Referenced by SendPacket().

+ Here is the caller graph for this function:

void ns3::WifiPhy::NotifyTxDrop ( Ptr< const Packet packet)

Public method used to fire a PhyTxDrop trace.

Implemented for encapsulation purposes.

Parameters
packetthe packet that was failed to transmitted

Definition at line 2280 of file wifi-phy.cc.

References m_phyTxDropTrace.

Referenced by SendPacket().

+ Here is the caller graph for this function:

void ns3::WifiPhy::NotifyTxEnd ( Ptr< const Packet packet)

Public method used to fire a PhyTxEnd trace.

Implemented for encapsulation purposes.

Parameters
packetthe packet that was transmitted

Definition at line 2274 of file wifi-phy.cc.

References m_phyTxEndTrace.

void ns3::WifiPhy::RegisterListener ( WifiPhyListener listener)
Parameters
listenerthe new listener

Add the input listener to the list of objects to be notified of PHY-level events.

Definition at line 440 of file wifi-phy.cc.

References m_state.

Referenced by SpectrumWifiPhyListenerTest::DoSetup(), ns3::DcfManager::SetupPhyListener(), and ns3::MacLow::SetupPhyMacLowListener().

+ Here is the caller graph for this function:

void ns3::WifiPhy::ResumeFromSleep ( void  )

Resume from sleep mode.

Definition at line 1638 of file wifi-phy.cc.

References CCA_BUSY, ns3::DbmToW(), GetCcaMode1Threshold(), ns3::InterferenceHelper::GetEnergyDuration(), IDLE, m_interference, m_state, NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, RX, SLEEP, SWITCHING, and TX.

Referenced by ns3::WifiRadioEnergyModelHelper::DoInstall().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::WifiPhy::SendPacket ( Ptr< const Packet packet,
WifiTxVector  txVector,
MpduType  mpdutype = NORMAL_MPDU 
)
Parameters
packetthe packet to send
txVectorthe TXVECTOR that has tx parameters such as mode, the transmission mode to use to send this packet, and txPowerLevel, a power level to use to send this packet. The real transmission power is calculated as txPowerMin + txPowerLevel * (txPowerMax - txPowerMin) / nTxLevels
mpdutypethe type of the MPDU as defined in WifiPhy::MpduType.

Definition at line 2316 of file wifi-phy.cc.

References ns3::Packet::AddPacketTag(), CalculateTxDuration(), ns3::EventId::Cancel(), ns3::Packet::Copy(), ns3::WifiMode::GetDataRate(), GetFrequency(), GetMaxSupportedTxSpatialStreams(), ns3::WifiTxVector::GetMode(), ns3::WifiTxVector::GetNss(), GetPowerDbm(), ns3::WifiTxVector::GetPreambleType(), ns3::Packet::GetSize(), ns3::WifiTxVector::GetTxPowerLevel(), ns3::Time::IsStrictlyPositive(), m_endPlcpRxEvent, m_endRxEvent, m_interference, m_state, m_txMpduReferenceNumber, ns3::MPDU_IN_AGGREGATE, ns3::MpduInfo::mpduRefNumber, NotifyMonitorSniffTx(), ns3::InterferenceHelper::NotifyRxEnd(), NotifyTxBegin(), NotifyTxDrop(), NS_ASSERT, NS_FATAL_ERROR, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::Packet::RemovePacketTag(), StartTx(), ns3::MpduInfo::type, and ns3::WIFI_PREAMBLE_NONE.

Referenced by ns3::MacLow::ForwardDown(), and ns3::MacLow::SendMpdu().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::WifiPhy::SetCcaMode1Threshold ( double  threshold)

Sets the CCA threshold (dBm).

The energy of a received signal should be higher than this threshold to allow the PHY layer to declare CCA BUSY state.

Parameters
thresholdthe CCA threshold in dBm

Definition at line 499 of file wifi-phy.cc.

References ns3::DbmToW(), m_ccaMode1ThresholdW, and NS_LOG_FUNCTION.

Referenced by SpectrumWifiPhyBasicTest::DoSetup(), and GetTypeId().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::WifiPhy::SetChannelNumber ( uint8_t  id)
virtual

Set channel number.

Channel center frequency = Channel starting frequency + 5 MHz * (nch - 1)

where Starting channel frequency is standard-dependent, as defined in (Section 18.3.8.4.2 "Channel numbering"; IEEE Std 802.11-2012). This method may fail to take action if the Phy model determines that the channel number cannot be switched for some reason (e.g. sleep state)

Parameters
idthe channel number

Reimplemented in ns3::SpectrumWifiPhy.

Definition at line 1442 of file wifi-phy.cc.

References DoChannelSwitch(), f(), GetChannelNumber(), GetFrequencyWidthForChannelNumberStandard(), GetStandard(), m_channelCenterFrequency, m_channelNumber, m_initialChannelNumber, m_isConstructed, NS_FATAL_ERROR, NS_LOG_DEBUG, NS_LOG_FUNCTION, SetChannelWidth(), and ns3::WIFI_PHY_STANDARD_UNSPECIFIED.

Referenced by ns3::DefaultChannelScheduler::AssignDefaultCchAccess(), ConfigureChannelForStandard(), DoChannelSwitch(), GetTypeId(), InitializeFrequencyChannelNumber(), ns3::WaveHelper::Install(), ns3::SpectrumWifiPhy::SetChannelNumber(), InterferenceHelperSequenceTest::SwitchCh(), ns3::MeshWifiInterfaceMac::SwitchFrequencyChannel(), and ns3::DefaultChannelScheduler::SwitchToNextChannel().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::WifiPhy::SetChannelWidth ( uint8_t  channelwidth)
virtual
Parameters
channelwidthchannel width

Reimplemented in ns3::SpectrumWifiPhy.

Definition at line 1296 of file wifi-phy.cc.

References AddSupportedChannelWidth(), m_channelWidth, and NS_ASSERT_MSG.

Referenced by ConfigureChannelForStandard(), ConfigureDefaultsForStandard(), GetTypeId(), SetChannelNumber(), and ns3::SpectrumWifiPhy::SetChannelWidth().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::WifiPhy::SetDevice ( const Ptr< NetDevice device)

Sets the device this PHY is associated with.

Parameters
devicethe device this PHY is associated with

Definition at line 670 of file wifi-phy.cc.

References m_device.

Referenced by ns3::SpectrumWifiPhyHelper::Create(), and ns3::YansWifiPhyHelper::Create().

+ Here is the caller graph for this function:

void ns3::WifiPhy::SetEdThreshold ( double  threshold)

Sets the energy detection threshold (dBm).

The energy of a received signal should be higher than this threshold (dbm) to allow the PHY layer to detect the signal.

Parameters
thresholdthe energy detction threshold in dBm

Definition at line 480 of file wifi-phy.cc.

References ns3::DbmToW(), m_edThresholdW, and NS_LOG_FUNCTION.

Referenced by GetTypeId().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::WifiPhy::SetErrorRateModel ( const Ptr< ErrorRateModel rate)

Sets the error rate model.

Parameters
ratethe error rate model

Definition at line 701 of file wifi-phy.cc.

References GetNumberOfAntennas(), m_interference, ns3::InterferenceHelper::SetErrorRateModel(), and ns3::InterferenceHelper::SetNumberOfReceiveAntennas().

Referenced by ns3::SpectrumWifiPhyHelper::Create(), ns3::YansWifiPhyHelper::Create(), SpectrumWifiPhyBasicTest::DoSetup(), PsrExperiment::Run(), InterferenceExperiment::Run(), and CollisionExperiment::Run().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::WifiPhy::SetFrameCaptureModel ( const Ptr< FrameCaptureModel rate)

Sets the frame capture model.

Parameters
ratethe frame capture model

Definition at line 714 of file wifi-phy.cc.

References m_frameCaptureModel.

Referenced by GetTypeId(), and InterferenceExperiment::Run().

+ Here is the caller graph for this function:

void ns3::WifiPhy::SetFrequency ( uint16_t  freq)
virtual
Parameters
freqthe operating center frequency (MHz) on this node.

Reimplemented in ns3::SpectrumWifiPhy.

Definition at line 1213 of file wifi-phy.cc.

References DoFrequencySwitch(), FindChannelNumberForFrequencyWidth(), GetChannelWidth(), GetFrequency(), m_channelCenterFrequency, m_channelNumber, m_initialFrequency, m_isConstructed, NS_LOG_DEBUG, and NS_LOG_FUNCTION.

Referenced by ConfigureChannelForStandard(), ConfigureDefaultsForStandard(), DoFrequencySwitch(), GetTypeId(), InitializeFrequencyChannelNumber(), and ns3::SpectrumWifiPhy::SetFrequency().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::WifiPhy::SetGreenfield ( bool  greenfield)

Enable or disable Greenfield support.

Parameters
greenfieldEnable or disable Greenfield

Definition at line 617 of file wifi-phy.cc.

References m_greenfield, and NS_LOG_FUNCTION.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

void ns3::WifiPhy::SetGuardInterval ( Time  guardInterval)
Parameters
guardIntervalthe supported HE guard interval

Definition at line 643 of file wifi-phy.cc.

References m_guardInterval, ns3::NanoSeconds(), NS_ASSERT, and NS_LOG_FUNCTION.

Referenced by GetTypeId().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::WifiPhy::SetLdpc ( bool  ldpc)

Enable or disable LDPC.

Parameters
ldpcEnable or disable LDPC

Definition at line 591 of file wifi-phy.cc.

References m_ldpc, and NS_LOG_FUNCTION.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

void ns3::WifiPhy::SetMaxSupportedRxSpatialStreams ( uint8_t  streams)
Parameters
streamsthe maximum number of supported RX spatial streams.

Definition at line 1338 of file wifi-phy.cc.

References GetNumberOfAntennas(), m_rxSpatialStreams, and NS_ASSERT.

Referenced by GetTypeId().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::WifiPhy::SetMaxSupportedTxSpatialStreams ( uint8_t  streams)
Parameters
streamsthe maximum number of supported TX spatial streams.

Definition at line 1324 of file wifi-phy.cc.

References ConfigureHtDeviceMcsSet(), GetNumberOfAntennas(), m_txSpatialStreams, and NS_ASSERT.

Referenced by GetTypeId().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::WifiPhy::SetMobility ( const Ptr< MobilityModel mobility)

assign a mobility model to this device

This method allows a user to specify a mobility model that should be associated with this physical layer. Calling this method is optional and only necessary if the user wants to override the mobility model that is aggregated to the node.

Parameters
mobilitythe mobility model this PHY is associated with

Definition at line 682 of file wifi-phy.cc.

References m_mobility, and third::mobility.

Referenced by ns3::SpectrumWifiPhyHelper::Create(), PsrExperiment::Run(), InterferenceExperiment::Run(), CollisionExperiment::Run(), and ns3::WifiSpectrumPhyInterface::SetMobility().

+ Here is the caller graph for this function:

void ns3::WifiPhy::SetNTxPower ( uint32_t  n)

Sets the number of transmission power levels available between the minimum level and the maximum level.

Transmission power levels are equally separated (in dBm) with the minimum and the maximum included.

Parameters
nthe number of available levels

Definition at line 552 of file wifi-phy.cc.

References m_nTxPower, and NS_LOG_FUNCTION.

void ns3::WifiPhy::SetNumberOfAntennas ( uint8_t  antennas)
Parameters
antennasthe number of antennas on this node.

Definition at line 1310 of file wifi-phy.cc.

References m_interference, m_numberOfAntennas, NS_ASSERT_MSG, and ns3::InterferenceHelper::SetNumberOfReceiveAntennas().

Referenced by GetTypeId().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::WifiPhy::SetReceiveErrorCallback ( RxErrorCallback  callback)
Parameters
callbackthe callback to invoke upon erroneous packet reception.

Definition at line 434 of file wifi-phy.cc.

References m_state.

Referenced by SpectrumWifiPhyBasicTest::DoSetup(), ns3::MacLow::ResetPhy(), and ns3::MacLow::SetPhy().

+ Here is the caller graph for this function:

void ns3::WifiPhy::SetReceiveOkCallback ( RxOkCallback  callback)
Parameters
callbackthe callback to invoke upon successful packet reception.

Definition at line 428 of file wifi-phy.cc.

References m_state.

Referenced by SpectrumWifiPhyBasicTest::DoSetup(), ns3::MacLow::ResetPhy(), and ns3::MacLow::SetPhy().

+ Here is the caller graph for this function:

void ns3::WifiPhy::SetRxGain ( double  gain)

Sets the reception gain (dB).

Parameters
gainthe reception gain in dB

Definition at line 578 of file wifi-phy.cc.

References m_rxGainDb, and NS_LOG_FUNCTION.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

void ns3::WifiPhy::SetRxNoiseFigure ( double  noiseFigureDb)

Sets the RX loss (dB) in the Signal-to-Noise-Ratio due to non-idealities in the receiver.

Parameters
noiseFigureDbnoise figure in dB

Definition at line 512 of file wifi-phy.cc.

References ns3::DbToRatio(), GetNumberOfAntennas(), m_interference, NS_LOG_FUNCTION, ns3::InterferenceHelper::SetNoiseFigure(), and ns3::InterferenceHelper::SetNumberOfReceiveAntennas().

Referenced by GetTypeId().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::WifiPhy::SetShortGuardInterval ( bool  shortGuardInterval)

Enable or disable support for HT/VHT short guard interval.

Parameters
shortGuardIntervalEnable or disable support for short guard interval

Definition at line 630 of file wifi-phy.cc.

References m_shortGuardInterval, and NS_LOG_FUNCTION.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

void ns3::WifiPhy::SetShortPlcpPreambleSupported ( bool  preamble)

Enable or disable short PLCP preamble.

Parameters
preamblesets whether short PLCP preamble is supported or not

Definition at line 657 of file wifi-phy.cc.

References m_shortPreamble, and NS_LOG_FUNCTION.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

void ns3::WifiPhy::SetSleepMode ( void  )

Put in sleep mode.

Definition at line 1606 of file wifi-phy.cc.

References CCA_BUSY, GetDelayUntilIdle(), IDLE, m_state, NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, RX, ns3::Simulator::Schedule(), SLEEP, SWITCHING, and TX.

Referenced by ns3::WifiRadioEnergyModelHelper::DoInstall().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::WifiPhy::SetStbc ( bool  stbc)

Enable or disable STBC.

Parameters
stbcEnable or disable STBC

Definition at line 604 of file wifi-phy.cc.

References m_stbc, and NS_LOG_FUNCTION.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

void ns3::WifiPhy::SetTxGain ( double  gain)

Sets the transmission gain (dB).

Parameters
gainthe transmission gain in dB

Definition at line 565 of file wifi-phy.cc.

References m_txGainDb, and NS_LOG_FUNCTION.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

void ns3::WifiPhy::SetTxPowerEnd ( double  end)

Sets the maximum available transmission power level (dBm).

Parameters
endthe maximum transmission power level (dBm)

Definition at line 539 of file wifi-phy.cc.

References m_txPowerEndDbm, and NS_LOG_FUNCTION.

Referenced by GetTypeId(), and InterferenceExperiment::Run().

+ Here is the caller graph for this function:

void ns3::WifiPhy::SetTxPowerStart ( double  start)

Sets the minimum available transmission power level (dBm).

Parameters
startthe minimum transmission power level (dBm)

Definition at line 526 of file wifi-phy.cc.

References m_txPowerBaseDbm, NS_LOG_FUNCTION, and visualizer.core::start().

Referenced by GetTypeId(), and InterferenceExperiment::Run().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::WifiPhy::StartReceivePacket ( Ptr< Packet packet,
WifiTxVector  txVector,
MpduType  mpdutype,
Ptr< InterferenceHelper::Event event 
)

Starting receiving the payload of a packet (i.e.

the first bit of the packet has arrived).

Parameters
packetthe arriving packet
txVectorthe TXVECTOR of the arriving packet
mpdutypethe type of the MPDU as defined in WifiPhy::MpduType.
eventthe corresponding event of the first time the packet arrives

Definition at line 2503 of file wifi-phy.cc.

References ns3::InterferenceHelper::CalculatePlcpHeaderSnrPer(), ns3::WifiTxVector::GetMode(), ns3::WifiTxVector::GetPreambleType(), ns3::UniformRandomVariable::GetValue(), ns3::EventId::IsExpired(), IsMcsSupported(), IsModeSupported(), IsStateRx(), m_endPlcpRxEvent, m_interference, m_plcpSuccess, m_random, NotifyRxDrop(), NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::InterferenceHelper::SnrPer::per, ns3::RatioToDb(), and ns3::InterferenceHelper::SnrPer::snr.

Referenced by StartRx().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::WifiPhy::StartReceivePreambleAndHeader ( Ptr< Packet packet,
double  rxPowerW,
Time  rxDuration 
)

Starting receiving the plcp of a packet (i.e.

the first bit of the preamble has arrived).

Parameters
packetthe arriving packet
rxPowerWthe receive power in W
rxDurationthe duration needed for the reception of the packet

Definition at line 2374 of file wifi-phy.cc.

References AbortCurrentReception(), ns3::InterferenceHelper::Add(), CCA_BUSY, GetMaxSupportedRxSpatialStreams(), ns3::WifiMode::GetMcsValue(), ns3::WifiTxVector::GetMode(), ns3::WifiMode::GetModulationClass(), ns3::WifiPhyTag::GetMpduType(), ns3::WifiTxVector::GetNss(), ns3::WifiPhyTag::GetWifiTxVector(), IDLE, m_currentEvent, m_frameCaptureModel, m_interference, m_plcpSuccess, m_state, MaybeCcaBusyDuration(), NotifyRxDrop(), ns3::Simulator::Now(), NS_ASSERT, NS_FATAL_ERROR, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::Packet::RemovePacketTag(), RX, SLEEP, StartRx(), SWITCHING, TX, ns3::WIFI_MOD_CLASS_HT, and ns3::WToDbm().

Referenced by ns3::YansWifiChannel::Receive(), and ns3::SpectrumWifiPhy::StartRx().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::WifiPhy::StartRx ( Ptr< Packet packet,
WifiTxVector  txVector,
MpduType  mpdutype,
double  rxPowerW,
Time  rxDuration,
Ptr< InterferenceHelper::Event event 
)
private

Starting receiving the packet after having detected the medium is idle or after a reception switch.

Parameters
packetthe arriving packet
txVectorthe TXVECTOR of the arriving packet
mpdutypethe type of the MPDU as defined in WifiPhy::MpduType.
rxPowerWthe receive power in W
rxDurationthe duration needed for the reception of the packet
eventthe corresponding event of the first time the packet arrives

Definition at line 3660 of file wifi-phy.cc.

References CalculatePlcpPreambleAndHeaderDuration(), EndReceive(), GetEdThresholdW(), ns3::WifiTxVector::GetPreambleType(), ns3::AmpduTag::GetRemainingNbOfMpdus(), ns3::EventId::IsExpired(), m_currentEvent, m_endPlcpRxEvent, m_endRxEvent, m_interference, m_mpdusNum, m_plcpSuccess, m_rxMpduReferenceNumber, m_state, MaybeCcaBusyDuration(), NotifyRxBegin(), NotifyRxDrop(), ns3::InterferenceHelper::NotifyRxStart(), NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::Packet::PeekPacketTag(), ns3::Simulator::Schedule(), StartReceivePacket(), and ns3::WIFI_PREAMBLE_NONE.

Referenced by StartReceivePreambleAndHeader().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

virtual void ns3::WifiPhy::StartTx ( Ptr< Packet packet,
WifiTxVector  txVector,
Time  txDuration 
)
pure virtual
Parameters
packetthe packet to send
txVectorthe TXVECTOR that has tx parameters such as mode, the transmission mode to use to send this packet, and txPowerLevel, a power level to use to send this packet. The real transmission power is calculated as txPowerMin + txPowerLevel * (txPowerMax - txPowerMin) / nTxLevels
txDurationduration of the transmission.

Implemented in ns3::SpectrumWifiPhy, and ns3::YansWifiPhy.

Referenced by SendPacket().

+ Here is the caller graph for this function:

void ns3::WifiPhy::SwitchMaybeToCcaBusy ( void  )
protected

Check if Phy state should move to CCA busy state based on current state of interference tracker.

In this model, CCA becomes busy when the aggregation of all signals as tracked by the InterferenceHelper class is higher than the CcaMode1Threshold

Definition at line 3625 of file wifi-phy.cc.

References ns3::Time::As(), ns3::DbmToW(), GetCcaMode1Threshold(), ns3::InterferenceHelper::GetEnergyDuration(), ns3::Time::IsZero(), m_interference, m_state, NS_LOG_DEBUG, NS_LOG_FUNCTION, and ns3::Time::S.

Referenced by ns3::SpectrumWifiPhy::StartRx().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::WifiPhy::UnregisterListener ( WifiPhyListener listener)
Parameters
listenerthe listener to be unregistered

Remove the input listener from the list of objects to be notified of PHY-level events.

Definition at line 446 of file wifi-phy.cc.

References m_state.

Referenced by ns3::DcfManager::RemovePhyListener(), and ns3::MacLow::RemovePhyMacLowListener().

+ Here is the caller graph for this function:

Member Data Documentation

std::vector<uint32_t> ns3::WifiPhy::m_bssMembershipSelectorSet
private
double ns3::WifiPhy::m_ccaMode1ThresholdW
private

Clear channel assessment (CCA) threshold in watts.

Definition at line 1945 of file wifi-phy.h.

Referenced by GetCcaMode1Threshold(), and SetCcaMode1Threshold().

uint16_t ns3::WifiPhy::m_channelCenterFrequency
private

Center frequency in MHz.

Definition at line 1939 of file wifi-phy.h.

Referenced by GetFrequency(), SetChannelNumber(), and SetFrequency().

uint8_t ns3::WifiPhy::m_channelNumber
private

Operating channel number.

Definition at line 1971 of file wifi-phy.h.

Referenced by GetChannelNumber(), SetChannelNumber(), and SetFrequency().

Time ns3::WifiPhy::m_channelSwitchDelay
private

Time required to switch between channel.

Definition at line 1974 of file wifi-phy.h.

Referenced by GetChannelSwitchDelay(), and GetTypeId().

WifiPhy::ChannelToFrequencyWidthMap ns3::WifiPhy::m_channelToFrequencyWidth
staticprivate

the channel to frequency width map

This table maintains the mapping of valid ChannelNumber to Frequency/ChannelWidth pairs.

If you want to make a channel applicable to all standards, then you may use the WIFI_PHY_STANDARD_UNSPECIFIED standard to represent this, as a wildcard. If you want to limit the configuration of a particular channel/frequency/width to a particular standard(s), then you can specify one or more such bindings.

Definition at line 1968 of file wifi-phy.h.

Referenced by DefineChannelNumber(), FindChannelNumberForFrequencyWidth(), and GetFrequencyWidthForChannelNumberStandard().

uint8_t ns3::WifiPhy::m_channelWidth
private

Channel width.

Definition at line 1942 of file wifi-phy.h.

Referenced by GetChannelWidth(), and SetChannelWidth().

Ptr<InterferenceHelper::Event> ns3::WifiPhy::m_currentEvent
private

Hold the current event.

Definition at line 1981 of file wifi-phy.h.

Referenced by AbortCurrentReception(), EndReceive(), StartReceivePreambleAndHeader(), and StartRx().

Ptr<NetDevice> ns3::WifiPhy::m_device
private

Pointer to the device.

Definition at line 1978 of file wifi-phy.h.

Referenced by DoDispose(), GetDevice(), GetMobility(), and SetDevice().

WifiModeList ns3::WifiPhy::m_deviceMcsSet
private

the device MCS set

Definition at line 1933 of file wifi-phy.h.

Referenced by Configure80211ac(), Configure80211ax(), ConfigureHtDeviceMcsSet(), DoDispose(), GetMcs(), and GetNMcs().

WifiModeList ns3::WifiPhy::m_deviceRateSet
private

This vector holds the set of transmission modes that this WifiPhy(-derived class) can support.

In conversation we call this the DeviceRateSet (not a term you'll find in the standard), and it is a superset of standard-defined parameters such as the OperationalRateSet, and the BSSBasicRateSet (which, themselves, have a superset/subset relationship).

Mandatory rates relevant to this WifiPhy can be found by iterating over this vector looking for WifiMode objects for which WifiMode::IsMandatory() is true.

A quick note is appropriate here (well, here is as good a place as any I can find)...

In the standard there is no text that explicitly precludes production of a device that does not support some rates that are mandatory (according to the standard) for PHYs that the device happens to fully or partially support.

This approach is taken by some devices which choose to only support, for example, 6 and 9 Mbps ERP-OFDM rates for cost and power consumption reasons (i.e., these devices don't need to be designed for and waste current on the increased linearity requirement of higher-order constellations when 6 and 9 Mbps more than meet their data requirements). The wording of the standard allows such devices to have an OperationalRateSet which includes 6 and 9 Mbps ERP-OFDM rates, despite 12 and 24 Mbps being "mandatory" rates for the ERP-OFDM PHY.

Now this doesn't actually have any impact on code, yet. It is, however, something that we need to keep in mind for the future. Basically, the key point is that we can't be making assumptions like "the Operational Rate Set will contain all the mandatory rates".

Definition at line 1932 of file wifi-phy.h.

Referenced by Configure80211_10Mhz(), Configure80211_5Mhz(), Configure80211a(), Configure80211b(), Configure80211g(), ConfigureHolland(), DoDispose(), GetMode(), and GetNModes().

double ns3::WifiPhy::m_edThresholdW
private

Energy detection threshold in watts.

Definition at line 1944 of file wifi-phy.h.

Referenced by GetEdThreshold(), GetEdThresholdW(), and SetEdThreshold().

EventId ns3::WifiPhy::m_endPlcpRxEvent
protected

the end PLCP receive event

Definition at line 1696 of file wifi-phy.h.

Referenced by AbortCurrentReception(), DoChannelSwitch(), DoFrequencySwitch(), SendPacket(), StartReceivePacket(), and StartRx().

EventId ns3::WifiPhy::m_endRxEvent
protected

the end reeive event

Definition at line 1695 of file wifi-phy.h.

Referenced by AbortCurrentReception(), DoChannelSwitch(), DoFrequencySwitch(), SendPacket(), and StartRx().

Ptr<FrameCaptureModel> ns3::WifiPhy::m_frameCaptureModel
private

Frame capture model.

Definition at line 1982 of file wifi-phy.h.

Referenced by GetFrameCaptureModel(), SetFrameCaptureModel(), and StartReceivePreambleAndHeader().

bool ns3::WifiPhy::m_frequencyChannelNumberInitialized
private

Store initialization state.

Definition at line 1941 of file wifi-phy.h.

Referenced by ConfigureStandard(), DoInitialize(), and InitializeFrequencyChannelNumber().

bool ns3::WifiPhy::m_greenfield
private

Flag if GreenField format is supported.

Definition at line 1954 of file wifi-phy.h.

Referenced by GetGreenfield(), and SetGreenfield().

Time ns3::WifiPhy::m_guardInterval
private

Supported HE guard interval.

Definition at line 1958 of file wifi-phy.h.

Referenced by GetGuardInterval(), and SetGuardInterval().

uint8_t ns3::WifiPhy::m_initialChannelNumber
private

Initial channel number.

Definition at line 1972 of file wifi-phy.h.

Referenced by InitializeFrequencyChannelNumber(), and SetChannelNumber().

uint16_t ns3::WifiPhy::m_initialFrequency
private

Store frequency until initialization.

Definition at line 1940 of file wifi-phy.h.

Referenced by InitializeFrequencyChannelNumber(), and SetFrequency().

bool ns3::WifiPhy::m_isConstructed
private

true when ready to set frequency

Definition at line 1938 of file wifi-phy.h.

Referenced by ConfigureStandard(), DoInitialize(), SetChannelNumber(), and SetFrequency().

bool ns3::WifiPhy::m_ldpc
private

Flag if LDPC is used.

Definition at line 1952 of file wifi-phy.h.

Referenced by GetLdpc(), and SetLdpc().

Ptr<MobilityModel> ns3::WifiPhy::m_mobility
private

Pointer to the mobility model.

Definition at line 1979 of file wifi-phy.h.

Referenced by DoDispose(), GetMobility(), and SetMobility().

uint16_t ns3::WifiPhy::m_mpdusNum
protected

carries the number of expected mpdus that are part of an A-MPDU

Definition at line 1690 of file wifi-phy.h.

Referenced by StartRx().

uint32_t ns3::WifiPhy::m_nTxPower
private

Number of available transmission power levels.

Definition at line 1950 of file wifi-phy.h.

Referenced by GetNTxPower(), GetPowerDbm(), GetTypeId(), and SetNTxPower().

uint8_t ns3::WifiPhy::m_numberOfAntennas
private

Number of transmitters.

Definition at line 1963 of file wifi-phy.h.

Referenced by GetNumberOfAntennas(), and SetNumberOfAntennas().

uint8_t ns3::WifiPhy::m_numberOfReceivers
private

Number of receivers (DEPRECATED)

Definition at line 1961 of file wifi-phy.h.

Referenced by GetTypeId(), and WifiPhy().

uint8_t ns3::WifiPhy::m_numberOfTransmitters
private

Number of transmitters (DEPRECATED)

Definition at line 1960 of file wifi-phy.h.

Referenced by GetTypeId(), and WifiPhy().

TracedCallback<Ptr<const Packet>, uint16_t, WifiTxVector, MpduInfo, SignalNoiseDbm> ns3::WifiPhy::m_phyMonitorSniffRxTrace
private

A trace source that emulates a wifi device in monitor mode sniffing a packet being received.

As a reference with the real world, firing this trace corresponds in the madwifi driver to calling the function ieee80211_input_monitor()

See also
class CallBackTraceSource
Todo:
WifiTxVector and signalNoiseDbm should be be passed as const references because of their sizes.

Definition at line 1880 of file wifi-phy.h.

Referenced by GetTypeId(), and NotifyMonitorSniffRx().

TracedCallback<Ptr<const Packet>, uint16_t, WifiTxVector, MpduInfo> ns3::WifiPhy::m_phyMonitorSniffTxTrace
private

A trace source that emulates a wifi device in monitor mode sniffing a packet being transmitted.

As a reference with the real world, firing this trace corresponds in the madwifi driver to calling the function ieee80211_input_monitor()

See also
class CallBackTraceSource
Todo:
WifiTxVector should be passed by const reference because of its size.

Definition at line 1894 of file wifi-phy.h.

Referenced by GetTypeId(), and NotifyMonitorSniffTx().

TracedCallback<Ptr<const Packet> > ns3::WifiPhy::m_phyRxBeginTrace
private

The trace source fired when a packet begins the reception process from the medium.

See also
class CallBackTraceSource

Definition at line 1851 of file wifi-phy.h.

Referenced by GetTypeId(), and NotifyRxBegin().

TracedCallback<Ptr<const Packet> > ns3::WifiPhy::m_phyRxDropTrace
private

The trace source fired when the phy layer drops a packet it has received.

See also
class CallBackTraceSource

Definition at line 1866 of file wifi-phy.h.

Referenced by GetTypeId(), and NotifyRxDrop().

TracedCallback<Ptr<const Packet> > ns3::WifiPhy::m_phyRxEndTrace
private

The trace source fired when a packet ends the reception process from the medium.

See also
class CallBackTraceSource

Definition at line 1859 of file wifi-phy.h.

Referenced by GetTypeId(), and NotifyRxEnd().

TracedCallback<Ptr<const Packet> > ns3::WifiPhy::m_phyTxBeginTrace
private

The trace source fired when a packet begins the transmission process on the medium.

See also
class CallBackTraceSource

Definition at line 1827 of file wifi-phy.h.

Referenced by GetTypeId(), and NotifyTxBegin().

TracedCallback<Ptr<const Packet> > ns3::WifiPhy::m_phyTxDropTrace
private

The trace source fired when the phy layer drops a packet as it tries to transmit it.

See also
class CallBackTraceSource

Definition at line 1843 of file wifi-phy.h.

Referenced by GetTypeId(), and NotifyTxDrop().

TracedCallback<Ptr<const Packet> > ns3::WifiPhy::m_phyTxEndTrace
private

The trace source fired when a packet ends the transmission process on the medium.

See also
class CallBackTraceSource

Definition at line 1835 of file wifi-phy.h.

Referenced by GetTypeId(), and NotifyTxEnd().

bool ns3::WifiPhy::m_plcpSuccess
protected

Flag if the PLCP of the packet or the first MPDU in an A-MPDU has been received.

Definition at line 1691 of file wifi-phy.h.

Referenced by EndReceive(), StartReceivePacket(), StartReceivePreambleAndHeader(), and StartRx().

Ptr<UniformRandomVariable> ns3::WifiPhy::m_random
protected

Provides uniform random variables.

Definition at line 1687 of file wifi-phy.h.

Referenced by AssignStreams(), EndReceive(), StartReceivePacket(), and WifiPhy().

double ns3::WifiPhy::m_rxGainDb
private

Reception gain (dB)

Definition at line 1947 of file wifi-phy.h.

Referenced by GetRxGain(), and SetRxGain().

uint64_t ns3::WifiPhy::m_rxMpduReferenceNumber
protected

A-MPDU reference number to identify all received subframes belonging to the same received A-MPDU.

Definition at line 1693 of file wifi-phy.h.

Referenced by EndReceive(), and StartRx().

uint8_t ns3::WifiPhy::m_rxSpatialStreams
private

Number of supported RX spatial streams.

Definition at line 1965 of file wifi-phy.h.

Referenced by GetMaxSupportedRxSpatialStreams(), and SetMaxSupportedRxSpatialStreams().

bool ns3::WifiPhy::m_shortGuardInterval
private

Flag if HT/VHT short guard interval is supported.

Definition at line 1955 of file wifi-phy.h.

Referenced by GetShortGuardInterval(), and SetShortGuardInterval().

bool ns3::WifiPhy::m_shortPreamble
private

Flag if short PLCP preamble is supported.

Definition at line 1956 of file wifi-phy.h.

Referenced by GetShortPlcpPreambleSupported(), and SetShortPlcpPreambleSupported().

WifiPhyStandard ns3::WifiPhy::m_standard
private

WifiPhyStandard.

Definition at line 1937 of file wifi-phy.h.

Referenced by ConfigureStandard(), and GetStandard().

bool ns3::WifiPhy::m_stbc
private

Flag if STBC is used.

Definition at line 1953 of file wifi-phy.h.

Referenced by GetStbc(), and SetStbc().

std::vector<uint8_t> ns3::WifiPhy::m_supportedChannelWidthSet
private

Supported channel width.

Definition at line 1970 of file wifi-phy.h.

Referenced by AddSupportedChannelWidth(), and GetSupportedChannelWidthSet().

double ns3::WifiPhy::m_totalAmpduNumSymbols
private

Number of symbols previously transmitted for the MPDUs in an A-MPDU, used for the computation of the number of symbols needed for the last MPDU in the A-MPDU.

Definition at line 1976 of file wifi-phy.h.

Referenced by GetPayloadDuration().

uint32_t ns3::WifiPhy::m_totalAmpduSize
private

Total size of the previously transmitted MPDUs in an A-MPDU, used for the computation of the number of symbols needed for the last MPDU in the A-MPDU.

Definition at line 1975 of file wifi-phy.h.

Referenced by GetPayloadDuration().

double ns3::WifiPhy::m_txGainDb
private

Transmission gain (dB)

Definition at line 1946 of file wifi-phy.h.

Referenced by GetTxGain(), and SetTxGain().

uint64_t ns3::WifiPhy::m_txMpduReferenceNumber
protected

A-MPDU reference number to identify all transmitted subframes belonging to the same received A-MPDU.

Definition at line 1692 of file wifi-phy.h.

Referenced by SendPacket().

double ns3::WifiPhy::m_txPowerBaseDbm
private

Minimum transmission power (dBm)

Definition at line 1948 of file wifi-phy.h.

Referenced by GetPowerDbm(), GetTxPowerStart(), and SetTxPowerStart().

double ns3::WifiPhy::m_txPowerEndDbm
private

Maximum transmission power (dBm)

Definition at line 1949 of file wifi-phy.h.

Referenced by GetPowerDbm(), GetTxPowerEnd(), and SetTxPowerEnd().

uint8_t ns3::WifiPhy::m_txSpatialStreams
private

Number of supported TX spatial streams.

Definition at line 1964 of file wifi-phy.h.

Referenced by GetMaxSupportedTxSpatialStreams(), and SetMaxSupportedTxSpatialStreams().


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