802.11 PHY layer model More...
#include "wifi-phy.h"
Public Types | |
typedef std::pair< uint8_t, WifiPhyBand > | ChannelNumberBandPair |
A pair of a channel number and a WifiPhyBand. More... | |
typedef std::pair< ChannelNumberBandPair, WifiPhyStandard > | ChannelNumberStandardPair |
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< Channel > | GetChannel (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< NetDevice > | GetDevice (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< MobilityModel > | GetMobility (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< WifiPhyStateHelper > | GetState (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) |
![]() | |
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< Object > | GetObject () const |
template<> | |
Ptr< Object > | GetObject (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... | |
![]() | |
SimpleRefCount () | |
Default constructor. More... | |
SimpleRefCount (const SimpleRefCount &o) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount (void) const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
Assignment operator. More... | |
void | Ref (void) const |
Increment the reference count. More... | |
void | Unref (void) const |
Decrement the reference count. More... | |
![]() | |
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 TypeId | GetTypeId (void) |
Register this type. More... | |
![]() | |
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... | |
![]() | |
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... | |
![]() | |
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< UniformRandomVariable > | m_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< WifiPhyStateHelper > | m_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, FrequencyWidthPair > | ChannelToFrequencyWidthMap |
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, SignalNoiseDbm > | GetReceptionStatus (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< Event > | m_currentEvent |
Hold the current event. More... | |
Ptr< NetDevice > | m_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< EventId > | m_endOfMpduEvents |
the end of MPDU events (only used for A-MPDUs) More... | |
Ptr< FrameCaptureModel > | m_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< MobilityModel > | m_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< HePreambleParameters > | m_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, SignalNoiseDbm > | m_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, MpduInfo > | m_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 >, WifiPhyRxfailureReason > | m_phyRxDropTrace |
The trace source fired when the PHY layer drops a packet it has received. More... | |
TracedCallback< Ptr< const Packet > > | m_phyRxEndTrace |
The trace source fired when a packet ends the reception process from the medium. More... | |
TracedCallback< WifiTxVector, Time > | m_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< ErrorModel > | m_postReceptionErrorModel |
Error model for receive packet events. More... | |
bool | m_powerRestricted |
Flag whether transmit power is restricted by OBSS PD SR. More... | |
Ptr< PreambleDetectionModel > | m_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< WifiRadioEnergyModel > | m_wifiRadioEnergyModel |
Wifi radio energy model. More... | |
Static Private Attributes | |
static ChannelToFrequencyWidthMap | m_channelToFrequencyWidth |
the channel to frequency width map More... | |
Additional Inherited Members | |
![]() | |
static TypeId | GetObjectIid (void) |
Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. More... | |
802.11 PHY layer model
ns3::WifiPhy is accessible through the following paths with Config::Set and Config::Connect:
Size of this type is 872 bytes (on a 64-bit architecture).
Definition at line 141 of file wifi-phy.h.
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.
typedef std::pair<ChannelNumberBandPair, WifiPhyStandard> ns3::WifiPhy::ChannelNumberStandardPair |
A pair of a ChannelNumberBandPair and a WifiPhyStandard.
Definition at line 715 of file wifi-phy.h.
|
private |
channel to frequency width map typedef
Definition at line 2082 of file wifi-phy.h.
typedef void(* ns3::WifiPhy::EndOfHePreambleCallback) (HePreambleParameters params) |
TracedCallback signature for end of HE-SIG-A events.
params | the HE preamble parameters |
Definition at line 1422 of file wifi-phy.h.
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.
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.
packet | the packet being received |
channelFreqMhz | the 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. |
txVector | the TXVECTOR that holds RX parameters |
aMpdu | the 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) |
signalNoise | signal power and noise power in dBm |
Definition at line 1361 of file wifi-phy.h.
typedef void(* ns3::WifiPhy::MonitorSnifferTxCallback) (const Ptr< const Packet > packet, uint16_t channelFreqMhz, WifiTxVector txVector, MpduInfo aMpdu) |
TracedCallback signature for monitor mode transmit events.
packet | the packet being transmitted |
channelFreqMhz | the frequency in MHz at which the packet is transmitted. |
txVector | the TXVECTOR that holds TX parameters |
aMpdu | the type of the packet (0 is not A-MPDU, 1 is a MPDU that is part of an A-MPDU and 2 is the last MPDU in an A-MPDU) and the A-MPDU reference number (must be a different value for each A-MPDU but the same for each subframe within one A-MPDU) |
Definition at line 1395 of file wifi-phy.h.
typedef void(* ns3::WifiPhy::PhyRxPayloadBeginTracedCallback) (WifiTxVector txVector, Time psduDuration) |
TracedCallback signature for start of PSDU reception events.
txVector | the TXVECTOR decoded from the PHY header |
psduDuration | the duration of the PSDU |
Definition at line 1430 of file wifi-phy.h.
typedef void(* ns3::WifiPhy::PsduTxBeginCallback) (Ptr< const WifiPsdu > psdu, WifiTxVector txVector, double txPowerW) |
TracedCallback signature for PSDU transmit events.
psdu | the PSDU being transmitted |
txVector | the TXVECTOR holding the TX parameters |
txPowerW | the transmit power in Watts |
Definition at line 1407 of file wifi-phy.h.
ns3::WifiPhy::WifiPhy | ( | ) |
Definition at line 506 of file wifi-phy.cc.
References m_random, m_state, and NS_LOG_FUNCTION.
|
virtual |
Definition at line 539 of file wifi-phy.cc.
References NS_LOG_FUNCTION.
|
private |
Due to newly arrived signal, the current reception cannot be continued and has to be aborted.
reason | the 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().
void ns3::WifiPhy::AddSupportedChannelWidth | ( | uint16_t | width | ) |
width | the 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().
|
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.
stream | first stream index to use |
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().
|
static |
txVector | the transmission parameters used for this packet |
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().
double ns3::WifiPhy::CalculateSnr | ( | WifiTxVector | txVector, |
double | ber | ||
) | const |
txVector | the transmission vector |
ber | the probability of bit error rate |
Definition at line 839 of file wifi-phy.cc.
References ns3::InterferenceHelper::GetErrorRateModel(), and m_interference.
|
static |
size | the number of bytes in the packet to send |
txVector | the TXVECTOR used for the transmission of this packet |
band | the frequency band being used |
Definition at line 2539 of file wifi-phy.cc.
References CalculatePhyPreambleAndHeaderDuration(), and GetPayloadDuration().
Referenced by ns3::MacLow::CalculateOverallTxTime(), ns3::MacLow::CalculateOverheadTxTime(), ns3::MacLow::CalculateTransmissionTime(), ns3::MacLow::CanTransmitNextCfFrame(), ns3::MacLow::ForwardDown(), ns3::MacLow::GetAckDuration(), ns3::MacLow::GetBlockAckDuration(), ns3::MacLow::GetBlockAckRequestDuration(), ns3::MacLow::GetCtsDuration(), ns3::WifiPpdu::GetTxDuration(), ns3::MacLow::IsWithinSizeAndTimeLimits(), SpectrumWifiPhyBasicTest::MakeSignal(), WifiPhyThresholdsTest::MakeWifiSignal(), ns3::MacLow::NotifyNav(), Send(), TestAmpduReception::SendAmpduWithThreeMpdus(), ns3::MacLow::SendCtsToSelf(), ns3::MacLow::SendDataAfterCts(), ns3::MacLow::SendDataPacket(), TestThresholdPreambleDetectionWithoutFrameCapture::SendPacket(), TestThresholdPreambleDetectionWithFrameCapture::SendPacket(), TestSimpleFrameCaptureModel::SendPacket(), TestPhyHeadersReception::SendPacket(), ns3::MacLow::SendRtsForPacket(), and ns3::MacLow::StartDataTxTimers().
|
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().
|
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().
|
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().
|
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().
|
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().
|
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().
|
private |
Configure WifiPhy with appropriate channel frequency and supported rates for 802.11p standard.
Definition at line 1054 of file wifi-phy.cc.
References GetChannelWidth(), GetOfdmRate12MbpsBW10MHz(), GetOfdmRate12MbpsBW5MHz(), GetOfdmRate13_5MbpsBW5MHz(), GetOfdmRate18MbpsBW10MHz(), GetOfdmRate1_5MbpsBW5MHz(), GetOfdmRate24MbpsBW10MHz(), GetOfdmRate27MbpsBW10MHz(), GetOfdmRate2_25MbpsBW5MHz(), GetOfdmRate3MbpsBW10MHz(), GetOfdmRate3MbpsBW5MHz(), GetOfdmRate4_5MbpsBW10MHz(), GetOfdmRate4_5MbpsBW5MHz(), GetOfdmRate6MbpsBW10MHz(), GetOfdmRate6MbpsBW5MHz(), GetOfdmRate9MbpsBW10MHz(), GetOfdmRate9MbpsBW5MHz(), GetSifs(), GetSlot(), m_ackTxTime, m_deviceRateSet, ns3::MicroSeconds(), NS_FATAL_ERROR, NS_LOG_FUNCTION, SetPifs(), SetSifs(), and SetSlot().
Referenced by ConfigureStandardAndBand().
|
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().
|
private |
Configure the PHY-level parameters for different Wi-Fi standard.
This method is called when defaults for each standard must be selected.
Definition at line 845 of file wifi-phy.cc.
References GetChannelNumber(), GetChannelWidth(), m_band, m_standard, NS_ASSERT, NS_FATAL_ERROR, NS_LOG_FUNCTION, NS_LOG_WARN, SetChannelWidth(), SetFrequency(), ns3::WIFI_PHY_BAND_2_4GHZ, ns3::WIFI_PHY_BAND_5GHZ, ns3::WIFI_PHY_BAND_6GHZ, ns3::WIFI_PHY_STANDARD_80211a, ns3::WIFI_PHY_STANDARD_80211ac, ns3::WIFI_PHY_STANDARD_80211ax, ns3::WIFI_PHY_STANDARD_80211b, ns3::WIFI_PHY_STANDARD_80211g, ns3::WIFI_PHY_STANDARD_80211n, ns3::WIFI_PHY_STANDARD_80211p, ns3::WIFI_PHY_STANDARD_holland, and ns3::WIFI_PHY_STANDARD_UNSPECIFIED.
Referenced by ConfigureStandardAndBand().
|
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().
|
private |
Configure the device MCS set with the appropriate HtMcs modes for the number of available transmit spatial streams.
Definition at line 1139 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(), GetMaxSupportedTxSpatialStreams(), HT_PHY, m_bssMembershipSelectorSet, m_deviceMcsSet, NS_LOG_FUNCTION, PushMcs(), RebuildMcsMap(), and ns3::WIFI_MOD_CLASS_HT.
Referenced by Configure80211n(), and SetMaxSupportedTxSpatialStreams().
|
virtual |
Configure the PHY-level parameters for different Wi-Fi standard.
standard | the Wi-Fi standard |
band | the Wi-Fi band |
Reimplemented in ns3::SpectrumWifiPhy.
Definition at line 1372 of file wifi-phy.cc.
References Configure80211a(), Configure80211ac(), Configure80211ax(), Configure80211b(), Configure80211g(), Configure80211n(), Configure80211p(), ConfigureChannelForStandard(), ConfigureDefaultsForStandard(), ConfigureHolland(), GetChannelNumber(), GetFrequency(), InitializeFrequencyChannelNumber(), m_band, m_frequencyChannelNumberInitialized, m_isConstructed, m_standard, NS_ASSERT, NS_LOG_FUNCTION, ns3::WIFI_PHY_STANDARD_80211a, ns3::WIFI_PHY_STANDARD_80211ac, ns3::WIFI_PHY_STANDARD_80211ax, ns3::WIFI_PHY_STANDARD_80211b, ns3::WIFI_PHY_STANDARD_80211g, ns3::WIFI_PHY_STANDARD_80211n, ns3::WIFI_PHY_STANDARD_80211p, ns3::WIFI_PHY_STANDARD_holland, and ns3::WIFI_PHY_STANDARD_UNSPECIFIED.
Referenced by ns3::SpectrumWifiPhy::ConfigureStandardAndBand(), AmpduAggregationTest::DoRun(), TwoLevelAggregationTest::DoRun(), Bug2831TestCase::DoRun(), HeAggregationTest::DoRunSubTest(), PsrExperiment::Run(), and CollisionExperiment::Run().
Continue receiving the PHY header of a PPDU (i.e.
after the end of receiving the non-HT header part).
event | the 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().
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.
channelNumber | the channel number to define |
band | the PHY band which the channel belongs to |
standard | the applicable WifiPhyStandard |
frequency | the frequency (MHz) |
channelWidth | the channel width (MHz) |
Definition at line 1277 of file wifi-phy.cc.
References f(), m_channelToFrequencyWidth, NS_LOG_DEBUG, and NS_LOG_FUNCTION.
Referenced by SetChannelFrequencyTest::DoRun().
|
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
id | channel number to try to switch to |
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().
|
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().
|
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
frequency | frequency to try to switch to in MHz |
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().
|
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().
|
private |
The last symbol of an MPDU in an A-MPDU has arrived.
event | the event holding incoming PPDU's information |
psdu | the arriving MPDU formatted as a PSDU containing a normal MPDU |
mpduIndex | the index of the MPDU within the A-MPDU |
relativeMpduStart | the relative start time of the MPDU within the A-MPDU. |
mpduDuration | the 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().
The last symbol of the PPDU has arrived.
event | the 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().
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().
|
private |
Look for channel number matching the frequency and width.
frequency | The center frequency to use in MHz |
width | The channel width to use in MHz |
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().
Time ns3::WifiPhy::GetAckTxTime | ( | void | ) | const |
Return the estimated Ack TX time for this PHY.
Definition at line 979 of file wifi-phy.cc.
References m_ackTxTime.
Referenced by ns3::MinstrelWifiManager::CalculateTimeUnicastPacket(), and ns3::ChannelAccessManager::GetEifsNoDifs().
Time ns3::WifiPhy::GetBlockAckTxTime | ( | void | ) | const |
Return the estimated BlockAck TX time for this PHY.
Definition at line 985 of file wifi-phy.cc.
References m_blockAckTxTime.
Referenced by ns3::MinstrelHtWifiManager::CalculateRetransmits().
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.
selector | index in array of supported memberships |
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().
double ns3::WifiPhy::GetCcaEdThreshold | ( | void | ) | const |
Return the CCA threshold (dBm).
Definition at line 660 of file wifi-phy.cc.
References m_ccaEdThresholdW, and ns3::WToDbm().
Referenced by GetTypeId().
Return the Channel this WifiPhy is connected to.
Implemented in ns3::SpectrumWifiPhy, and ns3::YansWifiPhy.
Referenced by ns3::WifiNetDevice::GetChannel(), and ns3::WaveNetDevice::GetChannel().
uint8_t ns3::WifiPhy::GetChannelNumber | ( | void | ) | const |
Return current channel number.
Definition at line 1666 of file wifi-phy.cc.
References m_channelNumber.
Referenced by ConfigureChannelForStandard(), ConfigureDefaultsForStandard(), ConfigureStandardAndBand(), DoChannelSwitch(), SetChannelFrequencyTest::DoRun(), ns3::ApWifiMac::GetDsssParameterSet(), ns3::MeshWifiInterfaceMac::GetFrequencyChannel(), ns3::ApWifiMac::GetHtOperation(), GetTypeId(), InitializeFrequencyChannelNumber(), ns3::YansWifiChannel::Send(), SetChannelNumber(), ns3::SpectrumWifiPhy::StartTx(), and ns3::DefaultChannelScheduler::SwitchToNextChannel().
Time ns3::WifiPhy::GetChannelSwitchDelay | ( | void | ) | const |
Definition at line 833 of file wifi-phy.cc.
References m_channelSwitchDelay.
Referenced by ns3::DefaultChannelScheduler::AssignDefaultCchAccess(), DoChannelSwitch(), DoFrequencySwitch(), and ns3::DefaultChannelScheduler::SwitchToNextChannel().
uint16_t ns3::WifiPhy::GetChannelWidth | ( | void | ) | const |
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().
Time ns3::WifiPhy::GetDelayUntilIdle | ( | void | ) |
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().
Return the device this PHY is associated with.
Definition at line 758 of file wifi-phy.cc.
References m_device.
Referenced by ns3::MeshWifiInterfaceMac::CheckSupportedRates(), ns3::MacLow::GetAckTxVector(), ns3::MacLow::GetBlockAckTxVector(), ns3::WifiRemoteStationManager::GetCtsToSelfTxVector(), ns3::MacLow::GetCtsTxVector(), ns3::WifiRemoteStationManager::GetDataTxVector(), ns3::WifiRemoteStationManager::GetGreenfieldSupported(), ns3::WifiRemoteStationManager::GetGuardInterval(), ns3::WifiRemoteStationManager::GetHeSupported(), ns3::WifiRemoteStationManager::GetHtSupported(), ns3::WifiRemoteStationManager::GetRtsTxVector(), ns3::WifiRemoteStationManager::GetShortGuardIntervalSupported(), ns3::MeshWifiInterfaceMac::GetSupportedRates(), ns3::WifiRemoteStationManager::GetVhtSupported(), and ns3::MeshWifiInterfaceMac::Receive().
|
static |
Return 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().
|
static |
Return 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().
|
static |
Return 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().
|
static |
Return 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().
|
static |
Return 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().
|
static |
Return 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().
|
static |
Return 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().
|
static |
Return 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().
|
static |
Return 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().
|
static |
Return 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().
|
static |
Return 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().
|
static |
Return 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().
uint16_t ns3::WifiPhy::GetFrequency | ( | void | ) | const |
Definition at line 1495 of file wifi-phy.cc.
References m_channelCenterFrequency.
Referenced by ConfigureChannelForStandard(), ConfigureStandardAndBand(), DoFrequencySwitch(), SetChannelFrequencyTest::DoRun(), EndReceive(), ns3::SpectrumWifiPhy::GetCenterFrequencyForChannelWidth(), ns3::SpectrumWifiPhy::GetRxSpectrumModel(), GetTypeId(), ns3::SpectrumWifiPhy::ResetSpectrumModel(), Send(), SetFrequency(), and ns3::SpectrumWifiPhy::StartRx().
|
private |
Lookup frequency/width pair for channelNumber/standard pair.
channelNumber | The channel number to check |
band | the PHY band to check |
standard | The WifiPhyStandard to check |
Definition at line 1605 of file wifi-phy.cc.
References f(), and m_channelToFrequencyWidth.
Referenced by ConfigureChannelForStandard(), and SetChannelNumber().
|
static |
Get the WifiMode object corresponding to the given MCS of the HE modulation class.
mcs | the MCS value |
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().
|
static |
Return 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().
|
static |
Return 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().
|
static |
Return 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().
|
static |
Return 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().
|
static |
Return 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().
|
static |
Return 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().
|
static |
Return 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().
|
static |
Return MCS 5 from HE MCS values.
D