PHY entity for ERP-OFDM (11g). More...
#include "erp-ofdm-phy.h"
Public Member Functions | |
| ErpOfdmPhy () | |
| Constructor for ERP-OFDM PHY.   | |
| ~ErpOfdmPhy () override | |
| Destructor for ERP-OFDM PHY.   | |
| Ptr< WifiPpdu > | BuildPpdu (const WifiConstPsduMap &psdus, const WifiTxVector &txVector, Time ppduDuration) override | 
| Build amendment-specific PPDU.   | |
| uint32_t | GetMaxPsduSize () const override | 
| Get the maximum PSDU size in bytes.   | |
| Public Member Functions inherited from ns3::OfdmPhy | |
| OfdmPhy (OfdmPhyVariant variant=OFDM_PHY_DEFAULT, bool buildModeList=true) | |
| Constructor for OFDM PHY.   | |
| ~OfdmPhy () override | |
| Destructor for OFDM PHY.   | |
| Ptr< WifiPpdu > | BuildPpdu (const WifiConstPsduMap &psdus, const WifiTxVector &txVector, Time ppduDuration) override | 
| Build amendment-specific PPDU.   | |
| dBm_u | GetCcaThreshold (const Ptr< const WifiPpdu > ppdu, WifiChannelListType channelType) const override | 
| Return the CCA threshold for a given channel type.   | |
| 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.   | |
| 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 () const override | 
| Return the PPDU formats of the PHY.   | |
| Ptr< const WifiPpdu > | GetRxPpduFromTxPpdu (Ptr< const WifiPpdu > ppdu) override | 
| The WifiPpdu from the TX PHY is received by each RX PHY attached to the same channel.   | |
| WifiMode | GetSigMode (WifiPpduField field, const WifiTxVector &txVector) const override | 
| Get the WifiMode for the SIG field specified by the PPDU field.   | |
| Public Member Functions inherited from ns3::PhyEntity | |
| virtual | ~PhyEntity () | 
| Destructor for PHY entity.   | |
| std::list< WifiMode >::const_iterator | begin () const | 
| Return a const iterator to the first WifiMode.   | |
| Time | CalculatePhyPreambleAndHeaderDuration (const WifiTxVector &txVector) const | 
| virtual Time | CalculateTxDuration (const WifiConstPsduMap &psduMap, const WifiTxVector &txVector, WifiPhyBand band) const | 
| virtual void | CancelAllEvents () | 
| Cancel and clear all running events.   | |
| void | CancelRunningEndPreambleDetectionEvents () | 
| Cancel all end preamble detection events.   | |
| virtual bool | CanStartRx (Ptr< const WifiPpdu > ppdu) const | 
| Determine whether the PHY shall issue a PHY-RXSTART.indication primitive in response to a given PPDU.   | |
| std::list< WifiMode >::const_iterator | end () const | 
| Return a const iterator to past-the-last WifiMode.   | |
| void | EndReceiveField (WifiPpduField field, Ptr< Event > event) | 
| End receiving a given field.   | |
| void | EndReceivePayload (Ptr< Event > event) | 
| The last symbol of the PPDU has arrived.   | |
| virtual Ptr< const WifiPsdu > | GetAddressedPsduInPpdu (Ptr< const WifiPpdu > ppdu) const | 
| Get the PSDU addressed to that PHY in a PPDU (useful for MU PPDU).   | |
| Time | GetDurationUpToField (WifiPpduField field, const WifiTxVector &txVector) const | 
| Get the duration of the PPDU up to (but excluding) the given field.   | |
| virtual Time | GetMaxDelayPpduSameUid (const WifiTxVector &txVector) | 
| Obtain the maximum time between two PPDUs with the same UID to consider they are identical and their power can be added construtively.   | |
| virtual WifiMode | GetMcs (uint8_t index) const | 
| Get the WifiMode corresponding to the given MCS index.   | |
| WifiPpduField | GetNextField (WifiPpduField currentField, WifiPreamble preamble) const | 
| Return the field following the provided one.   | |
| virtual uint8_t | GetNumModes () const | 
| PhyHeaderSections | GetPhyHeaderSections (const WifiTxVector &txVector, Time ppduStart) const | 
| Return a map of PHY header chunk information per PPDU field.   | |
| Time | GetRemainingDurationAfterField (Ptr< const WifiPpdu > ppdu, WifiPpduField field) const | 
| Get the remaining duration of the PPDU after the end of the given field.   | |
| 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.   | |
| virtual std::optional< Time > | GetTimeToMacHdrEnd (uint16_t staId) const | 
| Get the remaining time to the end of the MAC header reception of the next MPDU being received from the given STA, if any.      | |
| virtual std::optional< Time > | GetTimeToPreambleDetectionEnd () const | 
| Get the remaining time to preamble detection period to elapse, if preamble detection is ongoing.      | |
| 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.   | |
| virtual bool | HandlesMcsModes () const | 
| Check if the WifiModes handled by this PHY are MCSs.   | |
| virtual bool | IsMcsSupported (uint8_t index) const | 
| Check if the WifiMode corresponding to the given MCS index is supported.   | |
| virtual bool | IsModeSupported (WifiMode mode) const | 
| Check if the WifiMode is supported.   | |
| virtual void | NotifyCcaBusy (const Ptr< const WifiPpdu > ppdu, Time duration, WifiChannelListType channelType) | 
| Notify PHY state helper to switch to CCA busy state,.   | |
| virtual uint64_t | ObtainNextUid (const WifiTxVector &txVector) | 
| Obtain the next UID for the PPDU to transmit.   | |
| void | ResetReceive (Ptr< Event > event) | 
| Reset PHY at the end of the PPDU under reception after it has failed the PHY header.   | |
| void | SetOwner (Ptr< WifiPhy > wifiPhy) | 
| Set the WifiPhy owning this PHY entity.   | |
| void | StartReceiveField (WifiPpduField field, Ptr< Event > event) | 
| Start receiving a given field.   | |
| virtual void | StartReceivePreamble (Ptr< const WifiPpdu > ppdu, RxPowerWattPerChannelBand &rxPowersW, Time rxDuration) | 
| Start receiving the PHY preamble of a PPDU (i.e.   | |
| virtual void | StartTx (Ptr< const WifiPpdu > ppdu) | 
| This function is called by SpectrumWifiPhy to send the PPDU while performing amendment-specific actions.   | |
| virtual void | SwitchMaybeToCcaBusy (const Ptr< const WifiPpdu > ppdu) | 
| Check if PHY state should move to CCA busy state based on current state of interference tracker.   | |
| void | Transmit (Time txDuration, Ptr< const WifiPpdu > ppdu, dBm_u txPower, Ptr< SpectrumValue > txPowerSpectrum, const std::string &type) | 
| This function prepares most of the WifiSpectrumSignalParameters parameters and invokes SpectrumWifiPhy's Transmit method.   | |
Static Public Member Functions | |
| static WifiCodeRate | GetCodeRate (const std::string &name) | 
| Return the WifiCodeRate from the ERP-OFDM mode's unique name using ModulationLookupTable.   | |
| static uint16_t | GetConstellationSize (const std::string &name) | 
| Return the constellation size from the ERP-OFDM mode's unique name using ModulationLookupTable.   | |
| static uint64_t | GetDataRate (const std::string &name, MHz_u channelWidth) | 
| Return the data rate from the ERP-OFDM mode's unique name and the supplied parameters.   | |
| static uint64_t | GetDataRateFromTxVector (const WifiTxVector &txVector, uint16_t staId) | 
| Return the data rate corresponding to the supplied TXVECTOR.   | |
| static WifiMode | GetErpOfdmRate (uint64_t rate) | 
| Return a WifiMode for ERP-OFDM corresponding to the provided rate.   | |
| static WifiMode | GetErpOfdmRate12Mbps () | 
| Return a WifiMode for ERP-OFDM at 12 Mbps.   | |
| static WifiMode | GetErpOfdmRate18Mbps () | 
| Return a WifiMode for ERP-OFDM at 18 Mbps.   | |
| static WifiMode | GetErpOfdmRate24Mbps () | 
| Return a WifiMode for ERP-OFDM at 24 Mbps.   | |
| static WifiMode | GetErpOfdmRate36Mbps () | 
| Return a WifiMode for ERP-OFDM at 36 Mbps.   | |
| static WifiMode | GetErpOfdmRate48Mbps () | 
| Return a WifiMode for ERP-OFDM at 48 Mbps.   | |
| static WifiMode | GetErpOfdmRate54Mbps () | 
| Return a WifiMode for ERP-OFDM at 54 Mbps.   | |
| static WifiMode | GetErpOfdmRate6Mbps () | 
| Return a WifiMode for ERP-OFDM at 6 Mbps.   | |
| static WifiMode | GetErpOfdmRate9Mbps () | 
| Return a WifiMode for ERP-OFDM at 9 Mbps.   | |
| static uint64_t | GetPhyRate (const std::string &name, MHz_u channelWidth) | 
| Return the PHY rate from the ERP-OFDM mode's unique name and the supplied parameters.   | |
| static uint64_t | GetPhyRateFromTxVector (const WifiTxVector &txVector, uint16_t staId) | 
| Return the PHY rate corresponding to the supplied TXVECTOR.   | |
| static void | InitializeModes () | 
| Initialize all ERP-OFDM modes.   | |
| static bool | IsAllowed (const WifiTxVector &txVector) | 
| Check whether the combination in TXVECTOR is allowed.   | |
| Static Public Member Functions inherited from ns3::OfdmPhy | |
| static WifiCodeRate | GetCodeRate (const std::string &name) | 
| Return the WifiCodeRate from the OFDM mode's unique name using ModulationLookupTable.   | |
| static uint16_t | GetConstellationSize (const std::string &name) | 
| Return the constellation size from the OFDM mode's unique name using ModulationLookupTable.   | |
| static uint64_t | GetDataRate (const std::string &name, MHz_u channelWidth) | 
| Return the data rate from the OFDM mode's unique name and the supplied parameters.   | |
| static uint64_t | GetDataRateFromTxVector (const WifiTxVector &txVector, uint16_t staId) | 
| Return the data rate corresponding to the supplied TXVECTOR.   | |
| static WifiMode | GetOfdmRate (uint64_t rate, MHz_u bw=MHz_u{20}) | 
| Return a WifiMode for OFDM corresponding to the provided rate and the channel bandwidth (20, 10, or 5 MHz).   | |
| static WifiMode | GetOfdmRate12Mbps () | 
| Return a WifiMode for OFDM at 12Mbps.   | |
| static WifiMode | GetOfdmRate12MbpsBW10MHz () | 
| Return a WifiMode for OFDM at 12 Mbps with 10 MHz channel spacing.   | |
| static WifiMode | GetOfdmRate12MbpsBW5MHz () | 
| Return a WifiMode for OFDM at 12 Mbps with 5 MHz channel spacing.   | |
| static WifiMode | GetOfdmRate13_5MbpsBW5MHz () | 
| Return a WifiMode for OFDM at 13.5 Mbps with 5 MHz channel spacing.   | |
| static WifiMode | GetOfdmRate18Mbps () | 
| Return a WifiMode for OFDM at 18 Mbps.   | |
| static WifiMode | GetOfdmRate18MbpsBW10MHz () | 
| Return a WifiMode for OFDM at 18 Mbps with 10 MHz channel spacing.   | |
| static WifiMode | GetOfdmRate1_5MbpsBW5MHz () | 
| Return a WifiMode for OFDM at 1.5 Mbps with 5 MHz channel spacing.   | |
| static WifiMode | GetOfdmRate24Mbps () | 
| Return a WifiMode for OFDM at 24 Mbps.   | |
| static WifiMode | GetOfdmRate24MbpsBW10MHz () | 
| Return a WifiMode for OFDM at 24 Mbps with 10 MHz channel spacing.   | |
| static WifiMode | GetOfdmRate27MbpsBW10MHz () | 
| Return a WifiMode for OFDM at 27 Mbps with 10 MHz channel spacing.   | |
| static WifiMode | GetOfdmRate2_25MbpsBW5MHz () | 
| Return a WifiMode for OFDM at 2.25 Mbps with 5 MHz channel spacing.   | |
| static WifiMode | GetOfdmRate36Mbps () | 
| Return a WifiMode for OFDM at 36 Mbps.   | |
| static WifiMode | GetOfdmRate3MbpsBW10MHz () | 
| Return a WifiMode for OFDM at 3 Mbps with 10 MHz channel spacing.   | |
| static WifiMode | GetOfdmRate3MbpsBW5MHz () | 
| Return a WifiMode for OFDM at 3 Mbps with 5 MHz channel spacing.   | |
| static WifiMode | GetOfdmRate48Mbps () | 
| Return a WifiMode for OFDM at 48 Mbps.   | |
| static WifiMode | GetOfdmRate4_5MbpsBW10MHz () | 
| Return a WifiMode for OFDM at 4.5 Mbps with 10 MHz channel spacing.   | |
| static WifiMode | GetOfdmRate4_5MbpsBW5MHz () | 
| Return a WifiMode for OFDM at 4.5 Mbps with 5 MHz channel spacing.   | |
| static WifiMode | GetOfdmRate54Mbps () | 
| Return a WifiMode for OFDM at 54 Mbps.   | |
| static WifiMode | GetOfdmRate6Mbps () | 
| Return a WifiMode for OFDM at 6 Mbps.   | |
| static WifiMode | GetOfdmRate6MbpsBW10MHz () | 
| Return a WifiMode for OFDM at 6 Mbps with 10 MHz channel spacing.   | |
| static WifiMode | GetOfdmRate6MbpsBW5MHz () | 
| Return a WifiMode for OFDM at 6 Mbps with 5 MHz channel spacing.   | |
| static WifiMode | GetOfdmRate9Mbps () | 
| Return a WifiMode for OFDM at 9 Mbps.   | |
| static WifiMode | GetOfdmRate9MbpsBW10MHz () | 
| Return a WifiMode for OFDM at 9 Mbps with 10 MHz channel spacing.   | |
| static WifiMode | GetOfdmRate9MbpsBW5MHz () | 
| Return a WifiMode for OFDM at 9 Mbps with 5 MHz channel spacing.   | |
| static uint64_t | GetPhyRate (const std::string &name, MHz_u channelWidth) | 
| Return the PHY rate from the OFDM mode's unique name and the supplied parameters.   | |
| static uint64_t | GetPhyRateFromTxVector (const WifiTxVector &txVector, uint16_t staId) | 
| Return the PHY rate corresponding to the supplied TXVECTOR.   | |
| static void | InitializeModes () | 
| Initialize all OFDM modes (for all variants).   | |
| static bool | IsAllowed (const WifiTxVector &txVector) | 
| Check whether the combination in TXVECTOR is allowed.   | |
Private Member Functions | |
| Time | GetHeaderDuration (const WifiTxVector &txVector) const override | 
| WifiMode | GetHeaderMode (const WifiTxVector &txVector) const override | 
| Time | GetPreambleDuration (const WifiTxVector &txVector) const override | 
Static Private Member Functions | |
| static WifiMode | CreateErpOfdmMode (std::string uniqueName, bool isMandatory) | 
| Create an ERP-OFDM mode from a unique name, the unique name must already be contained inside ModulationLookupTable.   | |
Static Private Attributes | |
| static const ModulationLookupTable | m_erpOfdmModulationLookupTable | 
| lookup table to retrieve code rate and constellation size corresponding to a unique name of modulation   | |
Additional Inherited Members | |
| Public Types inherited from ns3::PhyEntity | |
| enum | PhyRxFailureAction { DROP = 0 , ABORT , IGNORE } | 
| Action to perform in case of RX failure.  More... | |
| Protected Types inherited from ns3::PhyEntity | |
| using | CcaIndication | 
| CCA end time and its corresponding channel list type (can be std::nullopt if IDLE).   | |
| typedef std::pair< WifiCodeRate, uint16_t > | CodeRateConstellationSizePair | 
| A pair to hold modulation information: code rate and constellation size.   | |
| typedef std::map< std::string, CodeRateConstellationSizePair > | ModulationLookupTable | 
| A modulation lookup table using unique name of modulation as key.   | |
| typedef std::map< WifiPreamble, std::vector< WifiPpduField > > | PpduFormats | 
| A map of PPDU field elements per preamble type.   | |
| typedef std::pair< uint64_t, uint16_t > | UidStaIdPair | 
| A pair of a UID and STA_ID.   | |
| Protected Member Functions inherited from ns3::OfdmPhy | |
| PhyFieldRxStatus | DoEndReceiveField (WifiPpduField field, Ptr< Event > event) override | 
| End receiving a given field, perform amendment-specific actions, and provide the status of the reception.   | |
| PhyFieldRxStatus | EndReceiveHeader (Ptr< Event > event) | 
| End receiving the header, perform OFDM-specific actions, and provide the status of the reception.   | |
| uint32_t | GetMaxPsduSize () const override | 
| Get the maximum PSDU size in bytes.   | |
| MHz_u | GetMeasurementChannelWidth (const Ptr< const WifiPpdu > ppdu) const override | 
| Return the channel width used to measure the RSSI.   | |
| uint8_t | GetNumberServiceBits () const | 
| Time | GetSignalExtension (WifiPhyBand band) const | 
| Ptr< SpectrumValue > | GetTxPowerSpectralDensity (Watt_u txPower, 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.   | |
| virtual bool | IsChannelWidthSupported (Ptr< const WifiPpdu > ppdu) const | 
| Checks if the PPDU's bandwidth is supported by the PHY.   | |
| Protected Member Functions inherited from ns3::PhyEntity | |
| void | AbortCurrentReception (WifiPhyRxfailureReason reason) | 
| Abort the current reception.   | |
| void | AddPreambleEvent (Ptr< Event > event) | 
| Add an entry to the map of current preamble events (stored in WifiPhy).   | |
| Ptr< Event > | CreateInterferenceEvent (Ptr< const WifiPpdu > ppdu, Time duration, RxPowerWattPerChannelBand &rxPower, bool isStartHePortionRxing=false) | 
| Create an event using WifiPhy's InterferenceHelper class.   | |
| virtual void | DoAbortCurrentReception (WifiPhyRxfailureReason reason) | 
| Perform amendment-specific actions before aborting the current reception.   | |
| virtual void | DoEndReceivePayload (Ptr< const WifiPpdu > ppdu) | 
| Perform amendment-specific actions at the end of the reception of the payload.   | |
| virtual PhyFieldRxStatus | DoEndReceivePreamble (Ptr< Event > event) | 
| End receiving the preamble, perform amendment-specific actions, and provide the status of the reception.   | |
| virtual Ptr< Event > | DoGetEvent (Ptr< const WifiPpdu > ppdu, RxPowerWattPerChannelBand &rxPowersW) | 
| Get the event corresponding to the incoming PPDU.   | |
| 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.   | |
| virtual bool | DoStartReceiveField (WifiPpduField field, Ptr< Event > event) | 
| Start receiving a given field, perform amendment-specific actions, and signify if it is supported.   | |
| virtual Time | DoStartReceivePayload (Ptr< Event > event) | 
| Start receiving the PSDU (i.e.   | |
| void | DropPreambleEvent (Ptr< const WifiPpdu > ppdu, WifiPhyRxfailureReason reason, Time endRx) | 
| Drop the PPDU and the corresponding preamble detection event, but keep CCA busy state after the completion of the currently processed event.   | |
| void | EndOfMpdu (Ptr< Event > event, Ptr< WifiMpdu > mpdu, size_t mpduIndex, Time relativeStart, Time mpduDuration) | 
| The last symbol of an MPDU in an A-MPDU has arrived.   | |
| void | EndPreambleDetectionPeriod (Ptr< Event > event) | 
| End the preamble detection period.   | |
| 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.   | |
| virtual CcaIndication | GetCcaIndication (const Ptr< const WifiPpdu > ppdu) | 
| Get CCA end time and its corresponding channel list type when a new signal has been received by the PHY.   | |
| virtual std::pair< MHz_u, WifiSpectrumBandInfo > | GetChannelWidthAndBand (const WifiTxVector &txVector, uint16_t staId) const | 
| Get the channel width and band to use (will be overloaded by child classes).   | |
| Ptr< const Event > | GetCurrentEvent () const | 
| Get the pointer to the current event (stored in WifiPhy).   | |
| const std::map< std::pair< uint64_t, WifiPreamble >, Ptr< Event > > & | GetCurrentPreambleEvents () const | 
| Get the map of current preamble events (stored in WifiPhy).   | |
| Time | GetDelayUntilCcaEnd (dBm_u threshold, const WifiSpectrumBandInfo &band) | 
| Return the delay until CCA busy is ended for a given sensitivity threshold and a given band.   | |
| MHz_u | GetGuardBandwidth (MHz_u 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.   | |
| WifiSpectrumBandInfo | GetPrimaryBand (MHz_u bandWidth) const | 
| If the operating channel width is a multiple of 20 MHz, return the info corresponding to the primary channel of the given bandwidth (which must be a multiple of 20 MHz and not exceed the operating channel width).   | |
| double | GetRandomValue () const | 
| Obtain a random value from the WifiPhy's generator.   | |
| std::pair< bool, SignalNoiseDbm > | GetReceptionStatus (Ptr< WifiMpdu > mpdu, Ptr< Event > event, uint16_t staId, Time relativeMpduStart, Time mpduDuration) | 
| Get the reception status for the provided MPDU and notify.   | |
| virtual MHz_u | GetRxChannelWidth (const WifiTxVector &txVector) const | 
| Return the channel width used in the reception spectrum model.   | |
| Watt_u | GetRxPowerForPpdu (Ptr< Event > event) const | 
| Obtain the received power for a given band.   | |
| WifiSpectrumBandInfo | GetSecondaryBand (MHz_u bandWidth) const | 
| If the channel bonding is used, return the info corresponding to the secondary channel of the given bandwidth (which must be a multiple of 20 MHz and not exceed the operating channel width).   | |
| std::tuple< dBr_u, dBr_u, dBr_u > | GetTxMaskRejectionParams () const | 
| virtual void | HandleRxPpduWithSameContent (Ptr< Event > event, Ptr< const WifiPpdu > ppdu, RxPowerWattPerChannelBand &rxPower) | 
| Handle reception of a PPDU that carries the same content of another PPDU.   | |
| virtual bool | IsConfigSupported (Ptr< const WifiPpdu > ppdu) const | 
| Checks if the signaled configuration (excluding bandwidth) is supported by the PHY.   | |
| 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.   | |
| void | NotifyPayloadBegin (const WifiTxVector &txVector, const Time &payloadDuration) | 
| Fire the trace indicating that the PHY is starting to receive the payload of a PPDU.   | |
| virtual void | RxPayloadFailed (Ptr< const WifiPsdu > psdu, double snr, const WifiTxVector &txVector) | 
| Perform amendment-specific actions when the payload is unsuccessfully received.   | |
| virtual void | RxPayloadSucceeded (Ptr< const WifiPsdu > psdu, RxSignalInfo rxSignalInfo, const WifiTxVector &txVector, uint16_t staId, const std::vector< bool > &statusPerMpdu) | 
| Perform amendment-specific actions when the payload is successfully received.   | |
| void | ScheduleEndOfMpdus (Ptr< Event > event) | 
| Schedule end of MPDUs events.   | |
| void | StartPreambleDetectionPeriod (Ptr< Event > event) | 
| Start the preamble detection period.   | |
| void | StartReceivePayload (Ptr< Event > event) | 
| Start receiving the PSDU (i.e.   | |
| Static Protected Member Functions inherited from ns3::OfdmPhy | |
| static uint64_t | CalculateDataRate (Time symbolDuration, uint16_t usableSubCarriers, uint16_t numberOfBitsPerSubcarrier, double codingRate) | 
| Calculates data rate from the supplied parameters.   | |
| static uint64_t | CalculateDataRate (WifiCodeRate codeRate, uint16_t constellationSize, MHz_u channelWidth) | 
| Calculates data rate from the supplied parameters.   | |
| static uint64_t | CalculatePhyRate (WifiCodeRate codeRate, uint64_t dataRate) | 
| Calculate the PHY rate in bps from code rate and data rate.   | |
| static double | GetCodeRatio (WifiCodeRate codeRate) | 
| Convert WifiCodeRate to a ratio, e.g., code ratio of WIFI_CODE_RATE_1_2 is 0.5.   | |
| static Time | GetSymbolDuration (MHz_u channelWidth) | 
| static uint16_t | GetUsableSubcarriers () | 
| Protected Attributes inherited from ns3::PhyEntity | |
| std::map< uint16_t, std::vector< EventId > > | m_endOfMacHdrEvents | 
| STA_ID-indexed map of the RX end of MAC header events.   | |
| std::vector< EventId > | m_endOfMpduEvents | 
| the end of MPDU events (only used for A-MPDUs)   | |
| std::vector< EventId > | m_endPreambleDetectionEvents | 
| the end of preamble detection events   | |
| std::vector< EventId > | m_endRxPayloadEvents | 
| the end of receive events (only one unless UL MU reception)   | |
| std::list< WifiMode > | m_modeList | 
| the list of supported modes   | |
| std::map< UidStaIdPair, SignalNoiseDbm > | m_signalNoiseMap | 
| Map of the latest signal power and noise power in dBm (noise power includes the noise figure).   | |
| Ptr< WifiPhyStateHelper > | m_state | 
| Pointer to WifiPhyStateHelper of the WifiPhy (to make it reachable for child classes).   | |
| 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.   | |
| Ptr< WifiPhy > | m_wifiPhy | 
| Pointer to the owning WifiPhy.   | |
| Static Protected Attributes inherited from ns3::PhyEntity | |
| static uint64_t | m_globalPpduUid = 0 | 
| Global counter of the PPDU UID.   | |
PHY entity for ERP-OFDM (11g).
ERP-OFDM PHY is based on OFDM PHY. ERP-DSSS/CCK mode is not supported.
Refer to IEEE 802.11-2016, clause 18.
Definition at line 34 of file erp-ofdm-phy.h.
| ns3::ErpOfdmPhy::ErpOfdmPhy | ( | ) | 
Constructor for ERP-OFDM PHY.
Definition at line 66 of file erp-ofdm-phy.cc.
References ns3::OfdmPhy::OfdmPhy(), GetErpOfdmRate(), ns3::GetErpOfdmRatesBpsList(), ns3::PhyEntity::m_modeList, NS_LOG_FUNCTION, NS_LOG_LOGIC, and ns3::OFDM_PHY_DEFAULT.
      
  | 
  override | 
Destructor for ERP-OFDM PHY.
Definition at line 78 of file erp-ofdm-phy.cc.
References NS_LOG_FUNCTION.
      
  | 
  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.
Definition at line 103 of file erp-ofdm-phy.cc.
References ns3::Create(), ns3::PhyEntity::m_wifiPhy, and NS_LOG_FUNCTION.
      
  | 
  staticprivate | 
Create an ERP-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 170 of file erp-ofdm-phy.cc.
References ns3::WifiModeFactory::CreateWifiMode(), GetCodeRate(), GetConstellationSize(), GetDataRateFromTxVector(), GetPhyRateFromTxVector(), IsAllowed(), m_erpOfdmModulationLookupTable, ns3::MakeBoundCallback(), ns3::MakeCallback(), NS_ASSERT_MSG, and ns3::WIFI_MOD_CLASS_ERP_OFDM.
      
  | 
  static | 
Return the WifiCodeRate from the ERP-OFDM mode's unique name using ModulationLookupTable.
This is mainly used as a callback for WifiMode operation.
| name | the unique name of the ERP-OFDM mode | 
Definition at line 188 of file erp-ofdm-phy.cc.
References m_erpOfdmModulationLookupTable.
Referenced by CreateErpOfdmMode(), GetDataRate(), and GetPhyRate().
      
  | 
  static | 
Return the constellation size from the ERP-OFDM mode's unique name using ModulationLookupTable.
This is mainly used as a callback for WifiMode operation.
| name | the unique name of the ERP-OFDM mode | 
Definition at line 194 of file erp-ofdm-phy.cc.
References m_erpOfdmModulationLookupTable.
Referenced by CreateErpOfdmMode(), GetDataRate(), and GetPhyRate().
      
  | 
  static | 
Return the data rate from the ERP-OFDM mode's unique name and the supplied parameters.
This function calls OfdmPhy::CalculateDataRate and is mainly used as a callback for WifiMode operation.
| name | the unique name of the ERP-OFDM mode | 
| channelWidth | the considered channel width | 
Definition at line 221 of file erp-ofdm-phy.cc.
References ns3::OfdmPhy::CalculateDataRate(), GetCodeRate(), and GetConstellationSize().
Referenced by GetDataRateFromTxVector().
      
  | 
  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 215 of file erp-ofdm-phy.cc.
References ns3::WifiTxVector::GetChannelWidth(), GetDataRate(), ns3::WifiTxVector::GetMode(), and ns3::WifiMode::GetUniqueName().
Referenced by CreateErpOfdmMode().
      
  | 
  static | 
Return a WifiMode for ERP-OFDM corresponding to the provided rate.
| rate | the rate in bps | 
Definition at line 126 of file erp-ofdm-phy.cc.
References GetErpOfdmRate12Mbps(), GetErpOfdmRate18Mbps(), GetErpOfdmRate24Mbps(), GetErpOfdmRate36Mbps(), GetErpOfdmRate48Mbps(), GetErpOfdmRate54Mbps(), GetErpOfdmRate6Mbps(), GetErpOfdmRate9Mbps(), and NS_ABORT_MSG.
Referenced by ErpOfdmPhy(), ns3::WifiRemoteStationManager::AdjustTxVectorForIcf(), PhyHeaderSectionsTest::DoRun(), InitializeModes(), and ns3::ErpOfdmPpdu::SetTxVectorFromLSigHeader().
      
  | 
  static | 
Return a WifiMode for ERP-OFDM at 12 Mbps.
Referenced by GetErpOfdmRate().
      
  | 
  static | 
Return a WifiMode for ERP-OFDM at 18 Mbps.
Referenced by GetErpOfdmRate().
      
  | 
  static | 
Return a WifiMode for ERP-OFDM at 24 Mbps.
Referenced by GetErpOfdmRate().
      
  | 
  static | 
Return a WifiMode for ERP-OFDM at 36 Mbps.
Referenced by GetErpOfdmRate().
      
  | 
  static | 
Return a WifiMode for ERP-OFDM at 48 Mbps.
Referenced by GetErpOfdmRate().
      
  | 
  static | 
Return a WifiMode for ERP-OFDM at 54 Mbps.
Referenced by TxDurationTest::DoRun(), and GetErpOfdmRate().
      
  | 
  static | 
Return a WifiMode for ERP-OFDM at 6 Mbps.
Referenced by ns3::WifiRemoteStationManager::AdjustTxVectorForCtlResponse(), PhyHeaderSectionsTest::DoRun(), ns3::HeFrameExchangeManager::GetCtsModeAfterMuRts(), GetErpOfdmRate(), GetHeaderMode(), ns3::WifiDefaultProtectionManager::TryAddMpduToMuPpdu(), and ns3::WifiDefaultProtectionManager::TryUlMuTransmission().
      
  | 
  static | 
Return a WifiMode for ERP-OFDM at 9 Mbps.
Referenced by GetErpOfdmRate().
      
  | 
  overrideprivatevirtual | 
| txVector | the transmission parameters | 
Reimplemented from ns3::OfdmPhy.
Definition at line 97 of file erp-ofdm-phy.cc.
References ns3::MicroSeconds().
      
  | 
  overrideprivatevirtual | 
| txVector | the transmission parameters | 
Reimplemented from ns3::OfdmPhy.
Definition at line 84 of file erp-ofdm-phy.cc.
References GetErpOfdmRate6Mbps(), ns3::WifiTxVector::GetMode(), ns3::WifiMode::GetModulationClass(), NS_ASSERT, and ns3::WIFI_MOD_CLASS_ERP_OFDM.
      
  | 
  overridevirtual | 
Get the maximum PSDU size in bytes.
Implements ns3::PhyEntity.
Definition at line 235 of file erp-ofdm-phy.cc.
      
  | 
  static | 
Return the PHY rate from the ERP-OFDM mode's unique name and the supplied parameters.
This function calls OfdmPhy::CalculatePhyRate and is mainly used as a callback for WifiMode operation.
| name | the unique name of the ERP-OFDM mode | 
| channelWidth | the considered channel width | 
Definition at line 200 of file erp-ofdm-phy.cc.
References ns3::OfdmPhy::CalculateDataRate(), ns3::OfdmPhy::CalculatePhyRate(), GetCodeRate(), and GetConstellationSize().
Referenced by GetPhyRateFromTxVector().
      
  | 
  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 209 of file erp-ofdm-phy.cc.
References ns3::WifiTxVector::GetChannelWidth(), ns3::WifiTxVector::GetMode(), GetPhyRate(), and ns3::WifiMode::GetUniqueName().
Referenced by CreateErpOfdmMode().
      
  | 
  overrideprivatevirtual | 
| txVector | the transmission parameters | 
Reimplemented from ns3::OfdmPhy.
Definition at line 91 of file erp-ofdm-phy.cc.
References ns3::MicroSeconds().
      
  | 
  static | 
Initialize all ERP-OFDM modes.
Definition at line 117 of file erp-ofdm-phy.cc.
References GetErpOfdmRate(), and ns3::GetErpOfdmRatesBpsList().
Referenced by anonymous_namespace{erp-ofdm-phy.cc}::ConstructorErpOfdm::ConstructorErpOfdm().
      
  | 
  static | 
Check whether the combination in TXVECTOR is allowed.
This function is used as a callback for WifiMode operation.
| txVector | the TXVECTOR | 
Definition at line 229 of file erp-ofdm-phy.cc.
Referenced by CreateErpOfdmMode().
      
  | 
  staticprivate | 
lookup table to retrieve code rate and constellation size corresponding to a unique name of modulation
Definition at line 201 of file erp-ofdm-phy.h.
Referenced by CreateErpOfdmMode(), GetCodeRate(), and GetConstellationSize().