PHY entity for HR/DSSS (11b) More...
#include "dsss-phy.h"
 Inheritance diagram for ns3::DsssPhy:
 Collaboration diagram for ns3::DsssPhy:Public Member Functions | |
| DsssPhy () | |
| Constructor for HR/DSSS PHY.   | |
| ~DsssPhy () override | |
| Destructor for HR/DSSS PHY.   | |
| Ptr< WifiPpdu > | BuildPpdu (const WifiConstPsduMap &psdus, const WifiTxVector &txVector, Time ppduDuration) override | 
| Build amendment-specific PPDU.   | |
| 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.   | |
| uint32_t | GetMaxPsduSize () const override | 
| Get the maximum PSDU size in bytes.   | |
| 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.   | |
| 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.   | |
| virtual Ptr< WifiPpdu > | BuildPpdu (const WifiConstPsduMap &psdus, const WifiTxVector &txVector, Time ppduDuration) | 
| Build amendment-specific PPDU.   | |
| Time | CalculatePhyPreambleAndHeaderDuration (const WifiTxVector &txVector) const | 
| virtual Time | CalculateTxDuration (WifiConstPsduMap psduMap, const WifiTxVector &txVector, WifiPhyBand band) const | 
| virtual void | CancelAllEvents () | 
| Cancel and clear all running events.   | |
| void | CancelRunningEndPreambleDetectionEvents (bool clear=false) | 
| Cancel and eventually clear all end preamble detection events.   | |
| virtual bool | CanStartRx (Ptr< const WifiPpdu > ppdu, uint16_t txChannelWidth) 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).   | |
| virtual double | GetCcaThreshold (const Ptr< const WifiPpdu > ppdu, WifiChannelListType channelType) const | 
| Return the CCA threshold in dBm for a given channel type.   | |
| virtual Time | GetDuration (WifiPpduField field, const WifiTxVector &txVector) const | 
| Get the duration of the PPDU field (or group of fields) used by this entity for the given transmission parameters.   | |
| 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 uint32_t | GetMaxPsduSize () const =0 | 
| Get the maximum PSDU size in bytes.   | |
| 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 | 
| virtual Time | GetPayloadDuration (uint32_t size, const WifiTxVector &txVector, WifiPhyBand band, MpduType mpdutype, bool incFlag, uint32_t &totalAmpduSize, double &totalAmpduNumSymbols, uint16_t staId) const =0 | 
| 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 Ptr< const WifiPpdu > | GetRxPpduFromTxPpdu (Ptr< const WifiPpdu > ppdu) | 
| The WifiPpdu from the TX PHY is received by each RX PHY attached to the same channel.   | |
| virtual WifiMode | GetSigMode (WifiPpduField field, const WifiTxVector &txVector) const | 
| Get the WifiMode for the SIG field specified by the PPDU 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 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.   | |
| bool | NoEndPreambleDetectionEvents () const | 
| 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, double txPowerDbm, Ptr< SpectrumValue > txPowerSpectrum, const std::string &type) | 
| This function prepares most of the WifiSpectrumSignalParameters parameters and invokes SpectrumWifiPhy's Transmit method.   | |
  Public Member Functions inherited from ns3::SimpleRefCount< PhyEntity > | |
