This objects implements the PHY state machine of the Wifi device. More...
#include "wifi-phy-state-helper.h"
Inheritance diagram for ns3::WifiPhyStateHelper:
Collaboration diagram for ns3::WifiPhyStateHelper:Public Types | |
| typedef void(* | RxEndErrorTracedCallback) (Ptr< const Packet > packet, double snr) |
| TracedCallback signature for receive end error event. | |
| typedef void(* | RxOkTracedCallback) (Ptr< const Packet > packet, double snr, WifiMode mode, WifiPreamble preamble) |
| TracedCallback signature for receive end OK event. | |
| typedef void(* | RxOutcomeTracedCallback) (Ptr< const WifiPpdu > ppdu, RxSignalInfo signalInfo, const WifiTxVector &txVector, const std::vector< bool > &outcomes) |
| TracedCallback signature for the outcome of a received packet. | |
| typedef void(* | StateTracedCallback) (Time start, Time duration, WifiPhyState state) |
| TracedCallback signature for state changes. | |
| typedef void(* | TxTracedCallback) (Ptr< const Packet > packet, WifiMode mode, WifiPreamble preamble, uint8_t power) |
| TracedCallback signature for transmit event. | |
Public Member Functions | |
| WifiPhyStateHelper () | |
| Time | GetDelayUntilIdle () const |
| Return the time before the state is back to IDLE. | |
| Time | GetLastRxEndTime () const |
| Return the time the last RX end. | |
| Time | GetLastRxStartTime () const |
| Return the time the last RX start. | |
| Time | GetLastTime (std::initializer_list< WifiPhyState > states) const |
| WifiPhyState | GetState () const |
| Return the current state of WifiPhy. | |
| bool | IsStateCcaBusy () const |
| Check whether the current state is CCA busy. | |
| bool | IsStateIdle () const |
| Check whether the current state is IDLE. | |
| bool | IsStateOff () const |
| Check whether the current state is OFF. | |
| bool | IsStateRx () const |
| Check whether the current state is RX. | |
| bool | IsStateSleep () const |
| Check whether the current state is SLEEP. | |
| bool | IsStateSwitching () const |
| Check whether the current state is SWITCHING. | |
| bool | IsStateTx () const |
| Check whether the current state is TX. | |
| template<typename FUNC, typename... Ts> | |
| void | NotifyListeners (FUNC f, Ts &&... args) |
| Notify all WifiPhyListener objects of the given PHY event. | |
| void | NotifyRxMpdu (Ptr< const WifiPsdu > psdu, RxSignalInfo rxSignalInfo, const WifiTxVector &txVector) |
| Notify the reception of an MPDU included in an A-MPDU. | |
| void | NotifyRxPpduOutcome (Ptr< const WifiPpdu > ppdu, RxSignalInfo rxSignalInfo, const WifiTxVector &txVector, uint16_t staId, const std::vector< bool > &statusPerMpdu) |
| Handle the outcome of a reception of a PPDU. | |
| void | NotifyRxPsduFailed (Ptr< const WifiPsdu > psdu, double snr) |
| Handle the unsuccessful reception of a PSDU. | |
| void | NotifyRxPsduSucceeded (Ptr< const WifiPsdu > psdu, RxSignalInfo rxSignalInfo, const WifiTxVector &txVector, uint16_t staId, const std::vector< bool > &statusPerMpdu) |
| Handle the successful reception of a PSDU. | |
| void | RegisterListener (const std::shared_ptr< WifiPhyListener > &listener) |
| Register WifiPhyListener to this WifiPhyStateHelper. | |
| void | SetReceiveErrorCallback (RxErrorCallback callback) |
| Set a callback for a failed reception. | |
| void | SetReceiveOkCallback (RxOkCallback callback) |
| Set a callback for a successful reception. | |
| void | SwitchFromOff () |
| Switch from off mode. | |
| void | SwitchFromRxAbort (MHz_u operatingWidth) |
| Abort current reception following a CCA reset request. | |
| void | SwitchFromRxEndError (const WifiTxVector &txVector) |
| Switch from RX after the reception failed. | |
| void | SwitchFromRxEndOk () |
| Switch from RX after the reception was successful. | |
| void | SwitchFromSleep () |
| Switch from sleep mode. | |
| void | SwitchMaybeToCcaBusy (Time duration, WifiChannelListType channelType, const std::vector< Time > &per20MhzDurations) |
| Switch to CCA busy. | |
| void | SwitchToChannelSwitching (Time switchingDuration) |
| Switch state to channel switching for the given duration. | |
| void | SwitchToOff () |
| Switch to off mode. | |
| void | SwitchToRx (Time rxDuration) |
| Switch state to RX for the given duration. | |
| void | SwitchToSleep () |
| Switch to sleep mode. | |
| void | SwitchToTx (Time txDuration, const WifiConstPsduMap &psdus, dBm_u txPower, const WifiTxVector &txVector) |
| Switch state to TX for the given duration. | |
| void | UnregisterListener (const std::shared_ptr< WifiPhyListener > &listener) |
| Remove WifiPhyListener from this WifiPhyStateHelper. | |
Public Member Functions inherited from ns3::Object | |
| Object () | |
| Constructor. | |
| ~Object () override | |
| Destructor. | |
| void | AggregateObject (Ptr< Object > other) |
| Aggregate two Objects together. | |
| void | Dispose () |
| Dispose of this Object. | |
| AggregateIterator | GetAggregateIterator () const |
| Get an iterator to the Objects aggregated to this one. | |
| TypeId | GetInstanceTypeId () const final |
| Get the most derived TypeId for this Object. | |
| template<typename T> | |
| Ptr< T > | GetObject () const |
| Get a pointer to the requested aggregated Object. | |
| template<> | |
| Ptr< Object > | GetObject () const |
| Specialization of () for objects of type ns3::Object. | |
| template<typename T> | |
| Ptr< T > | GetObject (TypeId tid) const |
| Get a pointer to the requested aggregated Object by TypeId. | |
| template<> | |
| Ptr< Object > | GetObject (TypeId tid) const |
| Specialization of (TypeId tid) for objects of type ns3::Object. | |
| void | Initialize () |
| Invoke DoInitialize on all Objects aggregated to this one. | |
| bool | IsInitialized () const |
| Check if the object has been initialized. | |
| void | UnidirectionalAggregateObject (Ptr< Object > other) |
| Aggregate an Object to another Object. | |
Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
| 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. | |
Public Member Functions inherited from ns3::ObjectBase | |
| virtual | ~ObjectBase () |
| Virtual destructor. | |
| void | GetAttribute (std::string name, AttributeValue &value, bool permissive=false) const |
| Get the value of an attribute, raising fatal errors if unsuccessful. | |
| bool | GetAttributeFailSafe (std::string name, AttributeValue &value) const |
| Get the value of an attribute without raising errors. | |
| void | SetAttribute (std::string name, const AttributeValue &value) |
| Set a single attribute, raising fatal errors if unsuccessful. | |
| bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
| Set a single attribute without raising errors. | |
| bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
| Connect a TraceSource to a Callback with a context. | |
| bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
| Connect a TraceSource to a Callback without a context. | |
| bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
| Disconnect from a TraceSource a Callback previously connected with a context. | |
| bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
| Disconnect from a TraceSource a Callback previously connected without a context. | |
Static Public Member Functions | |
| static TypeId | GetTypeId () |
| Get the type ID. | |
Static Public Member Functions inherited from ns3::Object | |
| static TypeId | GetTypeId () |
| Register this type. | |
Static Public Member Functions inherited from ns3::ObjectBase | |
| static TypeId | GetTypeId () |
| Get the type ID. | |
Private Types | |
| typedef std::list< std::weak_ptr< WifiPhyListener > > | Listeners |
| typedef for a list of WifiPhyListeners. | |
Private Member Functions | |
| void | DoSwitchFromRx () |
| Switch the state from RX. | |
| void | LogPreviousIdleAndCcaBusyStates () |
| Log the idle and CCA busy states. | |
Private Attributes | |
| Time | m_endCcaBusy |
| end CCA busy | |
| Time | m_endIdle |
| end idle | |
| Time | m_endOff |
| end off | |
| Time | m_endRx |
| end receive | |
| Time | m_endSleep |
| end sleep | |
| Time | m_endSwitching |
| end switching | |
| Time | m_endTx |
| end transmit | |
| bool | m_isOff |
| switched off | |
| Listeners | m_listeners |
| listeners | |
| Time | m_previousStateChangeTime |
| previous state change time | |
| RxErrorCallback | m_rxErrorCallback |
| receive error callback | |
| TracedCallback< Ptr< const Packet >, double > | m_rxErrorTrace |
| receive error trace callback | |
| RxOkCallback | m_rxOkCallback |
| receive OK callback | |
| TracedCallback< Ptr< const Packet >, double, WifiMode, WifiPreamble > | m_rxOkTrace |
| receive OK trace callback | |
| TracedCallback< Ptr< const WifiPpdu >, RxSignalInfo, const WifiTxVector &, const std::vector< bool > & > | m_rxOutcomeTrace |
| receive OK trace callback | |
| bool | m_sleeping |
| sleeping | |
| Time | m_startCcaBusy |
| start CCA busy | |
| Time | m_startOff |
| start off | |
| Time | m_startRx |
| start receive | |
| Time | m_startSleep |
| start sleep | |
| Time | m_startSwitching |
| start switching | |
| Time | m_startTx |
| start transmit | |
| TracedCallback< Time, Time, WifiPhyState > | m_stateLogger |
| The trace source fired when state is changed. | |
| TracedCallback< Ptr< const Packet >, WifiMode, WifiPreamble, uint8_t > | m_txTrace |
| transmit trace callback | |
| NS_LOG_TEMPLATE_DECLARE | |
| the log component | |
Additional Inherited Members | |
Protected Member Functions inherited from ns3::Object | |
| Object (const Object &o) | |
| Copy an Object. | |
| virtual void | DoDispose () |
| Destructor implementation. | |
| virtual void | DoInitialize () |
| Initialize() implementation. | |
| virtual void | NotifyNewAggregate () |
| Notify all Objects aggregated to this one of a new Object being aggregated. | |
Protected Member Functions inherited from ns3::ObjectBase | |
| void | ConstructSelf (const AttributeConstructionList &attributes) |
| Complete construction of ObjectBase; invoked by derived classes. | |
| virtual void | NotifyConstructionCompleted () |
| Notifier called once the ObjectBase is fully constructed. | |
Related Symbols inherited from ns3::ObjectBase | |
| static TypeId | GetObjectIid () |
| Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. | |
This objects implements the PHY state machine of the Wifi device.
ns3::WifiPhyStateHelper is accessible through the following paths with Config::Set and Config::Connect:
No Attributes are defined for this type
Group: Wifi
Size of this type is 344 bytes (on a 64-bit architecture).
Definition at line 65 of file wifi-phy-state-helper.h.
|
private |
typedef for a list of WifiPhyListeners.
We use weak pointers so that unregistering a listener is not necessary to delete a listener (reference count is not incremented by weak pointers).
Definition at line 365 of file wifi-phy-state-helper.h.
| typedef void(* ns3::WifiPhyStateHelper::RxEndErrorTracedCallback) (Ptr< const Packet > packet, double snr) |
TracedCallback signature for receive end error event.
| [in] | packet | The received packet. |
| [in] | snr | The SNR of the received packet in linear scale. |
Definition at line 333 of file wifi-phy-state-helper.h.
| typedef void(* ns3::WifiPhyStateHelper::RxOkTracedCallback) (Ptr< const Packet > packet, double snr, WifiMode mode, WifiPreamble preamble) |
TracedCallback signature for receive end OK event.
| [in] | packet | The received packet. |
| [in] | snr | The SNR of the received packet in linear scale. |
| [in] | mode | The transmission mode of the packet. |
| [in] | preamble | The preamble of the packet. |
Definition at line 306 of file wifi-phy-state-helper.h.
| typedef void(* ns3::WifiPhyStateHelper::RxOutcomeTracedCallback) (Ptr< const WifiPpdu > ppdu, RxSignalInfo signalInfo, const WifiTxVector &txVector, const std::vector< bool > &outcomes) |
TracedCallback signature for the outcome of a received packet.
| [in] | ppdu | The received PPDU (Physical Layer Protocol Data Unit). |
| [in] | signalInfo | Information about the received signal, including its power and other characteristics. |
| [in] | txVector | The transmission vector used for the packet, detailing the transmission parameters. |
| [in] | outcomes | A vector of boolean values indicating the success or failure of receiving individual MPDUs within the PSDU. |
Definition at line 322 of file wifi-phy-state-helper.h.
| typedef void(* ns3::WifiPhyStateHelper::StateTracedCallback) (Time start, Time duration, WifiPhyState state) |
TracedCallback signature for state changes.
| [in] | start | Time when the state started. |
| [in] | duration | Amount of time we've been in (or will be in) the state. |
| [in] | state | The state. |
Definition at line 296 of file wifi-phy-state-helper.h.
| typedef void(* ns3::WifiPhyStateHelper::TxTracedCallback) (Ptr< const Packet > packet, WifiMode mode, WifiPreamble preamble, uint8_t power) |
TracedCallback signature for transmit event.
| [in] | packet | The received packet. |
| [in] | mode | The transmission mode of the packet. |
| [in] | preamble | The preamble of the packet. |
| [in] | power | The transmit power level. |
Definition at line 343 of file wifi-phy-state-helper.h.
| ns3::WifiPhyStateHelper::WifiPhyStateHelper | ( | ) |
Definition at line 64 of file wifi-phy-state-helper.cc.
References m_endCcaBusy, m_endIdle, m_endOff, m_endRx, m_endSleep, m_endSwitching, m_endTx, m_isOff, m_previousStateChangeTime, m_sleeping, m_startCcaBusy, m_startOff, m_startRx, m_startSleep, m_startSwitching, m_startTx, NS_LOG_FUNCTION, and NS_LOG_TEMPLATE_DEFINE.
Referenced by GetTypeId().
Here is the caller graph for this function:
|
private |
Switch the state from RX.
Definition at line 494 of file wifi-phy-state-helper.cc.
References IsStateCcaBusy(), IsStateIdle(), m_endRx, m_previousStateChangeTime, m_startRx, m_stateLogger, ns3::Simulator::Now(), NS_ASSERT, NS_LOG_FUNCTION, and ns3::RX.
Referenced by SwitchFromRxAbort(), SwitchFromRxEndError(), SwitchFromRxEndOk(), and SwitchToSleep().
Here is the call graph for this function:
Here is the caller graph for this function:| Time ns3::WifiPhyStateHelper::GetDelayUntilIdle | ( | ) | const |
Return the time before the state is back to IDLE.
Definition at line 153 of file wifi-phy-state-helper.cc.
References ns3::CCA_BUSY, GetState(), ns3::IDLE, m_endCcaBusy, m_endRx, m_endSwitching, m_endTx, Max, ns3::Simulator::Now(), NS_FATAL_ERROR, ns3::OFF, ns3::RX, ns3::Seconds(), ns3::SLEEP, ns3::SWITCHING, and ns3::TX.
Here is the call graph for this function:| Time ns3::WifiPhyStateHelper::GetLastRxEndTime | ( | ) | const |
Return the time the last RX end.
Definition at line 192 of file wifi-phy-state-helper.cc.
References m_endRx.
| Time ns3::WifiPhyStateHelper::GetLastRxStartTime | ( | ) | const |
Return the time the last RX start.
Definition at line 186 of file wifi-phy-state-helper.cc.
References m_startRx.
| Time ns3::WifiPhyStateHelper::GetLastTime | ( | std::initializer_list< WifiPhyState > | states | ) | const |
| states | a set of PHY states |
Definition at line 198 of file wifi-phy-state-helper.cc.
References ns3::CCA_BUSY, GetState(), ns3::IDLE, m_endCcaBusy, m_endIdle, m_endOff, m_endRx, m_endSleep, m_endSwitching, m_endTx, ns3::Simulator::Now(), NS_ASSERT, NS_FATAL_ERROR, ns3::OFF, ns3::RX, ns3::SLEEP, ns3::SWITCHING, and ns3::TX.
Here is the call graph for this function:| WifiPhyState ns3::WifiPhyStateHelper::GetState | ( | ) | const |
Return the current state of WifiPhy.
Definition at line 242 of file wifi-phy-state-helper.cc.
References ns3::CCA_BUSY, ns3::IDLE, m_endCcaBusy, m_endRx, m_endSwitching, m_endTx, m_isOff, m_sleeping, ns3::Simulator::Now(), ns3::OFF, ns3::RX, ns3::SLEEP, ns3::SWITCHING, and ns3::TX.
Referenced by GetDelayUntilIdle(), GetLastTime(), IsStateCcaBusy(), IsStateIdle(), IsStateOff(), IsStateRx(), IsStateSleep(), IsStateSwitching(), IsStateTx(), LogPreviousIdleAndCcaBusyStates(), SwitchMaybeToCcaBusy(), SwitchToChannelSwitching(), SwitchToOff(), SwitchToRx(), SwitchToSleep(), and SwitchToTx().
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Get the type ID.
Definition at line 33 of file wifi-phy-state-helper.cc.
References ns3::Object::Object(), WifiPhyStateHelper(), m_rxErrorTrace, m_rxOkTrace, m_rxOutcomeTrace, m_stateLogger, m_txTrace, ns3::MakeTraceSourceAccessor(), and ns3::TypeId::SetParent().
Here is the call graph for this function:| bool ns3::WifiPhyStateHelper::IsStateCcaBusy | ( | ) | const |
Check whether the current state is CCA busy.
Definition at line 117 of file wifi-phy-state-helper.cc.
References ns3::CCA_BUSY, and GetState().
Referenced by DoSwitchFromRx(), SwitchFromRxAbort(), and SwitchToRx().
Here is the call graph for this function:
Here is the caller graph for this function:| bool ns3::WifiPhyStateHelper::IsStateIdle | ( | ) | const |
Check whether the current state is IDLE.
Definition at line 111 of file wifi-phy-state-helper.cc.
References GetState(), and ns3::IDLE.
Referenced by DoSwitchFromRx(), SwitchFromRxAbort(), and SwitchToRx().
Here is the call graph for this function:
Here is the caller graph for this function:| bool ns3::WifiPhyStateHelper::IsStateOff | ( | ) | const |
Check whether the current state is OFF.
Definition at line 147 of file wifi-phy-state-helper.cc.
References GetState(), and ns3::OFF.
Referenced by SwitchFromOff(), and SwitchToOff().
Here is the call graph for this function:
Here is the caller graph for this function:| bool ns3::WifiPhyStateHelper::IsStateRx | ( | ) | const |
Check whether the current state is RX.
Definition at line 123 of file wifi-phy-state-helper.cc.
References GetState(), and ns3::RX.
Referenced by SwitchToRx().
Here is the call graph for this function:
Here is the caller graph for this function:| bool ns3::WifiPhyStateHelper::IsStateSleep | ( | ) | const |
Check whether the current state is SLEEP.
Definition at line 141 of file wifi-phy-state-helper.cc.
References GetState(), and ns3::SLEEP.
Referenced by SwitchFromSleep(), and SwitchToSleep().
Here is the call graph for this function:
Here is the caller graph for this function:| bool ns3::WifiPhyStateHelper::IsStateSwitching | ( | ) | const |
Check whether the current state is SWITCHING.
Definition at line 135 of file wifi-phy-state-helper.cc.
References GetState(), and ns3::SWITCHING.
Referenced by SwitchToChannelSwitching().
Here is the call graph for this function:
Here is the caller graph for this function:| bool ns3::WifiPhyStateHelper::IsStateTx | ( | ) | const |
Check whether the current state is TX.
Definition at line 129 of file wifi-phy-state-helper.cc.
References GetState(), and ns3::TX.
Here is the call graph for this function:
|
private |
Log the idle and CCA busy states.
Definition at line 276 of file wifi-phy-state-helper.cc.
References ns3::CCA_BUSY, GetState(), ns3::IDLE, m_endCcaBusy, m_endIdle, m_endOff, m_endRx, m_endSleep, m_endSwitching, m_endTx, m_startCcaBusy, m_stateLogger, ns3::Simulator::Now(), NS_ASSERT, and NS_LOG_FUNCTION.
Referenced by SwitchMaybeToCcaBusy(), SwitchToChannelSwitching(), SwitchToOff(), SwitchToRx(), SwitchToSleep(), and SwitchToTx().
Here is the call graph for this function:
Here is the caller graph for this function:| void ns3::WifiPhyStateHelper::NotifyListeners | ( | FUNC | f, |
| Ts &&... | args ) |
Notify all WifiPhyListener objects of the given PHY event.
| FUNC | [deduced] Member function type |
| Ts | [deduced] Function argument types |
| f | the member function to invoke |
| args | arguments to pass to the member function |
Definition at line 423 of file wifi-phy-state-helper.h.
References m_listeners, and NS_LOG_FUNCTION.
Referenced by SwitchFromOff(), SwitchFromRxAbort(), SwitchFromRxEndError(), SwitchFromRxEndOk(), SwitchFromSleep(), SwitchMaybeToCcaBusy(), SwitchToChannelSwitching(), SwitchToOff(), SwitchToRx(), SwitchToSleep(), and SwitchToTx().
Here is the caller graph for this function:| void ns3::WifiPhyStateHelper::NotifyRxMpdu | ( | Ptr< const WifiPsdu > | psdu, |
| RxSignalInfo | rxSignalInfo, | ||
| const WifiTxVector & | txVector ) |
Notify the reception of an MPDU included in an A-MPDU.
| psdu | the successfully received PSDU |
| rxSignalInfo | the info on the received signal ( |
| txVector | TXVECTOR of the PSDU |
Definition at line 415 of file wifi-phy-state-helper.cc.
References m_rxOkCallback, and NS_LOG_FUNCTION.
| void ns3::WifiPhyStateHelper::NotifyRxPpduOutcome | ( | Ptr< const WifiPpdu > | ppdu, |
| RxSignalInfo | rxSignalInfo, | ||
| const WifiTxVector & | txVector, | ||
| uint16_t | staId, | ||
| const std::vector< bool > & | statusPerMpdu ) |
Handle the outcome of a reception of a PPDU.
| ppdu | the received PPDU |
| rxSignalInfo | the info on the received signal ( |
| txVector | TXVECTOR of the PSDU |
| staId | the station ID of the PSDU (only used for MU) |
| statusPerMpdu | reception status per MPDU |
Definition at line 466 of file wifi-phy-state-helper.cc.
References m_rxOutcomeTrace.
Handle the unsuccessful reception of a PSDU.
| psdu | the PSDU that we failed to received |
| snr | the SNR of the received PSDU in linear scale |
Definition at line 452 of file wifi-phy-state-helper.cc.
References m_rxErrorCallback, m_rxErrorTrace, and NS_LOG_FUNCTION.
| void ns3::WifiPhyStateHelper::NotifyRxPsduSucceeded | ( | Ptr< const WifiPsdu > | psdu, |
| RxSignalInfo | rxSignalInfo, | ||
| const WifiTxVector & | txVector, | ||
| uint16_t | staId, | ||
| const std::vector< bool > & | statusPerMpdu ) |
Handle the successful reception of a PSDU.
| psdu | the successfully received PSDU |
| rxSignalInfo | the info on the received signal ( |
| txVector | TXVECTOR of the PSDU |
| staId | the station ID of the PSDU (only used for MU) |
| statusPerMpdu | reception status per MPDU |
Definition at line 427 of file wifi-phy-state-helper.cc.
References ns3::WifiTxVector::GetMode(), ns3::WifiTxVector::GetPreambleType(), m_rxOkCallback, m_rxOkTrace, NS_ASSERT, NS_LOG_FUNCTION, and ns3::RxSignalInfo::snr.
Here is the call graph for this function:| void ns3::WifiPhyStateHelper::RegisterListener | ( | const std::shared_ptr< WifiPhyListener > & | listener | ) |
Register WifiPhyListener to this WifiPhyStateHelper.
| listener | the WifiPhyListener to register |
Definition at line 99 of file wifi-phy-state-helper.cc.
References m_listeners.
| void ns3::WifiPhyStateHelper::SetReceiveErrorCallback | ( | RxErrorCallback | callback | ) |
Set a callback for a failed reception.
| callback | the RxErrorCallback to set |
Definition at line 93 of file wifi-phy-state-helper.cc.
References m_rxErrorCallback.
| void ns3::WifiPhyStateHelper::SetReceiveOkCallback | ( | RxOkCallback | callback | ) |
Set a callback for a successful reception.
| callback | the RxOkCallback to set |
Definition at line 87 of file wifi-phy-state-helper.cc.
References m_rxOkCallback.
| void ns3::WifiPhyStateHelper::SwitchFromOff | ( | ) |
Switch from off mode.
Definition at line 632 of file wifi-phy-state-helper.cc.
References IsStateOff(), m_endOff, m_isOff, m_previousStateChangeTime, NotifyListeners(), ns3::WifiPhyListener::NotifyOn(), ns3::Simulator::Now(), NS_ASSERT, and NS_LOG_FUNCTION.
Here is the call graph for this function:| void ns3::WifiPhyStateHelper::SwitchFromRxAbort | ( | MHz_u | operatingWidth | ) |
Abort current reception following a CCA reset request.
| operatingWidth | the channel width the PHY is operating on |
Definition at line 572 of file wifi-phy-state-helper.cc.
References ns3::Count20MHzSubchannels(), DoSwitchFromRx(), IsStateCcaBusy(), IsStateIdle(), m_endCcaBusy, ns3::WifiPhyListener::NotifyCcaBusyStart(), NotifyListeners(), ns3::WifiPhyListener::NotifyRxEndOk(), ns3::Simulator::Now(), NS_ASSERT, NS_LOG_FUNCTION, ns3::Seconds(), and ns3::WIFI_CHANLIST_PRIMARY.
Here is the call graph for this function:| void ns3::WifiPhyStateHelper::SwitchFromRxEndError | ( | const WifiTxVector & | txVector | ) |
Switch from RX after the reception failed.
| txVector | the TXVECTOR used for transmission of failed frame |
Definition at line 485 of file wifi-phy-state-helper.cc.
References DoSwitchFromRx(), m_endRx, NotifyListeners(), ns3::WifiPhyListener::NotifyRxEndError(), ns3::Simulator::Now(), NS_ASSERT, and NS_LOG_FUNCTION.
Here is the call graph for this function:| void ns3::WifiPhyStateHelper::SwitchFromRxEndOk | ( | ) |
Switch from RX after the reception was successful.
Definition at line 476 of file wifi-phy-state-helper.cc.
References DoSwitchFromRx(), m_endRx, NotifyListeners(), ns3::WifiPhyListener::NotifyRxEndOk(), ns3::Simulator::Now(), NS_ASSERT, and NS_LOG_FUNCTION.
Here is the call graph for this function:| void ns3::WifiPhyStateHelper::SwitchFromSleep | ( | ) |
Switch from sleep mode.
Definition at line 559 of file wifi-phy-state-helper.cc.
References IsStateSleep(), m_endSleep, m_previousStateChangeTime, m_sleeping, m_startSleep, m_stateLogger, NotifyListeners(), ns3::WifiPhyListener::NotifyWakeup(), ns3::Simulator::Now(), NS_ASSERT, NS_LOG_FUNCTION, and ns3::SLEEP.
Here is the call graph for this function:| void ns3::WifiPhyStateHelper::SwitchMaybeToCcaBusy | ( | Time | duration, |
| WifiChannelListType | channelType, | ||
| const std::vector< Time > & | per20MhzDurations ) |
Switch to CCA busy.
| duration | the duration of the CCA state |
| channelType | the channel type for which the CCA busy state is reported. |
| per20MhzDurations | vector that indicates for how long each 20 MHz subchannel (corresponding to the index of the element in the vector) is busy and where a zero duration indicates that the subchannel is idle. The vector is non-empty if the PHY supports 802.11ax or later and if the operational channel width is larger than 20 MHz. |
Definition at line 505 of file wifi-phy-state-helper.cc.
References ns3::CCA_BUSY, GetState(), ns3::IDLE, LogPreviousIdleAndCcaBusyStates(), m_endCcaBusy, m_startCcaBusy, ns3::WifiPhyListener::NotifyCcaBusyStart(), NotifyListeners(), ns3::Simulator::Now(), NS_LOG_FUNCTION, ns3::RX, and ns3::WIFI_CHANLIST_PRIMARY.
Here is the call graph for this function:| void ns3::WifiPhyStateHelper::SwitchToChannelSwitching | ( | Time | switchingDuration | ) |
Switch state to channel switching for the given duration.
| switchingDuration | the duration of required to switch the channel |
Definition at line 379 of file wifi-phy-state-helper.cc.
References ns3::CCA_BUSY, GetState(), ns3::IDLE, IsStateSwitching(), ns3::Time::IsZero(), LogPreviousIdleAndCcaBusyStates(), m_endCcaBusy, m_endRx, m_endSwitching, m_previousStateChangeTime, m_startRx, m_startSwitching, m_stateLogger, NotifyListeners(), ns3::WifiPhyListener::NotifySwitchingStart(), ns3::Simulator::Now(), NS_ASSERT, NS_FATAL_ERROR, NS_LOG_FUNCTION, ns3::RX, and ns3::SWITCHING.
Here is the call graph for this function:| void ns3::WifiPhyStateHelper::SwitchToOff | ( | ) |
Switch to off mode.
Definition at line 595 of file wifi-phy-state-helper.cc.
References ns3::CCA_BUSY, GetState(), ns3::IDLE, IsStateOff(), LogPreviousIdleAndCcaBusyStates(), m_endRx, m_endTx, m_isOff, m_previousStateChangeTime, m_startOff, m_startRx, m_startTx, m_stateLogger, NotifyListeners(), ns3::WifiPhyListener::NotifyOff(), ns3::Simulator::Now(), NS_ASSERT, NS_FATAL_ERROR, NS_LOG_FUNCTION, ns3::RX, and ns3::TX.
Here is the call graph for this function:| void ns3::WifiPhyStateHelper::SwitchToRx | ( | Time | rxDuration | ) |
Switch state to RX for the given duration.
| rxDuration | the duration of the RX |
Definition at line 355 of file wifi-phy-state-helper.cc.
References ns3::CCA_BUSY, GetState(), ns3::IDLE, IsStateCcaBusy(), IsStateIdle(), IsStateRx(), LogPreviousIdleAndCcaBusyStates(), m_endRx, m_previousStateChangeTime, m_startRx, NotifyListeners(), ns3::WifiPhyListener::NotifyRxStart(), ns3::Simulator::Now(), NS_ASSERT, NS_FATAL_ERROR, and NS_LOG_FUNCTION.
Here is the call graph for this function:| void ns3::WifiPhyStateHelper::SwitchToSleep | ( | ) |
Switch to sleep mode.
Definition at line 533 of file wifi-phy-state-helper.cc.
References ns3::CCA_BUSY, DoSwitchFromRx(), GetState(), ns3::IDLE, IsStateSleep(), LogPreviousIdleAndCcaBusyStates(), m_previousStateChangeTime, m_sleeping, m_startSleep, NotifyListeners(), ns3::WifiPhyListener::NotifySleep(), ns3::Simulator::Now(), NS_ASSERT, NS_FATAL_ERROR, NS_LOG_FUNCTION, and ns3::RX.
Here is the call graph for this function:| void ns3::WifiPhyStateHelper::SwitchToTx | ( | Time | txDuration, |
| const WifiConstPsduMap & | psdus, | ||
| dBm_u | txPower, | ||
| const WifiTxVector & | txVector ) |
Switch state to TX for the given duration.
| txDuration | the duration of the PPDU to transmit |
| psdus | the PSDUs in the transmitted PPDU (only one unless it is a MU PPDU) |
| txPower | the nominal TX power |
| txVector | the TX vector for the transmission |
Definition at line 312 of file wifi-phy-state-helper.cc.
References ns3::CCA_BUSY, ns3::WifiTxVector::GetMode(), ns3::WifiTxVector::GetPreambleType(), GetState(), ns3::WifiTxVector::GetTxPowerLevel(), ns3::IDLE, LogPreviousIdleAndCcaBusyStates(), m_endRx, m_endTx, m_previousStateChangeTime, m_startRx, m_startTx, m_stateLogger, m_txTrace, NotifyListeners(), ns3::WifiPhyListener::NotifyTxStart(), ns3::Simulator::Now(), NS_FATAL_ERROR, NS_LOG_FUNCTION, ns3::RX, and ns3::TX.
Here is the call graph for this function:| void ns3::WifiPhyStateHelper::UnregisterListener | ( | const std::shared_ptr< WifiPhyListener > & | listener | ) |
Remove WifiPhyListener from this WifiPhyStateHelper.
| listener | the WifiPhyListener to unregister |
Definition at line 105 of file wifi-phy-state-helper.cc.
References m_listeners.
|
private |
end CCA busy
Definition at line 387 of file wifi-phy-state-helper.h.
Referenced by WifiPhyStateHelper(), GetDelayUntilIdle(), GetLastTime(), GetState(), LogPreviousIdleAndCcaBusyStates(), SwitchFromRxAbort(), SwitchMaybeToCcaBusy(), and SwitchToChannelSwitching().
|
private |
end idle
Definition at line 391 of file wifi-phy-state-helper.h.
Referenced by WifiPhyStateHelper(), GetLastTime(), and LogPreviousIdleAndCcaBusyStates().
|
private |
end off
Definition at line 390 of file wifi-phy-state-helper.h.
Referenced by WifiPhyStateHelper(), GetLastTime(), LogPreviousIdleAndCcaBusyStates(), and SwitchFromOff().
|
private |
end receive
Definition at line 386 of file wifi-phy-state-helper.h.
Referenced by WifiPhyStateHelper(), DoSwitchFromRx(), GetDelayUntilIdle(), GetLastRxEndTime(), GetLastTime(), GetState(), LogPreviousIdleAndCcaBusyStates(), SwitchFromRxEndError(), SwitchFromRxEndOk(), SwitchToChannelSwitching(), SwitchToOff(), SwitchToRx(), and SwitchToTx().
|
private |
end sleep
Definition at line 389 of file wifi-phy-state-helper.h.
Referenced by WifiPhyStateHelper(), GetLastTime(), LogPreviousIdleAndCcaBusyStates(), and SwitchFromSleep().
|
private |
end switching
Definition at line 388 of file wifi-phy-state-helper.h.
Referenced by WifiPhyStateHelper(), GetDelayUntilIdle(), GetLastTime(), GetState(), LogPreviousIdleAndCcaBusyStates(), and SwitchToChannelSwitching().
|
private |
end transmit
Definition at line 385 of file wifi-phy-state-helper.h.
Referenced by WifiPhyStateHelper(), GetDelayUntilIdle(), GetLastTime(), GetState(), LogPreviousIdleAndCcaBusyStates(), SwitchToOff(), and SwitchToTx().
|
private |
switched off
Definition at line 384 of file wifi-phy-state-helper.h.
Referenced by WifiPhyStateHelper(), GetState(), SwitchFromOff(), and SwitchToOff().
|
private |
listeners
Definition at line 400 of file wifi-phy-state-helper.h.
Referenced by NotifyListeners(), RegisterListener(), and UnregisterListener().
|
private |
previous state change time
Definition at line 398 of file wifi-phy-state-helper.h.
Referenced by WifiPhyStateHelper(), DoSwitchFromRx(), SwitchFromOff(), SwitchFromSleep(), SwitchToChannelSwitching(), SwitchToOff(), SwitchToRx(), SwitchToSleep(), and SwitchToTx().
|
private |
receive error callback
Definition at line 409 of file wifi-phy-state-helper.h.
Referenced by NotifyRxPsduFailed(), and SetReceiveErrorCallback().
|
private |
receive error trace callback
Definition at line 405 of file wifi-phy-state-helper.h.
Referenced by GetTypeId(), and NotifyRxPsduFailed().
|
private |
receive OK callback
Definition at line 408 of file wifi-phy-state-helper.h.
Referenced by NotifyRxMpdu(), NotifyRxPsduSucceeded(), and SetReceiveOkCallback().
|
private |
receive OK trace callback
Definition at line 402 of file wifi-phy-state-helper.h.
Referenced by GetTypeId(), and NotifyRxPsduSucceeded().
|
private |
receive OK trace callback
Definition at line 404 of file wifi-phy-state-helper.h.
Referenced by GetTypeId(), and NotifyRxPpduOutcome().
|
private |
sleeping
Definition at line 383 of file wifi-phy-state-helper.h.
Referenced by WifiPhyStateHelper(), GetState(), SwitchFromSleep(), and SwitchToSleep().
|
private |
start CCA busy
Definition at line 394 of file wifi-phy-state-helper.h.
Referenced by WifiPhyStateHelper(), LogPreviousIdleAndCcaBusyStates(), and SwitchMaybeToCcaBusy().
|
private |
start off
Definition at line 397 of file wifi-phy-state-helper.h.
Referenced by WifiPhyStateHelper(), and SwitchToOff().
|
private |
start receive
Definition at line 393 of file wifi-phy-state-helper.h.
Referenced by WifiPhyStateHelper(), DoSwitchFromRx(), GetLastRxStartTime(), SwitchToChannelSwitching(), SwitchToOff(), SwitchToRx(), and SwitchToTx().
|
private |
start sleep
Definition at line 396 of file wifi-phy-state-helper.h.
Referenced by WifiPhyStateHelper(), SwitchFromSleep(), and SwitchToSleep().
|
private |
start switching
Definition at line 395 of file wifi-phy-state-helper.h.
Referenced by WifiPhyStateHelper(), and SwitchToChannelSwitching().
|
private |
start transmit
Definition at line 392 of file wifi-phy-state-helper.h.
Referenced by WifiPhyStateHelper(), SwitchToOff(), and SwitchToTx().
|
private |
The trace source fired when state is changed.
Definition at line 380 of file wifi-phy-state-helper.h.
Referenced by DoSwitchFromRx(), GetTypeId(), LogPreviousIdleAndCcaBusyStates(), SwitchFromSleep(), SwitchToChannelSwitching(), SwitchToOff(), and SwitchToTx().
|
private |
transmit trace callback
Definition at line 407 of file wifi-phy-state-helper.h.
Referenced by GetTypeId(), and SwitchToTx().
|
private |
the log component
Definition at line 382 of file wifi-phy-state-helper.h.