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, WifiPhyBandChannelNumberBandPair
 A pair of a channel number and a WifiPhyBand. More...
 
typedef std::pair< ChannelNumberBandPair, WifiPhyStandardChannelNumberStandardPair
 A pair of a ChannelNumberBandPair and a WifiPhyStandard. More...
 
typedef void(* EndOfHePreambleCallback) (HePreambleParameters params)
 TracedCallback signature for end of HE-SIG-A events. More...
 
typedef std::pair< uint16_t, uint16_t > FrequencyWidthPair
 A pair of a center frequency (MHz) and a channel width (MHz) 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 void(* PhyRxPayloadBeginTracedCallback) (WifiTxVector txVector, Time psduDuration)
 TracedCallback signature for start of PSDU reception events. More...
 
typedef void(* PsduTxBeginCallback) (Ptr< const WifiPsdu > psdu, WifiTxVector txVector, double txPowerW)
 TracedCallback signature for PSDU transmit events. More...
 

Public Member Functions

 WifiPhy ()
 
virtual ~WifiPhy ()
 
void AddSupportedChannelWidth (uint16_t width)
 
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
 
virtual void ConfigureStandardAndBand (WifiPhyStandard standard, WifiPhyBand band)
 Configure the PHY-level parameters for different Wi-Fi standard. More...
 
