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. | |
| 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). | |
| virtual dBm_u | GetCcaThreshold (const Ptr< const WifiPpdu > ppdu, WifiChannelListType channelType) const |
| Return the CCA threshold for a given channel type. | |
| 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 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 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 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 |
| MHz_u | GetMeasurementChannelWidth (const Ptr< const WifiPpdu > ppdu) const override |
| Return the channel width used to measure the RSSI. | |
| Time | GetPreambleDuration (const WifiTxVector &txVector) const |
| MHz_u | GetRxChannelWidth (const WifiTxVector &txVector) const override |
| Return the channel width used in the reception spectrum model. | |
| Ptr< SpectrumValue > | GetTxPowerSpectralDensity (Watt_u txPower, 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 | |
| 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::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. | |
| 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. | |
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 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 35 of file dsss-phy.h.
| ns3::DsssPhy::DsssPhy | ( | ) |
Constructor for HR/DSSS PHY.
Definition at line 71 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 190 of file dsss-phy.cc.
References ns3::Create(), 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 318 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 201 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 212 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::SnrPer::per, ns3::RatioToDb(), ns3::PhyEntity::PhyFieldRxStatus::reason, ns3::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 340 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 346 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 359 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 352 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 284 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 PhyHeaderSectionsTest::DoRun(), TxDurationTest::DoRun(), and GetDsssRate().
Here is the caller graph for this function:
|
static |
Return a WifiMode for DSSS at 1 Mbps.
Referenced by PhyHeaderSectionsTest::DoRun(), TxDurationTest::DoRun(), GetDsssRate(), and GetHeaderMode().
Here is the caller graph for this function:
|
static |
Return a WifiMode for DSSS at 2 Mbps.
Referenced by PhyHeaderSectionsTest::DoRun(), TxDurationTest::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 125 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 159 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 102 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 388 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 253 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 177 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 119 of file dsss-phy.cc.
References m_dsssPpduFormats.
|
private |
| txVector | the transmission parameters |
Definition at line 142 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 237 of file dsss-phy.cc.
References 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 88 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 |
| txPower | power 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 259 of file dsss-phy.cc.
References ns3::WifiSpectrumValueHelper::CreateDsssTxPowerSpectralDensity(), ns3::PhyEntity::GetGuardBandwidth(), NS_ABORT_MSG_IF, NS_ASSERT, and NS_LOG_FUNCTION.
Here is the call graph for this function:
|
static |
Initialize all HR/DSSS modes.
Definition at line 275 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 382 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 200 of file dsss-phy.h.
Referenced by CreateDsssMode(), GetCodeRate(), and GetConstellationSize().
|
staticprivate |
DSSS and HR/DSSS PPDU formats.
Definition at line 197 of file dsss-phy.h.
Referenced by GetPpduFormats().