PHY entity for OFDM (11a)This class is also used for the 10 MHz and 5 MHz bandwidth variants addressing vehicular communications (default is 20 MHz bandwidth). More...
#include "ofdm-phy.h"
 Inheritance diagram for ns3::OfdmPhy:
 Inheritance diagram for ns3::OfdmPhy: Collaboration diagram for ns3::OfdmPhy:
 Collaboration diagram for ns3::OfdmPhy:| Public Member Functions | |
| OfdmPhy (OfdmPhyVariant variant=OFDM_PHY_DEFAULT, bool buildModeList=true) | |
| Constructor for OFDM PHY.  More... | |
| virtual | ~OfdmPhy () | 
| Destructor for OFDM PHY.  More... | |
| Ptr< WifiPpdu > | BuildPpdu (const WifiConstPsduMap &psdus, const WifiTxVector &txVector, Time ppduDuration) override | 
| Build amendment-specific PPDU.  More... | |
| Time | GetDuration (WifiPpduField field, const WifiTxVector &txVector) const override | 
| Get the duration of the PPDU field (or group of fields) used by this entity for the given transmission parameters.  More... | |
| Time | GetPayloadDuration (uint32_t size, const WifiTxVector &txVector, WifiPhyBand band, MpduType mpdutype, bool incFlag, uint32_t &totalAmpduSize, double &totalAmpduNumSymbols, uint16_t staId) const override | 
| const PpduFormats & | GetPpduFormats (void) const override | 
| Return the PPDU formats of the PHY.  More... | |
| WifiMode | GetSigMode (WifiPpduField field, const WifiTxVector &txVector) const override | 
| Get the WifiMode for the SIG field specified by the PPDU field.  More... | |
|  Public Member Functions inherited from ns3::PhyEntity | |
| virtual | ~PhyEntity () | 
| Destructor for PHY entity.  More... | |
| std::list< WifiMode >::const_iterator | begin (void) const | 
| Return a const iterator to the first WifiMode.  More... | |
| Time | CalculatePhyPreambleAndHeaderDuration (const WifiTxVector &txVector) const | 
| virtual Time | CalculateTxDuration (WifiConstPsduMap psduMap, const WifiTxVector &txVector, WifiPhyBand band) const | 
| virtual void | CancelAllEvents (void) | 
| Cancel and clear all running events.  More... | |
| void | CancelRunningEndPreambleDetectionEvents (bool clear=false) | 
| Cancel and eventually clear all end preamble detection events.  More... | |
| std::list< WifiMode >::const_iterator | end (void) const | 
| Return a const iterator to past-the-last WifiMode.  More... | |
| void | EndReceiveField (WifiPpduField field, Ptr< Event > event) | 
| End receiving a given field.  More... | |
| void | EndReceivePayload (Ptr< Event > event) | 
| The last symbol of the PPDU has arrived.  More... | |
| virtual Ptr< const WifiPsdu > | GetAddressedPsduInPpdu (Ptr< const WifiPpdu > ppdu) const | 
| Get the PSDU addressed to that PHY in a PPDU (useful for MU PPDU).  More... | |
| Time | GetDurationUpToField (WifiPpduField field, const WifiTxVector &txVector) const | 
| Get the duration of the PPDU up to (but excluding) the given field.  More... | |
| virtual WifiMode | GetMcs (uint8_t index) const | 
| Get the WifiMode corresponding to the given MCS index.  More... | |
| virtual uint16_t | GetMeasurementChannelWidth (const Ptr< const WifiPpdu > ppdu) const | 
| Return the channel width used to measure the RSSI.  More... | |
| WifiPpduField | GetNextField (WifiPpduField currentField, WifiPreamble preamble) const | 
| Return the field following the provided one.  More... | |
| virtual uint8_t | GetNumModes (void) const | 
| PhyHeaderSections | GetPhyHeaderSections (const WifiTxVector &txVector, Time ppduStart) const | 
| Return a map of PHY header chunk information per PPDU field.  More... | |
| Time | GetRemainingDurationAfterField (Ptr< const WifiPpdu > ppdu, WifiPpduField field) const | 
| Get the remaining duration of the PPDU after the end of the given field.  More... | |
| virtual uint16_t | GetRxChannelWidth (const WifiTxVector &txVector) const | 
| Return the channel width used in the reception spectrum model.  More... | |
| virtual uint16_t | GetStaId (const Ptr< const WifiPpdu > ppdu) const | 
| Return the STA ID that has been assigned to the station this PHY belongs to.  More... | |
| virtual WifiConstPsduMap | GetWifiConstPsduMap (Ptr< const WifiPsdu > psdu, const WifiTxVector &txVector) const | 
| Get a WifiConstPsduMap from a PSDU and the TXVECTOR to use to send the PSDU.  More... | |
| virtual bool | HandlesMcsModes (void) const | 
| Check if the WifiModes handled by this PHY are MCSs.  More... | |
| virtual bool | IsMcsSupported (uint8_t index) const | 
| Check if the WifiMode corresponding to the given MCS index is supported.  More... | |
| virtual bool | IsModeSupported (WifiMode mode) const | 
| Check if the WifiMode is supported.  More... | |
| bool | NoEndPreambleDetectionEvents (void) const | 
| void | ResetReceive (Ptr< Event > event) | 
| Reset PHY at the end of the PPDU under reception after it has failed the PHY header.  More... | |
| void | SetOwner (Ptr< WifiPhy > wifiPhy) | 
| Set the WifiPhy owning this PHY entity.  More... | |
| void | StartReceiveField (WifiPpduField field, Ptr< Event > event) | 
| Start receiving a given field.  More... | |
| virtual void | StartReceivePreamble (Ptr< WifiPpdu > ppdu, RxPowerWattPerChannelBand rxPowersW, Time rxDuration) | 
| Start receiving the PHY preamble of a PPDU (i.e.  More... | |
| virtual void | StartTx (Ptr< WifiPpdu > ppdu) | 
| This function is called by SpectrumWifiPhy to send the PPDU while performing amendment-specific actions.  More... | |
| void | Transmit (Time txDuration, Ptr< WifiPpdu > ppdu, std::string type) | 
| This function prepares most of the WifiSpectrumSignalParameters parameters and invokes SpectrumWifiPhy's Transmit method.  More... | |
|  Public Member Functions inherited from ns3::SimpleRefCount< PhyEntity > | |
| 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... | |
| Static Public Member Functions | |
| static WifiCodeRate | GetCodeRate (const std::string &name) | 
| Return the WifiCodeRate from the OFDM mode's unique name using ModulationLookupTable.  More... | |
| static uint16_t | GetConstellationSize (const std::string &name) | 
| Return the constellation size from the OFDM mode's unique name using ModulationLookupTable.  More... | |
| static uint64_t | GetDataRate (const std::string &name, uint16_t channelWidth, uint16_t guardInterval, uint8_t nss) | 
| Return the data rate from the OFDM mode's unique name and the supplied parameters.  More... | |
| static uint64_t | GetDataRateFromTxVector (const WifiTxVector &txVector, uint16_t staId) | 
| Return the data rate corresponding to the supplied TXVECTOR.  More... | |
| static WifiMode | GetOfdmRate (uint64_t rate, uint16_t bw=20) | 
| Return a WifiMode for OFDM corresponding to the provided rate and the channel bandwidth (20, 10, or 5 MHz).  More... | |
| static WifiMode | GetOfdmRate12Mbps (void) | 
| Return a WifiMode for OFDM at 12Mbps.  More... | |
| static WifiMode | GetOfdmRate12MbpsBW10MHz (void) | 
| Return a WifiMode for OFDM at 12 Mbps with 10 MHz channel spacing.  More... | |
| static WifiMode | GetOfdmRate12MbpsBW5MHz (void) | 
| Return a WifiMode for OFDM at 12 Mbps with 5 MHz channel spacing.  More... | |
| static WifiMode | GetOfdmRate13_5MbpsBW5MHz (void) | 
| Return a WifiMode for OFDM at 13.5 Mbps with 5 MHz channel spacing.  More... | |
| static WifiMode | GetOfdmRate18Mbps (void) | 
| Return a WifiMode for OFDM at 18 Mbps.  More... | |
| static WifiMode | GetOfdmRate18MbpsBW10MHz (void) | 
| Return a WifiMode for OFDM at 18 Mbps with 10 MHz channel spacing.  More... | |
| static WifiMode | GetOfdmRate1_5MbpsBW5MHz (void) | 
| Return a WifiMode for OFDM at 1.5 Mbps with 5 MHz channel spacing.  More... | |
| static WifiMode | GetOfdmRate24Mbps (void) | 
| Return a WifiMode for OFDM at 24 Mbps.  More... | |
| static WifiMode | GetOfdmRate24MbpsBW10MHz (void) | 
| Return a WifiMode for OFDM at 24 Mbps with 10 MHz channel spacing.  More... | |
| static WifiMode | GetOfdmRate27MbpsBW10MHz (void) | 
| Return a WifiMode for OFDM at 27 Mbps with 10 MHz channel spacing.  More... | |
| static WifiMode | GetOfdmRate2_25MbpsBW5MHz (void) | 
| Return a WifiMode for OFDM at 2.25 Mbps with 5 MHz channel spacing.  More... | |
| static WifiMode | GetOfdmRate36Mbps (void) | 
| Return a WifiMode for OFDM at 36 Mbps.  More... | |
| static WifiMode | GetOfdmRate3MbpsBW10MHz (void) | 
| Return a WifiMode for OFDM at 3 Mbps with 10 MHz channel spacing.  More... | |
| static WifiMode | GetOfdmRate3MbpsBW5MHz (void) | 
| Return a WifiMode for OFDM at 3 Mbps with 5 MHz channel spacing.  More... | |
| static WifiMode | GetOfdmRate48Mbps (void) | 
| Return a WifiMode for OFDM at 48 Mbps.  More... | |
| static WifiMode | GetOfdmRate4_5MbpsBW10MHz (void) | 
| Return a WifiMode for OFDM at 4.5 Mbps with 10 MHz channel spacing.  More... | |
| static WifiMode | GetOfdmRate4_5MbpsBW5MHz (void) | 
| Return a WifiMode for OFDM at 4.5 Mbps with 5 MHz channel spacing.  More... | |
| static WifiMode | GetOfdmRate54Mbps (void) | 
| Return a WifiMode for OFDM at 54 Mbps.  More... | |
| static WifiMode | GetOfdmRate6Mbps (void) | 
| Return a WifiMode for OFDM at 6 Mbps.  More... | |
| static WifiMode | GetOfdmRate6MbpsBW10MHz (void) | 
| Return a WifiMode for OFDM at 6 Mbps with 10 MHz channel spacing.  More... | |
| static WifiMode | GetOfdmRate6MbpsBW5MHz (void) | 
| Return a WifiMode for OFDM at 6 Mbps with 5 MHz channel spacing.  More... | |
| static WifiMode | GetOfdmRate9Mbps (void) | 
| Return a WifiMode for OFDM at 9 Mbps.  More... | |
| static WifiMode | GetOfdmRate9MbpsBW10MHz (void) | 
| Return a WifiMode for OFDM at 9 Mbps with 10 MHz channel spacing.  More... | |
| static WifiMode | GetOfdmRate9MbpsBW5MHz (void) | 
| Return a WifiMode for OFDM at 9 Mbps with 5 MHz channel spacing.  More... | |
| static uint64_t | GetPhyRate (const std::string &name, uint16_t channelWidth, uint16_t guardInterval, uint8_t nss) | 
| Return the PHY rate from the OFDM mode's unique name and the supplied parameters.  More... | |
| static uint64_t | GetPhyRateFromTxVector (const WifiTxVector &txVector, uint16_t staId) | 
| Return the PHY rate corresponding to the supplied TXVECTOR.  More... | |
| static void | InitializeModes (void) | 
| Initialize all OFDM modes (for all variants).  More... | |
| static bool | IsModeAllowed (uint16_t channelWidth, uint8_t nss) | 
| Check whether the combination of <WifiMode, channel width, NSS> is allowed.  More... | |
| Protected Member Functions | |
| PhyFieldRxStatus | DoEndReceiveField (WifiPpduField field, Ptr< Event > event) override | 
| End receiving a given field, perform amendment-specific actions, and provide the status of the reception.  More... | |
| PhyFieldRxStatus | EndReceiveHeader (Ptr< Event > event) | 
| End receiving the header, perform OFDM-specific actions, and provide the status of the reception.  More... | |
| virtual Time | GetHeaderDuration (const WifiTxVector &txVector) const | 
| virtual WifiMode | GetHeaderMode (const WifiTxVector &txVector) const | 
| uint32_t | GetMaxPsduSize (void) const override | 
| Get the maximum PSDU size in bytes.  More... | |
| uint8_t | GetNumberServiceBits (void) const | 
| virtual Time | GetPreambleDuration (const WifiTxVector &txVector) const | 
| Time | GetSignalExtension (WifiPhyBand band) const | 
| Ptr< SpectrumValue > | GetTxPowerSpectralDensity (double txPowerW, Ptr< const WifiPpdu > ppdu) const override | 
| virtual bool | IsAllConfigSupported (WifiPpduField field, Ptr< const WifiPpdu > ppdu) const | 
| Checks if the signaled configuration (including bandwidth) is supported by the PHY.  More... | |
| virtual bool | IsChannelWidthSupported (Ptr< const WifiPpdu > ppdu) const | 
| Checks if the PPDU's bandwidth is supported by the PHY.  More... | |
|  Protected Member Functions inherited from ns3::PhyEntity | |
| void | AbortCurrentReception (WifiPhyRxfailureReason reason) | 
| Abort the current reception.  More... | |
| void | AddPreambleEvent (Ptr< Event > event) | 
| Add an entry to the map of current preamble events (stored in WifiPhy).  More... | |
| Ptr< Event > | CreateInterferenceEvent (Ptr< const WifiPpdu > ppdu, const WifiTxVector &txVector, Time duration, RxPowerWattPerChannelBand rxPower, bool isStartOfdmaRxing=false) | 
| Create an event using WifiPhy's InterferenceHelper class.  More... | |
| virtual void | DoAbortCurrentReception (WifiPhyRxfailureReason reason) | 
| Perform amendment-specific actions before aborting the current reception.  More... | |
| virtual void | DoEndReceivePayload (Ptr< const WifiPpdu > ppdu) | 
| Perform amendment-specific actions at the end of the reception of the payload.  More... | |
| virtual PhyFieldRxStatus | DoEndReceivePreamble (Ptr< Event > event) | 
| End receiving the preamble, perform amendment-specific actions, and provide the status of the reception.  More... | |
| virtual Ptr< Event > | DoGetEvent (Ptr< const WifiPpdu > ppdu, RxPowerWattPerChannelBand rxPowersW) | 
| Get the event corresponding to the incoming PPDU.  More... | |
| virtual void | DoResetReceive (Ptr< Event > event) | 
| Perform amendment-specific actions before resetting PHY at the end of the PPDU under reception after it has failed the PHY header.  More... | |
| virtual bool | DoStartReceiveField (WifiPpduField field, Ptr< Event > event) | 
| Start receiving a given field, perform amendment-specific actions, and signify if it is supported.  More... | |
| virtual void | DoStartReceivePayload (Ptr< Event > event) | 
| Start receiving the PSDU (i.e.  More... | |
| void | DropPreambleEvent (Ptr< const WifiPpdu > ppdu, WifiPhyRxfailureReason reason, Time endRx, uint16_t measurementChannelWidth) | 
| Drop the PPDU and the corresponding preamble detection event, but keep CCA busy state after the completion of the currently processed event.  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... | |
| void | EndPreambleDetectionPeriod (Ptr< Event > event) | 
| End the preamble detection period.  More... | |
| void | ErasePreambleEvent (Ptr< const WifiPpdu > ppdu, Time rxDuration) | 
| Erase the event corresponding to the PPDU from the list of preamble events, but consider it as noise after the completion of the current event.  More... | |
| uint16_t | GetCenterFrequencyForChannelWidth (const WifiTxVector &txVector) const | 
| Get the center frequency of the channel corresponding the current TxVector rather than that of the supported channel width.  More... | |
| virtual std::pair< uint16_t, WifiSpectrumBand > | GetChannelWidthAndBand (const WifiTxVector &txVector, uint16_t staId) const | 
| Get the channel width and band to use (will be overloaded by child classes).  More... | |
| Ptr< const Event > | GetCurrentEvent (void) const | 
| Get the pointer to the current event (stored in WifiPhy).  More... | |
| const std::map< std::pair< uint64_t, WifiPreamble >, Ptr< Event > > & | GetCurrentPreambleEvents (void) const | 
| Get the map of current preamble events (stored in WifiPhy).  More... | |
| uint16_t | GetGuardBandwidth (uint16_t currentChannelWidth) const | 
| SnrPer | GetPhyHeaderSnrPer (WifiPpduField field, Ptr< Event > event) const | 
| Obtain the SNR and PER of the PPDU field from the WifiPhy's InterferenceHelper class.  More... | |
| double | GetRandomValue (void) const | 
| Obtain a random value from the WifiPhy's generator.  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... | |
| double | GetRxPowerWForPpdu (Ptr< Event > event) const | 
| Obtain the received power (W) for a given band.  More... | |
| std::tuple< double, double, double > | GetTxMaskRejectionParams (void) const | 
| virtual bool | IsConfigSupported (Ptr< const WifiPpdu > ppdu) const | 
| Checks if the signaled configuration (excluding bandwidth) is supported by the PHY.  More... | |
| void | NotifyInterferenceRxEndAndClear (bool reset) | 
| Notify WifiPhy's InterferenceHelper of the end of the reception, clear maps and end of MPDU event, and eventually reset WifiPhy.  More... | |
| virtual uint64_t | ObtainNextUid (const WifiTxVector &txVector) | 
| Obtain the next UID for the PPDU to transmit.  More... | |
| void | ScheduleEndOfMpdus (Ptr< Event > event) | 
| Schedule end of MPDUs events.  More... | |
| void | StartPreambleDetectionPeriod (Ptr< Event > event) | 
| Start the preamble detection period.  More... | |
| void | StartReceivePayload (Ptr< Event > event) | 
| Start receiving the PSDU (i.e.  More... | |
| void | UpdateInterferenceEvent (Ptr< Event > event, RxPowerWattPerChannelBand rxPower) | 
| Update an event in WifiPhy's InterferenceHelper class.  More... | |
| Static Protected Member Functions | |
| static uint64_t | CalculateDataRate (WifiCodeRate codeRate, uint16_t constellationSize, uint16_t channelWidth, uint16_t guardInterval, uint8_t nss) | 
| Calculates data rate from the supplied parameters.  More... | |
| static uint64_t | CalculateDataRate (double symbolDuration, uint16_t guardInterval, uint16_t usableSubCarriers, uint16_t numberOfBitsPerSubcarrier, double codingRate) | 
| Calculates data rate from the supplied parameters.  More... | |
| static uint64_t | CalculatePhyRate (WifiCodeRate codeRate, uint64_t dataRate) | 
| Calculate the PHY rate in bps from code rate and data rate.  More... | |
| static double | GetCodeRatio (WifiCodeRate codeRate) | 
| Convert WifiCodeRate to a ratio, e.g., code ratio of WIFI_CODE_RATE_1_2 is 0.5.  More... | |
| Static Private Member Functions | |
| static WifiMode | CreateOfdmMode (std::string uniqueName, bool isMandatory) | 
| Create an OFDM mode from a unique name, the unique name must already be contained inside ModulationLookupTable.  More... | |
| Static Private Attributes | |
| static const ModulationLookupTable | m_ofdmModulationLookupTable | 
| lookup table to retrieve code rate and constellation size corresponding to a unique name of modulation  More... | |
| static const PpduFormats | m_ofdmPpduFormats | 
| OFDM PPDU formats.  More... | |
| Additional Inherited Members | |
|  Public Types inherited from ns3::PhyEntity | |
| typedef std::pair< std::pair< Time, Time >, WifiMode > | PhyHeaderChunkInfo | 
| A pair containing information on the PHY header chunk, namely the start and stop times of the chunk and the WifiMode used.  More... | |
| typedef std::map< WifiPpduField, PhyHeaderChunkInfo > | PhyHeaderSections | 
| A map of PhyHeaderChunkInfo elements per PPDU field.  More... | |
| enum | PhyRxFailureAction { DROP = 0, ABORT, IGNORE } | 
| Action to perform in case of RX failure.  More... | |
|  Protected Types inherited from ns3::PhyEntity | |
| typedef std::pair< WifiCodeRate, uint16_t > | CodeRateConstellationSizePair | 
| A pair to hold modulation information: code rate and constellation size.  More... | |
| typedef std::map< std::string, CodeRateConstellationSizePair > | ModulationLookupTable | 
| A modulation lookup table using unique name of modulation as key.  More... | |
| typedef std::map< WifiPreamble, std::vector< WifiPpduField > > | PpduFormats | 
| A map of PPDU field elements per preamble type.  More... | |
| typedef std::pair< uint64_t, uint16_t > | UidStaIdPair | 
| A pair of a UID and STA_ID.  More... | |
|  Protected Attributes inherited from ns3::PhyEntity | |
| std::vector< EventId > | m_endOfMpduEvents | 
| the end of MPDU events (only used for A-MPDUs)  More... | |
| std::vector< EventId > | m_endPreambleDetectionEvents | 
| the end of preamble detection events  More... | |
| std::vector< EventId > | m_endRxPayloadEvents | 
| the end of receive events (only one unless UL MU reception)  More... | |
| std::list< WifiMode > | m_modeList | 
| the list of supported modes  More... | |
| std::map< UidStaIdPair, SignalNoiseDbm > | m_signalNoiseMap | 
| Map of the latest signal power and noise power in dBm (noise power includes the noise figure)  More... | |
| Ptr< WifiPhyStateHelper > | m_state | 
| Pointer to WifiPhyStateHelper of the WifiPhy (to make it reachable for child classes)  More... | |
| std::map< UidStaIdPair, std::vector< bool > > | m_statusPerMpduMap | 
| Map of the 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... | |
| Ptr< WifiPhy > | m_wifiPhy | 
| Pointer to the owning WifiPhy.  More... | |
|  Static Protected Attributes inherited from ns3::PhyEntity | |
| static uint64_t | m_globalPpduUid = 0 | 
| Global counter of the PPDU UID.  More... | |
PHY entity for OFDM (11a)
This class is also used for the 10 MHz and 5 MHz bandwidth variants addressing vehicular communications (default is 20 MHz bandwidth).
Refer to IEEE 802.11-2016, clause 17.
Definition at line 60 of file ofdm-phy.h.
| ns3::OfdmPhy::OfdmPhy | ( | OfdmPhyVariant | variant = OFDM_PHY_DEFAULT, | 
| bool | buildModeList = true | ||
| ) | 
Constructor for OFDM PHY.
| variant | the OFDM PHY variant | 
| buildModeList | flag used to add OFDM modes to list (disabled by child classes to only add child classes' modes) | 
Definition at line 100 of file ofdm-phy.cc.
References GetOfdmRate(), ns3::GetOfdmRatesBpsList(), ns3::PhyEntity::m_modeList, NS_ABORT_MSG, NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::OFDM_PHY_10_MHZ, ns3::OFDM_PHY_5_MHZ, and ns3::OFDM_PHY_DEFAULT.
 Here is the call graph for this function:
 Here is the call graph for this function:| 
 | virtual | 
| 
 | overridevirtual | 
Build amendment-specific PPDU.
| psdus | the PHY payloads (PSDUs) | 
| txVector | the TXVECTOR that was used for the PPDU | 
| ppduDuration | the transmission duration of the PPDU | 
Reimplemented from ns3::PhyEntity.
Reimplemented in ns3::VhtPhy.
Definition at line 274 of file ofdm-phy.cc.
References ns3::WifiPhy::GetPhyBand(), ns3::PhyEntity::m_wifiPhy, NS_LOG_FUNCTION, and ns3::PhyEntity::ObtainNextUid().
 Here is the call graph for this function:
 Here is the call graph for this function:| 
 | staticprotected | 
Calculates data rate from the supplied parameters.
| codeRate | the code rate of the mode | 
| constellationSize | the size of modulation constellation | 
| channelWidth | the considered channel width in MHz | 
| guardInterval | the considered guard interval duration in nanoseconds | 
| nss | the considered number of streams | 
Definition at line 573 of file ofdm-phy.cc.
References GetCodeRatio().
Referenced by ns3::HtPhy::CalculateDataRate(), ns3::ErpOfdmPhy::GetDataRate(), GetDataRate(), and ns3::ErpOfdmPhy::GetPhyRate().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | staticprotected | 
Calculates data rate from the supplied parameters.
| symbolDuration | the symbol duration (in us) excluding guard interval | 
| guardInterval | the considered guard interval duration in nanoseconds | 
| usableSubCarriers | the number of usable subcarriers for data | 
| numberOfBitsPerSubcarrier | the number of data bits per subcarrier | 
| codingRate | the coding rate | 
Definition at line 593 of file ofdm-phy.cc.
| 
 | staticprotected | 
Calculate the PHY rate in bps from code rate and data rate.
| codeRate | the WifiCodeRate | 
| dataRate | the data rate in bps | 
Definition at line 523 of file ofdm-phy.cc.
References GetCodeRatio().
Referenced by ns3::ErpOfdmPhy::GetPhyRate(), and GetPhyRate().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | staticprivate | 
Create an OFDM mode from a unique name, the unique name must already be contained inside ModulationLookupTable.
This method binds all the callbacks used by WifiMode.
Definition at line 484 of file ofdm-phy.cc.
References ns3::WifiModeFactory::CreateWifiMode(), GetCodeRate(), GetConstellationSize(), GetDataRate(), GetDataRateFromTxVector(), GetPhyRate(), GetPhyRateFromTxVector(), IsModeAllowed(), m_ofdmModulationLookupTable, ns3::MakeBoundCallback(), ns3::MakeCallback(), NS_ASSERT_MSG, and ns3::WIFI_MOD_CLASS_OFDM.
 Here is the call graph for this function:
 Here is the call graph for this function:| 
 | overrideprotectedvirtual | 
End receiving a given field, perform amendment-specific actions, and provide the status of the reception.
| field | the ending PPDU field | 
| event | the event holding incoming PPDU's information | 
Reimplemented from ns3::PhyEntity.
Reimplemented in ns3::VhtPhy.
Definition at line 282 of file ofdm-phy.cc.
References ns3::PhyEntity::DoEndReceiveField(), EndReceiveHeader(), NS_LOG_FUNCTION, and ns3::WIFI_PPDU_FIELD_NON_HT_HEADER.
Referenced by ns3::HtPhy::DoEndReceiveField().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | protected | 
End receiving the header, perform OFDM-specific actions, and provide the status of the reception.
| event | the event holding incoming PPDU's information | 
Definition at line 293 of file ofdm-phy.cc.
References ns3::PhyEntity::ABORT, ns3::PhyEntity::PhyFieldRxStatus::actionIfFailure, ns3::PhyEntity::DROP, ns3::PhyEntity::GetPhyHeaderSnrPer(), ns3::PhyEntity::GetRandomValue(), IsAllConfigSupported(), ns3::PhyEntity::PhyFieldRxStatus::isSuccess, ns3::L_SIG_FAILURE, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::PhyEntity::SnrPer::per, ns3::RatioToDb(), ns3::PhyEntity::PhyFieldRxStatus::reason, ns3::PhyEntity::SnrPer::snr, ns3::UNSUPPORTED_SETTINGS, and ns3::WIFI_PPDU_FIELD_NON_HT_HEADER.
Referenced by DoEndReceiveField().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Return the WifiCodeRate from the OFDM mode's unique name using ModulationLookupTable.
This is mainly used as a callback for WifiMode operation.
| name | the unique name of the OFDM mode | 
Definition at line 503 of file ofdm-phy.cc.
References m_ofdmModulationLookupTable.
Referenced by CreateOfdmMode(), GetDataRate(), and GetPhyRate().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | staticprotected | 
Convert WifiCodeRate to a ratio, e.g., code ratio of WIFI_CODE_RATE_1_2 is 0.5.
| codeRate | the WifiCodeRate | 
Definition at line 538 of file ofdm-phy.cc.
References NS_FATAL_ERROR, ns3::WIFI_CODE_RATE_1_2, ns3::WIFI_CODE_RATE_2_3, ns3::WIFI_CODE_RATE_3_4, and ns3::WIFI_CODE_RATE_UNDEFINED.
Referenced by CalculateDataRate(), CalculatePhyRate(), and ns3::HtPhy::GetCodeRatio().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Return the constellation size from the OFDM mode's unique name using ModulationLookupTable.
This is mainly used as a callback for WifiMode operation.
| name | the unique name of the OFDM mode | 
Definition at line 509 of file ofdm-phy.cc.
References m_ofdmModulationLookupTable.
Referenced by CreateOfdmMode(), and GetDataRate().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Return the data rate from the OFDM mode's unique name and the supplied parameters.
This function calls CalculateDataRate and is mainly used as a callback for WifiMode operation.
| name | the unique name of the OFDM mode | 
| channelWidth | the considered channel width in MHz | 
| guardInterval | the considered guard interval duration in nanoseconds | 
| nss | the considered number of streams | 
Definition at line 565 of file ofdm-phy.cc.
References CalculateDataRate(), GetCodeRate(), and GetConstellationSize().
Referenced by CreateOfdmMode(), GetDataRateFromTxVector(), and GetPhyRate().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Return the data rate corresponding to the supplied TXVECTOR.
This function is mainly used as a callback for WifiMode operation.
| txVector | the TXVECTOR used for the transmission | 
| staId | the station ID (only here to have a common signature for all callbacks) | 
Definition at line 556 of file ofdm-phy.cc.
References ns3::WifiTxVector::GetChannelWidth(), GetDataRate(), ns3::WifiTxVector::GetGuardInterval(), ns3::WifiTxVector::GetMode(), ns3::WifiTxVector::GetNss(), and ns3::WifiMode::GetUniqueName().
Referenced by CreateOfdmMode().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | overridevirtual | 
Get the duration of the PPDU field (or group of fields) used by this entity for the given transmission parameters.
| field | the PPDU field (or group of fields) | 
| txVector | the transmission parameters | 
Reimplemented from ns3::PhyEntity.
Reimplemented in ns3::VhtPhy.
Definition at line 184 of file ofdm-phy.cc.
References ns3::PhyEntity::GetDuration(), GetHeaderDuration(), GetPreambleDuration(), ns3::WIFI_PPDU_FIELD_NON_HT_HEADER, and ns3::WIFI_PPDU_FIELD_PREAMBLE.
 Here is the call graph for this function:
 Here is the call graph for this function:| 
 | protectedvirtual | 
| txVector | the transmission parameters | 
Reimplemented in ns3::ErpOfdmPhy.
Definition at line 219 of file ofdm-phy.cc.
References ns3::WifiTxVector::GetChannelWidth(), and ns3::MicroSeconds().
Referenced by GetDuration().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | protectedvirtual | 
| txVector | the transmission parameters | 
Reimplemented in ns3::ErpOfdmPhy.
Definition at line 159 of file ofdm-phy.cc.
References ns3::WifiTxVector::GetChannelWidth(), GetOfdmRate1_5MbpsBW5MHz(), GetOfdmRate3MbpsBW10MHz(), and GetOfdmRate6Mbps().
Referenced by GetSigMode().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | overrideprotectedvirtual | 
Get the maximum PSDU size in bytes.
Implements ns3::PhyEntity.
Reimplemented in ns3::VhtPhy.
Definition at line 608 of file ofdm-phy.cc.
| 
 | protected | 
Definition at line 262 of file ofdm-phy.cc.
Referenced by ns3::HtPhy::GetPayloadDuration(), and GetPayloadDuration().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Return a WifiMode for OFDM corresponding to the provided rate and the channel bandwidth (20, 10, or 5 MHz).
| rate | the rate in bps | 
| bw | the bandwidth in MHz | 
Definition at line 364 of file ofdm-phy.cc.
References GetOfdmRate12Mbps(), GetOfdmRate12MbpsBW10MHz(), GetOfdmRate12MbpsBW5MHz(), GetOfdmRate13_5MbpsBW5MHz(), GetOfdmRate18Mbps(), GetOfdmRate18MbpsBW10MHz(), GetOfdmRate1_5MbpsBW5MHz(), GetOfdmRate24Mbps(), GetOfdmRate24MbpsBW10MHz(), GetOfdmRate27MbpsBW10MHz(), GetOfdmRate2_25MbpsBW5MHz(), GetOfdmRate36Mbps(), GetOfdmRate3MbpsBW10MHz(), GetOfdmRate3MbpsBW5MHz(), GetOfdmRate48Mbps(), GetOfdmRate4_5MbpsBW10MHz(), GetOfdmRate4_5MbpsBW5MHz(), GetOfdmRate54Mbps(), GetOfdmRate6Mbps(), GetOfdmRate6MbpsBW10MHz(), GetOfdmRate6MbpsBW5MHz(), GetOfdmRate9Mbps(), GetOfdmRate9MbpsBW10MHz(), GetOfdmRate9MbpsBW5MHz(), and NS_ABORT_MSG.
Referenced by ns3::OfdmPpdu::DoGetTxVector(), InitializeModes(), and OfdmPhy().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Return a WifiMode for OFDM at 12Mbps.
Referenced by GetOfdmRate().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Return a WifiMode for OFDM at 12 Mbps with 10 MHz channel spacing.
Referenced by GetOfdmRate().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Return a WifiMode for OFDM at 12 Mbps with 5 MHz channel spacing.
Referenced by GetOfdmRate().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Return a WifiMode for OFDM at 13.5 Mbps with 5 MHz channel spacing.
Referenced by GetOfdmRate().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Return a WifiMode for OFDM at 18 Mbps.
Referenced by GetOfdmRate().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Return a WifiMode for OFDM at 18 Mbps with 10 MHz channel spacing.
Referenced by GetOfdmRate().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Return a WifiMode for OFDM at 1.5 Mbps with 5 MHz channel spacing.
Referenced by GetHeaderMode(), and GetOfdmRate().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Return a WifiMode for OFDM at 24 Mbps.
Referenced by GetOfdmRate().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Return a WifiMode for OFDM at 24 Mbps with 10 MHz channel spacing.
Referenced by GetOfdmRate().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Return a WifiMode for OFDM at 27 Mbps with 10 MHz channel spacing.
Referenced by GetOfdmRate().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Return a WifiMode for OFDM at 2.25 Mbps with 5 MHz channel spacing.
Referenced by GetOfdmRate().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Return a WifiMode for OFDM at 36 Mbps.
Referenced by GetOfdmRate().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Return a WifiMode for OFDM at 3 Mbps with 10 MHz channel spacing.
Referenced by GetHeaderMode(), and GetOfdmRate().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Return a WifiMode for OFDM at 3 Mbps with 5 MHz channel spacing.
Referenced by GetOfdmRate().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Return a WifiMode for OFDM at 48 Mbps.
Referenced by GetOfdmRate().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Return a WifiMode for OFDM at 4.5 Mbps with 10 MHz channel spacing.
Referenced by GetOfdmRate().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Return a WifiMode for OFDM at 4.5 Mbps with 5 MHz channel spacing.
Referenced by GetOfdmRate().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Return a WifiMode for OFDM at 54 Mbps.
Referenced by GetOfdmRate().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Return a WifiMode for OFDM at 6 Mbps.
Referenced by GetHeaderMode(), ns3::HtPhy::GetLSigMode(), and GetOfdmRate().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Return a WifiMode for OFDM at 6 Mbps with 10 MHz channel spacing.
Referenced by GetOfdmRate().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Return a WifiMode for OFDM at 6 Mbps with 5 MHz channel spacing.
Referenced by GetOfdmRate().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Return a WifiMode for OFDM at 9 Mbps.
Referenced by GetOfdmRate().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Return a WifiMode for OFDM at 9 Mbps with 10 MHz channel spacing.
Referenced by GetOfdmRate().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Return a WifiMode for OFDM at 9 Mbps with 5 MHz channel spacing.
Referenced by GetOfdmRate().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | overridevirtual | 
| 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) | 
Implements ns3::PhyEntity.
Definition at line 242 of file ofdm-phy.cc.
References ns3::FemtoSeconds(), ns3::WifiMode::GetDataRate(), ns3::Time::GetFemtoSeconds(), ns3::WifiTxVector::GetMode(), ns3::Time::GetNanoSeconds(), GetNumberServiceBits(), GetSignalExtension(), and ns3::MicroSeconds().
 Here is the call graph for this function:
 Here is the call graph for this function:| 
 | static | 
Return the PHY rate from the OFDM mode's unique name and the supplied parameters.
This function calls CalculatePhyRate and is mainly used as a callback for WifiMode operation.
| name | the unique name of the OFDM mode | 
| channelWidth | the considered channel width in MHz | 
| guardInterval | the considered guard interval duration in nanoseconds | 
| nss | the considered number of streams | 
Definition at line 515 of file ofdm-phy.cc.
References CalculatePhyRate(), GetCodeRate(), and GetDataRate().
Referenced by CreateOfdmMode(), and GetPhyRateFromTxVector().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Return the PHY rate corresponding to the supplied TXVECTOR.
This function is mainly used as a callback for WifiMode operation.
| txVector | the TXVECTOR used for the transmission | 
| staId | the station ID (only here to have a common signature for all callbacks) | 
Definition at line 529 of file ofdm-phy.cc.
References ns3::WifiTxVector::GetChannelWidth(), ns3::WifiTxVector::GetGuardInterval(), ns3::WifiTxVector::GetMode(), ns3::WifiTxVector::GetNss(), GetPhyRate(), and ns3::WifiMode::GetUniqueName().
Referenced by CreateOfdmMode().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | overridevirtual | 
Return the PPDU formats of the PHY.
Implements ns3::PhyEntity.
Reimplemented in ns3::VhtPhy.
Definition at line 178 of file ofdm-phy.cc.
References m_ofdmPpduFormats.
| 
 | protectedvirtual | 
| txVector | the transmission parameters | 
Reimplemented in ns3::ErpOfdmPhy.
Definition at line 198 of file ofdm-phy.cc.
References ns3::WifiTxVector::GetChannelWidth(), and ns3::MicroSeconds().
Referenced by GetDuration().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | overridevirtual | 
Get the WifiMode for the SIG field specified by the PPDU field.
| field | the PPDU field | 
| txVector | the transmission parameters | 
Reimplemented from ns3::PhyEntity.
Reimplemented in ns3::VhtPhy.
Definition at line 146 of file ofdm-phy.cc.
References GetHeaderMode(), ns3::PhyEntity::GetSigMode(), ns3::WIFI_PPDU_FIELD_NON_HT_HEADER, and ns3::WIFI_PPDU_FIELD_PREAMBLE.
 Here is the call graph for this function:
 Here is the call graph for this function:| 
 | protected | 
| band | the frequency band being used | 
Definition at line 268 of file ofdm-phy.cc.
References ns3::MicroSeconds(), and ns3::WIFI_PHY_BAND_2_4GHZ.
Referenced by ns3::HtPhy::GetPayloadDuration(), and GetPayloadDuration().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | overrideprotectedvirtual | 
| txPowerW | power in W to spread across the bands | 
| ppdu | the PPDU that will be transmitted | 
This is a helper function to create the right TX PSD corresponding to the amendment of this PHY.
Implements ns3::PhyEntity.
Definition at line 339 of file ofdm-phy.cc.
References ns3::WifiSpectrumValueHelper::CreateOfdmTxPowerSpectralDensity(), ns3::PhyEntity::GetCenterFrequencyForChannelWidth(), ns3::WifiTxVector::GetChannelWidth(), ns3::PhyEntity::GetGuardBandwidth(), ns3::PhyEntity::GetTxMaskRejectionParams(), and NS_LOG_FUNCTION.
 Here is the call graph for this function:
 Here is the call graph for this function:| 
 | static | 
Initialize all OFDM modes (for all variants).
Definition at line 352 of file ofdm-phy.cc.
References GetOfdmRate(), and ns3::GetOfdmRatesBpsList().
Referenced by anonymous_namespace{ofdm-phy.cc}::ConstructorOfdm::ConstructorOfdm().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | protectedvirtual | 
Checks if the signaled configuration (including bandwidth) is supported by the PHY.
| field | the current PPDU field (SIG used for checking config) | 
| ppdu | the received PPDU | 
true if supported, false otherwise Reimplemented in ns3::HtPhy, and ns3::VhtPhy.
Definition at line 329 of file ofdm-phy.cc.
References IsChannelWidthSupported(), and ns3::PhyEntity::IsConfigSupported().
Referenced by EndReceiveHeader(), and ns3::HtPhy::IsAllConfigSupported().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:Checks if the PPDU's bandwidth is supported by the PHY.
| ppdu | the received PPDU | 
true if supported, false otherwise Definition at line 317 of file ofdm-phy.cc.
References ns3::WifiPhy::GetChannelWidth(), ns3::PhyEntity::m_wifiPhy, and NS_LOG_DEBUG.
Referenced by ns3::VhtPhy::IsAllConfigSupported(), and IsAllConfigSupported().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Check whether the combination of <WifiMode, channel width, NSS> is allowed.
This function is used as a callback for WifiMode operation, and always returns true since there is no limitation for any mode in OfdmPhy.
| channelWidth | the considered channel width in MHz | 
| nss | the considered number of streams | 
Definition at line 602 of file ofdm-phy.cc.
Referenced by CreateOfdmMode().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | staticprivate | 
lookup table to retrieve code rate and constellation size corresponding to a unique name of modulation
Definition at line 438 of file ofdm-phy.h.
Referenced by CreateOfdmMode(), GetCodeRate(), and GetConstellationSize().
| 
 | staticprivate | 
OFDM PPDU formats.
Definition at line 436 of file ofdm-phy.h.
Referenced by GetPpduFormats().