void ContinueReceiveHeader (Ptr< Event > event)
 Continue receiving the PHY header of a PPDU (i.e. More...
 
bool DefineChannelNumber (uint8_t channelNumber, WifiPhyBand band, WifiPhyStandard standard, uint16_t frequency, uint16_t channelWidth)
 Add a channel definition to the WifiPhy. More...
 
void EndReceive (Ptr< Event > event)
 The last symbol of the PPDU has arrived. More...
 
void EndReceiveInterBss (void)
 For HE receptions only, check and possibly modify the transmit power restriction state at the end of PPDU reception. More...
 
Time GetAckTxTime (void) const
 Return the estimated Ack TX time for this PHY. More...
 
Time GetBlockAckTxTime (void) const
 Return the estimated BlockAck TX time for this PHY. More...
 
uint8_t GetBssMembershipSelector (uint8_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 GetCcaEdThreshold (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
 
uint16_t GetChannelWidth (void) const
 
Time GetDelayUntilIdle (void)
 
Ptr< NetDeviceGetDevice (void) const
 Return the device this PHY is associated with. More...
 
uint16_t GetFrequency (void) const
 
Time GetLastRxEndTime (void) const
 Return the end time of the last received packet. More...
 
Time GetLastRxStartTime (void) const
 Return the start time of the last received packet. 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...
 
WifiMode GetMcs (WifiModulationClass modulation, uint8_t mcs) const
 Get the WifiMode object corresponding to the given MCS of the given modulation class. More...
 
Ptr< MobilityModelGetMobility (void) const
 Return the mobility model this PHY is associated with. More...
 
WifiMode GetMode (uint8_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...
 
uint8_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...
 
uint8_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...
 
uint8_t GetNTxPower (void) const
 Return the number of available transmission power levels. More...
 
uint8_t GetNumberOfAntennas (void) const
 
WifiPhyBand GetPhyBand (void) const
 Get the configured Wi-Fi band. More...
 
WifiPhyStandard GetPhyStandard (void) const
 Get the configured Wi-Fi standard. More...
 
Time GetPifs (void) const
 Return the PCF Interframe Space (PIFS) for this PHY. More...
 
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 GetRxSensitivity (void) const
 Return the receive sensitivity threshold (dBm). More...
 
bool GetShortPhyPreambleSupported (void) const
 Return whether short PHY preamble is supported. More...
 
Time GetSifs (void) const
 Return the Short Interframe Space (SIFS) for this PHY. More...
 
Time GetSlot (void) const
 Return the slot duration for this PHY. More...
 
Ptr< WifiPhyStateHelperGetState (void) const
 Return the WifiPhyStateHelper of this PHY. More...
 
std::vector< uint16_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 GetTxPowerForTransmission (WifiTxVector txVector) const
 Compute the transmit power (in dBm) for the next transmission. 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 IsMcsSupported (WifiModulationClass mc, uint8_t mcs) const
 Check if the given MCS of the given modulation class is supported by the PHY. More...
 
bool IsModeSupported (WifiMode mode) const
 Check if the given WifiMode is supported by the PHY. More...
 
bool IsStateCcaBusy (void) const
 
bool IsStateIdle (void) const
 
bool IsStateOff (void) const
 
bool IsStateRx (void) const
 
bool IsStateSleep (void) const
 
bool IsStateSwitching (void) const
 
bool IsStateTx (void) const
 
void NotifyChannelAccessRequested (void)
 Notify the PHY that an access to the channel was requested. More...
 
void NotifyEndOfHePreamble (HePreambleParameters params)
 Public method used to fire a EndOfHePreamble trace once both HE SIG fields have been received, as well as training fields. More...
 
void NotifyMonitorSniffRx (Ptr< const WifiPsdu > psdu, uint16_t channelFreqMhz, WifiTxVector txVector, SignalNoiseDbm signalNoise, std::vector< bool > statusPerMpdu)
 Public method used to fire a MonitorSniffer trace for a wifi PSDU being received. More...
 
void NotifyMonitorSniffTx (Ptr< const WifiPsdu > psdu, uint16_t channelFreqMhz, WifiTxVector txVector)
 Public method used to fire a MonitorSniffer trace for a wifi PSDU being transmitted. More...
 
void NotifyRxBegin (Ptr< const WifiPsdu > psdu)
 Public method used to fire a PhyRxBegin trace. More...
 
void NotifyRxDrop (Ptr< const WifiPsdu > psdu, WifiPhyRxfailureReason reason)
 Public method used to fire a PhyRxDrop trace. More...
 
void NotifyRxEnd (Ptr< const WifiPsdu > psdu)
 Public method used to fire a PhyRxEnd trace. More...
 
void NotifyTxBegin (Ptr< const WifiPsdu > psdu, double txPowerW)
 Public method used to fire a PhyTxBegin trace. More...
 
void NotifyTxDrop (Ptr< const WifiPsdu > psdu)
 Public method used to fire a PhyTxDrop trace. More...
 
void NotifyTxEnd (Ptr< const WifiPsdu > psdu)
 Public method used to fire a PhyTxEnd trace. More...
 
void RegisterListener (WifiPhyListener *listener)
 
void ResetCca (bool powerRestricted, double txPowerMaxSiso=0, double txPowerMaxMimo=0)
 Reset PHY to IDLE, with some potential TX power restrictions for the next transmission. More...
 
void ResetReceive (Ptr< Event > event)
 Reset PHY at the end of the packet under reception after it has failed the PHY header. More...
 
void ResumeFromOff (void)
 Resume from off mode. More...
 
void ResumeFromSleep (void)
 Resume from sleep mode. More...
 
void Send (Ptr< const WifiPsdu > psdu, WifiTxVector txVector)
 
void SetCapabilitiesChangedCallback (Callback< void > callback)
 
void SetCcaEdThreshold (double threshold)
 Sets the CCA threshold (dBm). More...
 
virtual void SetChannelNumber (uint8_t id)
 Set channel number. More...
 
virtual void SetChannelWidth (uint16_t channelWidth)
 
void SetDevice (const Ptr< NetDevice > device)
 Sets the device this PHY is associated with. More...
 
void SetErrorRateModel (const Ptr< ErrorRateModel > rate)
 Sets the error rate model. More...
 
void SetFrameCaptureModel (const Ptr< FrameCaptureModel > frameCaptureModel)
 Sets the frame capture model. More...
 
virtual void SetFrequency (uint16_t freq)
 
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 (uint8_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 SetOffMode (void)
 Put in off mode. More...
 
void SetPifs (Time pifs)
 Set the PCF Interframe Space (PIFS) for this PHY. More...
 
void SetPostReceptionErrorModel (const Ptr< ErrorModel > em)
 Attach a receive ErrorModel to the WifiPhy. More...
 
void SetPreambleDetectionModel (const Ptr< PreambleDetectionModel > preambleDetectionModel)
 Sets the preamble detection model. More...
 
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 SetRxSensitivity (double threshold)
 Sets the receive sensitivity threshold (dBm). More...
 
void SetShortPhyPreambleSupported (bool preamble)
 Enable or disable short PHY preamble. More...
 
void SetSifs (Time sifs)
 Set the Short Interframe Space (SIFS) for this PHY. More...
 
void SetSleepMode (void)
 Put in sleep mode. More...
 
void SetSlot (Time slot)
 Set the slot duration for this PHY. 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 SetWifiRadioEnergyModel (const Ptr< WifiRadioEnergyModel > wifiRadioEnergyModel)
 Sets the wifi radio energy model. More...
 
void StartReceiveHeader (Ptr< Event > event)
 Start receiving the PHY header of a PPDU (i.e. More...
 
void StartReceivePayload (Ptr< Event > event)
 Start receiving the PSDU (i.e. More...
 
void StartReceivePreamble (Ptr< WifiPpdu > ppdu, double rxPowerW)
 Start receiving the PHY preamble of a PPDU (i.e. More...
 
virtual void StartTx (Ptr< WifiPpdu > ppdu)=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...
 
template<>
Ptr< ObjectGetObject () const
 
template<>
Ptr< ObjectGetObject (TypeId tid) const
 
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 CalculatePhyPreambleAndHeaderDuration (WifiTxVector txVector)
 
static Time CalculateTxDuration (uint32_t size, WifiTxVector txVector, WifiPhyBand band)
 
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 GetHeMcs (uint8_t mcs)
 Get the WifiMode object corresponding to the given MCS of the HE modulation class. 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 GetHePhyHeaderMode ()
 
static WifiMode GetHtMcs (uint8_t mcs)
 Get the WifiMode object corresponding to the given MCS of the HT modulation class. More...
 
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 GetHtPhyHeaderMode ()
 
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 GetPayloadDuration (uint32_t size, WifiTxVector txVector, WifiPhyBand band, MpduType mpdutype=NORMAL_MPDU)
 
static Time GetPayloadDuration (uint32_t size, WifiTxVector txVector, WifiPhyBand band, MpduType mpdutype, bool incFlag, uint32_t &totalAmpduSize, double &totalAmpduNumSymbols)
 
static Time GetPhyHeaderDuration (WifiTxVector txVector)
 
static WifiMode GetPhyHeaderMode (WifiTxVector txVector)
 
static Time GetPhyHtSigHeaderDuration (WifiPreamble preamble)
 
static Time GetPhyPreambleDuration (WifiTxVector txVector)
 
static Time GetPhySigA1Duration (WifiPreamble preamble)
 
static Time GetPhySigA2Duration (WifiPreamble preamble)
 
static Time GetPhySigBDuration (WifiPreamble preamble)
 
static Time GetPhyTrainingSymbolDuration (WifiTxVector txVector)
 
static Time GetPreambleDetectionDuration (void)
 
static Time GetStartOfPacketDuration (WifiTxVector txVector)
 
static TypeId GetTypeId (void)
 Get the type ID. More...
 
static WifiMode GetVhtMcs (uint8_t mcs)
 Get the WifiMode object corresponding to the given MCS of the VHT modulation class. 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 GetVhtPhyHeaderMode ()
 
- 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_endPhyRxEvent
 the end of PHY receive event More...
 
EventId m_endPreambleDetectionEvent
 the end of preamble detection event More...
 
EventId m_endRxEvent
 the end of receive event More...
 
EventId m_endTxEvent
 the end of transmit event More...
 
InterferenceHelper m_interference
 Pointer to InterferenceHelper. More...
 
Ptr< UniformRandomVariablem_random
 Provides uniform random variables. More...
 
uint32_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...
 
uint32_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 (WifiPhyRxfailureReason reason)
 Due to newly arrived signal, the current reception cannot be continued and has to be aborted. 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 Configure80211p (void)
 Configure WifiPhy with appropriate channel frequency and supported rates for 802.11p standard. More...
 
void ConfigureChannelForStandard (void)
 Configure the PHY-level parameters for different Wi-Fi standard. More...
 
void ConfigureDefaultsForStandard (void)
 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...
 
void EndOfMpdu (Ptr< Event > event, Ptr< const WifiPsdu > psdu, size_t mpduIndex, Time relativeStart, Time mpduDuration)
 The last symbol of an MPDU in an A-MPDU has arrived. More...
 
uint8_t FindChannelNumberForFrequencyWidth (uint16_t frequency, uint16_t width) const
 Look for channel number matching the frequency and width. More...
 
FrequencyWidthPair GetFrequencyWidthForChannelNumberStandard (uint8_t channelNumber, WifiPhyBand band, WifiPhyStandard standard) const
 Lookup frequency/width pair for channelNumber/standard pair. More...
 
std::pair< bool, SignalNoiseDbmGetReceptionStatus (Ptr< const WifiPsdu > psdu, Ptr< Event > event, Time relativeMpduStart, Time mpduDuration)
 Get the reception status for the provided MPDU and notify. More...
 
void InitializeFrequencyChannelNumber (void)
 post-construction setting of frequency and/or channel number More...
 
void MaybeCcaBusyDuration (void)
 Eventually switch to CCA busy. More...
 
void PushMcs (WifiMode mode)
 Add the given MCS to the device MCS set. More...
 
void RebuildMcsMap (void)
 Rebuild the mapping of MCS values to indices in the device MCS set. More...
 
void ScheduleEndOfMpdus (Ptr< Event > event)
 Schedule end of MPDUs events. More...
 
void StartRx (Ptr< Event > event, double rxPowerW)
 Starting receiving the PPDU after having detected the medium is idle or after a reception switch. More...
 

Private Attributes

Time m_ackTxTime
 estimated Ack TX time More...
 
WifiPhyBand m_band
 WifiPhyBand. More...
 
Time m_blockAckTxTime
 estimated BlockAck TX time More...
 
std::vector< uint8_t > m_bssMembershipSelectorSet
 the BSS membership selector set More...
 
Callback< void > m_capabilitiesChangedCallback
 Callback when PHY capabilities changed. More...
 
double m_ccaEdThresholdW
 Clear channel assessment (CCA) threshold in watts. More...
 
bool m_channelAccessRequested
 Flag if channels access has been requested (used for OBSS_PD SR) 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...
 
uint16_t m_channelWidth
 Channel width (MHz) More...
 
Ptr< 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...
 
std::vector< EventIdm_endOfMpduEvents
 the end of MPDU events (only used for A-MPDUs) More...
 
Ptr< FrameCaptureModelm_frameCaptureModel
 Frame capture model. More...
 
bool m_frequencyChannelNumberInitialized
 Store initialization state. More...
 
uint8_t m_initialChannelNumber
 Initial channel number. More...
 
uint16_t m_initialFrequency
 Store frequency until initialization (MHz) More...
 
bool m_isConstructed
 true when ready to set frequency More...
 
std::map< WifiModulationClass, std::map< uint8_t, uint8_t > > m_mcsIndexMap
 Maps MCS values to indices in m_deviceMcsSet, for HT, VHT and HE modulation classes. More...
 
Ptr< MobilityModelm_mobility
 Pointer to the mobility model. More...
 
uint8_t m_nTxPower
 Number of available transmission power levels. More...
 
uint8_t m_numberOfAntennas
 Number of transmitters. More...
 
TracedCallback< HePreambleParametersm_phyEndOfHePreambleTrace
 A trace source that indicates the end of both HE SIG fields as well as training fields for received 802.11ax packets. More...
 
TracedCallback< Ptr< const Packet >, uint16_t, WifiTxVector, MpduInfo, SignalNoiseDbmm_phyMonitorSniffRxTrace
 A trace source that emulates a Wi-Fi 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 Wi-Fi 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 >, WifiPhyRxfailureReasonm_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< WifiTxVector, Timem_phyRxPayloadBeginTrace
 The trace source fired when the reception of the PHY payload (PSDU) begins. More...
 
TracedCallback< Ptr< const Packet >, double > 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...
 
TracedCallback< Ptr< const WifiPsdu >, WifiTxVector, double > m_phyTxPsduBeginTrace
 The trace source fired when a PSDU begins the transmission process on the medium. More...
 
Time m_pifs
 PCF Interframe Space (PIFS) duration. More...
 
Ptr< ErrorModelm_postReceptionErrorModel
 Error model for receive packet events. More...
 
bool m_powerRestricted
 Flag whether transmit power is restricted by OBSS PD SR. More...
 
Ptr< PreambleDetectionModelm_preambleDetectionModel
 Preamble detection model. More...
 
double m_rxGainDb
 Reception gain (dB) More...
 
double m_rxSensitivityW
 Receive sensitivity threshold in watts. More...
 
uint8_t m_rxSpatialStreams
 Number of supported RX spatial streams. More...
 
bool m_shortPreamble
 Flag if short PHY preamble is supported. More...
 
Time m_sifs
 Short Interframe Space (SIFS) duration. More...
 
SignalNoiseDbm m_signalNoise
 latest signal power and noise power in dBm (noise power includes the noise figure) More...
 
Time m_slot
 Slot duration. More...
 
WifiPhyStandard m_standard
 WifiPhyStandard. More...
 
std::vector< bool > m_statusPerMpdu
 current reception status per MPDU that is filled in as long as MPDUs are being processed by the PHY in case of an A-MPDU More...
 
std::vector< uint16_t > m_supportedChannelWidthSet
 Supported channel width set (MHz) More...
 
Time m_timeLastPreambleDetected
 Record the time the last preamble was detected. More...
 
double m_txGainDb
 Transmission gain (dB) More...
 
double m_txPowerBaseDbm
 Minimum transmission power (dBm) More...
 
double m_txPowerEndDbm
 Maximum transmission power (dBm) More...
 
double m_txPowerMaxMimo
 MIMO maximum transmit power due to OBSS PD SR power restriction (dBm) More...
 
double m_txPowerMaxSiso
 SISO maximum transmit power due to OBSS PD SR power restriction (dBm) More...
 
uint8_t m_txSpatialStreams
 Number of supported TX spatial streams. More...
 
Ptr< WifiRadioEnergyModelm_wifiRadioEnergyModel
 Wifi radio energy model. 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: uint16_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
  • RxSensitivity: The energy of a received signal should be higher than this threshold (dBm) for the PHY to detect the signal.
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: -101
    • Flags: construct write read
  • CcaEdThreshold: The energy of a non Wi-Fi received signal should be higher than this threshold (dBm) to allow the PHY layer to declare CCA BUSY state. This check is performed on the 20 MHz primary channel only.
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: -62
    • 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: uint8_t 0:255
    • 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
  • 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 -9.22337e+18ns:+9.22337e+18ns
    • Initial value: +250000ns
    • 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
  • ShortPlcpPreambleSupported: Whether or not short PHY preamble is supported.This parameter is only valuable for 802.11b STAs and APs.Note: 802.11g APs and STAs always support short PHY 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
  • PreambleDetectionModel: Ptr to an object that implements the preamble detection model
  • PostReceptionErrorModel: An optional packet error model can be added to the receive packet process after any propagation-based (SNR-based) error models have been applied. Typically this is used to force specific packet drops, for testing purposes.
  • Sifs: The duration of the Short Interframe Space. NOTE that the default value is overwritten by the value defined by the standard; if you want to set this attribute, you have to do it after that the PHY object is initialized.
    • Set with class: ns3::TimeValue
    • Underlying type: Time -9.22337e+18ns:+9.22337e+18ns
    • Initial value: +0ns
    • Flags: construct write read
  • Slot: The duration of a slot. NOTE that the default value is overwritten by the value defined by the standard; if you want to set this attribute, you have to do it after that the PHY object is initialized.
    • Set with class: ns3::TimeValue
    • Underlying type: Time -9.22337e+18ns:+9.22337e+18ns
    • Initial value: +0ns
    • Flags: construct write read
  • Pifs: The duration of the PCF Interframe Space. NOTE that the default value is overwritten by the value defined by the standard; if you want to set this attribute, you have to do it after that the PHY object is initialized.
    • Set with class: ns3::TimeValue
    • Underlying type: Time -9.22337e+18ns:+9.22337e+18ns
    • Initial value: +0ns
    • Flags: construct write read

TraceSources

  • PhyTxBegin: Trace source indicating a packet has begun transmitting over the channel medium
    Callback signature: ns3::Packet::TracedCallback
  • PhyTxPsduBegin: Trace source indicating a PSDU has begun transmitting over the channel medium
    Callback signature: ns3::WifiPhy::PsduTxBeginCallback
  • PhyTxEnd: Trace source indicating a packet has been completely transmitted over the channel.
    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
  • PhyRxPayloadBegin: Trace source indicating the reception of the payload of a PPDU has begun
    Callback signature: ns3::WifiPhy::PhyRxPayloadBeginTracedCallback
  • 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
  • EndOfHePreamble: Trace source indicating the end of the 802.11ax preamble (after training fields)
    Callback signature: ns3::WifiPhy::EndOfHePreambleTracedCallback

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

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

Member Typedef Documentation

◆ ChannelNumberBandPair

typedef std::pair<uint8_t, WifiPhyBand> ns3::WifiPhy::ChannelNumberBandPair

A pair of a channel number and a WifiPhyBand.

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

◆ ChannelNumberStandardPair

A pair of a ChannelNumberBandPair and a WifiPhyStandard.

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

◆ ChannelToFrequencyWidthMap

channel to frequency width map typedef

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

◆ EndOfHePreambleCallback

typedef void(* ns3::WifiPhy::EndOfHePreambleCallback) (HePreambleParameters params)

TracedCallback signature for end of HE-SIG-A events.

Parameters
paramsthe HE preamble parameters

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

◆ FrequencyWidthPair

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

A pair of a center frequency (MHz) and a channel width (MHz)

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

◆ MonitorSnifferRxCallback

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 1361 of file wifi-phy.h.

◆ MonitorSnifferTxCallback

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 1395 of file wifi-phy.h.

◆ PhyRxPayloadBeginTracedCallback

typedef void(* ns3::WifiPhy::PhyRxPayloadBeginTracedCallback) (WifiTxVector txVector, Time psduDuration)

TracedCallback signature for start of PSDU reception events.

Parameters
txVectorthe TXVECTOR decoded from the PHY header
psduDurationthe duration of the PSDU

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

◆ PsduTxBeginCallback

typedef void(* ns3::WifiPhy::PsduTxBeginCallback) (Ptr< const WifiPsdu > psdu, WifiTxVector txVector, double txPowerW)

TracedCallback signature for PSDU transmit events.

Parameters
psduthe PSDU being transmitted
txVectorthe TXVECTOR holding the TX parameters
txPowerWthe transmit power in Watts

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

Constructor & Destructor Documentation

◆ WifiPhy()

ns3::WifiPhy::WifiPhy ( )

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

References m_random, m_state, and NS_LOG_FUNCTION.

◆ ~WifiPhy()

ns3::WifiPhy::~WifiPhy ( )
virtual

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

References NS_LOG_FUNCTION.

Member Function Documentation

◆ AbortCurrentReception()

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

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

Parameters
reasonthe reason the reception is aborted

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

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

Referenced by ContinueReceiveHeader(), ResetCca(), Send(), and StartReceivePreamble().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ AddSupportedChannelWidth()

void ns3::WifiPhy::AddSupportedChannelWidth ( uint16_t  width)
Parameters
widththe channel width (in MHz) to support

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

References m_supportedChannelWidthSet, and NS_LOG_FUNCTION.

Referenced by SetChannelWidth().

+ Here is the caller graph for this function:

◆ AssignStreams()

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 4526 of file wifi-phy.cc.

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

Referenced by TestThresholdPreambleDetectionWithoutFrameCapture::DoRun(), TestThresholdPreambleDetectionWithFrameCapture::DoRun(), TestSimpleFrameCaptureModel::DoRun(), TestPhyHeadersReception::DoRun(), and TestAmpduReception::DoRun().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ CalculatePhyPreambleAndHeaderDuration()

Time ns3::WifiPhy::CalculatePhyPreambleAndHeaderDuration ( 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 PHY preamble and PHY header.

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

References GetPhyHeaderDuration(), GetPhyHtSigHeaderDuration(), GetPhyPreambleDuration(), GetPhySigA1Duration(), GetPhySigA2Duration(), GetPhySigBDuration(), GetPhyTrainingSymbolDuration(), and ns3::WifiTxVector::GetPreambleType().

Referenced by ns3::MinstrelHtWifiManager::CalculateMpduTxDuration(), CalculateTxDuration(), ContinueReceiveHeader(), ns3::WifiPpdu::GetTxDuration(), ns3::MacLow::NotifyNav(), ScheduleEndOfMpdus(), ns3::MacLow::SendRtsForPacket(), ns3::MacLow::StartDataTxTimers(), StartReceiveHeader(), StartReceivePayload(), and ns3::WifiPpdu::WifiPpdu().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ CalculateSnr()

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 839 of file wifi-phy.cc.

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

+ Here is the call graph for this function:

◆ CalculateTxDuration()

Time ns3::WifiPhy::CalculateTxDuration ( uint32_t  size,
WifiTxVector  txVector,
WifiPhyBand  band 
)
static

◆ Configure80211a()

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

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

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

References GetOfdmRate12Mbps(), GetOfdmRate18Mbps(), GetOfdmRate24Mbps(), GetOfdmRate36Mbps(), GetOfdmRate48Mbps(), GetOfdmRate54Mbps(), GetOfdmRate6Mbps(), GetOfdmRate9Mbps(), GetSifs(), GetSlot(), m_ackTxTime, m_deviceRateSet, ns3::MicroSeconds(), NS_LOG_FUNCTION, SetPifs(), SetSifs(), and SetSlot().

Referenced by Configure80211n(), and ConfigureStandardAndBand().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Configure80211ac()

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

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

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

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

Referenced by Configure80211ax(), and ConfigureStandardAndBand().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Configure80211ax()

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

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

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

References Configure80211ac(), Configure80211n(), GetHeMcs0(), GetHeMcs1(), GetHeMcs10(), GetHeMcs11(), GetHeMcs2(), GetHeMcs3(), GetHeMcs4(), GetHeMcs5(), GetHeMcs6(), GetHeMcs7(), GetHeMcs8(), GetHeMcs9(), HE_PHY, m_band, m_bssMembershipSelectorSet, NS_LOG_FUNCTION, PushMcs(), and ns3::WIFI_PHY_BAND_2_4GHZ.

Referenced by ConfigureStandardAndBand().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Configure80211b()

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

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

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

References GetDsssRate11Mbps(), GetDsssRate1Mbps(), GetDsssRate2Mbps(), GetDsssRate5_5Mbps(), GetSifs(), GetSlot(), m_ackTxTime, m_deviceRateSet, ns3::MicroSeconds(), NS_LOG_FUNCTION, SetPifs(), SetSifs(), and SetSlot().

Referenced by Configure80211g(), and ConfigureStandardAndBand().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Configure80211g()

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

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

Definition at line 1033 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 ConfigureStandardAndBand().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Configure80211n()

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

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

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

References Configure80211a(), Configure80211g(), ConfigureHtDeviceMcsSet(), HT_PHY, m_band, m_blockAckTxTime, m_bssMembershipSelectorSet, ns3::MicroSeconds(), NS_LOG_FUNCTION, and ns3::WIFI_PHY_BAND_2_4GHZ.

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

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Configure80211p()

◆ ConfigureChannelForStandard()

void ns3::WifiPhy::ConfigureChannelForStandard ( void  )
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.

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

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

Referenced by ConfigureStandardAndBand().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ConfigureDefaultsForStandard()

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

◆ ConfigureHolland()

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

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

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

References GetOfdmRate12Mbps(), GetOfdmRate18Mbps(), GetOfdmRate36Mbps(), GetOfdmRate54Mbps(), GetOfdmRate6Mbps(), GetSifs(), GetSlot(), m_deviceRateSet, ns3::MicroSeconds(), NS_LOG_FUNCTION, SetPifs(), SetSifs(), and SetSlot().

Referenced by ConfigureStandardAndBand().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ConfigureHtDeviceMcsSet()

void ns3::WifiPhy::ConfigureHtDeviceMcsSet ( void  )
private

◆ ConfigureStandardAndBand()

◆ ContinueReceiveHeader()

void ns3::WifiPhy::ContinueReceiveHeader ( Ptr< Event event)

Continue receiving the PHY header of a PPDU (i.e.

after the end of receiving the non-HT header part).

Parameters
eventthe event holding incoming PPDU's information

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

References AbortCurrentReception(), ns3::InterferenceHelper::CalculateNonHtPhyHeaderSnrPer(), CalculatePhyPreambleAndHeaderDuration(), GetPhyHeaderDuration(), GetPhyPreambleDuration(), ns3::UniformRandomVariable::GetValue(), ns3::EventId::IsExpired(), ns3::L_SIG_FAILURE, m_endPhyRxEvent, m_interference, m_random, m_state, MaybeCcaBusyDuration(), ns3::Simulator::Now(), NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::Simulator::Schedule(), and StartReceivePayload().

Referenced by StartReceiveHeader().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DefineChannelNumber()

bool ns3::WifiPhy::DefineChannelNumber ( uint8_t  channelNumber,
WifiPhyBand  band,
WifiPhyStandard  standard,
uint16_t  frequency,
uint16_t  channelWidth 
)

Add a channel definition to the WifiPhy.

The channelNumber, PHY band and PHY standard informations 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
bandthe PHY band which the channel belongs to
standardthe applicable WifiPhyStandard
frequencythe frequency (MHz)
channelWidththe channel width (MHz)
Returns
true if the channel definition succeeded

Definition at line 1277 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:

◆ DoChannelSwitch()

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 1672 of file wifi-phy.cc.

References ns3::EventId::Cancel(), CCA_BUSY, ns3::InterferenceHelper::EraseEvents(), GetChannelNumber(), GetChannelSwitchDelay(), GetDelayUntilIdle(), IDLE, ns3::Object::IsInitialized(), ns3::EventId::IsRunning(), IsStateSwitching(), m_channelAccessRequested, m_endPhyRxEvent, m_endPreambleDetectionEvent, m_endRxEvent, m_interference, m_powerRestricted, 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:

◆ DoDispose()

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 overridden 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 545 of file wifi-phy.cc.

References ns3::EventId::Cancel(), m_device, m_deviceMcsSet, m_deviceRateSet, m_endPhyRxEvent, m_endPreambleDetectionEvent, m_endRxEvent, m_endTxEvent, m_mcsIndexMap, m_mobility, m_postReceptionErrorModel, m_state, m_wifiRadioEnergyModel, and NS_LOG_FUNCTION.

Referenced by ns3::YansWifiPhy::DoDispose(), and ns3::SpectrumWifiPhy::DoDispose().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DoFrequencySwitch()

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 in MHz
Returns
true if WifiPhy can actually change the frequency; false if not
See also
SetFrequency

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

References ns3::EventId::Cancel(), CCA_BUSY, ns3::InterferenceHelper::EraseEvents(), GetChannelSwitchDelay(), GetDelayUntilIdle(), GetFrequency(), IDLE, ns3::Object::IsInitialized(), ns3::EventId::IsRunning(), IsStateSwitching(), m_channelAccessRequested, m_endPhyRxEvent, m_endPreambleDetectionEvent, m_endRxEvent, m_interference, m_powerRestricted, 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:

◆ DoInitialize()

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 563 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:

◆ EndOfMpdu()

void ns3::WifiPhy::EndOfMpdu ( Ptr< Event event,
Ptr< const WifiPsdu psdu,
size_t  mpduIndex,
Time  relativeStart,
Time  mpduDuration 
)
private

The last symbol of an MPDU in an A-MPDU has arrived.

Parameters
eventthe event holding incoming PPDU's information
psduthe arriving MPDU formatted as a PSDU containing a normal MPDU
mpduIndexthe index of the MPDU within the A-MPDU
relativeMpduStartthe relative start time of the MPDU within the A-MPDU.
mpduDurationthe duration of the MPDU

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

References ns3::InterferenceHelper::CalculateSnr(), ns3::Copy(), ns3::Time::GetNanoSeconds(), GetReceptionStatus(), m_interference, m_signalNoise, m_state, m_statusPerMpdu, NS_LOG_DEBUG, and NS_LOG_FUNCTION.

Referenced by ScheduleEndOfMpdus().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ EndReceive()

void ns3::WifiPhy::EndReceive ( Ptr< Event event)

The last symbol of the PPDU has arrived.

Parameters
eventthe corresponding event of the first time the packet arrives (also storing packet and TxVector information)

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

References ns3::InterferenceHelper::CalculateSnr(), ns3::Copy(), GetFrequency(), GetLastRxEndTime(), GetReceptionStatus(), m_currentEvent, m_interference, m_signalNoise, m_state, m_statusPerMpdu, MaybeCcaBusyDuration(), ns3::NanoSeconds(), NotifyMonitorSniffRx(), ns3::InterferenceHelper::NotifyRxEnd(), NotifyRxEnd(), ns3::Simulator::Now(), NS_ASSERT, and NS_LOG_FUNCTION.

Referenced by StartReceivePayload().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ EndReceiveInterBss()

void ns3::WifiPhy::EndReceiveInterBss ( void  )

For HE receptions only, check and possibly modify the transmit power restriction state at the end of PPDU reception.

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

References m_channelAccessRequested, m_powerRestricted, and NS_LOG_FUNCTION.

Referenced by ResetCca().

+ Here is the caller graph for this function:

◆ FindChannelNumberForFrequencyWidth()

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

Look for channel number matching the frequency and width.

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

Definition at line 1294 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:

◆ GetAckTxTime()

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

Return the estimated Ack TX time for this PHY.

Returns
the estimated Ack TX time

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

References m_ackTxTime.

Referenced by ns3::MinstrelWifiManager::CalculateTimeUnicastPacket(), and ns3::ChannelAccessManager::GetEifsNoDifs().

+ Here is the caller graph for this function:

◆ GetBlockAckTxTime()

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

Return the estimated BlockAck TX time for this PHY.

Returns
the estimated BlockAck TX time

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

References m_blockAckTxTime.

Referenced by ns3::MinstrelHtWifiManager::CalculateRetransmits().

+ Here is the caller graph for this function:

◆ GetBssMembershipSelector()

uint8_t ns3::WifiPhy::GetBssMembershipSelector ( uint8_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 membership selector whose index is specified.

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

References m_bssMembershipSelectorSet.

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

+ Here is the caller graph for this function:

◆ GetCcaEdThreshold()

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

Return the CCA threshold (dBm).

Returns
the CCA threshold in dBm

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

References m_ccaEdThresholdW, and ns3::WToDbm().

Referenced by GetTypeId().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetChannel()

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::GetChannel(), and ns3::WaveNetDevice::GetChannel().

+ Here is the caller graph for this function:

◆ GetChannelNumber()

◆ GetChannelSwitchDelay()

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

Definition at line 833 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:

◆ GetChannelWidth()

uint16_t ns3::WifiPhy::GetChannelWidth ( void  ) const
Returns
the channel width in MHz

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

References m_channelWidth.

Referenced by ns3::WifiRemoteStationManager::AddStationVhtCapabilities(), ns3::IdealWifiManager::BuildSnrThresholds(), ns3::MeshWifiInterfaceMac::CheckSupportedRates(), Configure80211p(), ConfigureChannelForStandard(), ConfigureDefaultsForStandard(), ns3::IdealWifiManager::DoReportRtsOk(), SetChannelFrequencyTest::DoRun(), ns3::MacLow::GetAckTxVector(), ns3::SpectrumWifiPhy::GetBandBandwidth(), ns3::MacLow::GetBlockAckTxVector(), ns3::SpectrumWifiPhy::GetCenterFrequencyForChannelWidth(), ns3::WifiRemoteStationManager::GetCtsToSelfTxVector(), ns3::MacLow::GetCtsTxVector(), ns3::WifiRemoteStationManager::GetDataTxVector(), ns3::RegularWifiMac::GetHeCapabilities(), ns3::RegularWifiMac::GetHtCapabilities(), ns3::ApWifiMac::GetHtOperation(), ns3::WifiRemoteStationManager::GetRtsTxVector(), ns3::SpectrumWifiPhy::GetRxSpectrumModel(), ns3::MeshWifiInterfaceMac::GetSupportedRates(), ns3::ApWifiMac::GetSupportedRates(), ns3::StaWifiMac::GetSupportedRates(), GetTypeId(), ns3::RegularWifiMac::GetVhtCapabilities(), ns3::ApWifiMac::GetVhtOperationalChannelWidth(), ns3::WifiRemoteStationManager::LookupState(), ns3::ApWifiMac::Receive(), ns3::MeshWifiInterfaceMac::Receive(), ns3::SpectrumWifiPhy::ResetSpectrumModel(), SetFrequency(), StartReceivePayload(), ns3::SpectrumWifiPhy::StartRx(), ns3::StaWifiMac::UpdateApInfoFromAssocResp(), ns3::StaWifiMac::UpdateApInfoFromBeacon(), and ns3::StaWifiMac::UpdateApInfoFromProbeResp().

+ Here is the caller graph for this function:

◆ GetDelayUntilIdle()

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 4399 of file wifi-phy.cc.

References m_state.

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

+ Here is the caller graph for this function:

◆ GetDevice()

◆ GetDsssRate11Mbps()

WifiMode ns3::WifiPhy::GetDsssRate11Mbps ( )
static

Return a WifiMode for DSSS at 11Mbps.

Returns
a WifiMode for DSSS at 11Mbps

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

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

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

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetDsssRate1Mbps()

WifiMode ns3::WifiPhy::GetDsssRate1Mbps ( )
static

Return a WifiMode for DSSS at 1Mbps.

Returns
a WifiMode for DSSS at 1Mbps

Definition at line 3194 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(), GetPhyHeaderMode(), and ns3::WifiPpdu::GetTxVector().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetDsssRate2Mbps()

WifiMode ns3::WifiPhy::GetDsssRate2Mbps ( )
static

Return a WifiMode for DSSS at 2Mbps.

Returns
a WifiMode for DSSS at 2Mbps

Definition at line 3206 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(), GetPhyHeaderMode(), and ns3::WifiPpdu::GetTxVector().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetDsssRate5_5Mbps()

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 3221 of file wifi-phy.cc.

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

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

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetErpOfdmRate12Mbps()

WifiMode ns3::WifiPhy::GetErpOfdmRate12Mbps ( )
static

Return a WifiMode for ERP-OFDM at 12Mbps.

Returns
a WifiMode for ERP-OFDM at 12Mbps

Definition at line 3272 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 ns3::WifiPpdu::GetTxVector().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetErpOfdmRate18Mbps()

WifiMode ns3::WifiPhy::GetErpOfdmRate18Mbps ( )
static

Return a WifiMode for ERP-OFDM at 18Mbps.

Returns
a WifiMode for ERP-OFDM at 18Mbps

Definition at line 3284 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(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and ns3::WifiPpdu::GetTxVector().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetErpOfdmRate24Mbps()

WifiMode ns3::WifiPhy::GetErpOfdmRate24Mbps ( )
static

Return a WifiMode for ERP-OFDM at 24Mbps.

Returns
a WifiMode for ERP-OFDM at 24Mbps

Definition at line 3296 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 ns3::WifiPpdu::GetTxVector().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetErpOfdmRate36Mbps()

WifiMode ns3::WifiPhy::GetErpOfdmRate36Mbps ( )
static

Return a WifiMode for ERP-OFDM at 36Mbps.

Returns
a WifiMode for ERP-OFDM at 36Mbps

Definition at line 3308 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(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and ns3::WifiPpdu::GetTxVector().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetErpOfdmRate48Mbps()

WifiMode ns3::WifiPhy::GetErpOfdmRate48Mbps ( )
static

Return a WifiMode for ERP-OFDM at 48Mbps.

Returns
a WifiMode for ERP-OFDM at 48Mbps

Definition at line 3320 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(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and ns3::WifiPpdu::GetTxVector().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetErpOfdmRate54Mbps()

WifiMode ns3::WifiPhy::GetErpOfdmRate54Mbps ( )
static

Return a WifiMode for ERP-OFDM at 54Mbps.

Returns
a WifiMode for ERP-OFDM at 54Mbps

Definition at line 3332 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(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and ns3::WifiPpdu::GetTxVector().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetErpOfdmRate6Mbps()

WifiMode ns3::WifiPhy::GetErpOfdmRate6Mbps ( )
static

Return a WifiMode for ERP-OFDM at 6Mbps.

Returns
a WifiMode for ERP-OFDM at 6Mbps

Definition at line 3248 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(), GetPhyHeaderMode(), and ns3::WifiPpdu::GetTxVector().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetErpOfdmRate9Mbps()

WifiMode ns3::WifiPhy::GetErpOfdmRate9Mbps ( )
static

Return a WifiMode for ERP-OFDM at 9Mbps.

Returns
a WifiMode for ERP-OFDM at 9Mbps

Definition at line 3260 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(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and ns3::WifiPpdu::GetTxVector().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetFrequency()

◆ GetFrequencyWidthForChannelNumberStandard()

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

Lookup frequency/width pair for channelNumber/standard pair.

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

Definition at line 1605 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:

◆ GetHeMcs()

WifiMode ns3::WifiPhy::GetHeMcs ( uint8_t  mcs)
static

Get the WifiMode object corresponding to the given MCS of the HE modulation class.

Parameters
mcsthe MCS value
Returns
the WifiMode object corresponding to the given MCS of the HE modulation class

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

References GetHeMcs0(), GetHeMcs1(), GetHeMcs10(), GetHeMcs11(), GetHeMcs2(), GetHeMcs3(), GetHeMcs4(), GetHeMcs5(), GetHeMcs6(), GetHeMcs7(), GetHeMcs8(), GetHeMcs9(), and NS_ABORT_MSG.

Referenced by ns3::WifiPpdu::GetTxVector().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHeMcs0()

WifiMode ns3::WifiPhy::GetHeMcs0 ( )
static

Return MCS 0 from HE MCS values.

Returns
MCS 0 from HE MCS values

Definition at line 3985 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(), GetHeMcs(), and GetHePhyHeaderMode().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHeMcs1()

WifiMode ns3::WifiPhy::GetHeMcs1 ( )
static

Return MCS 1 from HE MCS values.

Returns
MCS 1 from HE MCS values

Definition at line 3993 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 GetHeMcs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHeMcs10()

WifiMode ns3::WifiPhy::GetHeMcs10 ( )
static

Return MCS 10 from HE MCS values.

Returns
MCS 10 from HE MCS values

Definition at line 4065 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 GetHeMcs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHeMcs11()

WifiMode ns3::WifiPhy::GetHeMcs11 ( )
static

Return MCS 11 from HE MCS values.

Returns
MCS 11 from HE MCS values

Definition at line 4073 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 GetHeMcs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHeMcs2()

WifiMode ns3::WifiPhy::GetHeMcs2 ( )
static

Return MCS 2 from HE MCS values.

Returns
MCS 2 from HE MCS values

Definition at line 4001 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 GetHeMcs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHeMcs3()

WifiMode ns3::WifiPhy::GetHeMcs3 ( )
static

Return MCS 3 from HE MCS values.

Returns
MCS 3 from HE MCS values

Definition at line 4009 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 GetHeMcs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHeMcs4()

WifiMode ns3::WifiPhy::GetHeMcs4 ( )
static

Return MCS 4 from HE MCS values.

Returns
MCS 4 from HE MCS values

Definition at line 4017 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 GetHeMcs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHeMcs5()

WifiMode ns3::WifiPhy::GetHeMcs5 ( )
static

Return MCS 5 from HE MCS values.

Returns
MCS 5 from HE MCS values

Definition at line 4025 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 GetHeMcs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHeMcs6()

WifiMode ns3::WifiPhy::GetHeMcs6 ( )
static

Return MCS 6 from HE MCS values.

Returns
MCS 6 from HE MCS values

Definition at line 4033 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 GetHeMcs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHeMcs7()

WifiMode ns3::WifiPhy::GetHeMcs7 ( )
static

Return MCS 7 from HE MCS values.

Returns
MCS 7 from HE MCS values

Definition at line 4041 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 GetHeMcs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHeMcs8()

WifiMode ns3::WifiPhy::GetHeMcs8 ( )
static

Return MCS 8 from HE MCS values.

Returns
MCS 8 from HE MCS values

Definition at line 4049 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 GetHeMcs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHeMcs9()

WifiMode ns3::WifiPhy::GetHeMcs9 ( )
static

Return MCS 9 from HE MCS values.

Returns
MCS 9 from HE MCS values

Definition at line 4057 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 GetHeMcs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHePhyHeaderMode()

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

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

References GetHeMcs0().

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

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHtMcs()

WifiMode ns3::WifiPhy::GetHtMcs ( uint8_t  mcs)
static

Get the WifiMode object corresponding to the given MCS of the HT modulation class.

Parameters
mcsthe MCS value
Returns
the WifiMode object corresponding to the given MCS of the HT modulation class

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

References GetHtMcs0(), GetHtMcs1(), GetHtMcs10(), GetHtMcs11(), GetHtMcs12(), GetHtMcs13(), GetHtMcs14(), GetHtMcs15(), GetHtMcs16(), GetHtMcs17(), GetHtMcs18(), GetHtMcs19(), GetHtMcs2(), GetHtMcs20(), GetHtMcs21(), GetHtMcs22(), GetHtMcs23(), GetHtMcs24(), GetHtMcs25(), GetHtMcs26(), GetHtMcs27(), GetHtMcs28(), GetHtMcs29(), GetHtMcs3(), GetHtMcs30(), GetHtMcs31(), GetHtMcs4(), GetHtMcs5(), GetHtMcs6(), GetHtMcs7(), GetHtMcs8(), GetHtMcs9(), and NS_ABORT_MSG.

Referenced by ns3::WifiPpdu::GetTxVector().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHtMcs0()

WifiMode ns3::WifiPhy::GetHtMcs0 ( )
static

Return MCS 0 from HT MCS values.

Returns
MCS 0 from HT MCS values

Definition at line 3644 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(), GetHtMcs(), and GetHtPhyHeaderMode().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHtMcs1()

WifiMode ns3::WifiPhy::GetHtMcs1 ( )
static

Return MCS 1 from HT MCS values.

Returns
MCS 1 from HT MCS values

Definition at line 3652 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 GetHtMcs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHtMcs10()

WifiMode ns3::WifiPhy::GetHtMcs10 ( )
static

Return MCS 10 from HT MCS values.

Returns
MCS 10 from HT MCS values

Definition at line 3724 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 GetHtMcs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHtMcs11()

WifiMode ns3::WifiPhy::GetHtMcs11 ( )
static

Return MCS 11 from HT MCS values.

Returns
MCS 11 from HT MCS values

Definition at line 3732 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 GetHtMcs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHtMcs12()

WifiMode ns3::WifiPhy::GetHtMcs12 ( )
static

Return MCS 12 from HT MCS values.

Returns
MCS 12 from HT MCS values

Definition at line 3740 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 GetHtMcs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHtMcs13()

WifiMode ns3::WifiPhy::GetHtMcs13 ( )
static

Return MCS 13 from HT MCS values.

Returns
MCS 13 from HT MCS values

Definition at line 3748 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 GetHtMcs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHtMcs14()

WifiMode ns3::WifiPhy::GetHtMcs14 ( )
static

Return MCS 14 from HT MCS values.

Returns
MCS 14 from HT MCS values

Definition at line 3756 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 GetHtMcs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHtMcs15()

WifiMode ns3::WifiPhy::GetHtMcs15 ( )
static

Return MCS 15 from HT MCS values.

Returns
MCS 15 from HT MCS values

Definition at line 3764 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 GetHtMcs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHtMcs16()

WifiMode ns3::WifiPhy::GetHtMcs16 ( )
static

Return MCS 16 from HT MCS values.

Returns
MCS 16 from HT MCS values

Definition at line 3772 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 GetHtMcs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHtMcs17()

WifiMode ns3::WifiPhy::GetHtMcs17 ( )
static

Return MCS 17 from HT MCS values.

Returns
MCS 17 from HT MCS values

Definition at line 3780 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 GetHtMcs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHtMcs18()

WifiMode ns3::WifiPhy::GetHtMcs18 ( )
static

Return MCS 18 from HT MCS values.

Returns
MCS 18 from HT MCS values

Definition at line 3788 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 GetHtMcs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHtMcs19()

WifiMode ns3::WifiPhy::GetHtMcs19 ( )
static

Return MCS 19 from HT MCS values.

Returns
MCS 19 from HT MCS values

Definition at line 3796 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 GetHtMcs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHtMcs2()

WifiMode ns3::WifiPhy::GetHtMcs2 ( )
static

Return MCS 2 from HT MCS values.

Returns
MCS 2 from HT MCS values

Definition at line 3660 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 GetHtMcs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHtMcs20()

WifiMode ns3::WifiPhy::GetHtMcs20 ( )
static

Return MCS 20 from HT MCS values.

Returns
MCS 20 from HT MCS values

Definition at line 3804 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 GetHtMcs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHtMcs21()

WifiMode ns3::WifiPhy::GetHtMcs21 ( )
static

Return MCS 21 from HT MCS values.

Returns
MCS 21 from HT MCS values

Definition at line 3812 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(), GetHtMcs(), and GetPayloadDuration().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHtMcs22()

WifiMode ns3::WifiPhy::GetHtMcs22 ( )
static

Return MCS 22 from HT MCS values.

Returns
MCS 22 from HT MCS values

Definition at line 3820 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(), GetHtMcs(), and GetPayloadDuration().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHtMcs23()

WifiMode ns3::WifiPhy::GetHtMcs23 ( )
static

Return MCS 23 from HT MCS values.

Returns
MCS 23 from HT MCS values

Definition at line 3828 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(), GetHtMcs(), and GetPayloadDuration().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHtMcs24()

WifiMode ns3::WifiPhy::GetHtMcs24 ( )
static

Return MCS 24 from HT MCS values.

Returns
MCS 24 from HT MCS values

Definition at line 3836 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 GetHtMcs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHtMcs25()

WifiMode ns3::WifiPhy::GetHtMcs25 ( )
static

Return MCS 25 from HT MCS values.

Returns
MCS 25 from HT MCS values

Definition at line 3844 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 GetHtMcs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHtMcs26()

WifiMode ns3::WifiPhy::GetHtMcs26 ( )
static

Return MCS 26 from HT MCS values.

Returns
MCS 26 from HT MCS values

Definition at line 3852 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 GetHtMcs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHtMcs27()

WifiMode ns3::WifiPhy::GetHtMcs27 ( )
static

Return MCS 27 from HT MCS values.

Returns
MCS 27 from HT MCS values

Definition at line 3860 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 GetHtMcs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHtMcs28()

WifiMode ns3::WifiPhy::GetHtMcs28 ( )
static

Return MCS 28 from HT MCS values.

Returns
MCS 28 from HT MCS values

Definition at line 3868 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(), GetHtMcs(), and GetPayloadDuration().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHtMcs29()

WifiMode ns3::WifiPhy::GetHtMcs29 ( )
static

Return MCS 29 from HT MCS values.

Returns
MCS 29 from HT MCS values

Definition at line 3876 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(), GetHtMcs(), and GetPayloadDuration().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHtMcs3()

WifiMode ns3::WifiPhy::GetHtMcs3 ( )
static

Return MCS 3 from HT MCS values.

Returns
MCS 3 from HT MCS values

Definition at line 3668 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 GetHtMcs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHtMcs30()

WifiMode ns3::WifiPhy::GetHtMcs30 ( )
static

Return MCS 30 from HT MCS values.

Returns
MCS 30 from HT MCS values

Definition at line 3884 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(), GetHtMcs(), and GetPayloadDuration().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHtMcs31()

WifiMode ns3::WifiPhy::GetHtMcs31 ( )
static

Return MCS 31 from HT MCS values.

Returns
MCS 31 from HT MCS values

Definition at line 3892 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(), GetHtMcs(), and GetPayloadDuration().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHtMcs4()

WifiMode ns3::WifiPhy::GetHtMcs4 ( )
static

Return MCS 4 from HT MCS values.

Returns
MCS 4 from HT MCS values

Definition at line 3676 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 GetHtMcs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHtMcs5()

WifiMode ns3::WifiPhy::GetHtMcs5 ( )
static

Return MCS 5 from HT MCS values.

Returns
MCS 5 from HT MCS values

Definition at line 3684 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 GetHtMcs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHtMcs6()

WifiMode ns3::WifiPhy::GetHtMcs6 ( )
static

Return MCS 6 from HT MCS values.

Returns
MCS 6 from HT MCS values

Definition at line 3692 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 GetHtMcs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHtMcs7()

WifiMode ns3::WifiPhy::GetHtMcs7 ( )
static

Return MCS 7 from HT MCS values.

Returns
MCS 7 from HT MCS values

Definition at line 3700 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 GetHtMcs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHtMcs8()

WifiMode ns3::WifiPhy::GetHtMcs8 ( )
static

Return MCS 8 from HT MCS values.

Returns
MCS 8 from HT MCS values

Definition at line 3708 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 GetHtMcs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHtMcs9()

WifiMode ns3::WifiPhy::GetHtMcs9 ( )
static

Return MCS 9 from HT MCS values.

Returns
MCS 9 from HT MCS values

Definition at line 3716 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 GetHtMcs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetHtPhyHeaderMode()

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

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

References GetHtMcs0().

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

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetLastRxEndTime()

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

Return the end time of the last received packet.

Returns
the end time of the last received packet

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

References m_state.

Referenced by EndReceive().

+ Here is the caller graph for this function:

◆ GetLastRxStartTime()

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 4405 of file wifi-phy.cc.

References m_state.

◆ GetMaxSupportedRxSpatialStreams()

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

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

References m_rxSpatialStreams.

Referenced by ns3::ApWifiMac::GetHeOperation(), GetTypeId(), ns3::RegularWifiMac::GetVhtCapabilities(), ns3::ApWifiMac::GetVhtOperation(), and StartReceivePayload().

+ Here is the caller graph for this function:

◆ GetMaxSupportedTxSpatialStreams()

◆ GetMcs() [1/2]

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

◆ GetMcs() [2/2]

WifiMode ns3::WifiPhy::GetMcs ( WifiModulationClass  modulation,
uint8_t  mcs 
) const

Get the WifiMode object corresponding to the given MCS of the given modulation class.

Parameters
modulationthe modulation class
mcsthe MCS value
Returns
the WifiMode object corresponding to the given MCS of the given modulation class

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

References IsMcsSupported(), m_deviceMcsSet, m_mcsIndexMap, NS_ASSERT, and NS_ASSERT_MSG.

+ Here is the call graph for this function:

◆ GetMobility()

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 770 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:

◆ GetMode()

WifiMode ns3::WifiPhy::GetMode ( uint8_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 4126 of file wifi-phy.cc.

References m_deviceRateSet.

Referenced by ns3::WifiRemoteStationManager::AddAllSupportedModes(), ns3::IdealWifiManager::BuildSnrThresholds(), ns3::MeshWifiInterfaceMac::ForwardDown(), ns3::MacLow::GetControlAnswerMode(), ns3::MeshWifiInterfaceMac::GetSupportedRates(), ns3::ApWifiMac::GetSupportedRates(), ns3::StaWifiMac::GetSupportedRates(), IsModeSupported(), ns3::ApWifiMac::Receive(), ns3::MeshWifiInterfaceMac::Receive(), ns3::StaWifiMac::UpdateApInfoFromAssocResp(), ns3::StaWifiMac::UpdateApInfoFromBeacon(), and ns3::StaWifiMac::UpdateApInfoFromProbeResp().

+ Here is the caller graph for this function:

◆ GetNBssMembershipSelectors()

uint8_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 membership selector whose index is specified.

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

References m_bssMembershipSelectorSet.

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

+ Here is the caller graph for this function:

◆ GetNMcs()

◆ GetNModes()

uint8_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 4120 of file wifi-phy.cc.

References m_deviceRateSet.

Referenced by ns3::WifiRemoteStationManager::AddAllSupportedModes(), ns3::IdealWifiManager::BuildSnrThresholds(), ns3::MeshWifiInterfaceMac::ForwardDown(), ns3::MacLow::GetControlAnswerMode(), ns3::MeshWifiInterfaceMac::GetSupportedRates(), ns3::ApWifiMac::GetSupportedRates(), ns3::StaWifiMac::GetSupportedRates(), IsModeSupported(), ns3::ApWifiMac::Receive(), ns3::MeshWifiInterfaceMac::Receive(), ns3::StaWifiMac::UpdateApInfoFromAssocResp(), ns3::StaWifiMac::UpdateApInfoFromBeacon(), and ns3::StaWifiMac::UpdateApInfoFromProbeResp().

+ Here is the caller graph for this function:

◆ GetNTxPower()

uint8_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 707 of file wifi-phy.cc.

References m_nTxPower.

◆ GetNumberOfAntennas()

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

Definition at line 1529 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:

◆ GetOfdmRate12Mbps()

WifiMode ns3::WifiPhy::GetOfdmRate12Mbps ( )
static

Return a WifiMode for OFDM at 12Mbps.

Returns
a WifiMode for OFDM at 12Mbps

Definition at line 3371 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 ns3::WifiPpdu::GetTxVector().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetOfdmRate12MbpsBW10MHz()

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 3494 of file wifi-phy.cc.

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

Referenced by Configure80211p(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and ns3::WifiPpdu::GetTxVector().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetOfdmRate12MbpsBW5MHz()

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 3617 of file wifi-phy.cc.

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

Referenced by Configure80211p(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and ns3::WifiPpdu::GetTxVector().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetOfdmRate13_5MbpsBW5MHz()

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 3629 of file wifi-phy.cc.

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

Referenced by Configure80211p(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and ns3::WifiPpdu::GetTxVector().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetOfdmRate18Mbps()

WifiMode ns3::WifiPhy::GetOfdmRate18Mbps ( )
static

Return a WifiMode for OFDM at 18Mbps.

Returns
a WifiMode for OFDM at 18Mbps

Definition at line 3383 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(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and ns3::WifiPpdu::GetTxVector().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetOfdmRate18MbpsBW10MHz()

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 3506 of file wifi-phy.cc.

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

Referenced by Configure80211p(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and ns3::WifiPpdu::GetTxVector().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetOfdmRate1_5MbpsBW5MHz()

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 3545 of file wifi-phy.cc.

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

Referenced by Configure80211p(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), GetPhyHeaderMode(), and ns3::WifiPpdu::GetTxVector().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetOfdmRate24Mbps()

WifiMode ns3::WifiPhy::GetOfdmRate24Mbps ( )
static

Return a WifiMode for OFDM at 24Mbps.

Returns
a WifiMode for OFDM at 24Mbps

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

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

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

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetOfdmRate24MbpsBW10MHz()

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 3518 of file wifi-phy.cc.

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

Referenced by Configure80211p(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and ns3::WifiPpdu::GetTxVector().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetOfdmRate27MbpsBW10MHz()

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 3530 of file wifi-phy.cc.

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

Referenced by Configure80211p(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and ns3::WifiPpdu::GetTxVector().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetOfdmRate2_25MbpsBW5MHz()

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 3557 of file wifi-phy.cc.

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

Referenced by Configure80211p(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and ns3::WifiPpdu::GetTxVector().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetOfdmRate36Mbps()

WifiMode ns3::WifiPhy::GetOfdmRate36Mbps ( )
static

Return a WifiMode for OFDM at 36Mbps.

Returns
a WifiMode for OFDM at 36Mbps

Definition at line 3407 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(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and ns3::WifiPpdu::GetTxVector().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetOfdmRate3MbpsBW10MHz()

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 3446 of file wifi-phy.cc.

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

Referenced by Configure80211p(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), GetPhyHeaderMode(), and ns3::WifiPpdu::GetTxVector().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetOfdmRate3MbpsBW5MHz()

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 3569 of file wifi-phy.cc.

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

Referenced by Configure80211p(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and ns3::WifiPpdu::GetTxVector().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetOfdmRate48Mbps()

WifiMode ns3::WifiPhy::GetOfdmRate48Mbps ( )
static

Return a WifiMode for OFDM at 48Mbps.

Returns
a WifiMode for OFDM at 48Mbps

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

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

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

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetOfdmRate4_5MbpsBW10MHz()

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 3458 of file wifi-phy.cc.

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

Referenced by Configure80211p(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and ns3::WifiPpdu::GetTxVector().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetOfdmRate4_5MbpsBW5MHz()

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 3581 of file wifi-phy.cc.

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

Referenced by Configure80211p(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and ns3::WifiPpdu::GetTxVector().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetOfdmRate54Mbps()

WifiMode ns3::WifiPhy::GetOfdmRate54Mbps ( )
static

Return a WifiMode for OFDM at 54Mbps.

Returns
a WifiMode for OFDM at 54Mbps

Definition at line 3431 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(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and ns3::WifiPpdu::GetTxVector().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetOfdmRate6Mbps()

WifiMode ns3::WifiPhy::GetOfdmRate6Mbps ( )
static

Return a WifiMode for OFDM at 6Mbps.

Returns
a WifiMode for OFDM at 6Mbps

Definition at line 3347 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(), GetPhyHeaderMode(), and ns3::WifiPpdu::GetTxVector().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetOfdmRate6MbpsBW10MHz()

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 3470 of file wifi-phy.cc.

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

Referenced by Configure80211p(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and ns3::WifiPpdu::GetTxVector().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetOfdmRate6MbpsBW5MHz()

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 3593 of file wifi-phy.cc.

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

Referenced by Configure80211p(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and ns3::WifiPpdu::GetTxVector().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetOfdmRate9Mbps()

WifiMode ns3::WifiPhy::GetOfdmRate9Mbps ( )
static

Return a WifiMode for OFDM at 9Mbps.

Returns
a WifiMode for OFDM at 9Mbps

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

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

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

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetOfdmRate9MbpsBW10MHz()

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 3482 of file wifi-phy.cc.

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

Referenced by Configure80211p(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and ns3::WifiPpdu::GetTxVector().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetOfdmRate9MbpsBW5MHz()

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 3605 of file wifi-phy.cc.

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

Referenced by Configure80211p(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and ns3::WifiPpdu::GetTxVector().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetPayloadDuration() [1/2]

Time ns3::WifiPhy::GetPayloadDuration ( uint32_t  size,
WifiTxVector  txVector,
WifiPhyBand  band,
MpduType  mpdutype = NORMAL_MPDU 
)
static
Parameters
sizethe number of bytes in the packet to send
txVectorthe TXVECTOR used for the transmission of this packet
bandthe frequency band
mpdutypethe type of the MPDU as defined in WifiPhy::MpduType.
Returns
the duration of the payload

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

Referenced by ns3::MinstrelHtWifiManager::CalculateMpduTxDuration(), CalculateTxDuration(), and ScheduleEndOfMpdus().

+ Here is the caller graph for this function:

◆ GetPayloadDuration() [2/2]

Time ns3::WifiPhy::GetPayloadDuration ( uint32_t  size,
WifiTxVector  txVector,
WifiPhyBand  band,
MpduType  mpdutype,
bool  incFlag,
uint32_t &  totalAmpduSize,
double &  totalAmpduNumSymbols 
)
static
Parameters
sizethe number of bytes in the packet to send
txVectorthe TXVECTOR used for the transmission of this packet
bandthe frequency band
mpdutypethe type of the MPDU as defined in WifiPhy::MpduType.
incFlagthis flag is used to indicate that the variables need to be update or not This function is called a couple of times for the same packet so variables should not be increased each time.
totalAmpduSizethe total size of the previously transmitted MPDUs for the concerned A-MPDU. If incFlag is set, this parameter will be updated.
totalAmpduNumSymbolsthe number of symbols previously transmitted for the MPDUs in the concerned A-MPDU, used for the computation of the number of symbols needed for the last MPDU. If incFlag is set, this parameter will be updated.
Returns
the duration of the payload

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

References ns3::FemtoSeconds(), ns3::FIRST_MPDU_IN_AGGREGATE, ns3::WifiTxVector::GetChannelWidth(), ns3::WifiMode::GetDataRate(), ns3::Time::GetFemtoSeconds(), ns3::WifiTxVector::GetGuardInterval(), GetHtMcs21(), GetHtMcs22(), GetHtMcs23(), GetHtMcs28(), GetHtMcs29(), GetHtMcs30(), GetHtMcs31(), ns3::WifiMode::GetMcsValue(), ns3::WifiTxVector::GetMode(), ns3::WifiMode::GetModulationClass(), ns3::Time::GetNanoSeconds(), ns3::WifiTxVector::GetNss(), ns3::WifiTxVector::IsStbc(), ns3::LAST_MPDU_IN_AGGREGATE, ns3::MicroSeconds(), ns3::MIDDLE_MPDU_IN_AGGREGATE, ns3::NanoSeconds(), ns3::NORMAL_MPDU, NS_ASSERT, NS_FATAL_ERROR, NS_LOG_FUNCTION, ns3::Seconds(), ns3::SINGLE_MPDU, 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_PHY_BAND_2_4GHZ.

+ Here is the call graph for this function:

◆ GetPhyBand()

◆ GetPhyHeaderDuration()

◆ GetPhyHeaderMode()

◆ GetPhyHtSigHeaderDuration()

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

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

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

Referenced by ns3::InterferenceHelper::CalculateHtPhyHeaderPer(), ns3::InterferenceHelper::CalculateNonHtPhyHeaderPer(), ns3::InterferenceHelper::CalculatePayloadPer(), and CalculatePhyPreambleAndHeaderDuration().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetPhyPreambleDuration()

◆ GetPhySigA1Duration()

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

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

References ns3::MicroSeconds(), ns3::WIFI_PREAMBLE_HE_MU, ns3::WIFI_PREAMBLE_HE_SU, ns3::WIFI_PREAMBLE_VHT_MU, and ns3::WIFI_PREAMBLE_VHT_SU.

Referenced by ns3::InterferenceHelper::CalculateHtPhyHeaderPer(), ns3::InterferenceHelper::CalculateNonHtPhyHeaderPer(), ns3::InterferenceHelper::CalculatePayloadPer(), and CalculatePhyPreambleAndHeaderDuration().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetPhySigA2Duration()

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

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

References ns3::MicroSeconds(), ns3::WIFI_PREAMBLE_HE_MU, ns3::WIFI_PREAMBLE_HE_SU, ns3::WIFI_PREAMBLE_VHT_MU, and ns3::WIFI_PREAMBLE_VHT_SU.

Referenced by ns3::InterferenceHelper::CalculateHtPhyHeaderPer(), ns3::InterferenceHelper::CalculateNonHtPhyHeaderPer(), ns3::InterferenceHelper::CalculatePayloadPer(), and CalculatePhyPreambleAndHeaderDuration().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetPhySigBDuration()

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

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

References ns3::MicroSeconds(), ns3::WIFI_PREAMBLE_HE_MU, and ns3::WIFI_PREAMBLE_VHT_MU.

Referenced by ns3::InterferenceHelper::CalculateHtPhyHeaderPer(), ns3::InterferenceHelper::CalculateNonHtPhyHeaderPer(), ns3::InterferenceHelper::CalculatePayloadPer(), and CalculatePhyPreambleAndHeaderDuration().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetPhyStandard()

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

Get the configured Wi-Fi standard.

Returns
the Wi-Fi standard that has been configured

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

References m_standard.

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

+ Here is the caller graph for this function:

◆ GetPhyTrainingSymbolDuration()

Time ns3::WifiPhy::GetPhyTrainingSymbolDuration ( WifiTxVector  txVector)
static

◆ GetPifs()

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

Return the PCF Interframe Space (PIFS) for this PHY.

Returns
the PIFS duration

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

References m_pifs.

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

+ Here is the caller graph for this function:

◆ GetPowerDbm()

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 815 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(), GetTxPowerForTransmission(), Send(), and ns3::YansWifiPhy::StartTx().

+ Here is the caller graph for this function:

◆ GetPreambleDetectionDuration()

Time ns3::WifiPhy::GetPreambleDetectionDuration ( void  )
static
Returns
the preamble detection duration, which is the time correlation needs to detect the start of an incoming frame.

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

References ns3::MicroSeconds().

Referenced by StartReceiveHeader(), and StartRx().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetReceptionStatus()

std::pair< bool, SignalNoiseDbm > ns3::WifiPhy::GetReceptionStatus ( Ptr< const WifiPsdu psdu,
Ptr< Event event,
Time  relativeMpduStart,
Time  mpduDuration 
)
private

Get the reception status for the provided MPDU and notify.

Parameters
psduthe arriving MPDU formatted as a PSDU
eventthe event holding incoming PPDU's information
relativeMpduStartthe relative start time of the MPDU within the A-MPDU. 0 for normal MPDUs
mpduDurationthe duration of the MPDU
Returns
information on MPDU reception: status, signal power (dBm), and noise power (in dBm)

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

References ns3::InterferenceHelper::CalculatePayloadSnrPer(), ns3::Time::GetNanoSeconds(), ns3::UniformRandomVariable::GetValue(), m_interference, m_postReceptionErrorModel, m_random, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::InterferenceHelper::SnrPer::per, ns3::RatioToDb(), ns3::SignalNoiseDbm::signal, ns3::InterferenceHelper::SnrPer::snr, and ns3::WToDbm().

Referenced by EndOfMpdu(), and EndReceive().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetRxGain()

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

Return the reception gain (dB).

Returns
the reception gain in dB

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

References m_rxGainDb.

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

+ Here is the caller graph for this function:

◆ GetRxSensitivity()

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

Return the receive sensitivity threshold (dBm).

Returns
the receive sensitivity threshold in dBm

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

References m_rxSensitivityW, and ns3::WToDbm().

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

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetShortPhyPreambleSupported()

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

Return whether short PHY preamble is supported.

Returns
if short PHY preamble is supported or not

Definition at line 746 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:

◆ GetSifs()

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

Return the Short Interframe Space (SIFS) for this PHY.

Returns
the SIFS duration

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

References m_sifs.

Referenced by ns3::MinstrelHtWifiManager::CalculateRetransmits(), ns3::MinstrelWifiManager::CalculateTimeUnicastPacket(), Configure80211a(), Configure80211b(), Configure80211p(), ConfigureHolland(), ns3::ChannelAccessManager::GetEifsNoDifs(), ns3::MacLow::GetSifs(), and ns3::ChannelAccessManager::GetSifs().

+ Here is the caller graph for this function:

◆ GetSlot()

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

Return the slot duration for this PHY.

Returns
the slot duration

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

References m_slot.

Referenced by ns3::MinstrelHtWifiManager::CalculateRetransmits(), ns3::MinstrelWifiManager::CalculateTimeUnicastPacket(), Configure80211a(), Configure80211b(), Configure80211p(), ConfigureHolland(), ns3::ChannelAccessManager::GetSlot(), and ns3::MacLow::GetSlotTime().

+ Here is the caller graph for this function:

◆ GetStartOfPacketDuration()

Time ns3::WifiPhy::GetStartOfPacketDuration ( WifiTxVector  txVector)
static
Parameters
txVectorthe transmission parameters used for this packet
Returns
the duration until the start of the packet

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

References ns3::MicroSeconds().

+ Here is the call graph for this function:

◆ GetState()

Ptr< WifiPhyStateHelper > ns3::WifiPhy::GetState ( void  ) const

Return the WifiPhyStateHelper of this PHY.

Returns
the WifiPhyStateHelper of this PHY

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

References m_state.

Referenced by WifiPhyThresholdsTest::DoSetup().

+ Here is the caller graph for this function:

◆ GetSupportedChannelWidthSet()

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

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

References m_supportedChannelWidthSet.

◆ GetTxGain()

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

Return the transmission gain (dB).

Returns
the transmission gain in dB

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

References m_txGainDb.

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

+ Here is the caller graph for this function:

◆ GetTxPowerEnd()

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 694 of file wifi-phy.cc.

References m_txPowerEndDbm.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ GetTxPowerForTransmission()

double ns3::WifiPhy::GetTxPowerForTransmission ( WifiTxVector  txVector) const

Compute the transmit power (in dBm) for the next transmission.

Parameters
txVectorthe TXVECTOR
Returns
the transmit power in dBm for the next transmission

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

References ns3::WifiTxVector::GetNss(), GetPowerDbm(), ns3::WifiTxVector::GetTxPowerLevel(), m_powerRestricted, m_txPowerMaxMimo, m_txPowerMaxSiso, min, and NS_LOG_FUNCTION.

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

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetTxPowerStart()

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 681 of file wifi-phy.cc.

References m_txPowerBaseDbm.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ GetTypeId()

◆ GetVhtMcs()

WifiMode ns3::WifiPhy::GetVhtMcs ( uint8_t  mcs)
static

Get the WifiMode object corresponding to the given MCS of the VHT modulation class.

Parameters
mcsthe MCS value
Returns
the WifiMode object corresponding to the given MCS of the VHT modulation class

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

References GetVhtMcs0(), GetVhtMcs1(), GetVhtMcs2(), GetVhtMcs3(), GetVhtMcs4(), GetVhtMcs5(), GetVhtMcs6(), GetVhtMcs7(), GetVhtMcs8(), GetVhtMcs9(), and NS_ABORT_MSG.

Referenced by ns3::WifiPpdu::GetTxVector().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetVhtMcs0()

WifiMode ns3::WifiPhy::GetVhtMcs0 ( )
static

Return MCS 0 from VHT MCS values.

Returns
MCS 0 from VHT MCS values

Definition at line 3903 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(), GetVhtMcs(), and GetVhtPhyHeaderMode().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetVhtMcs1()

WifiMode ns3::WifiPhy::GetVhtMcs1 ( )
static

Return MCS 1 from VHT MCS values.

Returns
MCS 1 from VHT MCS values

Definition at line 3911 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 GetVhtMcs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetVhtMcs2()

WifiMode ns3::WifiPhy::GetVhtMcs2 ( )
static

Return MCS 2 from VHT MCS values.

Returns
MCS 2 from VHT MCS values

Definition at line 3919 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 GetVhtMcs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetVhtMcs3()

WifiMode ns3::WifiPhy::GetVhtMcs3 ( )
static

Return MCS 3 from VHT MCS values.

Returns
MCS 3 from VHT MCS values

Definition at line 3927 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 GetVhtMcs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetVhtMcs4()

WifiMode ns3::WifiPhy::GetVhtMcs4 ( )
static

Return MCS 4 from VHT MCS values.

Returns
MCS 4 from VHT MCS values

Definition at line 3935 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 GetVhtMcs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetVhtMcs5()

WifiMode ns3::WifiPhy::GetVhtMcs5 ( )
static

Return MCS 5 from VHT MCS values.

Returns
MCS 5 from VHT MCS values

Definition at line 3943 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 GetVhtMcs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetVhtMcs6()

WifiMode ns3::WifiPhy::GetVhtMcs6 ( )
static

Return MCS 6 from VHT MCS values.

Returns
MCS 6 from VHT MCS values

Definition at line 3951 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 GetVhtMcs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetVhtMcs7()

WifiMode ns3::WifiPhy::GetVhtMcs7 ( )
static

Return MCS 7 from VHT MCS values.

Returns
MCS 7 from VHT MCS values

Definition at line 3959 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 GetVhtMcs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetVhtMcs8()

WifiMode ns3::WifiPhy::GetVhtMcs8 ( )
static

Return MCS 8 from VHT MCS values.

Returns
MCS 8 from VHT MCS values

Definition at line 3967 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 GetVhtMcs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetVhtMcs9()

WifiMode ns3::WifiPhy::GetVhtMcs9 ( )
static

Return MCS 9 from VHT MCS values.

Returns
MCS 9 from VHT MCS values

Definition at line 3975 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 GetVhtMcs().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetVhtPhyHeaderMode()

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

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

References GetVhtMcs0().

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

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ InitializeFrequencyChannelNumber()

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 612 of file wifi-phy.cc.

References GetChannelNumber(), GetPhyStandard(), 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 ConfigureStandardAndBand(), and DoInitialize().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ IsMcsSupported() [1/2]

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 4094 of file wifi-phy.cc.

References ns3::WifiMode::GetMcsValue(), ns3::WifiMode::GetModulationClass(), ns3::WIFI_MOD_CLASS_HE, ns3::WIFI_MOD_CLASS_HT, and ns3::WIFI_MOD_CLASS_VHT.

Referenced by GetMcs(), and StartReceivePayload().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ IsMcsSupported() [2/2]

bool ns3::WifiPhy::IsMcsSupported ( WifiModulationClass  mc,
uint8_t  mcs 
) const

Check if the given MCS of the given modulation class is supported by the PHY.

Parameters
mcthe modulation class
mcsthe MCS value
Returns
true if the given mode is supported, false otherwise

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

References m_mcsIndexMap.

◆ IsModeSupported()

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 4081 of file wifi-phy.cc.

References GetMode(), and GetNModes().

Referenced by StartReceivePayload().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ IsStateCcaBusy()

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

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

References m_state.

◆ IsStateIdle()

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

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

References m_state.

◆ IsStateOff()

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

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

References m_state.

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

+ Here is the caller graph for this function:

◆ IsStateRx()

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

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

References m_state.

Referenced by ResetReceive(), ns3::MacLow::SendBlockAckAfterAmpdu(), and StartReceiveHeader().

+ Here is the caller graph for this function:

◆ IsStateSleep()

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

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

References m_state.

◆ IsStateSwitching()

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

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

References m_state.

Referenced by DoChannelSwitch(), and DoFrequencySwitch().

+ Here is the caller graph for this function:

◆ IsStateTx()

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

Definition at line 4375 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:

◆ MaybeCcaBusyDuration()

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

Eventually switch to CCA busy.

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

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

Referenced by ContinueReceiveHeader(), EndReceive(), ResetReceive(), Send(), StartReceiveHeader(), and StartReceivePreamble().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ NotifyChannelAccessRequested()

void ns3::WifiPhy::NotifyChannelAccessRequested ( void  )

Notify the PHY that an access to the channel was requested.

This is typically called by the channel access manager to to notify the PHY about an ongoing transmission. The PHY will use this information to determine whether it should use power restriction as imposed by OBSS_PD SR.

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

References m_channelAccessRequested, and NS_LOG_FUNCTION.

Referenced by ns3::ChannelAccessManager::RequestAccess().

+ Here is the caller graph for this function:

◆ NotifyEndOfHePreamble()

void ns3::WifiPhy::NotifyEndOfHePreamble ( HePreambleParameters  params)

Public method used to fire a EndOfHePreamble trace once both HE SIG fields have been received, as well as training fields.

Parameters
paramsthe HE preamble parameters

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

References m_phyEndOfHePreambleTrace.

Referenced by StartReceivePayload().

+ Here is the caller graph for this function:

◆ NotifyMonitorSniffRx()

void ns3::WifiPhy::NotifyMonitorSniffRx ( Ptr< const WifiPsdu psdu,
uint16_t  channelFreqMhz,
WifiTxVector  txVector,
SignalNoiseDbm  signalNoise,
std::vector< bool >  statusPerMpdu 
)

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

Implemented for encapsulation purposes. This method will extract all MPDUs if packet is an A-MPDU and will fire tracedCallback. The A-MPDU reference number (RX side) is set within the method. It must be a different value for each A-MPDU but the same for each subframe within one A-MPDU.

Parameters
psduthe PSDU 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
signalNoisesignal power and noise power in dBm (noise power includes the noise figure)
statusPerMpdureception status per MPDU

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

References ns3::FIRST_MPDU_IN_AGGREGATE, ns3::WifiTxVector::IsAggregation(), ns3::LAST_MPDU_IN_AGGREGATE, m_phyMonitorSniffRxTrace, m_rxMpduReferenceNumber, ns3::MIDDLE_MPDU_IN_AGGREGATE, ns3::MpduInfo::mpduRefNumber, ns3::NORMAL_MPDU, NS_ASSERT_MSG, ns3::SINGLE_MPDU, and ns3::MpduInfo::type.

Referenced by EndReceive().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ NotifyMonitorSniffTx()

void ns3::WifiPhy::NotifyMonitorSniffTx ( Ptr< const WifiPsdu psdu,
uint16_t  channelFreqMhz,
WifiTxVector  txVector 
)

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

Implemented for encapsulation purposes. This method will extract all MPDUs if packet is an A-MPDU and will fire tracedCallback. The A-MPDU reference number (RX side) is set within the method. It must be a different value for each A-MPDU but the same for each subframe within one A-MPDU.

Parameters
psduthe PSDU being received
channelFreqMhzthe frequency in MHz at which the packet is transmitted.
txVectorthe TXVECTOR that holds TX parameters

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

References ns3::FIRST_MPDU_IN_AGGREGATE, ns3::WifiTxVector::IsAggregation(), ns3::LAST_MPDU_IN_AGGREGATE, m_phyMonitorSniffTxTrace, m_rxMpduReferenceNumber, ns3::MIDDLE_MPDU_IN_AGGREGATE, ns3::MpduInfo::mpduRefNumber, ns3::NORMAL_MPDU, NS_ASSERT_MSG, ns3::SINGLE_MPDU, and ns3::MpduInfo::type.

Referenced by Send().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ NotifyRxBegin()

void ns3::WifiPhy::NotifyRxBegin ( Ptr< const WifiPsdu psdu)

Public method used to fire a PhyRxBegin trace.

Implemented for encapsulation purposes.

Parameters
psduthe PSDU being transmitted

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

References m_phyRxBeginTrace, and ns3::PeekPointer().

Referenced by StartReceiveHeader().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ NotifyRxDrop()

void ns3::WifiPhy::NotifyRxDrop ( Ptr< const WifiPsdu psdu,
WifiPhyRxfailureReason  reason 
)

Public method used to fire a PhyRxDrop trace.

Implemented for encapsulation purposes.

Parameters
psduthe PSDU being transmitted
reasonthe reason the packet was dropped

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

References m_phyRxDropTrace, and ns3::PeekPointer().

Referenced by AbortCurrentReception(), StartReceiveHeader(), StartReceivePayload(), StartReceivePreamble(), and StartRx().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ NotifyRxEnd()

void ns3::WifiPhy::NotifyRxEnd ( Ptr< const WifiPsdu psdu)

Public method used to fire a PhyRxEnd trace.

Implemented for encapsulation purposes.

Parameters
psduthe PSDU being transmitted

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

References m_phyRxEndTrace, and ns3::PeekPointer().

Referenced by EndReceive().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ NotifyTxBegin()

void ns3::WifiPhy::NotifyTxBegin ( Ptr< const WifiPsdu psdu,
double  txPowerW 
)

Public method used to fire a PhyTxBegin trace.

Implemented for encapsulation purposes.

Parameters
psduthe PSDU being transmitted
txPowerWthe transmit power in Watts

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

References m_phyTxBeginTrace, and ns3::PeekPointer().

Referenced by Send().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ NotifyTxDrop()

void ns3::WifiPhy::NotifyTxDrop ( Ptr< const WifiPsdu psdu)

Public method used to fire a PhyTxDrop trace.

Implemented for encapsulation purposes.

Parameters
psduthe PSDU being transmitted

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

References m_phyTxDropTrace, and ns3::PeekPointer().

Referenced by Send().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ NotifyTxEnd()

void ns3::WifiPhy::NotifyTxEnd ( Ptr< const WifiPsdu psdu)

Public method used to fire a PhyTxEnd trace.

Implemented for encapsulation purposes.

Parameters
psduthe PSDU being transmitted

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

References m_phyTxEndTrace, and ns3::PeekPointer().

Referenced by Send().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ PushMcs()

void ns3::WifiPhy::PushMcs ( WifiMode  mode)
private

Add the given MCS to the device MCS set.

Parameters
modethe MCS to add to the device MCS set

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

References ns3::WifiMode::GetMcsValue(), ns3::WifiMode::GetModulationClass(), m_deviceMcsSet, m_mcsIndexMap, NS_ASSERT, NS_LOG_FUNCTION, ns3::WIFI_MOD_CLASS_HE, ns3::WIFI_MOD_CLASS_HT, and ns3::WIFI_MOD_CLASS_VHT.

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

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ RebuildMcsMap()

void ns3::WifiPhy::RebuildMcsMap ( void  )
private

Rebuild the mapping of MCS values to indices in the device MCS set.

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

References m_deviceMcsSet, m_mcsIndexMap, and NS_LOG_FUNCTION.

Referenced by ConfigureHtDeviceMcsSet().

+ Here is the caller graph for this function:

◆ RegisterListener()

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 594 of file wifi-phy.cc.

References m_state.

Referenced by SpectrumWifiPhyListenerTest::DoSetup().

+ Here is the caller graph for this function:

◆ ResetCca()

void ns3::WifiPhy::ResetCca ( bool  powerRestricted,
double  txPowerMaxSiso = 0,
double  txPowerMaxMimo = 0 
)

Reset PHY to IDLE, with some potential TX power restrictions for the next transmission.

Parameters
powerRestrictedflag whether the transmit power is restricted for the next transmission
txPowerMaxSisothe SISO transmit power restriction for the next transmission in dBm
txPowerMaxMimothe MIMO transmit power restriction for the next transmission in dBm

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

References AbortCurrentReception(), EndReceiveInterBss(), m_currentEvent, m_powerRestricted, m_txPowerMaxMimo, m_txPowerMaxSiso, ns3::Simulator::Now(), NS_ASSERT, NS_LOG_FUNCTION, ns3::OBSS_PD_CCA_RESET, and ns3::Simulator::Schedule().

+ Here is the call graph for this function:

◆ ResetReceive()

void ns3::WifiPhy::ResetReceive ( Ptr< Event event)

Reset PHY at the end of the packet under reception after it has failed the PHY header.

Parameters
eventthe corresponding event of the first time the packet arrives (also storing packet and TxVector information)

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

References IsStateRx(), m_currentEvent, m_interference, MaybeCcaBusyDuration(), ns3::InterferenceHelper::NotifyRxEnd(), ns3::Simulator::Now(), NS_ASSERT, and NS_LOG_FUNCTION.

Referenced by StartReceivePayload().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ResumeFromOff()

void ns3::WifiPhy::ResumeFromOff ( void  )

Resume from off mode.

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

References CCA_BUSY, ns3::InterferenceHelper::GetEnergyDuration(), IDLE, m_ccaEdThresholdW, m_interference, m_state, NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, OFF, 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:

◆ ResumeFromSleep()

void ns3::WifiPhy::ResumeFromSleep ( void  )

Resume from sleep mode.

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

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

+ Here is the call graph for this function:

◆ ScheduleEndOfMpdus()

void ns3::WifiPhy::ScheduleEndOfMpdus ( Ptr< Event event)
private

Schedule end of MPDUs events.

Parameters
eventthe event holding incoming PPDU's information

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

References CalculatePhyPreambleAndHeaderDuration(), EndOfMpdu(), ns3::FIRST_MPDU_IN_AGGREGATE, GetPayloadDuration(), GetPhyBand(), ns3::LAST_MPDU_IN_AGGREGATE, m_endOfMpduEvents, ns3::MIDDLE_MPDU_IN_AGGREGATE, ns3::NanoSeconds(), NS_LOG_FUNCTION, and ns3::Simulator::Schedule().

Referenced by StartReceivePayload().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Send()

void ns3::WifiPhy::Send ( Ptr< const WifiPsdu psdu,
WifiTxVector  txVector 
)
Parameters
psduthe PSDU to send
txVectorthe TXVECTOR that has TX parameters such as mode, the transmission mode to use to send this PSDU, and txPowerLevel, a power level to use to send the whole PPDU. The real transmission power is calculated as txPowerMin + txPowerLevel * (txPowerMax - txPowerMin) / nTxLevels

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

References AbortCurrentReception(), CalculateTxDuration(), ns3::DbmToW(), GetFrequency(), GetMaxSupportedTxSpatialStreams(), ns3::WifiTxVector::GetNss(), GetPhyBand(), GetPowerDbm(), GetTxGain(), GetTxPowerForTransmission(), ns3::WifiTxVector::GetTxPowerLevel(), ns3::EventId::IsExpired(), ns3::Time::IsStrictlyPositive(), m_channelAccessRequested, m_currentEvent, m_endTxEvent, m_phyTxPsduBeginTrace, m_powerRestricted, m_state, m_wifiRadioEnergyModel, MaybeCcaBusyDuration(), NotifyMonitorSniffTx(), NotifyTxBegin(), NotifyTxDrop(), NotifyTxEnd(), ns3::Simulator::Now(), NS_ASSERT, NS_FATAL_ERROR, NS_LOG_DEBUG, NS_LOG_FUNCTION, OFF, ns3::RECEPTION_ABORTED_BY_TX, ns3::Simulator::Schedule(), StartTx(), and TX.

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

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetCapabilitiesChangedCallback()

void ns3::WifiPhy::SetCapabilitiesChangedCallback ( Callback< void >  callback)
Parameters
callbackthe callback to invoke when PHY capabilities have changed.

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

References m_capabilitiesChangedCallback.

Referenced by ns3::StaWifiMac::SetWifiPhy().

+ Here is the caller graph for this function:

◆ SetCcaEdThreshold()

void ns3::WifiPhy::SetCcaEdThreshold ( 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 653 of file wifi-phy.cc.

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

Referenced by GetTypeId().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetChannelNumber()

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 1613 of file wifi-phy.cc.

References DoChannelSwitch(), f(), GetChannelNumber(), GetFrequencyWidthForChannelNumberStandard(), GetPhyBand(), GetPhyStandard(), 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(), Bug2831TestCase::ChangeSupportedChannelWidth(), ConfigureChannelForStandard(), DoChannelSwitch(), Bug2831TestCase::DoRun(), GetTypeId(), InitializeFrequencyChannelNumber(), 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:

◆ SetChannelWidth()

void ns3::WifiPhy::SetChannelWidth ( uint16_t  channelWidth)
virtual

◆ SetDevice()

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 752 of file wifi-phy.cc.

References m_device.

Referenced by AmpduAggregationTest::DoRun(), TwoLevelAggregationTest::DoRun(), Bug2831TestCase::DoRun(), HeAggregationTest::DoRunSubTest(), and InterferenceExperiment::Run().

+ Here is the caller graph for this function:

◆ SetErrorRateModel()

◆ SetFrameCaptureModel()

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

Sets the frame capture model.

Parameters
frameCaptureModelthe frame capture model

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

References m_frameCaptureModel.

Referenced by TestThresholdPreambleDetectionWithFrameCapture::DoSetup(), TestSimpleFrameCaptureModel::DoSetup(), and TestAmpduReception::DoSetup().

+ Here is the caller graph for this function:

◆ SetFrequency()

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

Reimplemented in ns3::SpectrumWifiPhy.

Definition at line 1438 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:

◆ SetMaxSupportedRxSpatialStreams()

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

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

References GetNumberOfAntennas(), ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::IsNull(), m_capabilitiesChangedCallback, m_rxSpatialStreams, and NS_ASSERT.

Referenced by GetTypeId().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetMaxSupportedTxSpatialStreams()

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

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

References ConfigureHtDeviceMcsSet(), GetNumberOfAntennas(), ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::IsNull(), m_capabilitiesChangedCallback, m_txSpatialStreams, and NS_ASSERT.

Referenced by GetTypeId().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetMobility()

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 764 of file wifi-phy.cc.

References m_mobility, and third::mobility.

Referenced by Bug2831TestCase::DoRun(), PsrExperiment::Run(), InterferenceExperiment::Run(), CollisionExperiment::Run(), and ns3::WifiSpectrumPhyInterface::SetMobility().

+ Here is the caller graph for this function:

◆ SetNTxPower()

void ns3::WifiPhy::SetNTxPower ( uint8_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 700 of file wifi-phy.cc.

References m_nTxPower, sample-rng-plot::n, and NS_LOG_FUNCTION.

◆ SetNumberOfAntennas()

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

Definition at line 1521 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:

◆ SetOffMode()

void ns3::WifiPhy::SetOffMode ( void  )

Put in off mode.

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

References ns3::EventId::Cancel(), m_channelAccessRequested, m_endPhyRxEvent, m_endPreambleDetectionEvent, m_endRxEvent, m_endTxEvent, m_powerRestricted, m_state, and NS_LOG_FUNCTION.

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

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetPifs()

void ns3::WifiPhy::SetPifs ( Time  pifs)

Set the PCF Interframe Space (PIFS) for this PHY.

Parameters
pifsthe PIFS duration

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

References m_pifs.

Referenced by Configure80211a(), Configure80211b(), Configure80211p(), and ConfigureHolland().

+ Here is the caller graph for this function:

◆ SetPostReceptionErrorModel()

void ns3::WifiPhy::SetPostReceptionErrorModel ( const Ptr< ErrorModel em)

Attach a receive ErrorModel to the WifiPhy.

The WifiPhy may optionally include an ErrorModel in the packet receive chain. The error model is additive to any modulation-based error model based on SNR, and is typically used to force specific packet losses or for testing purposes.

Parameters
emPointer to the ErrorModel.

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

References m_postReceptionErrorModel, and NS_LOG_FUNCTION.

◆ SetPreambleDetectionModel()

void ns3::WifiPhy::SetPreambleDetectionModel ( const Ptr< PreambleDetectionModel preambleDetectionModel)

Sets the preamble detection model.

Parameters
preambleDetectionModelthe preamble detection model

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

References m_preambleDetectionModel.

Referenced by TestThresholdPreambleDetectionWithoutFrameCapture::DoSetup(), TestThresholdPreambleDetectionWithFrameCapture::DoSetup(), TestSimpleFrameCaptureModel::DoSetup(), and TestAmpduReception::DoSetup().

+ Here is the caller graph for this function:

◆ SetReceiveErrorCallback()

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

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

References m_state.

Referenced by SpectrumWifiPhyBasicTest::DoSetup(), TestThresholdPreambleDetectionWithoutFrameCapture::DoSetup(), WifiPhyThresholdsTest::DoSetup(), TestThresholdPreambleDetectionWithFrameCapture::DoSetup(), TestAmpduReception::DoSetup(), ns3::MacLow::ResetPhy(), and ns3::MacLow::SetPhy().

+ Here is the caller graph for this function:

◆ SetReceiveOkCallback()

void ns3::WifiPhy::SetReceiveOkCallback ( RxOkCallback  callback)

◆ SetRxGain()

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

Sets the reception gain (dB).

Parameters
gainthe reception gain in dB

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

References m_rxGainDb, and NS_LOG_FUNCTION.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetRxNoiseFigure()

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 666 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:

◆ SetRxSensitivity()

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

Sets the receive sensitivity threshold (dBm).

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

Parameters
thresholdthe receive sensitivity threshold in dBm

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

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

Referenced by GetTypeId().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetShortPhyPreambleSupported()

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

Enable or disable short PHY preamble.

Parameters
preamblesets whether short PHY preamble is supported or not

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

References m_shortPreamble, and NS_LOG_FUNCTION.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetSifs()

void ns3::WifiPhy::SetSifs ( Time  sifs)

Set the Short Interframe Space (SIFS) for this PHY.

Parameters
sifsthe SIFS duration

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

References m_sifs.

Referenced by Configure80211a(), Configure80211b(), Configure80211p(), and ConfigureHolland().

+ Here is the caller graph for this function:

◆ SetSleepMode()

void ns3::WifiPhy::SetSleepMode ( void  )

Put in sleep mode.

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

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

+ Here is the call graph for this function:

◆ SetSlot()

void ns3::WifiPhy::SetSlot ( Time  slot)

Set the slot duration for this PHY.

Parameters
slotthe slot duration

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

References m_slot.

Referenced by Configure80211a(), Configure80211b(), Configure80211p(), ConfigureHolland(), ns3::ApWifiMac::SendOneBeacon(), ns3::StaWifiMac::UpdateApInfoFromAssocResp(), ns3::StaWifiMac::UpdateApInfoFromBeacon(), and ns3::StaWifiMac::UpdateApInfoFromProbeResp().

+ Here is the caller graph for this function:

◆ SetTxGain()

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

Sets the transmission gain (dB).

Parameters
gainthe transmission gain in dB

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

References m_txGainDb, and NS_LOG_FUNCTION.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetTxPowerEnd()

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

Sets the maximum available transmission power level (dBm).

Parameters
endthe maximum transmission power level (dBm)

Definition at line 687 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:

◆ SetTxPowerStart()

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

Sets the minimum available transmission power level (dBm).

Parameters
startthe minimum transmission power level (dBm)

Definition at line 674 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:

◆ SetWifiRadioEnergyModel()

void ns3::WifiPhy::SetWifiRadioEnergyModel ( const Ptr< WifiRadioEnergyModel wifiRadioEnergyModel)

Sets the wifi radio energy model.

Parameters
wifiRadioEnergyModelthe wifi radio energy model

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

References m_wifiRadioEnergyModel.

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

+ Here is the caller graph for this function:

◆ StartReceiveHeader()

◆ StartReceivePayload()

◆ StartReceivePreamble()

void ns3::WifiPhy::StartReceivePreamble ( Ptr< WifiPpdu ppdu,
double  rxPowerW 
)

Start receiving the PHY preamble of a PPDU (i.e.

the first bit of the preamble has arrived).

Parameters
ppduthe arriving PPDU
rxPowerWthe receive power in W

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

References AbortCurrentReception(), ns3::InterferenceHelper::Add(), CCA_BUSY, ns3::CHANNEL_SWITCHING, ns3::FRAME_CAPTURE_PACKET_SWITCH, ns3::WifiTxVector::GetModeInitialized(), IDLE, m_currentEvent, m_frameCaptureModel, m_interference, m_state, m_timeLastPreambleDetected, MaybeCcaBusyDuration(), NotifyRxDrop(), ns3::Simulator::Now(), NS_ASSERT, NS_FATAL_ERROR, NS_LOG_DEBUG, NS_LOG_FUNCTION, OFF, RX, ns3::RXING, SLEEP, ns3::SLEEPING, StartRx(), SWITCHING, TX, ns3::TXING, and ns3::UNSUPPORTED_SETTINGS.

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

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ StartRx()

void ns3::WifiPhy::StartRx ( Ptr< Event event,
double  rxPowerW 
)
private

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

Parameters
eventthe event holding incoming PPDU's information
rxPowerWthe receive power in W

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

References ns3::BUSY_DECODING_PREAMBLE, ns3::EventId::Cancel(), GetPreambleDetectionDuration(), ns3::EventId::IsRunning(), m_currentEvent, m_endPreambleDetectionEvent, m_frameCaptureModel, m_interference, NotifyRxDrop(), ns3::InterferenceHelper::NotifyRxEnd(), ns3::InterferenceHelper::NotifyRxStart(), NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::PREAMBLE_DETECTION_PACKET_SWITCH, ns3::Simulator::Schedule(), and StartReceiveHeader().

Referenced by StartReceivePreamble().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ StartTx()

virtual void ns3::WifiPhy::StartTx ( Ptr< WifiPpdu ppdu)
pure virtual
Parameters
ppduthe PPDU to send

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

Referenced by Send().

+ Here is the caller graph for this function:

◆ SwitchMaybeToCcaBusy()

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 CcaEdThreshold

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

References ns3::Time::As(), ns3::InterferenceHelper::GetEnergyDuration(), ns3::Time::IsZero(), m_ccaEdThresholdW, 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:

◆ UnregisterListener()

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 600 of file wifi-phy.cc.

References m_state.

Member Data Documentation

◆ m_ackTxTime

Time ns3::WifiPhy::m_ackTxTime
private

estimated Ack TX time

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

Referenced by Configure80211a(), Configure80211b(), Configure80211p(), and GetAckTxTime().

◆ m_band

WifiPhyBand ns3::WifiPhy::m_band
private

◆ m_blockAckTxTime

Time ns3::WifiPhy::m_blockAckTxTime
private

estimated BlockAck TX time

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

Referenced by Configure80211n(), and GetBlockAckTxTime().

◆ m_bssMembershipSelectorSet

std::vector<uint8_t> ns3::WifiPhy::m_bssMembershipSelectorSet
private

◆ m_capabilitiesChangedCallback

Callback<void> ns3::WifiPhy::m_capabilitiesChangedCallback
private

◆ m_ccaEdThresholdW

double ns3::WifiPhy::m_ccaEdThresholdW
private

Clear channel assessment (CCA) threshold in watts.

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

Referenced by GetCcaEdThreshold(), MaybeCcaBusyDuration(), ResumeFromOff(), ResumeFromSleep(), SetCcaEdThreshold(), and SwitchMaybeToCcaBusy().

◆ m_channelAccessRequested

bool ns3::WifiPhy::m_channelAccessRequested
private

Flag if channels access has been requested (used for OBSS_PD SR)

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

Referenced by DoChannelSwitch(), DoFrequencySwitch(), EndReceiveInterBss(), NotifyChannelAccessRequested(), Send(), SetOffMode(), and SetSleepMode().

◆ m_channelCenterFrequency

uint16_t ns3::WifiPhy::m_channelCenterFrequency
private

Center frequency in MHz.

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

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

◆ m_channelNumber

uint8_t ns3::WifiPhy::m_channelNumber
private

Operating channel number.

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

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

◆ m_channelSwitchDelay

Time ns3::WifiPhy::m_channelSwitchDelay
private

Time required to switch between channel.

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

Referenced by GetChannelSwitchDelay(), and GetTypeId().

◆ m_channelToFrequencyWidth

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 2083 of file wifi-phy.h.

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

◆ m_channelWidth

uint16_t ns3::WifiPhy::m_channelWidth
private

Channel width (MHz)

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

Referenced by GetChannelWidth(), SetChannelWidth(), and StartReceiveHeader().

◆ m_currentEvent

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

Hold the current event.

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

Referenced by AbortCurrentReception(), EndReceive(), ResetCca(), ResetReceive(), Send(), StartReceiveHeader(), StartReceivePreamble(), and StartRx().

◆ m_device

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

Pointer to the device.

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

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

◆ m_deviceMcsSet

WifiModeList ns3::WifiPhy::m_deviceMcsSet
private

the device MCS set

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

Referenced by ConfigureHtDeviceMcsSet(), DoDispose(), GetMcs(), GetNMcs(), PushMcs(), and RebuildMcsMap().

◆ m_deviceRateSet

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 2043 of file wifi-phy.h.

Referenced by Configure80211a(), Configure80211b(), Configure80211g(), Configure80211p(), ConfigureHolland(), DoDispose(), GetMode(), and GetNModes().

◆ m_endOfMpduEvents

std::vector<EventId> ns3::WifiPhy::m_endOfMpduEvents
private

the end of MPDU events (only used for A-MPDUs)

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

Referenced by ScheduleEndOfMpdus().

◆ m_endPhyRxEvent

EventId ns3::WifiPhy::m_endPhyRxEvent
protected

◆ m_endPreambleDetectionEvent

EventId ns3::WifiPhy::m_endPreambleDetectionEvent
protected

the end of preamble detection event

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

Referenced by AbortCurrentReception(), DoChannelSwitch(), DoDispose(), DoFrequencySwitch(), SetOffMode(), and StartRx().

◆ m_endRxEvent

EventId ns3::WifiPhy::m_endRxEvent
protected

the end of receive event

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

Referenced by AbortCurrentReception(), DoChannelSwitch(), DoDispose(), DoFrequencySwitch(), SetOffMode(), and StartReceivePayload().

◆ m_endTxEvent

EventId ns3::WifiPhy::m_endTxEvent
protected

the end of transmit event

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

Referenced by DoDispose(), Send(), and SetOffMode().

◆ m_frameCaptureModel

Ptr<FrameCaptureModel> ns3::WifiPhy::m_frameCaptureModel
private

Frame capture model.

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

Referenced by GetTypeId(), SetFrameCaptureModel(), StartReceivePreamble(), and StartRx().

◆ m_frequencyChannelNumberInitialized

bool ns3::WifiPhy::m_frequencyChannelNumberInitialized
private

Store initialization state.

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

Referenced by ConfigureStandardAndBand(), DoInitialize(), and InitializeFrequencyChannelNumber().

◆ m_initialChannelNumber

uint8_t ns3::WifiPhy::m_initialChannelNumber
private

Initial channel number.

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

Referenced by InitializeFrequencyChannelNumber(), and SetChannelNumber().

◆ m_initialFrequency

uint16_t ns3::WifiPhy::m_initialFrequency
private

Store frequency until initialization (MHz)

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

Referenced by InitializeFrequencyChannelNumber(), and SetFrequency().

◆ m_interference

◆ m_isConstructed

bool ns3::WifiPhy::m_isConstructed
private

true when ready to set frequency

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

Referenced by ConfigureStandardAndBand(), DoInitialize(), SetChannelNumber(), and SetFrequency().

◆ m_mcsIndexMap

std::map<WifiModulationClass, std::map<uint8_t , uint8_t > > ns3::WifiPhy::m_mcsIndexMap
private

Maps MCS values to indices in m_deviceMcsSet, for HT, VHT and HE modulation classes.

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

Referenced by DoDispose(), GetMcs(), IsMcsSupported(), PushMcs(), and RebuildMcsMap().

◆ m_mobility

Ptr<MobilityModel> ns3::WifiPhy::m_mobility
private

Pointer to the mobility model.

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

Referenced by DoDispose(), GetMobility(), and SetMobility().

◆ m_nTxPower

uint8_t ns3::WifiPhy::m_nTxPower
private

Number of available transmission power levels.

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

Referenced by GetNTxPower(), GetPowerDbm(), GetTypeId(), and SetNTxPower().

◆ m_numberOfAntennas

uint8_t ns3::WifiPhy::m_numberOfAntennas
private

Number of transmitters.

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

Referenced by GetNumberOfAntennas(), and SetNumberOfAntennas().

◆ m_phyEndOfHePreambleTrace

TracedCallback<HePreambleParameters> ns3::WifiPhy::m_phyEndOfHePreambleTrace
private

A trace source that indicates the end of both HE SIG fields as well as training fields for received 802.11ax packets.

See also
class CallBackTraceSource

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

Referenced by GetTypeId(), and NotifyEndOfHePreamble().

◆ m_phyMonitorSniffRxTrace

TracedCallback<Ptr<const Packet>, uint16_t, WifiTxVector, MpduInfo, SignalNoiseDbm> ns3::WifiPhy::m_phyMonitorSniffRxTrace
private

A trace source that emulates a Wi-Fi 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 1984 of file wifi-phy.h.

Referenced by GetTypeId(), and NotifyMonitorSniffRx().

◆ m_phyMonitorSniffTxTrace

TracedCallback<Ptr<const Packet>, uint16_t, WifiTxVector, MpduInfo> ns3::WifiPhy::m_phyMonitorSniffTxTrace
private

A trace source that emulates a Wi-Fi 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 1998 of file wifi-phy.h.

Referenced by GetTypeId(), and NotifyMonitorSniffTx().

◆ m_phyRxBeginTrace

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 1939 of file wifi-phy.h.

Referenced by GetTypeId(), and NotifyRxBegin().

◆ m_phyRxDropTrace

TracedCallback<Ptr<const Packet>, WifiPhyRxfailureReason > 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 1970 of file wifi-phy.h.

Referenced by GetTypeId(), and NotifyRxDrop().

◆ m_phyRxEndTrace

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 1963 of file wifi-phy.h.

Referenced by GetTypeId(), and NotifyRxEnd().

◆ m_phyRxPayloadBeginTrace

TracedCallback<WifiTxVector, Time> ns3::WifiPhy::m_phyRxPayloadBeginTrace
private

The trace source fired when the reception of the PHY payload (PSDU) begins.

This traced callback models the behavior of the PHY-RXSTART primitive which is launched upon correct decoding of the PHY header and support of modes within. We thus assume that it is sent just before starting the decoding of the payload, since it's there that support of the header's content is checked. In addition, it's also at that point that the correct decoding of HT-SIG, VHT-SIGs, and HE-SIGs are checked.

See also
class CallBackTraceSource

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

Referenced by GetTypeId(), and StartReceivePayload().

◆ m_phyTxBeginTrace

TracedCallback<Ptr<const Packet>, double > 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 1908 of file wifi-phy.h.

Referenced by GetTypeId(), and NotifyTxBegin().

◆ m_phyTxDropTrace

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 1931 of file wifi-phy.h.

Referenced by GetTypeId(), and NotifyTxDrop().

◆ m_phyTxEndTrace

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 1923 of file wifi-phy.h.

Referenced by GetTypeId(), and NotifyTxEnd().

◆ m_phyTxPsduBeginTrace

TracedCallback<Ptr<const WifiPsdu>, WifiTxVector, double > ns3::WifiPhy::m_phyTxPsduBeginTrace
private

The trace source fired when a PSDU begins the transmission process on the medium.

See also
class CallBackTraceSource

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

Referenced by GetTypeId(), and Send().

◆ m_pifs

Time ns3::WifiPhy::m_pifs
private

PCF Interframe Space (PIFS) duration.

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

Referenced by GetPifs(), GetTypeId(), and SetPifs().

◆ m_postReceptionErrorModel

Ptr<ErrorModel> ns3::WifiPhy::m_postReceptionErrorModel
private

Error model for receive packet events.

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

Referenced by DoDispose(), GetReceptionStatus(), GetTypeId(), and SetPostReceptionErrorModel().

◆ m_powerRestricted

bool ns3::WifiPhy::m_powerRestricted
private

Flag whether transmit power is restricted by OBSS PD SR.

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

Referenced by DoChannelSwitch(), DoFrequencySwitch(), EndReceiveInterBss(), GetTxPowerForTransmission(), ResetCca(), Send(), SetOffMode(), and SetSleepMode().

◆ m_preambleDetectionModel

Ptr<PreambleDetectionModel> ns3::WifiPhy::m_preambleDetectionModel
private

Preamble detection model.

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

Referenced by GetTypeId(), SetPreambleDetectionModel(), and StartReceiveHeader().

◆ m_random

Ptr<UniformRandomVariable> ns3::WifiPhy::m_random
protected

Provides uniform random variables.

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

Referenced by AssignStreams(), ContinueReceiveHeader(), GetReceptionStatus(), StartReceivePayload(), and WifiPhy().

◆ m_rxGainDb

double ns3::WifiPhy::m_rxGainDb
private

Reception gain (dB)

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

Referenced by GetRxGain(), and SetRxGain().

◆ m_rxMpduReferenceNumber

uint32_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 1746 of file wifi-phy.h.

Referenced by NotifyMonitorSniffRx(), and NotifyMonitorSniffTx().

◆ m_rxSensitivityW

double ns3::WifiPhy::m_rxSensitivityW
private

Receive sensitivity threshold in watts.

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

Referenced by GetRxSensitivity(), and SetRxSensitivity().

◆ m_rxSpatialStreams

uint8_t ns3::WifiPhy::m_rxSpatialStreams
private

Number of supported RX spatial streams.

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

Referenced by GetMaxSupportedRxSpatialStreams(), and SetMaxSupportedRxSpatialStreams().

◆ m_shortPreamble

bool ns3::WifiPhy::m_shortPreamble
private

Flag if short PHY preamble is supported.

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

Referenced by GetShortPhyPreambleSupported(), and SetShortPhyPreambleSupported().

◆ m_sifs

Time ns3::WifiPhy::m_sifs
private

Short Interframe Space (SIFS) duration.

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

Referenced by GetSifs(), GetTypeId(), and SetSifs().

◆ m_signalNoise

SignalNoiseDbm ns3::WifiPhy::m_signalNoise
private

latest signal power and noise power in dBm (noise power includes the noise figure)

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

Referenced by EndOfMpdu(), and EndReceive().

◆ m_slot

Time ns3::WifiPhy::m_slot
private

Slot duration.

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

Referenced by GetSlot(), GetTypeId(), and SetSlot().

◆ m_standard

WifiPhyStandard ns3::WifiPhy::m_standard
private

WifiPhyStandard.

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

Referenced by ConfigureDefaultsForStandard(), ConfigureStandardAndBand(), and GetPhyStandard().

◆ m_state

◆ m_statusPerMpdu

std::vector<bool> ns3::WifiPhy::m_statusPerMpdu
private

current reception status per MPDU that is filled in as long as MPDUs are being processed by the PHY in case of an A-MPDU

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

Referenced by EndOfMpdu(), EndReceive(), and StartReceivePayload().

◆ m_supportedChannelWidthSet

std::vector<uint16_t> ns3::WifiPhy::m_supportedChannelWidthSet
private

Supported channel width set (MHz)

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

Referenced by AddSupportedChannelWidth(), and GetSupportedChannelWidthSet().

◆ m_timeLastPreambleDetected

Time ns3::WifiPhy::m_timeLastPreambleDetected
private

Record the time the last preamble was detected.

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

Referenced by StartReceiveHeader(), and StartReceivePreamble().

◆ m_txGainDb

double ns3::WifiPhy::m_txGainDb
private

Transmission gain (dB)

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

Referenced by GetTxGain(), and SetTxGain().

◆ m_txMpduReferenceNumber

uint32_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 1745 of file wifi-phy.h.

◆ m_txPowerBaseDbm

double ns3::WifiPhy::m_txPowerBaseDbm
private

Minimum transmission power (dBm)

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

Referenced by GetPowerDbm(), GetTxPowerStart(), and SetTxPowerStart().

◆ m_txPowerEndDbm

double ns3::WifiPhy::m_txPowerEndDbm
private

Maximum transmission power (dBm)

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

Referenced by GetPowerDbm(), GetTxPowerEnd(), and SetTxPowerEnd().

◆ m_txPowerMaxMimo

double ns3::WifiPhy::m_txPowerMaxMimo
private

MIMO maximum transmit power due to OBSS PD SR power restriction (dBm)

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

Referenced by GetTxPowerForTransmission(), and ResetCca().

◆ m_txPowerMaxSiso

double ns3::WifiPhy::m_txPowerMaxSiso
private

SISO maximum transmit power due to OBSS PD SR power restriction (dBm)

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

Referenced by GetTxPowerForTransmission(), and ResetCca().

◆ m_txSpatialStreams

uint8_t ns3::WifiPhy::m_txSpatialStreams
private

Number of supported TX spatial streams.

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

Referenced by GetMaxSupportedTxSpatialStreams(), and SetMaxSupportedTxSpatialStreams().

◆ m_wifiRadioEnergyModel

Ptr<WifiRadioEnergyModel> ns3::WifiPhy::m_wifiRadioEnergyModel
private

Wifi radio energy model.

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

Referenced by DoDispose(), Send(), and SetWifiRadioEnergyModel().


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