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, uint16_t staId) |
TracedCallback signature for monitor mode receive events. More... | |
typedef void(* | MonitorSnifferTxCallback) (const Ptr< const Packet > packet, uint16_t channelFreqMhz, WifiTxVector txVector, MpduInfo aMpdu, uint16_t staId) |
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) (WifiConstPsduMap psduMap, 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, uint16_t staId=SU_STA_ID) |
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, uint16_t staId=SU_STA_ID) |
Public method used to fire a MonitorSniffer trace for a wifi PSDU being transmitted. More... | |
void | NotifyRxBegin (Ptr< const WifiPsdu > psdu, RxPowerWattPerChannelBand rxPowersW) |
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 (WifiConstPsduMap psdus, 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 (WifiConstPsduMap psdus) |
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 | Send (WifiConstPsduMap psdus, 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, RxPowerWattPerChannelBand rxPowersW) |
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, uint16_t staId=SU_STA_ID) |
static Time | CalculateTxDuration (WifiConstPsduMap psduMap, 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, uint16_t staId=SU_STA_ID) |
static Time | GetPayloadDuration (uint32_t size, WifiTxVector txVector, WifiPhyBand band, MpduType mpdutype, bool incFlag, uint32_t &totalAmpduSize, double &totalAmpduNumSymbols, uint16_t staId) |
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 | |
virtual WifiSpectrumBand | ConvertHeRuSubcarriers (uint16_t channelWidth, HeRu::SubcarrierRange range) const |
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... | |
virtual WifiSpectrumBand | GetBand (uint16_t bandWidth, uint8_t bandIndex=0) |
Get the start band index and the stop band index for a given band. More... | |
virtual uint16_t | GetStaId (void) const |
Return the STA ID that has been assigned to the station this PHY belongs to. 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... | |
Ptr< const WifiPsdu > | GetAddressedPsduInPpdu (Ptr< const WifiPpdu > ppdu) const |
Get the PSDU addressed to that PHY in a PPDU (useful for MU PPDU). 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, uint16_t staId, Time relativeMpduStart, Time mpduDuration) |
Get the reception status for the provided MPDU and notify. More... | |
WifiSpectrumBand | GetRuBand (WifiTxVector txVector, uint16_t staId) |
Get the RU band used to transmit a PSDU to a given STA in a HE MU PPDU. 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) |
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... | |
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, uint16_t > | 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, uint16_t > | m_phyMonitorSniffTxTrace |
A trace source that emulates a Wi-Fi device in monitor mode sniffing a packet being transmitted. More... | |
TracedCallback< Ptr< const Packet >, RxPowerWattPerChannelBand > | 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< WifiConstPsduMap, WifiTxVector, double > | m_phyTxPsduBeginTrace |
The trace source fired when a PSDU map 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 888 bytes (on a 64-bit architecture).
Definition at line 144 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 159 of file wifi-phy.h.
typedef std::pair<ChannelNumberBandPair, WifiPhyStandard> ns3::WifiPhy::ChannelNumberStandardPair |
A pair of a ChannelNumberBandPair and a WifiPhyStandard.
Definition at line 163 of file wifi-phy.h.
|
private |
channel to frequency width map typedef
Definition at line 2161 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 1456 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 167 of file wifi-phy.h.
typedef void(* ns3::WifiPhy::MonitorSnifferRxCallback) (Ptr< const Packet > packet, uint16_t channelFreqMhz, WifiTxVector txVector, MpduInfo aMpdu, SignalNoiseDbm signalNoise, uint16_t staId) |
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 |
staId | the STA-ID |
Definition at line 1390 of file wifi-phy.h.
typedef void(* ns3::WifiPhy::MonitorSnifferTxCallback) (const Ptr< const Packet > packet, uint16_t channelFreqMhz, WifiTxVector txVector, MpduInfo aMpdu, uint16_t staId) |
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) |
staId | the STA-ID |
Definition at line 1428 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 1464 of file wifi-phy.h.
typedef void(* ns3::WifiPhy::PsduTxBeginCallback) (WifiConstPsduMap psduMap, WifiTxVector txVector, double txPowerW) |
TracedCallback signature for PSDU transmit events.
psduMap | the PSDU map being transmitted |
txVector | the TXVECTOR holding the TX parameters |
txPowerW | the transmit power in Watts |
Definition at line 1441 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 540 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 4611 of file wifi-phy.cc.
References ns3::EventId::Cancel(), GetAddressedPsduInPpdu(), 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(), StartReceivePayload(), and StartReceivePreamble().
void ns3::WifiPhy::AddSupportedChannelWidth | ( | uint16_t | width | ) |
width | the channel width (in MHz) to support |
Definition at line 1585 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 4758 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(), TestAmpduReception::DoRun(), and TestDlOfdmaPhyTransmission::RunOne().
|
static |
txVector | the transmission parameters used for this packet |
Definition at line 2532 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::WifiPpdu::SetPhyHeaders(), ns3::MacLow::StartDataTxTimers(), StartReceiveHeader(), and StartReceivePayload().
double ns3::WifiPhy::CalculateSnr | ( | WifiTxVector | txVector, |
double | ber | ||
) | const |
txVector | the transmission vector |
ber | the probability of bit error rate |
Definition at line 840 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 |
staId | the STA-ID of the recipient (only used for MU) |
Definition at line 2546 of file wifi-phy.cc.
References CalculatePhyPreambleAndHeaderDuration(), GetPayloadDuration(), ns3::Time::IsStrictlyPositive(), ns3::NORMAL_MPDU, and NS_ASSERT.
Referenced by ns3::MacLow::CalculateOverallTxTime(), ns3::MacLow::CalculateOverheadTxTime(), ns3::MacLow::CalculateTransmissionTime(), CalculateTxDuration(), 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().
|
static |
psduMap | the PSDU(s) to transmit indexed by STA-ID |
txVector | the TXVECTOR used for the transmission of the PPDU |
band | the frequency band being used |
Definition at line 2555 of file wifi-phy.cc.
References CalculateTxDuration(), ns3::WifiTxVector::GetHeMuUserInfoMap(), ns3::WifiTxVector::GetPreambleType(), ns3::Time::IsStrictlyPositive(), NS_ABORT_MSG_IF, NS_ASSERT, ns3::Seconds(), and ns3::WIFI_PREAMBLE_HE_MU.
|
private |
Configure WifiPhy with appropriate channel frequency and supported rates for 802.11a standard.
Definition at line 992 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 1229 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 1249 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 1015 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 1034 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 1210 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 1055 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 1323 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 846 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 1099 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 1140 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 1373 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 2858 of file wifi-phy.cc.
References AbortCurrentReception(), ns3::InterferenceHelper::CalculateNonHtPhyHeaderSnrPer(), CalculatePhyPreambleAndHeaderDuration(), GetBand(), 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::InterferenceHelper::SnrPer::per, ns3::RatioToDb(), ns3::Simulator::Schedule(), ns3::InterferenceHelper::SnrPer::snr, and StartReceivePayload().
Referenced by StartReceiveHeader().
|
protectedvirtual |
channelWidth | the total channel width (MHz) used for the OFDMA transmission |
range | the subcarrier range of the HE RU |
This is a helper function to convert HE RU subcarriers, which are relative to the center frequency subcarrier, to the indexes used by the Spectrum model.
Reimplemented in ns3::SpectrumWifiPhy.
Definition at line 3332 of file wifi-phy.cc.
References NS_ASSERT_MSG.
Referenced by GetRuBand().
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 1278 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 1673 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 546 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 1733 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 564 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 3202 of file wifi-phy.cc.
References ns3::InterferenceHelper::CalculateSnr(), ns3::Copy(), GetBand(), ns3::WifiTxVector::GetChannelWidth(), GetChannelWidth(), ns3::Time::GetNanoSeconds(), ns3::WifiTxVector::GetNss(), GetReceptionStatus(), GetStaId(), m_interference, m_signalNoise, m_state, m_statusPerMpdu, min, NS_LOG_DEBUG, and NS_LOG_FUNCTION.
Referenced by ScheduleEndOfMpdus().
The last symbol of the PPDU has arrived.
event | the event holding incoming PPDU's information |
Definition at line 3225 of file wifi-phy.cc.
References ns3::InterferenceHelper::CalculateSnr(), ns3::Copy(), GetAddressedPsduInPpdu(), GetBand(), ns3::HeRu::GetBandwidth(), ns3::WifiTxVector::GetChannelWidth(), GetChannelWidth(), GetFrequency(), GetLastRxEndTime(), ns3::WifiPsdu::GetNMpdus(), ns3::WifiTxVector::GetNss(), ns3::WifiTxVector::GetPreambleType(), GetReceptionStatus(), ns3::WifiTxVector::GetRu(), GetRuBand(), GetStaId(), m_currentEvent, m_interference, m_signalNoise, m_state, m_statusPerMpdu, MaybeCcaBusyDuration(), min, ns3::NanoSeconds(), NotifyMonitorSniffRx(), ns3::InterferenceHelper::NotifyRxEnd(), NotifyRxEnd(), ns3::Simulator::Now(), NS_ASSERT, NS_LOG_FUNCTION, ns3::HeRu::RuSpec::ruType, and ns3::WIFI_PREAMBLE_HE_MU.
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 3340 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 1295 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 980 of file wifi-phy.cc.
References m_ackTxTime.
Referenced by ns3::MinstrelWifiManager::CalculateTimeUnicastPacket(), and ns3::ChannelAccessManager::GetEifsNoDifs().
|
private |
Get the PSDU addressed to that PHY in a PPDU (useful for MU PPDU).
ppdu | the PPDU to extract the PSDU from |
Definition at line 4706 of file wifi-phy.cc.
References ns3::UintegerValue::Get(), GetDevice(), ns3::WifiNetDevice::GetHeConfiguration(), and GetStaId().
Referenced by AbortCurrentReception(), EndReceive(), ScheduleEndOfMpdus(), StartReceiveHeader(), StartReceivePayload(), StartReceivePreamble(), and StartRx().
|
protectedvirtual |
Get the start band index and the stop band index for a given band.
bandWidth | the width of the band to be returned (MHz) |
bandIndex | the index of the band to be returned |
Reimplemented in ns3::SpectrumWifiPhy.
Definition at line 4749 of file wifi-phy.cc.
Referenced by ContinueReceiveHeader(), EndOfMpdu(), EndReceive(), GetReceptionStatus(), MaybeCcaBusyDuration(), ResumeFromOff(), ResumeFromSleep(), StartReceiveHeader(), StartReceivePayload(), StartRx(), and SwitchMaybeToCcaBusy().
Time ns3::WifiPhy::GetBlockAckTxTime | ( | void | ) | const |
Return the estimated BlockAck TX time for this PHY.
Definition at line 986 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 1579 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 661 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 1667 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 834 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 1516 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(), EndOfMpdu(), EndReceive(), ns3::MacLow::GetAckTxVector(), ns3::SpectrumWifiPhy::GetBand(), 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(), GetReceptionStatus(), ns3::WifiRemoteStationManager::GetRtsTxVector(), GetRuBand(), ns3::SpectrumWifiPhy::GetRxSpectrumModel(), ns3::MeshWifiInterfaceMac::GetSupportedRates(), ns3::ApWifiMac::GetSupportedRates(), ns3::StaWifiMac::GetSupportedRates(), GetTypeId(), ns3::RegularWifiMac::GetVhtCapabilities(), ns3::ApWifiMac::GetVhtOperationalChannelWidth(), ns3::WifiRemoteStationManager::LookupState(), MaybeCcaBusyDuration(), ns3::ApWifiMac::Receive(), ns3::MeshWifiInterfaceMac::Receive(), ns3::SpectrumWifiPhy::ResetSpectrumModel(), ResumeFromOff(), ResumeFromSleep(), SetFrequency(), StartReceivePayload(), ns3::SpectrumWifiPhy::StartRx(), StartRx(), SwitchMaybeToCcaBusy(), ns3::StaWifiMac::UpdateApInfoFromAssocResp(), ns3::StaWifiMac::UpdateApInfoFromBeacon(), ns3::StaWifiMac::UpdateApInfoFromProbeResp(), and ns3::SpectrumWifiPhy::UpdateInterferenceHelperBands().
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 4575 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 759 of file wifi-phy.cc.
References m_device.
Referenced by ns3::MeshWifiInterfaceMac::CheckSupportedRates(), ns3::MacLow::GetAckTxVector(), GetAddressedPsduInPpdu(), 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::GetLdpcSupported(), ns3::WifiRemoteStationManager::GetRtsTxVector(), ns3::WifiRemoteStationManager::GetShortGuardIntervalSupported(), GetStaId(), ns3::MeshWifiInterfaceMac::GetSupportedRates(), ns3::WifiRemoteStationManager::GetVhtSupported(), and ns3::MeshWifiInterfaceMac::Receive().
|
static |
Return a WifiMode for DSSS at 11Mbps.
Definition at line 3409 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 3370 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 3382 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 3397 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 3448 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 3460 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 3472 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 3484 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 3496 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 3508 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 3424 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 3436 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 1496 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 1606 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 4484 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 4161 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 4169 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 4241 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 4249 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 4177 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 4185 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 4193 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.
Definition at line 4201 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 6 from HE MCS values.
Definition at line 4209 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 7 from HE MCS values.
Definition at line 4217 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 8 from HE MCS values.
Definition at line 4225 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 9 from HE MCS values.
Definition at line 4233 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 |
Definition at line 1915 of file wifi-phy.cc.
References GetHeMcs0().
Referenced by ns3::InterferenceHelper::CalculateHtPhyHeaderPer().
|
static |
Get the WifiMode object corresponding to the given MCS of the HT modulation class.
mcs | the MCS value |
Definition at line 4332 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().
|
static |
Return MCS 0 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 GetHtPhyHeaderMode().
|
static |
Return MCS 1 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(), and GetHtMcs().
|
static |
Return MCS 10 from HT MCS values.
Definition at line 3900 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().
|
static |
Return MCS 11 from HT MCS values.
Definition at line 3908 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().
|
static |
Return MCS 12 from HT MCS values.
Definition at line 3916 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().
|
static |
Return MCS 13 from HT MCS values.
Definition at line 3924 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().
|
static |
Return MCS 14 from HT MCS values.
Definition at line 3932 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().
|
static |
Return MCS 15 from HT MCS values.
Definition at line 3940 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().
|
static |
Return MCS 16 from HT MCS values.
Definition at line 3948 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().
|
static |
Return MCS 17 from HT MCS values.
Definition at line 3956 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().
|
static |
Return MCS 18 from HT MCS values.
Definition at line 3964 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().
|
static |
Return MCS 19 from HT MCS values.
Definition at line 3972 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().
|
static |
Return MCS 2 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().
|
static |
Return MCS 20 from HT MCS values.
Definition at line 3980 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().
|
static |
Return MCS 21 from HT MCS values.
Definition at line 3988 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().
|
static |
Return MCS 22 from HT MCS values.
Definition at line 3996 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().
|
static |
Return MCS 23 from HT MCS values.
Definition at line 4004 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().
|
static |
Return MCS 24 from HT MCS values.
Definition at line 4012 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().
|
static |
Return MCS 25 from HT MCS values.
Definition at line 4020 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().
|
static |
Return MCS 26 from HT MCS values.
Definition at line 4028 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().
|
static |
Return MCS 27 from HT MCS values.
Definition at line 4036 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().
|
static |
Return MCS 28 from HT MCS values.
Definition at line 4044 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().
|
static |
Return MCS 29 from HT MCS values.
Definition at line 4052 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().
|
static |
Return MCS 3 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().
|
static |
Return MCS 30 from HT MCS values.
Definition at line 4060 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().
|
static |
Return MCS 31 from HT MCS values.
Definition at line 4068 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().
|
static |
Return MCS 4 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().
|
static |
Return MCS 5 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().
|
static |
Return MCS 6 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(), and GetHtMcs().
|
static |
Return MCS 7 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(), and GetHtMcs().
|
static |
Return MCS 8 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(), and GetHtMcs().
|
static |
Return MCS 9 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(), and GetHtMcs().
|
static |
Definition at line 1903 of file wifi-phy.cc.
References GetHtMcs0().
Referenced by ns3::InterferenceHelper::CalculateHtPhyHeaderPer().
Time ns3::WifiPhy::GetLastRxEndTime | ( | void | ) | const |
Return the end time of the last received packet.
Definition at line 4587 of file wifi-phy.cc.
References m_state.
Referenced by EndReceive().
Time ns3::WifiPhy::GetLastRxStartTime | ( | void | ) | const |
Return the start time of the last received packet.
Definition at line 4581 of file wifi-phy.cc.
References m_state.
uint8_t ns3::WifiPhy::GetMaxSupportedRxSpatialStreams | ( | void | ) | const |
Definition at line 1567 of file wifi-phy.cc.
References m_rxSpatialStreams.
Referenced by ns3::ApWifiMac::GetHeOperation(), GetTypeId(), ns3::RegularWifiMac::GetVhtCapabilities(), ns3::ApWifiMac::GetVhtOperation(), and StartReceivePayload().
uint8_t ns3::WifiPhy::GetMaxSupportedTxSpatialStreams | ( | void | ) | const |
Definition at line 1549 of file wifi-phy.cc.
References m_txSpatialStreams.
Referenced by ns3::WifiRemoteStationManager::AddStationHeCapabilities(), ns3::WifiRemoteStationManager::AddStationVhtCapabilities(), ns3::IdealWifiManager::BuildSnrThresholds(), ConfigureHtDeviceMcsSet(), ns3::RegularWifiMac::GetHeCapabilities(), ns3::RegularWifiMac::GetHtCapabilities(), ns3::ApWifiMac::GetHtOperation(), ns3::WifiRemoteStationManager::GetMaxNumberOfTransmitStreams(), GetTypeId(), ns3::RegularWifiMac::GetVhtCapabilities(), and Send().
WifiMode ns3::WifiPhy::GetMcs | ( | uint8_t | mcs | ) | const |
The WifiPhy::GetMcs() method is used (e.g., by a WifiRemoteStationManager) to determine the set of transmission/reception MCS indexes that this WifiPhy(-derived class) can support - a set of MCS indexes which we call the DeviceMcsSet, and which is stored as WifiPhy::m_deviceMcsSet.
mcs | index in array of supported MCS |
Definition at line 4314 of file wifi-phy.cc.
References m_deviceMcsSet.
Referenced by ns3::WifiRemoteStationManager::AddAllSupportedMcs(), ns3::WifiRemoteStationManager::AddStationHeCapabilities(), ns3::WifiRemoteStationManager::AddStationHtCapabilities(), ns3::WifiRemoteStationManager::AddStationVhtCapabilities(), ns3::IdealWifiManager::BuildSnrThresholds(), ns3::MacLow::GetControlAnswerMode(), ns3::RegularWifiMac::GetHeCapabilities(), ns3::RegularWifiMac::GetHtCapabilities(), ns3::ApWifiMac::GetHtOperation(), ns3::RegularWifiMac::GetVhtCapabilities(), ns3::ApWifiMac::Receive(), ns3::StaWifiMac::UpdateApInfoFromAssocResp(), and ns3::StaWifiMac::UpdateApInfoFromBeacon().
WifiMode ns3::WifiPhy::GetMcs | ( | WifiModulationClass | modulation, |
uint8_t | mcs | ||
) | const |
Get the WifiMode object corresponding to the given MCS of the given modulation class.
modulation | the modulation class |
mcs | the MCS value |
Definition at line 4320 of file wifi-phy.cc.
References IsMcsSupported(), m_deviceMcsSet, m_mcsIndexMap, NS_ASSERT, and NS_ASSERT_MSG.
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.
Definition at line 771 of file wifi-phy.cc.
References m_device, and m_mobility.
Referenced by ns3::WifiSpectrumPhyInterface::GetMobility(), and ns3::YansWifiChannel::Send().
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.
mode | index in array of supported modes |
Definition at line 4302 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().
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.
Definition at line 1573 of file wifi-phy.cc.
References m_bssMembershipSelectorSet.
Referenced by ns3::ApWifiMac::GetSupportedRates(), ns3::StaWifiMac::GetSupportedRates(), ns3::StaWifiMac::Receive(), and ns3::StaWifiMac::UpdateApInfoFromProbeResp().
uint8_t ns3::WifiPhy::GetNMcs | ( | void | ) | const |
The WifiPhy::GetNMcs() method is used (e.g., by a WifiRemoteStationManager) to determine the set of transmission/reception MCS indexes that this WifiPhy(-derived class) can support - a set of MCS indexes which we call the DeviceMcsSet, and which is stored as WifiPhy::m_deviceMcsSet.
Definition at line 4308 of file wifi-phy.cc.
References m_deviceMcsSet.
Referenced by ns3::WifiRemoteStationManager::AddAllSupportedMcs(), ns3::WifiRemoteStationManager::AddStationHeCapabilities(), ns3::WifiRemoteStationManager::AddStationHtCapabilities(), ns3::WifiRemoteStationManager::AddStationVhtCapabilities(), ns3::IdealWifiManager::BuildSnrThresholds(), ns3::MacLow::GetControlAnswerMode(), ns3::RegularWifiMac::GetHeCapabilities(), ns3::RegularWifiMac::GetHtCapabilities(), ns3::ApWifiMac::GetHtOperation(), ns3::RegularWifiMac::GetVhtCapabilities(), ns3::ApWifiMac::Receive(), ns3::StaWifiMac::UpdateApInfoFromAssocResp(), and ns3::StaWifiMac::UpdateApInfoFromBeacon().
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.
Definition at line 4296 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().
uint8_t ns3::WifiPhy::GetNTxPower | ( | void | ) | const |
Return the number of available transmission power levels.
Definition at line 708 of file wifi-phy.cc.
References m_nTxPower.
uint8_t ns3::WifiPhy::GetNumberOfAntennas | ( | void | ) | const |
Definition at line 1530 of file wifi-phy.cc.
References m_numberOfAntennas.
Referenced by ns3::WifiRemoteStationManager::GetNumberOfAntennas(), GetTypeId(), SetErrorRateModel(), SetMaxSupportedRxSpatialStreams(), SetMaxSupportedTxSpatialStreams(), and SetRxNoiseFigure().
|
static |
Return a WifiMode for OFDM at 12Mbps.
Definition at line 3547 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().
|
static |
Return a WifiMode for OFDM at 12Mbps with 10MHz channel spacing.
Definition at line 3670 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().
|
static |
Return a WifiMode for OFDM at 12Mbps with 5MHz channel spacing.
Definition at line 3793 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().
|
static |
Return a WifiMode for OFDM at 13.5Mbps with 5MHz channel spacing.
Definition at line 3805 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().
|
static |
Return a WifiMode for OFDM at 18Mbps.
Definition at line 3559 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().
|
static |
Return a WifiMode for OFDM at 18Mbps with 10MHz channel spacing.
Definition at line 3682 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().
|
static |
Return a WifiMode for OFDM at 1.5Mbps with 5MHz channel spacing.
Definition at line 3721 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().
|
static |
Return a WifiMode for OFDM at 24Mbps.
Definition at line 3571 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().
|
static |
Return a WifiMode for OFDM at 24Mbps with 10MHz channel spacing.
Definition at line 3694 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().
|
static |
Return a WifiMode for OFDM at 27Mbps with 10MHz channel spacing.
Definition at line 3706 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().
|
static |
Return a WifiMode for OFDM at 2.25Mbps with 5MHz channel spacing.
Definition at line 3733 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().
|
static |
Return a WifiMode for OFDM at 36Mbps.
Definition at line 3583 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().
|
static |
Return a WifiMode for OFDM at 3Mbps with 10MHz channel spacing.
Definition at line 3622 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().
|
static |
Return a WifiMode for OFDM at 3Mbps with 5MHz channel spacing.
Definition at line 3745 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().
|
static |
Return a WifiMode for OFDM at 48Mbps.
Definition at line 3595 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().
|
static |
Return a WifiMode for OFDM at 4.5Mbps with 10MHz channel spacing.
Definition at line 3634 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().
|
static |
Return a WifiMode for OFDM at 4.5Mbps with 5MHz channel spacing.
Definition at line 3757 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().
|
static |
Return a WifiMode for OFDM at 54Mbps.
Definition at line 3607 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().
|
static |
Return a WifiMode for OFDM at 6Mbps.
Definition at line 3523 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().
|
static |
Return a WifiMode for OFDM at 6Mbps with 10MHz channel spacing.
Definition at line 3646 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().
|
static |
Return a WifiMode for OFDM at 6Mbps with 5MHz channel spacing.
Definition at line 3769 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().
|
static |
Return a WifiMode for OFDM at 9Mbps.
Definition at line 3535 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().
|
static |
Return a WifiMode for OFDM at 9Mbps with 10MHz channel spacing.
Definition at line 3658 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().
|
static |
Return a WifiMode for OFDM at 9Mbps with 5MHz channel spacing.
Definition at line 3781 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().
|
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 |
mpdutype | the type of the MPDU as defined in WifiPhy::MpduType. |
staId | the STA-ID of the PSDU (only used for MU PPDUs) |
Definition at line 2253 of file wifi-phy.cc.
Referenced by ns3::MinstrelHtWifiManager::CalculateMpduTxDuration(), CalculateTxDuration(), and ScheduleEndOfMpdus().
|
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 |
mpdutype | the type of the MPDU as defined in WifiPhy::MpduType. |
incFlag | this 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. |
totalAmpduSize | the total size of the previously transmitted MPDUs for the concerned A-MPDU. If incFlag is set, this parameter will be updated. |
totalAmpduNumSymbols | the 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. |
staId | the STA-ID of the PSDU (only used for MU PPDUs) |
Definition at line 2261 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.
WifiPhyBand ns3::WifiPhy::GetPhyBand | ( | void | ) | const |
Get the configured Wi-Fi band.
Definition at line 1426 of file wifi-phy.cc.
References m_band.
Referenced by ns3::WifiRemoteStationManager::AddStationHeCapabilities(), ns3::MacLow::CalculateOverallTxTime(), ns3::MacLow::CalculateOverheadTxTime(), ns3::MacLow::CalculateTransmissionTime(), ns3::MacLow::CanTransmitNextCfFrame(), ConfigureChannelForStandard(), ns3::MacLow::ForwardDown(), ns3::MacLow::GetAckDuration(), ns3::MacLow::GetBlockAckDuration(), ns3::MacLow::GetBlockAckRequestDuration(), ns3::MacLow::GetCtsDuration(), ns3::RegularWifiMac::GetHeCapabilities(), ns3::MacLow::IsWithinSizeAndTimeLimits(), SpectrumWifiPhyBasicTest::MakeSignal(), WifiPhyThresholdsTest::MakeWifiSignal(), ns3::MacLow::NotifyNav(), ScheduleEndOfMpdus(), Send(), TestAmpduReception::SendAmpduWithThreeMpdus(), ns3::MacLow::SendCtsToSelf(), ns3::MacLow::SendDataAfterCts(), ns3::MacLow::SendDataPacket(), TestThresholdPreambleDetectionWithoutFrameCapture::SendPacket(), TestThresholdPreambleDetectionWithFrameCapture::SendPacket(), TestSimpleFrameCaptureModel::SendPacket(), TestPhyHeadersReception::SendPacket(), ns3::MacLow::SendRtsForPacket(), SetChannelNumber(), and ns3::MacLow::StartDataTxTimers().
|
static |
txVector | the transmission parameters used for this packet |
Definition at line 2106 of file wifi-phy.cc.
References ns3::WifiTxVector::GetChannelWidth(), ns3::WifiMode::GetDataRate(), ns3::WifiTxVector::GetMode(), ns3::WifiMode::GetModulationClass(), ns3::WifiTxVector::GetPreambleType(), ns3::MicroSeconds(), NS_FATAL_ERROR, ns3::WIFI_MOD_CLASS_DSSS, ns3::WIFI_MOD_CLASS_ERP_OFDM, ns3::WIFI_MOD_CLASS_HR_DSSS, ns3::WIFI_MOD_CLASS_OFDM, ns3::WIFI_PREAMBLE_HE_ER_SU, ns3::WIFI_PREAMBLE_HE_MU, ns3::WIFI_PREAMBLE_HE_SU, ns3::WIFI_PREAMBLE_HE_TB, ns3::WIFI_PREAMBLE_HT_GF, ns3::WIFI_PREAMBLE_HT_MF, ns3::WIFI_PREAMBLE_LONG, ns3::WIFI_PREAMBLE_SHORT, ns3::WIFI_PREAMBLE_VHT_MU, and ns3::WIFI_PREAMBLE_VHT_SU.
Referenced by ns3::InterferenceHelper::CalculateHtPhyHeaderPer(), ns3::InterferenceHelper::CalculateNonHtPhyHeaderPer(), ns3::InterferenceHelper::CalculatePayloadPer(), CalculatePhyPreambleAndHeaderDuration(), ContinueReceiveHeader(), and StartReceiveHeader().
|
static |
txVector | the transmission parameters used for this packet |
Definition at line 2042 of file wifi-phy.cc.
References ns3::WifiTxVector::GetChannelWidth(), GetDsssRate1Mbps(), GetDsssRate2Mbps(), GetErpOfdmRate6Mbps(), ns3::WifiTxVector::GetMode(), ns3::WifiMode::GetModulationClass(), GetOfdmRate1_5MbpsBW5MHz(), GetOfdmRate3MbpsBW10MHz(), GetOfdmRate6Mbps(), ns3::WifiTxVector::GetPreambleType(), NS_FATAL_ERROR, ns3::WIFI_MOD_CLASS_DSSS, ns3::WIFI_MOD_CLASS_ERP_OFDM, ns3::WIFI_MOD_CLASS_HR_DSSS, ns3::WIFI_MOD_CLASS_OFDM, ns3::WIFI_PREAMBLE_HE_ER_SU, ns3::WIFI_PREAMBLE_HE_MU, ns3::WIFI_PREAMBLE_HE_SU, ns3::WIFI_PREAMBLE_HE_TB, ns3::WIFI_PREAMBLE_HT_GF, ns3::WIFI_PREAMBLE_HT_MF, ns3::WIFI_PREAMBLE_LONG, ns3::WIFI_PREAMBLE_SHORT, ns3::WIFI_PREAMBLE_VHT_MU, and ns3::WIFI_PREAMBLE_VHT_SU.
Referenced by ns3::InterferenceHelper::CalculateHtPhyHeaderPer(), and ns3::InterferenceHelper::CalculateNonHtPhyHeaderPer().
|
static |
preamble | the type of preamble |
Definition at line 1978 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().
|
static |
txVector | the transmission parameters used for this packet |
Definition at line 2184 of file wifi-phy.cc.
References ns3::WifiTxVector::GetChannelWidth(), ns3::WifiMode::GetDataRate(), ns3::WifiTxVector::GetMode(), ns3::WifiMode::GetModulationClass(), ns3::WifiTxVector::GetPreambleType(), ns3::MicroSeconds(), NS_FATAL_ERROR, ns3::WIFI_MOD_CLASS_DSSS, ns3::WIFI_MOD_CLASS_ERP_OFDM, ns3::WIFI_MOD_CLASS_HR_DSSS, ns3::WIFI_MOD_CLASS_OFDM, ns3::WIFI_PREAMBLE_HE_ER_SU, ns3::WIFI_PREAMBLE_HE_MU, ns3::WIFI_PREAMBLE_HE_SU, ns3::WIFI_PREAMBLE_HE_TB, ns3::WIFI_PREAMBLE_HT_GF, ns3::WIFI_PREAMBLE_HT_MF, ns3::WIFI_PREAMBLE_LONG, ns3::WIFI_PREAMBLE_SHORT, ns3::WIFI_PREAMBLE_VHT_MU, and ns3::WIFI_PREAMBLE_VHT_SU.
Referenced by ns3::InterferenceHelper::CalculateHtPhyHeaderPer(), ns3::InterferenceHelper::CalculateNonHtPhyHeaderPer(), ns3::InterferenceHelper::CalculatePayloadPer(), CalculatePhyPreambleAndHeaderDuration(), ContinueReceiveHeader(), and StartReceiveHeader().
|
static |
preamble | the type of preamble |
Definition at line 1993 of file wifi-phy.cc.
References ns3::MicroSeconds(), ns3::WIFI_PREAMBLE_HE_MU, ns3::WIFI_PREAMBLE_HE_SU, ns3::WIFI_PREAMBLE_HE_TB, ns3::WIFI_PREAMBLE_VHT_MU, and ns3::WIFI_PREAMBLE_VHT_SU.
Referenced by ns3::InterferenceHelper::CalculateHtPhyHeaderPer(), ns3::InterferenceHelper::CalculateNonHtPhyHeaderPer(), ns3::InterferenceHelper::CalculatePayloadPer(), and CalculatePhyPreambleAndHeaderDuration().
|
static |
preamble | the type of preamble |
Definition at line 2011 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().
|
static |
preamble | the type of preamble |
Definition at line 2028 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().
WifiPhyStandard ns3::WifiPhy::GetPhyStandard | ( | void | ) | const |
Get the configured Wi-Fi standard.
Definition at line 1433 of file wifi-phy.cc.
References m_standard.
Referenced by ConfigureChannelForStandard(), ns3::SpectrumWifiPhy::GetBandBandwidth(), InitializeFrequencyChannelNumber(), SetChannelNumber(), ns3::SpectrumWifiPhy::StartRx(), and ns3::SpectrumWifiPhy::UpdateInterferenceHelperBands().
|
static |
txVector | the transmission parameters used for this packet |
Definition at line 1927 of file wifi-phy.cc.
References ns3::WifiTxVector::GetNess(), ns3::WifiTxVector::GetNssMax(), ns3::WifiTxVector::GetPreambleType(), ns3::MicroSeconds(), ns3::WIFI_PREAMBLE_HE_MU, ns3::WIFI_PREAMBLE_HE_SU, ns3::WIFI_PREAMBLE_HE_TB, ns3::WIFI_PREAMBLE_HT_GF, ns3::WIFI_PREAMBLE_HT_MF, ns3::WIFI_PREAMBLE_VHT_MU, and ns3::WIFI_PREAMBLE_VHT_SU.
Referenced by ns3::InterferenceHelper::CalculateHtPhyHeaderPer(), ns3::InterferenceHelper::CalculateNonHtPhyHeaderPer(), ns3::InterferenceHelper::CalculatePayloadPer(), and CalculatePhyPreambleAndHeaderDuration().
Time ns3::WifiPhy::GetPifs | ( | void | ) | const |
Return the PCF Interframe Space (PIFS) for this PHY.
Definition at line 974 of file wifi-phy.cc.
References m_pifs.
Referenced by ns3::MacLow::GetPifs().
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).
power | the power level |
Definition at line 816 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().
|
static |
Definition at line 1921 of file wifi-phy.cc.
References ns3::MicroSeconds().
Referenced by StartReceiveHeader(), and StartRx().
|
private |
Get the reception status for the provided MPDU and notify.
psdu | the arriving MPDU formatted as a PSDU |
event | the event holding incoming PPDU's information |
staId | the station ID of the PSDU (only used for MU) |
relativeMpduStart | the relative start time of the MPDU within the A-MPDU. 0 for normal MPDUs |
mpduDuration | the duration of the MPDU |
Definition at line 3274 of file wifi-phy.cc.
References ns3::Time::As(), ns3::InterferenceHelper::CalculatePayloadSnrPer(), ns3::Packet::Copy(), GetBand(), ns3::HeRu::GetBandwidth(), GetChannelWidth(), ns3::WifiMode::GetDataRate(), ns3::WifiPsdu::GetPacket(), GetRuBand(), ns3::WifiPsdu::GetSize(), ns3::UniformRandomVariable::GetValue(), m_interference, m_postReceptionErrorModel, m_random, min, ns3::Time::NS, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::InterferenceHelper::SnrPer::per, ns3::RatioToDb(), ns3::SignalNoiseDbm::signal, ns3::InterferenceHelper::SnrPer::snr, ns3::WIFI_PREAMBLE_HE_MU, and ns3::WToDbm().
Referenced by EndOfMpdu(), and EndReceive().
|
private |
Get the RU band used to transmit a PSDU to a given STA in a HE MU PPDU.
txVector | the TXVECTOR used for the transmission |
staId | the STA-ID of the recipient |
Definition at line 3318 of file wifi-phy.cc.
References ConvertHeRuSubcarriers(), ns3::WifiTxVector::GetChannelWidth(), GetChannelWidth(), ns3::WifiTxVector::GetPreambleType(), ns3::WifiTxVector::GetRu(), ns3::HeRu::GetSubcarrierGroup(), ns3::HeRu::RuSpec::index, NS_ASSERT, ns3::HeRu::RuSpec::ruType, and ns3::WIFI_PREAMBLE_HE_MU.
Referenced by EndReceive(), and GetReceptionStatus().
double ns3::WifiPhy::GetRxGain | ( | void | ) | const |
Return the reception gain (dB).
Definition at line 734 of file wifi-phy.cc.
References m_rxGainDb.
Referenced by GetTypeId(), and ns3::SpectrumWifiPhy::StartRx().
double ns3::WifiPhy::GetRxSensitivity | ( | void | ) | const |
Return the receive sensitivity threshold (dBm).
Definition at line 648 of file wifi-phy.cc.
References m_rxSensitivityW, and ns3::WToDbm().
Referenced by GetTypeId(), and ns3::SpectrumWifiPhy::StartRx().
bool ns3::WifiPhy::GetShortPhyPreambleSupported | ( | void | ) | const |
Return whether short PHY preamble is supported.
Definition at line 747 of file wifi-phy.cc.
References m_shortPreamble.
Referenced by ns3::StaWifiMac::GetCapabilities(), ns3::ApWifiMac::GetShortPreambleEnabled(), and GetTypeId().
Time ns3::WifiPhy::GetSifs | ( | void | ) | const |
Return the Short Interframe Space (SIFS) for this PHY.
Definition at line 950 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().
Time ns3::WifiPhy::GetSlot | ( | void | ) | const |
Return the slot duration for this PHY.
Definition at line 962 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().
|
protectedvirtual |
Return the STA ID that has been assigned to the station this PHY belongs to.
This is typically called for MU PPDUs, in order to pick the correct PSDU.
Reimplemented in OfdmaSpectrumWifiPhy.
Definition at line 4734 of file wifi-phy.cc.
References GetDevice(), ns3::WifiNetDevice::GetMac(), third::mac, and SU_STA_ID.
Referenced by EndOfMpdu(), EndReceive(), GetAddressedPsduInPpdu(), and StartReceivePayload().
|
static |
txVector | the transmission parameters used for this packet |
Definition at line 2178 of file wifi-phy.cc.
References ns3::MicroSeconds().
Ptr< WifiPhyStateHelper > ns3::WifiPhy::GetState | ( | void | ) | const |
Return the WifiPhyStateHelper of this PHY.
Definition at line 577 of file wifi-phy.cc.
References m_state.
Referenced by WifiPhyThresholdsTest::DoSetup().
std::vector< uint16_t > ns3::WifiPhy::GetSupportedChannelWidthSet | ( | void | ) | const |
Definition at line 1600 of file wifi-phy.cc.
References m_supportedChannelWidthSet.
double ns3::WifiPhy::GetTxGain | ( | void | ) | const |
Return the transmission gain (dB).
Definition at line 721 of file wifi-phy.cc.
References m_txGainDb.
Referenced by GetTypeId(), Send(), ns3::YansWifiPhy::StartTx(), and ns3::SpectrumWifiPhy::StartTx().
double ns3::WifiPhy::GetTxPowerEnd | ( | void | ) | const |
Return the maximum available transmission power level (dBm).
Definition at line 695 of file wifi-phy.cc.
References m_txPowerEndDbm.
Referenced by GetTypeId().
double ns3::WifiPhy::GetTxPowerForTransmission | ( | WifiTxVector | txVector | ) | const |
Compute the transmit power (in dBm) for the next transmission.
txVector | the TXVECTOR |
Definition at line 4648 of file wifi-phy.cc.
References ns3::WifiTxVector::GetNssMax(), 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().
double ns3::WifiPhy::GetTxPowerStart | ( | void | ) | const |
Return the minimum available transmission power level (dBm).
Definition at line 682 of file wifi-phy.cc.
References m_txPowerBaseDbm.
Referenced by GetTypeId().
|
static |
Get the type ID.
Definition at line 288 of file wifi-phy.cc.
References GetCcaEdThreshold(), GetChannelNumber(), GetChannelWidth(), GetFrequency(), GetMaxSupportedRxSpatialStreams(), GetMaxSupportedTxSpatialStreams(), GetNumberOfAntennas(), GetRxGain(), GetRxSensitivity(), GetShortPhyPreambleSupported(), GetTxGain(), GetTxPowerEnd(), GetTxPowerStart(), m_channelSwitchDelay, m_frameCaptureModel, m_nTxPower, m_phyEndOfHePreambleTrace, m_phyMonitorSniffRxTrace, m_phyMonitorSniffTxTrace, m_phyRxBeginTrace, m_phyRxDropTrace, m_phyRxEndTrace, m_phyRxPayloadBeginTrace, m_phyTxBeginTrace, m_phyTxDropTrace, m_phyTxEndTrace, m_phyTxPsduBeginTrace, m_pifs, m_postReceptionErrorModel, m_preambleDetectionModel, m_sifs, m_slot, m_state, ns3::MakeBooleanAccessor(), ns3::MakeBooleanChecker(), ns3::MakeDoubleAccessor(), ns3::MakePointerAccessor(), ns3::MakeTimeAccessor(), ns3::MakeTimeChecker(), ns3::MakeTraceSourceAccessor(), ns3::MakeUintegerAccessor(), ns3::MicroSeconds(), SetCcaEdThreshold(), SetChannelNumber(), SetChannelWidth(), SetFrequency(), SetMaxSupportedRxSpatialStreams(), SetMaxSupportedTxSpatialStreams(), SetNumberOfAntennas(), ns3::TypeId::SetParent(), SetRxGain(), SetRxNoiseFigure(), SetRxSensitivity(), SetShortPhyPreambleSupported(), SetTxGain(), SetTxPowerEnd(), and SetTxPowerStart().
|
static |
Get the WifiMode object corresponding to the given MCS of the VHT modulation class.
mcs | the MCS value |
Definition at line 4441 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().
|
static |
Return MCS 0 from VHT MCS values.
Definition at line 4079 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().
|
static |
Return MCS 1 from VHT MCS values.
Definition at line 4087 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().
|
static |
Return MCS 2 from VHT MCS values.
Definition at line 4095 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().
|
static |
Return MCS 3 from VHT MCS values.
Definition at line 4103 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().
|
static |
Return MCS 4 from VHT MCS values.
Definition at line 4111 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().
|
static |
Return MCS 5 from VHT MCS values.
Definition at line 4119 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().
|
static |
Return MCS 6 from VHT MCS values.
Definition at line 4127 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().
|
static |
Return MCS 7 from VHT MCS values.
Definition at line 4135 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().
|
static |
Return MCS 8 from VHT MCS values.
Definition at line 4143 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().
|
static |
Return MCS 9 from VHT MCS values.
Definition at line 4151 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().
|
static |
Definition at line 1909 of file wifi-phy.cc.
References GetVhtMcs0().
Referenced by ns3::InterferenceHelper::CalculateHtPhyHeaderPer().
|
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 613 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().
bool ns3::WifiPhy::IsMcsSupported | ( | WifiMode | mcs | ) | const |
Check if the given WifiMode is supported by the PHY.
mcs | the wifi mode to check |
Definition at line 4270 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().
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.
mc | the modulation class |
mcs | the MCS value |
Definition at line 4282 of file wifi-phy.cc.
References m_mcsIndexMap.
bool ns3::WifiPhy::IsModeSupported | ( | WifiMode | mode | ) | const |
Check if the given WifiMode is supported by the PHY.
mode | the wifi mode to check |
Definition at line 4257 of file wifi-phy.cc.
References GetMode(), and GetNModes().
Referenced by StartReceivePayload().
bool ns3::WifiPhy::IsStateCcaBusy | ( | void | ) | const |
Definition at line 4533 of file wifi-phy.cc.
References m_state.
bool ns3::WifiPhy::IsStateIdle | ( | void | ) | const |
Definition at line 4539 of file wifi-phy.cc.
References m_state.
bool ns3::WifiPhy::IsStateOff | ( | void | ) | const |
Definition at line 4569 of file wifi-phy.cc.
References m_state.
Referenced by ns3::MacLow::StartTransmission().
bool ns3::WifiPhy::IsStateRx | ( | void | ) | const |
Definition at line 4545 of file wifi-phy.cc.
References m_state.
Referenced by ResetReceive(), ns3::MacLow::SendBlockAckAfterAmpdu(), and StartReceiveHeader().
bool ns3::WifiPhy::IsStateSleep | ( | void | ) | const |
Definition at line 4563 of file wifi-phy.cc.
References m_state.
bool ns3::WifiPhy::IsStateSwitching | ( | void | ) | const |
Definition at line 4557 of file wifi-phy.cc.
References m_state.
Referenced by DoChannelSwitch(), and DoFrequencySwitch().
bool ns3::WifiPhy::IsStateTx | ( | void | ) | const |
Definition at line 4551 of file wifi-phy.cc.
References m_state.
Referenced by ns3::MacLow::SendBlockAckAfterAmpdu(), and ns3::MacLow::StartTransmission().
|
private |
Eventually switch to CCA busy.
Definition at line 3036 of file wifi-phy.cc.
References GetBand(), GetChannelWidth(), ns3::InterferenceHelper::GetEnergyDuration(), ns3::Time::IsZero(), m_ccaEdThresholdW, m_interference, and m_state.
Referenced by ContinueReceiveHeader(), EndReceive(), ResetReceive(), Send(), StartReceiveHeader(), StartReceivePayload(), and StartReceivePreamble().
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 3361 of file wifi-phy.cc.
References m_channelAccessRequested, and NS_LOG_FUNCTION.
Referenced by ns3::ChannelAccessManager::RequestAccess().
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.
params | the HE preamble parameters |
Definition at line 2701 of file wifi-phy.cc.
References m_phyEndOfHePreambleTrace.
Referenced by StartReceivePayload().
void ns3::WifiPhy::NotifyMonitorSniffRx | ( | Ptr< const WifiPsdu > | psdu, |
uint16_t | channelFreqMhz, | ||
WifiTxVector | txVector, | ||
SignalNoiseDbm | signalNoise, | ||
std::vector< bool > | statusPerMpdu, | ||
uint16_t | staId = SU_STA_ID |
||
) |
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.
psdu | the PSDU 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 |
signalNoise | signal power and noise power in dBm (noise power includes the noise figure) |
statusPerMpdu | reception status per MPDU |
staId | the STA-ID |
Definition at line 2645 of file wifi-phy.cc.
References ns3::FIRST_MPDU_IN_AGGREGATE, ns3::WifiPsdu::GetAmpduSubframe(), ns3::WifiPsdu::GetNMpdus(), ns3::WifiPsdu::GetPacket(), ns3::WifiPsdu::IsAggregate(), ns3::WifiTxVector::IsAggregation(), ns3::WifiPsdu::IsSingle(), 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().
void ns3::WifiPhy::NotifyMonitorSniffTx | ( | Ptr< const WifiPsdu > | psdu, |
uint16_t | channelFreqMhz, | ||
WifiTxVector | txVector, | ||
uint16_t | staId = SU_STA_ID |
||
) |
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.
psdu | the PSDU being received |
channelFreqMhz | the frequency in MHz at which the packet is transmitted. |
txVector | the TXVECTOR that holds TX parameters |
staId | the STA-ID |
Definition at line 2676 of file wifi-phy.cc.
References ns3::FIRST_MPDU_IN_AGGREGATE, ns3::WifiPsdu::GetAmpduSubframe(), ns3::WifiPsdu::GetNMpdus(), ns3::WifiPsdu::GetPacket(), ns3::WifiPsdu::IsAggregate(), ns3::WifiTxVector::IsAggregation(), ns3::WifiPsdu::IsSingle(), 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().
void ns3::WifiPhy::NotifyRxBegin | ( | Ptr< const WifiPsdu > | psdu, |
RxPowerWattPerChannelBand | rxPowersW | ||
) |
Public method used to fire a PhyRxBegin trace.
Implemented for encapsulation purposes.
psdu | the PSDU being transmitted |
rxPowersW | the receive power per channel band in Watts |
Definition at line 2609 of file wifi-phy.cc.
References m_phyRxBeginTrace, and ns3::PeekPointer().
Referenced by StartReceiveHeader().
void ns3::WifiPhy::NotifyRxDrop | ( | Ptr< const WifiPsdu > | psdu, |
WifiPhyRxfailureReason | reason | ||
) |
Public method used to fire a PhyRxDrop trace.
Implemented for encapsulation purposes.
psdu | the PSDU being transmitted |
reason | the reason the packet was dropped |
Definition at line 2633 of file wifi-phy.cc.
References m_phyRxDropTrace, and ns3::PeekPointer().
Referenced by AbortCurrentReception(), StartReceiveHeader(), StartReceivePayload(), StartReceivePreamble(), and StartRx().
Public method used to fire a PhyRxEnd trace.
Implemented for encapsulation purposes.
psdu | the PSDU being transmitted |
Definition at line 2621 of file wifi-phy.cc.
References m_phyRxEndTrace, and ns3::PeekPointer().
Referenced by EndReceive().
void ns3::WifiPhy::NotifyTxBegin | ( | WifiConstPsduMap | psdus, |
double | txPowerW | ||
) |
Public method used to fire a PhyTxBegin trace.
Implemented for encapsulation purposes.
psdus | the PSDUs being transmitted (only one unless DL MU transmission) |
txPowerW | the transmit power in Watts |
Definition at line 2576 of file wifi-phy.cc.
References m_phyTxBeginTrace, and ns3::PeekPointer().
Referenced by Send().
Public method used to fire a PhyTxDrop trace.
Implemented for encapsulation purposes.
psdu | the PSDU being transmitted |
Definition at line 2600 of file wifi-phy.cc.
References m_phyTxDropTrace, and ns3::PeekPointer().
Referenced by Send().
void ns3::WifiPhy::NotifyTxEnd | ( | WifiConstPsduMap | psdus | ) |
Public method used to fire a PhyTxEnd trace.
Implemented for encapsulation purposes.
psdus | the PSDUs being transmitted (only one unless DL MU transmission) |
Definition at line 2588 of file wifi-phy.cc.
References m_phyTxEndTrace, and ns3::PeekPointer().
Referenced by Send().
|
private |
Add the given MCS to the device MCS set.
mode | the MCS to add to the device MCS set |
Definition at line 1115 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().
|
private |
Rebuild the mapping of MCS values to indices in the device MCS set.
Definition at line 1128 of file wifi-phy.cc.
References m_deviceMcsSet, m_mcsIndexMap, and NS_LOG_FUNCTION.
Referenced by ConfigureHtDeviceMcsSet().
void ns3::WifiPhy::RegisterListener | ( | WifiPhyListener * | listener | ) |
listener | the new listener |
Add the input listener to the list of objects to be notified of PHY-level events.
Definition at line 595 of file wifi-phy.cc.
References m_state.
Referenced by SpectrumWifiPhyListenerTest::DoSetup().
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.
powerRestricted | flag whether the transmit power is restricted for the next transmission |
txPowerMaxSiso | the SISO transmit power restriction for the next transmission in dBm |
txPowerMaxMimo | the MIMO transmit power restriction for the next transmission in dBm |
Definition at line 4636 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().
Reset PHY at the end of the packet under reception after it has failed the PHY header.
event | the corresponding event of the first time the packet arrives (also storing packet and TxVector information) |
Definition at line 3350 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().
void ns3::WifiPhy::ResumeFromOff | ( | void | ) |
Resume from off mode.
Definition at line 1871 of file wifi-phy.cc.
References CCA_BUSY, GetBand(), GetChannelWidth(), 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().
void ns3::WifiPhy::ResumeFromSleep | ( | void | ) |
Resume from sleep mode.
Definition at line 1840 of file wifi-phy.cc.
References CCA_BUSY, GetBand(), GetChannelWidth(), ns3::InterferenceHelper::GetEnergyDuration(), IDLE, m_ccaEdThresholdW, m_interference, m_state, NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, RX, SLEEP, SWITCHING, and TX.
Schedule end of MPDUs events.
event | the event holding incoming PPDU's information |
Definition at line 3162 of file wifi-phy.cc.
References ns3::WifiPsdu::begin(), CalculatePhyPreambleAndHeaderDuration(), ns3::WifiPsdu::end(), EndOfMpdu(), ns3::FIRST_MPDU_IN_AGGREGATE, GetAddressedPsduInPpdu(), ns3::WifiPsdu::GetAmpduSubframeSize(), ns3::WifiPsdu::GetNMpdus(), GetPayloadDuration(), GetPhyBand(), ns3::LAST_MPDU_IN_AGGREGATE, ns3::MIDDLE_MPDU_IN_AGGREGATE, ns3::NanoSeconds(), NS_LOG_FUNCTION, ns3::Simulator::Schedule(), and SU_STA_ID.
Referenced by StartReceivePayload().
void ns3::WifiPhy::Send | ( | Ptr< const WifiPsdu > | psdu, |
WifiTxVector | txVector | ||
) |
psdu | the PSDU to send |
txVector | the 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 2707 of file wifi-phy.cc.
References NS_LOG_FUNCTION, and SU_STA_ID.
Referenced by ns3::MacLow::ForwardDown(), TestDlOfdmaPhyTransmission::SendMuPpdu(), and SpectrumWifiPhyFilterTest::SendPpdu().
void ns3::WifiPhy::Send | ( | WifiConstPsduMap | psdus, |
WifiTxVector | txVector | ||
) |
psdus | the PSDUs to send |
txVector | the 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 2716 of file wifi-phy.cc.
References AbortCurrentReception(), CalculateTxDuration(), ns3::DbmToW(), GetFrequency(), GetMaxSupportedTxSpatialStreams(), ns3::WifiTxVector::GetNssMax(), GetPhyBand(), GetPowerDbm(), GetTxGain(), GetTxPowerForTransmission(), ns3::WifiTxVector::GetTxPowerLevel(), ns3::EventId::IsExpired(), 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.
void ns3::WifiPhy::SetCapabilitiesChangedCallback | ( | Callback< void > | callback | ) |
callback | the callback to invoke when PHY capabilities have changed. |
Definition at line 607 of file wifi-phy.cc.
References m_capabilitiesChangedCallback.
Referenced by ns3::StaWifiMac::SetWifiPhy().
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.
threshold | the CCA threshold in dBm |
Definition at line 654 of file wifi-phy.cc.
References ns3::DbmToW(), m_ccaEdThresholdW, and NS_LOG_FUNCTION.
Referenced by GetTypeId().
|
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)
id | the channel number |
Reimplemented in ns3::SpectrumWifiPhy.
Definition at line 1614 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().
|
virtual |
channelWidth | the channel width (in MHz) |
Reimplemented in ns3::SpectrumWifiPhy.
Definition at line 1502 of file wifi-phy.cc.
References AddSupportedChannelWidth(), ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::IsNull(), m_capabilitiesChangedCallback, m_channelWidth, NS_ASSERT_MSG, and NS_LOG_FUNCTION.
Referenced by Bug2831TestCase::ChangeSupportedChannelWidth(), ConfigureChannelForStandard(), ConfigureDefaultsForStandard(), Bug2831TestCase::DoRun(), GetTypeId(), SetChannelNumber(), and ns3::SpectrumWifiPhy::SetChannelWidth().
Sets the device this PHY is associated with.
device | the device this PHY is associated with |
Definition at line 753 of file wifi-phy.cc.
References m_device.
Referenced by AmpduAggregationTest::DoRun(), TwoLevelAggregationTest::DoRun(), Bug2831TestCase::DoRun(), HeAggregationTest::DoRunSubTest(), TestDlOfdmaPhyTransmission::DoSetup(), SpectrumWifiPhyFilterTest::DoSetup(), and InterferenceExperiment::Run().
void ns3::WifiPhy::SetErrorRateModel | ( | const Ptr< ErrorRateModel > | rate | ) |
Sets the error rate model.
rate | the error rate model |
Definition at line 784 of file wifi-phy.cc.
References GetNumberOfAntennas(), m_interference, ns3::InterferenceHelper::SetErrorRateModel(), and ns3::InterferenceHelper::SetNumberOfReceiveAntennas().
Referenced by Bug2831TestCase::DoRun(), TestThresholdPreambleDetectionWithoutFrameCapture::DoSetup(), SpectrumWifiPhyBasicTest::DoSetup(), TestDlOfdmaPhyTransmission::DoSetup(), WifiPhyThresholdsTest::DoSetup(), SpectrumWifiPhyFilterTest::DoSetup(), TestThresholdPreambleDetectionWithFrameCapture::DoSetup(), TestSimpleFrameCaptureModel::DoSetup(), TestPhyHeadersReception::DoSetup(), TestAmpduReception::DoSetup(), PsrExperiment::Run(), InterferenceExperiment::Run(), and CollisionExperiment::Run().
void ns3::WifiPhy::SetFrameCaptureModel | ( | const Ptr< FrameCaptureModel > | frameCaptureModel | ) |
Sets the frame capture model.
frameCaptureModel | the frame capture model |
Definition at line 798 of file wifi-phy.cc.
References m_frameCaptureModel.
Referenced by TestThresholdPreambleDetectionWithFrameCapture::DoSetup(), TestSimpleFrameCaptureModel::DoSetup(), and TestAmpduReception::DoSetup().
|
virtual |
freq | the operating center frequency (MHz) on this node. |
Reimplemented in ns3::SpectrumWifiPhy.
Definition at line 1439 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().
void ns3::WifiPhy::SetMaxSupportedRxSpatialStreams | ( | uint8_t | streams | ) |
streams | the maximum number of supported RX spatial streams. |
Definition at line 1555 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().
void ns3::WifiPhy::SetMaxSupportedTxSpatialStreams | ( | uint8_t | streams | ) |
streams | the maximum number of supported TX spatial streams. |
Definition at line 1536 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().
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.
mobility | the mobility model this PHY is associated with |
Definition at line 765 of file wifi-phy.cc.
References m_mobility, and third::mobility.
Referenced by Bug2831TestCase::DoRun(), TestDlOfdmaPhyTransmission::DoSetup(), SpectrumWifiPhyFilterTest::DoSetup(), PsrExperiment::Run(), InterferenceExperiment::Run(), CollisionExperiment::Run(), and ns3::WifiSpectrumPhyInterface::SetMobility().
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.
n | the number of available levels |
Definition at line 701 of file wifi-phy.cc.
References m_nTxPower, sample-rng-plot::n, and NS_LOG_FUNCTION.
void ns3::WifiPhy::SetNumberOfAntennas | ( | uint8_t | antennas | ) |
antennas | the number of antennas on this node. |
Definition at line 1522 of file wifi-phy.cc.
References m_interference, m_numberOfAntennas, NS_ASSERT_MSG, and ns3::InterferenceHelper::SetNumberOfReceiveAntennas().
Referenced by GetTypeId().
void ns3::WifiPhy::SetOffMode | ( | void | ) |
Put in off mode.
Definition at line 1827 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().
void ns3::WifiPhy::SetPifs | ( | Time | pifs | ) |
Set the PCF Interframe Space (PIFS) for this PHY.
pifs | the PIFS duration |
Definition at line 968 of file wifi-phy.cc.
References m_pifs.
Referenced by Configure80211a(), Configure80211b(), Configure80211p(), and ConfigureHolland().
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.
em | Pointer to the ErrorModel. |
Definition at line 791 of file wifi-phy.cc.
References m_postReceptionErrorModel, and NS_LOG_FUNCTION.
void ns3::WifiPhy::SetPreambleDetectionModel | ( | const Ptr< PreambleDetectionModel > | preambleDetectionModel | ) |
Sets the preamble detection model.
preambleDetectionModel | the preamble detection model |
Definition at line 804 of file wifi-phy.cc.
References m_preambleDetectionModel.
Referenced by TestThresholdPreambleDetectionWithoutFrameCapture::DoSetup(), TestThresholdPreambleDetectionWithFrameCapture::DoSetup(), TestSimpleFrameCaptureModel::DoSetup(), and TestAmpduReception::DoSetup().
void ns3::WifiPhy::SetReceiveErrorCallback | ( | RxErrorCallback | callback | ) |
callback | the callback to invoke upon erroneous packet reception. |
Definition at line 589 of file wifi-phy.cc.
References m_state.
Referenced by TestThresholdPreambleDetectionWithoutFrameCapture::DoSetup(), SpectrumWifiPhyBasicTest::DoSetup(), TestDlOfdmaPhyTransmission::DoSetup(), WifiPhyThresholdsTest::DoSetup(), TestThresholdPreambleDetectionWithFrameCapture::DoSetup(), TestAmpduReception::DoSetup(), ns3::MacLow::ResetPhy(), and ns3::MacLow::SetPhy().
void ns3::WifiPhy::SetReceiveOkCallback | ( | RxOkCallback | callback | ) |
callback | the callback to invoke upon successful packet reception. |
Definition at line 583 of file wifi-phy.cc.
References m_state.
Referenced by TestThresholdPreambleDetectionWithoutFrameCapture::DoSetup(), SpectrumWifiPhyBasicTest::DoSetup(), TestDlOfdmaPhyTransmission::DoSetup(), WifiPhyThresholdsTest::DoSetup(), TestThresholdPreambleDetectionWithFrameCapture::DoSetup(), TestSimpleFrameCaptureModel::DoSetup(), TestAmpduReception::DoSetup(), ns3::MacLow::ResetPhy(), and ns3::MacLow::SetPhy().
void ns3::WifiPhy::SetRxGain | ( | double | gain | ) |
Sets the reception gain (dB).
gain | the reception gain in dB |
Definition at line 727 of file wifi-phy.cc.
References m_rxGainDb, and NS_LOG_FUNCTION.
Referenced by GetTypeId().
void ns3::WifiPhy::SetRxNoiseFigure | ( | double | noiseFigureDb | ) |
Sets the RX loss (dB) in the Signal-to-Noise-Ratio due to non-idealities in the receiver.
noiseFigureDb | noise figure in dB |
Definition at line 667 of file wifi-phy.cc.
References ns3::DbToRatio(), GetNumberOfAntennas(), m_interference, NS_LOG_FUNCTION, ns3::InterferenceHelper::SetNoiseFigure(), and ns3::InterferenceHelper::SetNumberOfReceiveAntennas().
Referenced by GetTypeId().
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.
threshold | the receive sensitivity threshold in dBm |
Definition at line 641 of file wifi-phy.cc.
References ns3::DbmToW(), m_rxSensitivityW, and NS_LOG_FUNCTION.
Referenced by GetTypeId().
void ns3::WifiPhy::SetShortPhyPreambleSupported | ( | bool | preamble | ) |
Enable or disable short PHY preamble.
preamble | sets whether short PHY preamble is supported or not |
Definition at line 740 of file wifi-phy.cc.
References m_shortPreamble, and NS_LOG_FUNCTION.
Referenced by GetTypeId().
void ns3::WifiPhy::SetSifs | ( | Time | sifs | ) |
Set the Short Interframe Space (SIFS) for this PHY.
sifs | the SIFS duration |
Definition at line 944 of file wifi-phy.cc.
References m_sifs.
Referenced by Configure80211a(), Configure80211b(), Configure80211p(), and ConfigureHolland().
void ns3::WifiPhy::SetSleepMode | ( | void | ) |
Put in sleep mode.
Definition at line 1793 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.
void ns3::WifiPhy::SetSlot | ( | Time | slot | ) |
Set the slot duration for this PHY.
slot | the slot duration |
Definition at line 956 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().
void ns3::WifiPhy::SetTxGain | ( | double | gain | ) |
Sets the transmission gain (dB).
gain | the transmission gain in dB |
Definition at line 714 of file wifi-phy.cc.
References m_txGainDb, and NS_LOG_FUNCTION.
Referenced by GetTypeId().
void ns3::WifiPhy::SetTxPowerEnd | ( | double | end | ) |
Sets the maximum available transmission power level (dBm).
end | the maximum transmission power level (dBm) |
Definition at line 688 of file wifi-phy.cc.
References m_txPowerEndDbm, and NS_LOG_FUNCTION.
Referenced by GetTypeId(), and InterferenceExperiment::Run().
void ns3::WifiPhy::SetTxPowerStart | ( | double | start | ) |
Sets the minimum available transmission power level (dBm).
start | the minimum transmission power level (dBm) |
Definition at line 675 of file wifi-phy.cc.
References m_txPowerBaseDbm, NS_LOG_FUNCTION, and visualizer.core::start().
Referenced by GetTypeId(), and InterferenceExperiment::Run().
void ns3::WifiPhy::SetWifiRadioEnergyModel | ( | const Ptr< WifiRadioEnergyModel > | wifiRadioEnergyModel | ) |
Sets the wifi radio energy model.
wifiRadioEnergyModel | the wifi radio energy model |
Definition at line 810 of file wifi-phy.cc.
References m_wifiRadioEnergyModel.
Referenced by ns3::WifiRadioEnergyModelHelper::DoInstall().
Start receiving the PHY header of a PPDU (i.e.
after the end of receiving the preamble).
event | the event holding incoming PPDU's information |
Definition at line 2796 of file wifi-phy.cc.
References ns3::InterferenceHelper::CalculateNonHtPhyHeaderSnrPer(), CalculatePhyPreambleAndHeaderDuration(), ContinueReceiveHeader(), GetAddressedPsduInPpdu(), GetBand(), GetPhyHeaderDuration(), GetPhyPreambleDuration(), GetPreambleDetectionDuration(), ns3::WifiTxVector::GetPreambleType(), ns3::EventId::IsExpired(), IsStateRx(), m_channelWidth, m_currentEvent, m_endPhyRxEvent, m_interference, m_preambleDetectionModel, m_state, m_timeLastPreambleDetected, MaybeCcaBusyDuration(), NotifyRxBegin(), NotifyRxDrop(), ns3::InterferenceHelper::NotifyRxEnd(), ns3::Simulator::Now(), NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::InterferenceHelper::SnrPer::per, ns3::PREAMBLE_DETECT_FAILURE, ns3::RatioToDb(), ns3::Simulator::Schedule(), ns3::InterferenceHelper::SnrPer::snr, StartReceivePayload(), and ns3::WIFI_PREAMBLE_HT_GF.
Referenced by StartRx().
Start receiving the PSDU (i.e.
the first symbol of the PSDU has arrived).
event | the event holding incoming PPDU's information |
Definition at line 3051 of file wifi-phy.cc.
References AbortCurrentReception(), ns3::HePreambleParameters::bssColor, ns3::InterferenceHelper::CalculateHtPhyHeaderSnrPer(), CalculatePhyPreambleAndHeaderDuration(), EndReceive(), ns3::FILTERED, GetAddressedPsduInPpdu(), GetBand(), ns3::WifiTxVector::GetChannelWidth(), GetChannelWidth(), ns3::WifiTxVector::GetHeMuUserInfoMap(), GetMaxSupportedRxSpatialStreams(), ns3::WifiTxVector::GetMode(), ns3::WifiPsdu::GetNMpdus(), ns3::WifiTxVector::GetNssMax(), ns3::WifiTxVector::GetPreambleType(), GetStaId(), ns3::UniformRandomVariable::GetValue(), ns3::EventId::IsExpired(), IsMcsSupported(), IsModeSupported(), ns3::Time::IsStrictlyPositive(), m_endPhyRxEvent, m_endRxEvent, m_interference, m_phyRxPayloadBeginTrace, m_random, m_state, m_statusPerMpdu, MaybeCcaBusyDuration(), min, ns3::NanoSeconds(), NotifyEndOfHePreamble(), NotifyRxDrop(), ns3::Simulator::Now(), NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::InterferenceHelper::SnrPer::per, ns3::RatioToDb(), ResetReceive(), ns3::HePreambleParameters::rssiW, ns3::Simulator::Schedule(), ScheduleEndOfMpdus(), ns3::SIG_A_FAILURE, ns3::InterferenceHelper::SnrPer::snr, ns3::UNSUPPORTED_SETTINGS, ns3::WIFI_MOD_CLASS_HE, ns3::WIFI_MOD_CLASS_HT, and ns3::WIFI_PREAMBLE_HE_MU.
Referenced by ContinueReceiveHeader(), and StartReceiveHeader().
void ns3::WifiPhy::StartReceivePreamble | ( | Ptr< WifiPpdu > | ppdu, |
RxPowerWattPerChannelBand | rxPowersW | ||
) |
Start receiving the PHY preamble of a PPDU (i.e.
the first bit of the preamble has arrived).
ppdu | the arriving PPDU |
rxPowersW | the receive power in W per 20 MHz channel band |
Definition at line 2896 of file wifi-phy.cc.
References AbortCurrentReception(), ns3::InterferenceHelper::Add(), CCA_BUSY, ns3::CHANNEL_SWITCHING, ns3::FRAME_CAPTURE_PACKET_SWITCH, GetAddressedPsduInPpdu(), 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().
Starting receiving the PPDU after having detected the medium is idle or after a reception switch.
event | the event holding incoming PPDU's information |
Definition at line 4669 of file wifi-phy.cc.
References ns3::BUSY_DECODING_PREAMBLE, ns3::EventId::Cancel(), GetAddressedPsduInPpdu(), GetBand(), GetChannelWidth(), 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().
ppdu | the PPDU to send |
Implemented in ns3::SpectrumWifiPhy, and ns3::YansWifiPhy.
Referenced by Send().
|
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 4593 of file wifi-phy.cc.
References ns3::Time::As(), GetBand(), GetChannelWidth(), 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().
void ns3::WifiPhy::UnregisterListener | ( | WifiPhyListener * | listener | ) |
listener | the listener to be unregistered |
Remove the input listener from the list of objects to be notified of PHY-level events.
Definition at line 601 of file wifi-phy.cc.
References m_state.
|
private |
estimated Ack TX time
Definition at line 2140 of file wifi-phy.h.
Referenced by Configure80211a(), Configure80211b(), Configure80211p(), and GetAckTxTime().
|
private |
WifiPhyBand.
Definition at line 2130 of file wifi-phy.h.
Referenced by Configure80211ax(), Configure80211n(), ConfigureDefaultsForStandard(), ConfigureStandardAndBand(), and GetPhyBand().
|
private |
estimated BlockAck TX time
Definition at line 2141 of file wifi-phy.h.
Referenced by Configure80211n(), and GetBlockAckTxTime().
|
private |
the BSS membership selector set
Definition at line 2127 of file wifi-phy.h.
Referenced by Configure80211ac(), Configure80211ax(), Configure80211n(), ConfigureHtDeviceMcsSet(), GetBssMembershipSelector(), and GetNBssMembershipSelectors().
|
private |
Callback when PHY capabilities changed.
Definition at line 2183 of file wifi-phy.h.
Referenced by SetCapabilitiesChangedCallback(), SetChannelWidth(), SetMaxSupportedRxSpatialStreams(), and SetMaxSupportedTxSpatialStreams().
|
private |
Clear channel assessment (CCA) threshold in watts.
Definition at line 2144 of file wifi-phy.h.
Referenced by GetCcaEdThreshold(), MaybeCcaBusyDuration(), ResumeFromOff(), ResumeFromSleep(), SetCcaEdThreshold(), and SwitchMaybeToCcaBusy().
|
private |
Flag if channels access has been requested (used for OBSS_PD SR)
Definition at line 2154 of file wifi-phy.h.
Referenced by DoChannelSwitch(), DoFrequencySwitch(), EndReceiveInterBss(), NotifyChannelAccessRequested(), Send(), SetOffMode(), and SetSleepMode().
|
private |
Center frequency in MHz.
Definition at line 2132 of file wifi-phy.h.
Referenced by GetFrequency(), SetChannelNumber(), and SetFrequency().
|
private |
Operating channel number.
Definition at line 2165 of file wifi-phy.h.
Referenced by GetChannelNumber(), SetChannelNumber(), and SetFrequency().
|
private |
Time required to switch between channel.
Definition at line 2168 of file wifi-phy.h.
Referenced by GetChannelSwitchDelay(), and GetTypeId().
|
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 2162 of file wifi-phy.h.
Referenced by DefineChannelNumber(), FindChannelNumberForFrequencyWidth(), and GetFrequencyWidthForChannelNumberStandard().
|
private |
Channel width (MHz)
Definition at line 2135 of file wifi-phy.h.
Referenced by GetChannelWidth(), SetChannelWidth(), and StartReceiveHeader().
Hold the current event.
Definition at line 2173 of file wifi-phy.h.
Referenced by AbortCurrentReception(), EndReceive(), ResetCca(), ResetReceive(), Send(), StartReceiveHeader(), StartReceivePreamble(), and StartRx().
Pointer to the device.
Definition at line 2170 of file wifi-phy.h.
Referenced by DoDispose(), GetDevice(), GetMobility(), and SetDevice().
|
private |
the device MCS set
Definition at line 2123 of file wifi-phy.h.
Referenced by ConfigureHtDeviceMcsSet(), DoDispose(), GetMcs(), GetNMcs(), PushMcs(), and RebuildMcsMap().
|
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 2122 of file wifi-phy.h.
Referenced by Configure80211a(), Configure80211b(), Configure80211g(), Configure80211p(), ConfigureHolland(), DoDispose(), GetMode(), and GetNModes().
|
protected |
the end of PHY receive event
Definition at line 1810 of file wifi-phy.h.
Referenced by AbortCurrentReception(), ContinueReceiveHeader(), DoChannelSwitch(), DoDispose(), DoFrequencySwitch(), SetOffMode(), StartReceiveHeader(), and StartReceivePayload().
|
protected |
the end of preamble detection event
Definition at line 1811 of file wifi-phy.h.
Referenced by AbortCurrentReception(), DoChannelSwitch(), DoDispose(), DoFrequencySwitch(), SetOffMode(), and StartRx().
|
protected |
the end of receive event
Definition at line 1809 of file wifi-phy.h.
Referenced by AbortCurrentReception(), DoChannelSwitch(), DoDispose(), DoFrequencySwitch(), SetOffMode(), and StartReceivePayload().
|
protected |
the end of transmit event
Definition at line 1813 of file wifi-phy.h.
Referenced by DoDispose(), Send(), and SetOffMode().
|
private |
Frame capture model.
Definition at line 2174 of file wifi-phy.h.
Referenced by GetTypeId(), SetFrameCaptureModel(), StartReceivePreamble(), and StartRx().
|
private |
Store initialization state.
Definition at line 2134 of file wifi-phy.h.
Referenced by ConfigureStandardAndBand(), DoInitialize(), and InitializeFrequencyChannelNumber().
|
private |
Initial channel number.
Definition at line 2166 of file wifi-phy.h.
Referenced by InitializeFrequencyChannelNumber(), and SetChannelNumber().
|
private |
Store frequency until initialization (MHz)
Definition at line 2133 of file wifi-phy.h.
Referenced by InitializeFrequencyChannelNumber(), and SetFrequency().
|
protected |
Pointer to InterferenceHelper.
Definition at line 1802 of file wifi-phy.h.
Referenced by AbortCurrentReception(), CalculateSnr(), ContinueReceiveHeader(), DoChannelSwitch(), DoFrequencySwitch(), EndOfMpdu(), EndReceive(), GetReceptionStatus(), MaybeCcaBusyDuration(), ResetReceive(), ResumeFromOff(), ResumeFromSleep(), SetErrorRateModel(), SetNumberOfAntennas(), SetRxNoiseFigure(), StartReceiveHeader(), StartReceivePayload(), StartReceivePreamble(), ns3::SpectrumWifiPhy::StartRx(), StartRx(), SwitchMaybeToCcaBusy(), ns3::SpectrumWifiPhy::UpdateInterferenceHelperBands(), and ns3::YansWifiPhy::YansWifiPhy().
|
private |
true when ready to set frequency
Definition at line 2131 of file wifi-phy.h.
Referenced by ConfigureStandardAndBand(), DoInitialize(), SetChannelNumber(), and SetFrequency().
|
private |
Maps MCS values to indices in m_deviceMcsSet, for HT, VHT and HE modulation classes.
Definition at line 2125 of file wifi-phy.h.
Referenced by DoDispose(), GetMcs(), IsMcsSupported(), PushMcs(), and RebuildMcsMap().
|
private |
Pointer to the mobility model.
Definition at line 2171 of file wifi-phy.h.
Referenced by DoDispose(), GetMobility(), and SetMobility().
|
private |
Number of available transmission power levels.
Definition at line 2149 of file wifi-phy.h.
Referenced by GetNTxPower(), GetPowerDbm(), GetTypeId(), and SetNTxPower().
|
private |
Number of transmitters.
Definition at line 2157 of file wifi-phy.h.
Referenced by GetNumberOfAntennas(), and SetNumberOfAntennas().
|
private |
A trace source that indicates the end of both HE SIG fields as well as training fields for received 802.11ax packets.
Definition at line 2084 of file wifi-phy.h.
Referenced by GetTypeId(), and NotifyEndOfHePreamble().
|
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()
Definition at line 2063 of file wifi-phy.h.
Referenced by GetTypeId(), and NotifyMonitorSniffRx().
|
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()
Definition at line 2077 of file wifi-phy.h.
Referenced by GetTypeId(), and NotifyMonitorSniffTx().
|
private |
The trace source fired when a packet begins the reception process from the medium.
Definition at line 2018 of file wifi-phy.h.
Referenced by GetTypeId(), and NotifyRxBegin().
|
private |
The trace source fired when the PHY layer drops a packet it has received.
Definition at line 2049 of file wifi-phy.h.
Referenced by GetTypeId(), and NotifyRxDrop().
|
private |
The trace source fired when a packet ends the reception process from the medium.
Definition at line 2042 of file wifi-phy.h.
Referenced by GetTypeId(), and NotifyRxEnd().
|
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.
Definition at line 2034 of file wifi-phy.h.
Referenced by GetTypeId(), and StartReceivePayload().
|
private |
The trace source fired when a packet begins the transmission process on the medium.
Definition at line 1987 of file wifi-phy.h.
Referenced by GetTypeId(), and NotifyTxBegin().
|
private |
The trace source fired when the PHY layer drops a packet as it tries to transmit it.
Definition at line 2010 of file wifi-phy.h.
Referenced by GetTypeId(), and NotifyTxDrop().
|
private |
The trace source fired when a packet ends the transmission process on the medium.
Definition at line 2002 of file wifi-phy.h.
Referenced by GetTypeId(), and NotifyTxEnd().
|
private |
The trace source fired when a PSDU map begins the transmission process on the medium.
Definition at line 1994 of file wifi-phy.h.
Referenced by GetTypeId(), and Send().
|
private |
PCF Interframe Space (PIFS) duration.
Definition at line 2139 of file wifi-phy.h.
Referenced by GetPifs(), GetTypeId(), and SetPifs().
|
private |
Error model for receive packet events.
Definition at line 2177 of file wifi-phy.h.
Referenced by DoDispose(), GetReceptionStatus(), GetTypeId(), and SetPostReceptionErrorModel().
|
private |
Flag whether transmit power is restricted by OBSS PD SR.
Definition at line 2151 of file wifi-phy.h.
Referenced by DoChannelSwitch(), DoFrequencySwitch(), EndReceiveInterBss(), GetTxPowerForTransmission(), ResetCca(), Send(), SetOffMode(), and SetSleepMode().
|
private |
Preamble detection model.
Definition at line 2175 of file wifi-phy.h.
Referenced by GetTypeId(), SetPreambleDetectionModel(), and StartReceiveHeader().
|
protected |
Provides uniform random variables.
Definition at line 1803 of file wifi-phy.h.
Referenced by AssignStreams(), ContinueReceiveHeader(), GetReceptionStatus(), StartReceivePayload(), and WifiPhy().
|
private |
Reception gain (dB)
Definition at line 2146 of file wifi-phy.h.
Referenced by GetRxGain(), and SetRxGain().
|
protected |
A-MPDU reference number to identify all received subframes belonging to the same received A-MPDU.
Definition at line 1807 of file wifi-phy.h.
Referenced by NotifyMonitorSniffRx(), and NotifyMonitorSniffTx().
|
private |
Receive sensitivity threshold in watts.
Definition at line 2143 of file wifi-phy.h.
Referenced by GetRxSensitivity(), and SetRxSensitivity().
|
private |
Number of supported RX spatial streams.
Definition at line 2159 of file wifi-phy.h.
Referenced by GetMaxSupportedRxSpatialStreams(), and SetMaxSupportedRxSpatialStreams().
|
private |
Flag if short PHY preamble is supported.
Definition at line 2156 of file wifi-phy.h.
Referenced by GetShortPhyPreambleSupported(), and SetShortPhyPreambleSupported().
|
private |
Short Interframe Space (SIFS) duration.
Definition at line 2137 of file wifi-phy.h.
Referenced by GetSifs(), GetTypeId(), and SetSifs().
|
private |
latest signal power and noise power in dBm (noise power includes the noise figure)
Definition at line 2181 of file wifi-phy.h.
Referenced by EndOfMpdu(), and EndReceive().
|
private |
Slot duration.
Definition at line 2138 of file wifi-phy.h.
Referenced by GetSlot(), GetTypeId(), and SetSlot().
|
private |
WifiPhyStandard.
Definition at line 2129 of file wifi-phy.h.
Referenced by ConfigureDefaultsForStandard(), ConfigureStandardAndBand(), and GetPhyStandard().
|
protected |
Pointer to WifiPhyStateHelper.
Definition at line 1804 of file wifi-phy.h.
Referenced by AbortCurrentReception(), ContinueReceiveHeader(), DoChannelSwitch(), DoDispose(), DoFrequencySwitch(), EndOfMpdu(), EndReceive(), GetDelayUntilIdle(), GetLastRxEndTime(), GetLastRxStartTime(), GetState(), GetTypeId(), IsStateCcaBusy(), IsStateIdle(), IsStateOff(), IsStateRx(), IsStateSleep(), IsStateSwitching(), IsStateTx(), MaybeCcaBusyDuration(), RegisterListener(), ResumeFromOff(), ResumeFromSleep(), Send(), SetOffMode(), SetReceiveErrorCallback(), SetReceiveOkCallback(), SetSleepMode(), StartReceiveHeader(), StartReceivePayload(), StartReceivePreamble(), SwitchMaybeToCcaBusy(), UnregisterListener(), and WifiPhy().
|
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 2180 of file wifi-phy.h.
Referenced by EndOfMpdu(), EndReceive(), and StartReceivePayload().
|
private |
Supported channel width set (MHz)
Definition at line 2164 of file wifi-phy.h.
Referenced by AddSupportedChannelWidth(), and GetSupportedChannelWidthSet().
|
private |
Record the time the last preamble was detected.
Definition at line 2178 of file wifi-phy.h.
Referenced by StartReceiveHeader(), and StartReceivePreamble().
|
private |
Transmission gain (dB)
Definition at line 2145 of file wifi-phy.h.
Referenced by GetTxGain(), and SetTxGain().
|
protected |
A-MPDU reference number to identify all transmitted subframes belonging to the same received A-MPDU.
Definition at line 1806 of file wifi-phy.h.
|
private |
Minimum transmission power (dBm)
Definition at line 2147 of file wifi-phy.h.
Referenced by GetPowerDbm(), GetTxPowerStart(), and SetTxPowerStart().
|
private |
Maximum transmission power (dBm)
Definition at line 2148 of file wifi-phy.h.
Referenced by GetPowerDbm(), GetTxPowerEnd(), and SetTxPowerEnd().
|
private |
MIMO maximum transmit power due to OBSS PD SR power restriction (dBm)
Definition at line 2153 of file wifi-phy.h.
Referenced by GetTxPowerForTransmission(), and ResetCca().
|
private |
SISO maximum transmit power due to OBSS PD SR power restriction (dBm)
Definition at line 2152 of file wifi-phy.h.
Referenced by GetTxPowerForTransmission(), and ResetCca().
|
private |
Number of supported TX spatial streams.
Definition at line 2158 of file wifi-phy.h.
Referenced by GetMaxSupportedTxSpatialStreams(), and SetMaxSupportedTxSpatialStreams().
|
private |
Wifi radio energy model.
Definition at line 2176 of file wifi-phy.h.
Referenced by DoDispose(), Send(), and SetWifiRadioEnergyModel().