| SimpleRefCount () | |
| Default constructor.   | |
| SimpleRefCount (const SimpleRefCount &o) | |
| Copy constructor.   | |
| uint32_t | GetReferenceCount () const | 
| Get the reference count of the object.   | |
| SimpleRefCount & | operator= (const SimpleRefCount &o) | 
| Assignment operator.   | |
| void | Ref () const | 
| Increment the reference count.   | |
| void | Unref () const | 
| Decrement the reference count.   | |
Static Public Member Functions | |
| static WifiCodeRate | GetCodeRate (const std::string &name) | 
| Return the WifiCodeRate from the DSSS or HR/DSSS mode's unique name using ModulationLookupTable.   | |
| static uint16_t | GetConstellationSize (const std::string &name) | 
| Return the constellation size from the DSSS or HR/DSSS mode's unique name using ModulationLookupTable.   | |
| static uint64_t | GetDataRate (const std::string &name, WifiModulationClass modClass) | 
| Return the data rate from the DSSS or HR/DSSS 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 | GetDsssRate (uint64_t rate) | 
| Return a WifiMode for HR/DSSS corresponding to the provided rate.   | |
| static WifiMode | GetDsssRate11Mbps () | 
| Return a WifiMode for HR/DSSS at 11 Mbps.   | |
| static WifiMode | GetDsssRate1Mbps () | 
| Return a WifiMode for DSSS at 1 Mbps.   | |
| static WifiMode | GetDsssRate2Mbps () | 
| Return a WifiMode for DSSS at 2 Mbps.   | |
| static WifiMode | GetDsssRate5_5Mbps () | 
| Return a WifiMode for HR/DSSS at 5.5 Mbps.   | |
| static void | InitializeModes () | 
| Initialize all HR/DSSS modes.   | |
| static bool | IsAllowed (const WifiTxVector &txVector) | 
| Check whether the combination in TXVECTOR is allowed.   | |
Private 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.   | |
| PhyFieldRxStatus | EndReceiveHeader (Ptr< Event > event) | 
| End receiving the header, perform DSSS-specific actions, and provide the status of the reception.   | |
| Time | GetHeaderDuration (const WifiTxVector &txVector) const | 
| WifiMode | GetHeaderMode (const WifiTxVector &txVector) const | 
| uint16_t | GetMeasurementChannelWidth (const Ptr< const WifiPpdu > ppdu) const override | 
| Return the channel width used to measure the RSSI.   | |
| Time | GetPreambleDuration (const WifiTxVector &txVector) const | 
| uint16_t | GetRxChannelWidth (const WifiTxVector &txVector) const override | 
| Return the channel width used in the reception spectrum model.   | |
| Ptr< SpectrumValue > | GetTxPowerSpectralDensity (double txPowerW, Ptr< const WifiPpdu > ppdu) const override | 
Static Private Member Functions | |
| static WifiMode | CreateDsssMode (std::string uniqueName, WifiModulationClass modClass) | 
| Create a DSSS or HR/DSSS mode from a unique name, the unique name must already be contained inside ModulationLookupTable.   | |
Static Private Attributes | |
| static const ModulationLookupTable | m_dsssModulationLookupTable | 
| lookup table to retrieve code rate and constellation size corresponding to a unique name of modulation   | |
| static const PpduFormats | m_dsssPpduFormats | 
| DSSS and HR/DSSS PPDU formats.   | |
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.   | |
| typedef std::map< WifiPpduField, PhyHeaderChunkInfo > | PhyHeaderSections | 
| A map of PhyHeaderChunkInfo elements per PPDU field.   | |
| enum | PhyRxFailureAction { DROP = 0 , ABORT , IGNORE } | 
| Action to perform in case of RX failure.  More... | |
  Protected Types inherited from ns3::PhyEntity | |
| using | CcaIndication = std::optional< std::pair< Time, WifiChannelListType > > | 
| 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::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 isStartOfdmaRxing=false) | 
| Create an event using WifiPhy's InterferenceHelper class.   | |
| virtual void | DoAbortCurrentReception (WifiPhyRxfailureReason reason) | 
| Perform amendment-specific actions before aborting the current reception.   | |
| virtual PhyFieldRxStatus | DoEndReceiveField (WifiPpduField field, Ptr< Event > event) | 
| End receiving a given field, perform amendment-specific actions, and provide the status of the 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< const WifiPsdu > psdu, 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.   | |
| 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.   | |
| virtual std::pair< uint16_t, 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 (double thresholdDbm, const WifiSpectrumBandInfo &band) | 
| Return the delay until CCA busy is ended for a given sensitivity threshold (in dBm) and a given band.   | |
| uint16_t | GetGuardBandwidth (uint16_t currentChannelWidth) const | 
| virtual uint16_t | GetMeasurementChannelWidth (const Ptr< const WifiPpdu > ppdu) const =0 | 
| Return the channel width used to measure the RSSI.   | |
| SnrPer | GetPhyHeaderSnrPer (WifiPpduField field, Ptr< Event > event) const | 
| Obtain the SNR and PER of the PPDU field from the WifiPhy's InterferenceHelper class.   | |
| virtual const PpduFormats & | GetPpduFormats () const =0 | 
| Return the PPDU formats of the PHY.   | |
| WifiSpectrumBandInfo | GetPrimaryBand (uint16_t 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< const WifiPsdu > psdu, Ptr< Event > event, uint16_t staId, Time relativeMpduStart, Time mpduDuration) | 
| Get the reception status for the provided MPDU and notify.   | |
| virtual uint16_t | GetRxChannelWidth (const WifiTxVector &txVector) const | 
| Return the channel width used in the reception spectrum model.   | |
| double | GetRxPowerWForPpdu (Ptr< Event > event) const | 
| Obtain the received power (W) for a given band.   | |
| WifiSpectrumBandInfo | GetSecondaryBand (uint16_t 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< double, double, double > | GetTxMaskRejectionParams () const | 
| virtual Ptr< SpectrumValue > | GetTxPowerSpectralDensity (double txPowerW, Ptr< const WifiPpdu > ppdu) const =0 | 
| 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 unsuccessfuly 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.   | |
| void | UpdateInterferenceEvent (Ptr< Event > event, const RxPowerWattPerChannelBand &rxPower) | 
| Update an event in WifiPhy's InterferenceHelper class.   | |
  Protected Attributes inherited from ns3::PhyEntity | |
| 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 HR/DSSS (11b)
Refer to IEEE 802.11-2016, clause 16 (HR/DSSS). Note that DSSS rates (clause 15) are a subset of HR/DSSS rates.
Definition at line 46 of file dsss-phy.h.
| ns3::DsssPhy::DsssPhy | ( | ) | 
Constructor for HR/DSSS PHY.
Definition at line 79 of file dsss-phy.cc.
References GetDsssRate(), ns3::GetDsssRatesBpsList(), ns3::PhyEntity::m_modeList, NS_LOG_FUNCTION, and NS_LOG_LOGIC.
 Here is the call graph for this function:
      
  | 
  override | 
      
  | 
  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 198 of file dsss-phy.cc.
References ns3::WifiPhy::GetOperatingChannel(), ns3::PhyEntity::m_wifiPhy, NS_LOG_FUNCTION, and ns3::PhyEntity::ObtainNextUid().
 Here is the call graph for this function:
      
  | 
  staticprivate | 
Create a DSSS or HR/DSSS mode from a unique name, the unique name must already be contained inside ModulationLookupTable.
This method binds all the callbacks used by WifiMode.
| uniqueName | the unique name of the WifiMode | 
| modClass | the modulation class of the WifiMode, must be either WIFI_MOD_CLASS_DSSS or WIFI_MOD_CLASS_HR_DSSS | 
Definition at line 325 of file dsss-phy.cc.
References ns3::WifiModeFactory::CreateWifiMode(), GetCodeRate(), GetConstellationSize(), GetDataRateFromTxVector(), IsAllowed(), m_dsssModulationLookupTable, ns3::MakeBoundCallback(), ns3::MakeCallback(), NS_ASSERT_MSG, ns3::WIFI_MOD_CLASS_DSSS, and ns3::WIFI_MOD_CLASS_HR_DSSS.
 Here is the call graph for this function:
      
  | 
  overrideprivatevirtual | 
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.
Definition at line 209 of file dsss-phy.cc.
References ns3::PhyEntity::DoEndReceiveField(), EndReceiveHeader(), NS_LOG_FUNCTION, and ns3::WIFI_PPDU_FIELD_NON_HT_HEADER.
 Here is the call graph for this function:
      
  | 
  private | 
End receiving the header, perform DSSS-specific actions, and provide the status of the reception.
| event | the event holding incoming PPDU's information | 
Definition at line 220 of file dsss-phy.cc.
References ns3::PhyEntity::ABORT, ns3::PhyEntity::PhyFieldRxStatus::actionIfFailure, ns3::PhyEntity::DROP, ns3::PhyEntity::GetPhyHeaderSnrPer(), ns3::PhyEntity::GetRandomValue(), ns3::PhyEntity::IsConfigSupported(), 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 caller graph for this function:
      
  | 
  static | 
Return the WifiCodeRate from the DSSS or HR/DSSS mode's unique name using ModulationLookupTable.
This is mainly used as a callback for WifiMode operation.
| name | the unique name of the DSSS or HR/DSSS mode | 
Definition at line 347 of file dsss-phy.cc.
References m_dsssModulationLookupTable.
Referenced by CreateDsssMode().
 Here is the caller graph for this function:
      
  | 
  static | 
Return the constellation size from the DSSS or HR/DSSS mode's unique name using ModulationLookupTable.
This is mainly used as a callback for WifiMode operation.
| name | the unique name of the DSSS or HR/DSSS mode | 
Definition at line 353 of file dsss-phy.cc.
References m_dsssModulationLookupTable.
Referenced by CreateDsssMode(), and GetDataRate().
 Here is the caller graph for this function:
      
  | 
  static | 
Return the data rate from the DSSS or HR/DSSS mode's unique name and the supplied parameters.
This function is mainly used as a callback for WifiMode operation.
| name | the unique name of the DSSS or HR/DSSS mode | 
| modClass | the modulation class, must be either WIFI_MOD_CLASS_DSSS or WIFI_MOD_CLASS_HR_DSSS | 
Definition at line 366 of file dsss-phy.cc.
References GetConstellationSize(), NS_FATAL_ERROR, ns3::WIFI_MOD_CLASS_DSSS, and ns3::WIFI_MOD_CLASS_HR_DSSS.
Referenced by GetDataRateFromTxVector().
 Here is the call 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 359 of file dsss-phy.cc.
References GetDataRate(), ns3::WifiTxVector::GetMode(), ns3::WifiMode::GetModulationClass(), and ns3::WifiMode::GetUniqueName().
Referenced by CreateDsssMode().
 Here is the call graph for this function:
 Here is the caller graph for this function:
      
  | 
  static | 
Return a WifiMode for HR/DSSS corresponding to the provided rate.
| rate | the rate in bps | 
Definition at line 291 of file dsss-phy.cc.
References GetDsssRate11Mbps(), GetDsssRate1Mbps(), GetDsssRate2Mbps(), GetDsssRate5_5Mbps(), and NS_ABORT_MSG.
Referenced by DsssPhy(), InitializeModes(), and ns3::DsssPpdu::SetTxVectorFromDsssHeader().
 Here is the call graph for this function:
 Here is the caller graph for this function:
      
  | 
  static | 
Return a WifiMode for HR/DSSS at 11 Mbps.
Referenced by TxDurationTest::DoRun(), PhyHeaderSectionsTest::DoRun(), and GetDsssRate().
 Here is the caller graph for this function:
      
  | 
  static | 
Return a WifiMode for DSSS at 1 Mbps.
Referenced by TxDurationTest::DoRun(), PhyHeaderSectionsTest::DoRun(), GetDsssRate(), and GetHeaderMode().
 Here is the caller graph for this function:
      
  | 
  static | 
Return a WifiMode for DSSS at 2 Mbps.
Referenced by TxDurationTest::DoRun(), PhyHeaderSectionsTest::DoRun(), GetDsssRate(), and GetHeaderMode().
 Here is the caller graph for this function:
      
  | 
  static | 
Return a WifiMode for HR/DSSS at 5.5 Mbps.
Referenced by TxDurationTest::DoRun(), and GetDsssRate().
 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.
Definition at line 133 of file dsss-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:
      
  | 
  private | 
| txVector | the transmission parameters | 
Definition at line 167 of file dsss-phy.cc.
References ns3::WifiMode::GetDataRate(), ns3::WifiTxVector::GetMode(), ns3::WifiTxVector::GetPreambleType(), ns3::MicroSeconds(), and ns3::WIFI_PREAMBLE_SHORT.
Referenced by GetDuration().
 Here is the call graph for this function:
 Here is the caller graph for this function:
      
  | 
  private | 
| txVector | the transmission parameters | 
Definition at line 110 of file dsss-phy.cc.
References GetDsssRate1Mbps(), GetDsssRate2Mbps(), ns3::WifiTxVector::GetMode(), ns3::WifiTxVector::GetPreambleType(), and ns3::WIFI_PREAMBLE_LONG.
Referenced by GetSigMode().
 Here is the call graph for this function:
 Here is the caller graph for this function:
      
  | 
  overridevirtual | 
Get the maximum PSDU size in bytes.
Implements ns3::PhyEntity.
Definition at line 395 of file dsss-phy.cc.
      
  | 
  overrideprivatevirtual | 
Return the channel width used to measure the RSSI.
| ppdu | the PPDU that is being received | 
Implements ns3::PhyEntity.
Definition at line 261 of file dsss-phy.cc.
References GetRxChannelWidth().
 Here is the call 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 185 of file dsss-phy.cc.
References ns3::WifiMode::GetDataRate(), ns3::WifiTxVector::GetMode(), and ns3::MicroSeconds().
 Here is the call graph for this function:
      
  | 
  overridevirtual | 
Return the PPDU formats of the PHY.
Implements ns3::PhyEntity.
Definition at line 127 of file dsss-phy.cc.
References m_dsssPpduFormats.
      
  | 
  private | 
| txVector | the transmission parameters | 
Definition at line 150 of file dsss-phy.cc.
References ns3::WifiMode::GetDataRate(), ns3::WifiTxVector::GetMode(), ns3::WifiTxVector::GetPreambleType(), ns3::MicroSeconds(), and ns3::WIFI_PREAMBLE_SHORT.
Referenced by GetDuration().
 Here is the call graph for this function:
 Here is the caller graph for this function:
      
  | 
  overrideprivatevirtual | 
Return the channel width used in the reception spectrum model.
| txVector | the TXVECTOR of the PPDU that is being received | 
Reimplemented from ns3::PhyEntity.
Definition at line 245 of file dsss-phy.cc.
References ns3::WifiPhy::GetChannelWidth(), ns3::PhyEntity::GetRxChannelWidth(), and ns3::PhyEntity::m_wifiPhy.
Referenced by GetMeasurementChannelWidth().
 Here is the call 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.
Definition at line 96 of file dsss-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:
      
  | 
  overrideprivatevirtual | 
| 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 267 of file dsss-phy.cc.
References ns3::WifiSpectrumValueHelper::CreateDsssTxPowerSpectralDensity(), ns3::PhyEntity::GetCenterFrequencyForChannelWidth(), ns3::PhyEntity::GetGuardBandwidth(), NS_ABORT_MSG_IF, and NS_LOG_FUNCTION.
 Here is the call graph for this function:
      
  | 
  static | 
Initialize all HR/DSSS modes.
Definition at line 282 of file dsss-phy.cc.
References GetDsssRate(), and ns3::GetDsssRatesBpsList().
Referenced by anonymous_namespace{dsss-phy.cc}::ConstructorDsss::ConstructorDsss().
 Here is the call graph for this function:
 Here is the caller graph for this function:
      
  | 
  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 389 of file dsss-phy.cc.
Referenced by CreateDsssMode().
 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 211 of file dsss-phy.h.
Referenced by CreateDsssMode(), GetCodeRate(), and GetConstellationSize().
      
  | 
  staticprivate | 
DSSS and HR/DSSS PPDU formats.
Definition at line 208 of file dsss-phy.h.
Referenced by GetPpduFormats().