The Wifi MAC high model for a non-AP STA in a BSS. More...
#include "sta-wifi-mac.h"
Inheritance diagram for ns3::StaWifiMac:
Collaboration diagram for ns3::StaWifiMac:Public Member Functions | |
| StaWifiMac () | |
| virtual | ~StaWifiMac () |
| void | Enqueue (Ptr< Packet > packet, Mac48Address to) override |
| uint16_t | GetAssociationId (void) const |
| Return the association ID. More... | |
| bool | IsAssociated (void) const |
| Return whether we are associated with an AP. More... | |
| void | SetWifiPhy (const Ptr< WifiPhy > phy) override |
Public Member Functions inherited from ns3::RegularWifiMac | |
| RegularWifiMac () | |
| virtual | ~RegularWifiMac () |
| void | ConfigureStandard (WifiStandard standard) override |
| void | Enqueue (Ptr< Packet > packet, Mac48Address to, Mac48Address from) override |
| Mac48Address | GetAddress (void) const override |
| Mac48Address | GetBssid (void) const override |
| bool | GetDsssSupported () const |
| Return whether the device supports DSSS. More... | |
| bool | GetErpSupported () const |
| Return whether the device supports ERP. More... | |
| ExtendedCapabilities | GetExtendedCapabilities (void) const |
| Return the extended capabilities of the device. More... | |
| Ptr< FrameExchangeManager > | GetFrameExchangeManager (void) const |
| Get the Frame Exchange Manager. More... | |
| HeCapabilities | GetHeCapabilities (void) const |
| Return the HE capabilities of the device. More... | |
| bool | GetHeSupported () const |
| Return whether the device supports HE. More... | |
| HtCapabilities | GetHtCapabilities (void) const |
| Return the HT capabilities of the device. More... | |
| bool | GetHtSupported () const |
| Return whether the device supports HT. More... | |
| uint32_t | GetMaxAmpduSize (AcIndex ac) const |
| Return the maximum A-MPDU size of the given Access Category. More... | |
| uint16_t | GetMaxAmsduSize (AcIndex ac) const |
| Return the maximum A-MSDU size of the given Access Category. More... | |
| bool | GetQosSupported () const |
| Return whether the device supports QoS. More... | |
| Ptr< QosTxop > | GetQosTxop (AcIndex ac) const |
| Accessor for a specified EDCA object. More... | |
| Ptr< QosTxop > | GetQosTxop (uint8_t tid) const |
| Accessor for a specified EDCA object. More... | |
| bool | GetShortSlotTimeSupported (void) const override |
| Ssid | GetSsid (void) const override |
| Ptr< Txop > | GetTxop (void) const |
| Accessor for the DCF object. More... | |
| virtual Ptr< WifiMacQueue > | GetTxopQueue (AcIndex ac) const |
| Get the wifi MAC queue of the (Qos)Txop associated with the given AC. More... | |
| TypeOfStation | GetTypeOfStation (void) const override |
| Return the type of station. More... | |
| VhtCapabilities | GetVhtCapabilities (void) const |
| Return the VHT capabilities of the device. More... | |
| bool | GetVhtSupported () const |
| Return whether the device supports VHT. More... | |
| Ptr< WifiPhy > | GetWifiPhy (void) const override |
| Ptr< WifiRemoteStationManager > | GetWifiRemoteStationManager (void) const override |
| void | ResetWifiPhy (void) override |
| Remove currently attached WifiPhy device from this MAC. More... | |
| void | SetAddress (Mac48Address address) override |
| void | SetBssid (Mac48Address bssid) |
| void | SetCtsToSelfSupported (bool enable) |
| Enable or disable CTS-to-self feature. More... | |
| void | SetForwardUpCallback (ForwardUpCallback upCallback) override |
| void | SetLinkDownCallback (Callback< void > linkDown) override |
| void | SetLinkUpCallback (Callback< void > linkUp) override |
| void | SetPromisc (void) override |
| Sets the interface in promiscuous mode. More... | |
| void | SetShortSlotTimeSupported (bool enable) override |
| Enable or disable short slot time feature. More... | |
| void | SetSsid (Ssid ssid) override |
| void | SetWifiRemoteStationManager (const Ptr< WifiRemoteStationManager > stationManager) override |
| bool | SupportsSendFrom (void) const override |
Public Member Functions inherited from ns3::WifiMac | |
| Ptr< NetDevice > | GetDevice (void) const |
| Return the device this PHY is associated with. More... | |
| Ptr< HeConfiguration > | GetHeConfiguration (void) const |
| Ptr< HtConfiguration > | GetHtConfiguration (void) const |
| Ptr< VhtConfiguration > | GetVhtConfiguration (void) const |
| void | NotifyPromiscRx (Ptr< const Packet > packet) |
| void | NotifyRx (Ptr< const Packet > packet) |
| void | NotifyRxDrop (Ptr< const Packet > packet) |
| void | NotifyTx (Ptr< const Packet > packet) |
| void | NotifyTxDrop (Ptr< const Packet > packet) |
| void | SetDevice (const Ptr< NetDevice > device) |
| Sets the device this PHY is associated with. More... | |
Public Member Functions inherited from ns3::Object | |
| Object () | |
| Constructor. More... | |
| virtual | ~Object () |
| Destructor. More... | |
| void | AggregateObject (Ptr< Object > other) |
| Aggregate two Objects together. More... | |
| void | Dispose (void) |
| Dispose of this Object. More... | |
| AggregateIterator | GetAggregateIterator (void) const |
| Get an iterator to the Objects aggregated to this one. More... | |
| virtual TypeId | GetInstanceTypeId (void) const |
| Get the most derived TypeId for this Object. More... | |
| template<> | |
| Ptr< Object > | GetObject () const |
| Specialization of () for objects of type ns3::Object. More... | |
| template<typename T > | |
| Ptr< T > | GetObject (TypeId tid) const |
| Get a pointer to the requested aggregated Object by TypeId. More... | |
| template<> | |
| Ptr< Object > | GetObject (TypeId tid) const |
| Specialization of (TypeId tid) for objects of type ns3::Object. More... | |
| template<typename T > | |
| Ptr< T > | GetObject (void) const |
| Get a pointer to the requested aggregated Object. More... | |
| void | Initialize (void) |
| Invoke DoInitialize on all Objects aggregated to this one. More... | |
| bool | IsInitialized (void) const |
| Check if the object has been initialized. More... | |
Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
| SimpleRefCount () | |
| Default constructor. More... | |
| SimpleRefCount (const SimpleRefCount &o) | |
| Copy constructor. More... | |
| uint32_t | GetReferenceCount (void) const |
| Get the reference count of the object. More... | |
| SimpleRefCount & | operator= (const SimpleRefCount &o) |
| Assignment operator. More... | |
| void | Ref (void) const |
| Increment the reference count. More... | |
| void | Unref (void) const |
| Decrement the reference count. More... | |
Public Member Functions inherited from ns3::ObjectBase | |
| virtual | ~ObjectBase () |
| Virtual destructor. More... | |
| void | GetAttribute (std::string name, AttributeValue &value) const |
| Get the value of an attribute, raising fatal errors if unsuccessful. More... | |
| bool | GetAttributeFailSafe (std::string name, AttributeValue &value) const |
| Get the value of an attribute without raising erros. More... | |
| void | SetAttribute (std::string name, const AttributeValue &value) |
| Set a single attribute, raising fatal errors if unsuccessful. More... | |
| bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
| Set a single attribute without raising errors. More... | |
| bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
| Connect a TraceSource to a Callback with a context. More... | |
| bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
| Connect a TraceSource to a Callback without a context. More... | |
| bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
| Disconnect from a TraceSource a Callback previously connected with a context. More... | |
| bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
| Disconnect from a TraceSource a Callback previously connected without a context. More... | |
Static Public Member Functions | |
| static TypeId | GetTypeId (void) |
| Get the type ID. More... | |
Static Public Member Functions inherited from ns3::RegularWifiMac | |
| static TypeId | GetTypeId (void) |
| Get the type ID. More... | |
Static Public Member Functions inherited from ns3::WifiMac | |
| static TypeId | GetTypeId (void) |
| Get the type ID. More... | |
Static Public Member Functions inherited from ns3::Object | |
| static TypeId | GetTypeId (void) |
| Register this type. More... | |
Static Public Member Functions inherited from ns3::ObjectBase | |
| static TypeId | GetTypeId (void) |
| Get the type ID. More... | |
Private Types | |
| enum | MacState { ASSOCIATED, WAIT_BEACON, WAIT_PROBE_RESP, WAIT_ASSOC_RESP, UNASSOCIATED, REFUSED } |
| The current MAC state of the STA. More... | |
Private Member Functions | |
| void | AssocRequestTimeout (void) |
| This method is called after the association timeout occurred. More... | |
| void | DoInitialize (void) override |
| Initialize() implementation. More... | |
| bool | GetActiveProbing (void) const |
| Return whether active probing is enabled. More... | |
| CapabilityInformation | GetCapabilities (void) const |
| Return the Capability information of the current STA. More... | |
| SupportedRates | GetSupportedRates (void) const |
| Return an instance of SupportedRates that contains all rates that we support including HT rates. More... | |
| bool | IsWaitAssocResp (void) const |
| Return whether we are waiting for an association response from an AP. More... | |
| void | MissedBeacons (void) |
| This method is called after we have not received a beacon from the AP. More... | |
| void | PhyCapabilitiesChanged (void) |
| Indicate that PHY capabilities have changed. More... | |
| void | Receive (Ptr< WifiMacQueueItem > mpdu) override |
| Handle a received packet. More... | |
| void | RestartBeaconWatchdog (Time delay) |
| Restarts the beacon timer. More... | |
| void | ScanningTimeout (void) |
| This method is called after wait beacon timeout or wait probe request timeout has occurred. More... | |
| void | SendAssociationRequest (bool isReassoc) |
| Forward an association or reassociation request packet to the DCF. More... | |
| void | SendProbeRequest (void) |
| Forward a probe request packet to the DCF. More... | |
| void | SetActiveProbing (bool enable) |
| Enable or disable active probing. More... | |
| void | SetEdcaParameters (AcIndex ac, uint32_t cwMin, uint32_t cwMax, uint8_t aifsn, Time txopLimit) |
| Set the EDCA parameters. More... | |
| void | SetMuEdcaParameters (AcIndex ac, uint16_t cwMin, uint16_t cwMax, uint8_t aifsn, Time muEdcaTimer) |
| Set the MU EDCA parameters. More... | |
| void | SetState (MacState value) |
| Set the current MAC state. More... | |
| void | StartScanning (void) |
| Start the scanning process which trigger active or passive scanning based on the active probing flag. More... | |
| void | TryToEnsureAssociated (void) |
| Try to ensure that we are associated with an AP by taking an appropriate action depending on the current association status. More... | |
| void | UpdateApInfoFromAssocResp (MgtAssocResponseHeader assocResp, Mac48Address apAddr) |
| Update AP's information from association response. More... | |
| void | UpdateApInfoFromBeacon (MgtBeaconHeader beacon, Mac48Address apAddr, Mac48Address bssid) |
| Update associated AP's information from beacon. More... | |
| void | UpdateApInfoFromProbeResp (MgtProbeResponseHeader probeResp, Mac48Address apAddr, Mac48Address bssid) |
| Update AP's information from probe response. More... | |
| void | UpdateCandidateApList (ApInfo newApInfo) |
| Update list of candidate AP to associate. More... | |
Private Attributes | |
| bool | m_activeProbing |
| active probing More... | |
| uint16_t | m_aid |
| Association AID. More... | |
| TracedCallback< Mac48Address > | m_assocLogger |
| association logger More... | |
| EventId | m_assocRequestEvent |
| association request event More... | |
| Time | m_assocRequestTimeout |
| association request timeout More... | |
| TracedCallback< Time > | m_beaconArrival |
| beacon arrival logger More... | |
| EventId | m_beaconWatchdog |
| beacon watchdog More... | |
| Time | m_beaconWatchdogEnd |
| beacon watchdog end More... | |
| std::vector< ApInfo > | m_candidateAps |
| list of candidate APs to associate to More... | |
| TracedCallback< Mac48Address > | m_deAssocLogger |
| disassociation logger More... | |
| uint32_t | m_maxMissedBeacons |
| maximum missed beacons More... | |
| EventId | m_probeRequestEvent |
| probe request event More... | |
| Time | m_probeRequestTimeout |
| probe request timeout More... | |
| MacState | m_state |
| MAC state. More... | |
| EventId | m_waitBeaconEvent |
| wait beacon event More... | |
| Time | m_waitBeaconTimeout |
| wait beacon timeout More... | |
Friends | |
| class | ::AmpduAggregationTest |
| Allow test cases to access private members. More... | |
| class | ::HeAggregationTest |
| Allow test cases to access private members. More... | |
| class | ::TwoLevelAggregationTest |
| Allow test cases to access private members. More... | |
Additional Inherited Members | |
Public Types inherited from ns3::WifiMac | |
| typedef Callback< void, Ptr< const Packet >, Mac48Address, Mac48Address > | ForwardUpCallback |
| This type defines the callback of a higher layer that a WifiMac(-derived) object invokes to pass a packet up the stack. More... | |
Protected Types inherited from ns3::RegularWifiMac | |
| typedef std::map< AcIndex, Ptr< QosTxop > > | EdcaQueues |
| This type defines a mapping between an Access Category index, and a pointer to the corresponding channel access function. More... | |
Protected Member Functions inherited from ns3::RegularWifiMac | |
| void | ConfigureContentionWindow (uint32_t cwMin, uint32_t cwMax) |
| virtual void | DeaggregateAmsduAndForward (Ptr< WifiMacQueueItem > mpdu) |
| This method can be called to de-aggregate an A-MSDU and forward the constituent packets up the stack. More... | |
| void | DoDispose () override |
| Destructor implementation. More... | |
| void | ForwardUp (Ptr< const Packet > packet, Mac48Address from, Mac48Address to) |
| Forward the packet up to the device. More... | |
| Ptr< QosTxop > | GetBEQueue (void) const |
| Accessor for the AC_BE channel access function. More... | |
| Ptr< QosTxop > | GetBKQueue (void) const |
| Accessor for the AC_BK channel access function. More... | |
| Ptr< QosTxop > | GetVIQueue (void) const |
| Accessor for the AC_VI channel access function. More... | |
| Ptr< QosTxop > | GetVOQueue (void) const |
| Accessor for the AC_VO channel access function. More... | |
| void | SetDsssSupported (bool enable) |
| Enable or disable DSSS support for the device. More... | |
| void | SetErpSupported (bool enable) |
| Enable or disable ERP support for the device. More... | |
| virtual void | SetQosSupported (bool enable) |
| Enable or disable QoS support for the device. More... | |
| void | SetTypeOfStation (TypeOfStation type) override |
| This method is invoked by a subclass to specify what type of station it is implementing. More... | |
| void | SetupFrameExchangeManager (void) |
| Create a Frame Exchange Manager depending on the supported version of the standard. More... | |
Protected Member Functions inherited from ns3::WifiMac | |
| void | ConfigureDcf (Ptr< Txop > dcf, uint32_t cwmin, uint32_t cwmax, bool isDsss, AcIndex ac) |
Protected Member Functions inherited from ns3::Object | |
| Object (const Object &o) | |
| Copy an Object. More... | |
| virtual void | NotifyNewAggregate (void) |
| Notify all Objects aggregated to this one of a new Object being aggregated. More... | |
Protected Member Functions inherited from ns3::ObjectBase | |
| void | ConstructSelf (const AttributeConstructionList &attributes) |
| Complete construction of ObjectBase; invoked by derived classes. More... | |
| virtual void | NotifyConstructionCompleted (void) |
| Notifier called once the ObjectBase is fully constructed. More... | |
Protected Attributes inherited from ns3::RegularWifiMac | |
| Ptr< ChannelAccessManager > | m_channelAccessManager |
| channel access manager More... | |
| EdcaQueues | m_edca |
| This is a map from Access Category index to the corresponding channel access function. More... | |
| Ptr< FrameExchangeManager > | m_feManager |
| Frame Exchange Manager. More... | |
| ForwardUpCallback | m_forwardUp |
| Callback to forward packet up the stack. More... | |
| Callback< void > | m_linkDown |
| Callback when a link is down. More... | |
| Callback< void > | m_linkUp |
| Callback when a link is up. More... | |
| Ptr< WifiPhy > | m_phy |
| Wifi PHY. More... | |
| Ptr< MacRxMiddle > | m_rxMiddle |
| RX middle (defragmentation etc.) More... | |
| Ssid | m_ssid |
| Service Set ID (SSID) More... | |
| Ptr< WifiRemoteStationManager > | m_stationManager |
| Remote station manager (rate control, RTS/CTS/fragmentation thresholds etc.) More... | |
| Ptr< MacTxMiddle > | m_txMiddle |
| TX middle (aggregation etc.) More... | |
| Ptr< Txop > | m_txop |
| This holds a pointer to the TXOP instance for this WifiMac - used for transmission of frames to non-QoS peers. More... | |
Related Functions inherited from ns3::ObjectBase | |
| static TypeId | GetObjectIid (void) |
| Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. More... | |
The Wifi MAC high model for a non-AP STA in a BSS.
The state machine is as follows:
--------- -------------- -----------
| Start | | Associated | <------------------------- ----> | Refused |
--------- -------------- | / -----------
| | /------------------------------\ | /
\ v v | v /
\ ---------------- --------------- -----------------------------
\-> | Unassociated | --> | Wait Beacon | --> | Wait Association Response |
---------------- --------------- -----------------------------
\ ^ ^ | ^ ^ |
\ | | | | | |
\ v - / -
\ ----------------------- /
\-> | Wait Probe Response | --------/
-----------------------
^ |
| |
-
Notes:
ns3::StaWifiMac is accessible through the following paths with Config::Set and Config::Connect:
Size of this type is 696 bytes (on a 64-bit architecture).
Definition at line 106 of file sta-wifi-mac.h.
|
private |
The current MAC state of the STA.
| Enumerator | |
|---|---|
| ASSOCIATED | |
| WAIT_BEACON | |
| WAIT_PROBE_RESP | |
| WAIT_ASSOC_RESP | |
| UNASSOCIATED | |
| REFUSED | |
Definition at line 157 of file sta-wifi-mac.h.
| ns3::StaWifiMac::StaWifiMac | ( | ) |
Definition at line 88 of file sta-wifi-mac.cc.
References NS_LOG_FUNCTION, ns3::RegularWifiMac::SetTypeOfStation(), and ns3::STA.
Here is the call graph for this function:
|
virtual |
Definition at line 110 of file sta-wifi-mac.cc.
References NS_LOG_FUNCTION.
|
private |
This method is called after the association timeout occurred.
We switch the state to WAIT_ASSOC_RESP and re-send an association request.
Definition at line 366 of file sta-wifi-mac.cc.
References NS_LOG_FUNCTION, SendAssociationRequest(), SetState(), and WAIT_ASSOC_RESP.
Referenced by SendAssociationRequest().
Here is the call graph for this function:
Here is the caller graph for this function:
|
overrideprivatevirtual |
Initialize() implementation.
This method is called only once by Initialize(). If the user calls Initialize() multiple times, DoInitialize() is called only the first time.
Subclasses are expected to override this method and chain up to their parent's implementation once they are done. It is safe to call GetObject() and AggregateObject() from within this method.
Reimplemented from ns3::RegularWifiMac.
Definition at line 104 of file sta-wifi-mac.cc.
References NS_LOG_FUNCTION, and StartScanning().
Here is the call graph for this function:
|
overridevirtual |
| packet | the packet to send. |
| to | the address to which the packet should be sent. |
The packet should be enqueued in a TX queue, and should be dequeued as soon as the channel access function determines that access is granted to this MAC.
Implements ns3::RegularWifiMac.
Definition at line 426 of file sta-wifi-mac.cc.
References ns3::RegularWifiMac::GetAddress(), ns3::RegularWifiMac::GetBssid(), ns3::RegularWifiMac::GetQosSupported(), IsAssociated(), ns3::RegularWifiMac::m_edca, ns3::RegularWifiMac::m_txop, ns3::WifiMacHeader::NORMAL_ACK, ns3::WifiMac::NotifyTxDrop(), NS_ASSERT, NS_LOG_FUNCTION, ns3::QosUtilsGetTidForPacket(), ns3::QosUtilsMapTidToAc(), ns3::Txop::Queue(), ns3::WifiMacHeader::SetAddr1(), ns3::WifiMacHeader::SetAddr2(), ns3::WifiMacHeader::SetAddr3(), ns3::WifiMacHeader::SetDsNotFrom(), ns3::WifiMacHeader::SetDsTo(), ns3::WifiMacHeader::SetNoOrder(), ns3::WifiMacHeader::SetQosAckPolicy(), ns3::WifiMacHeader::SetQosNoAmsdu(), ns3::WifiMacHeader::SetQosNoEosp(), ns3::WifiMacHeader::SetQosTid(), ns3::WifiMacHeader::SetQosTxopLimit(), ns3::WifiMacHeader::SetType(), TryToEnsureAssociated(), ns3::WIFI_MAC_DATA, and ns3::WIFI_MAC_QOSDATA.
Here is the call graph for this function:
|
private |
Return whether active probing is enabled.
Definition at line 135 of file sta-wifi-mac.cc.
References m_activeProbing.
Referenced by GetTypeId(), and StartScanning().
Here is the caller graph for this function:| uint16_t ns3::StaWifiMac::GetAssociationId | ( | void | ) | const |
Return the association ID.
Definition at line 116 of file sta-wifi-mac.cc.
References IsAssociated(), m_aid, and NS_ASSERT_MSG.
Referenced by ns3::WifiRemoteStationManager::GetStaId().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Return the Capability information of the current STA.
Definition at line 1086 of file sta-wifi-mac.cc.
References ns3::RegularWifiMac::GetErpSupported(), ns3::WifiPhy::GetShortPhyPreambleSupported(), ns3::RegularWifiMac::GetShortSlotTimeSupported(), ns3::RegularWifiMac::m_phy, ns3::CapabilityInformation::SetShortPreamble(), and ns3::CapabilityInformation::SetShortSlotTime().
Referenced by SendAssociationRequest().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Return an instance of SupportedRates that contains all rates that we support including HT rates.
Definition at line 1066 of file sta-wifi-mac.cc.
References ns3::SupportedRates::AddBssMembershipSelectorRate(), ns3::SupportedRates::AddSupportedRate(), ns3::WifiPhy::GetBssMembershipSelectorList(), ns3::WifiPhy::GetChannelWidth(), ns3::RegularWifiMac::GetHtSupported(), ns3::WifiPhy::GetModeList(), ns3::RegularWifiMac::m_phy, and NS_LOG_DEBUG.
Referenced by SendAssociationRequest(), and SendProbeRequest().
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Get the type ID.
Definition at line 41 of file sta-wifi-mac.cc.
References GetActiveProbing(), m_assocLogger, m_assocRequestTimeout, m_beaconArrival, m_deAssocLogger, m_maxMissedBeacons, m_probeRequestTimeout, m_waitBeaconTimeout, ns3::MakeBooleanAccessor(), ns3::MakeBooleanChecker(), ns3::MakeTimeAccessor(), ns3::MakeTimeChecker(), ns3::MakeTraceSourceAccessor(), ns3::MakeUintegerAccessor(), ns3::MilliSeconds(), ns3::Seconds(), SetActiveProbing(), and ns3::TypeId::SetParent().
Here is the call graph for this function:| bool ns3::StaWifiMac::IsAssociated | ( | void | ) | const |
Return whether we are associated with an AP.
Definition at line 414 of file sta-wifi-mac.cc.
References ASSOCIATED, and m_state.
Referenced by Enqueue(), GetAssociationId(), ns3::WifiRemoteStationManager::GetStaId(), PhyCapabilitiesChanged(), and Receive().
Here is the caller graph for this function:
|
private |
Return whether we are waiting for an association response from an AP.
Definition at line 420 of file sta-wifi-mac.cc.
References m_state, and WAIT_ASSOC_RESP.
Referenced by Receive().
Here is the caller graph for this function:
|
private |
This method is called after we have not received a beacon from the AP.
Definition at line 374 of file sta-wifi-mac.cc.
References ns3::EventId::Cancel(), ns3::WifiPhy::GetDelayUntilIdle(), ns3::EventId::IsRunning(), ns3::WifiPhy::IsStateRx(), m_beaconWatchdog, m_beaconWatchdogEnd, ns3::RegularWifiMac::m_phy, ns3::Simulator::Now(), NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::Simulator::Schedule(), ns3::Seconds(), SetState(), TryToEnsureAssociated(), and UNASSOCIATED.
Referenced by RestartBeaconWatchdog().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Indicate that PHY capabilities have changed.
Definition at line 1131 of file sta-wifi-mac.cc.
References IsAssociated(), NS_LOG_DEBUG, NS_LOG_FUNCTION, SendAssociationRequest(), SetState(), and WAIT_ASSOC_RESP.
Referenced by SetWifiPhy().
Here is the call graph for this function:
Here is the caller graph for this function:
|
overrideprivatevirtual |
Handle a received packet.
| mpdu | the received MPDU |
Reimplemented from ns3::RegularWifiMac.
Definition at line 496 of file sta-wifi-mac.cc.
References ASSOCIATED, ns3::EventId::Cancel(), ns3::Packet::Copy(), ns3::RegularWifiMac::DeaggregateAmsduAndForward(), ns3::RegularWifiMac::ForwardUp(), ns3::SnrTag::Get(), ns3::WifiMacHeader::GetAddr1(), ns3::WifiMacHeader::GetAddr2(), ns3::WifiMacHeader::GetAddr3(), ns3::RegularWifiMac::GetAddress(), ns3::MgtAssocResponseHeader::GetAssociationId(), ns3::MgtProbeResponseHeader::GetBeaconIntervalUs(), ns3::RegularWifiMac::GetBssid(), ns3::WifiPhy::GetBssMembershipSelectorList(), ns3::MgtProbeResponseHeader::GetCapabilities(), ns3::WifiMacQueueItem::GetHeader(), ns3::WifiMacQueueItem::GetPacket(), ns3::MgtProbeResponseHeader::GetSsid(), ns3::RegularWifiMac::GetSsid(), ns3::MgtAssocResponseHeader::GetStatusCode(), ns3::MgtProbeResponseHeader::GetSupportedRates(), ns3::WifiMacHeader::HasData(), IsAssociated(), ns3::WifiMacHeader::IsAssocReq(), ns3::WifiMacHeader::IsAssocResp(), ns3::WifiMacHeader::IsBeacon(), ns3::SupportedRates::IsBssMembershipSelectorRate(), ns3::WifiMacHeader::IsCtl(), ns3::WifiMacHeader::IsData(), ns3::Ssid::IsEqual(), ns3::CapabilityInformation::IsEss(), ns3::WifiMacHeader::IsFromDs(), ns3::Mac48Address::IsGroup(), ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::IsNull(), ns3::WifiMacHeader::IsProbeReq(), ns3::WifiMacHeader::IsProbeResp(), ns3::WifiMacHeader::IsQosAmsdu(), ns3::WifiMacHeader::IsQosData(), ns3::WifiMacHeader::IsReassocReq(), ns3::WifiMacHeader::IsReassocResp(), ns3::EventId::IsRunning(), ns3::StatusCode::IsSuccess(), ns3::WifiMacHeader::IsToDs(), IsWaitAssocResp(), ns3::ApInfo::m_activeProbing, m_aid, ns3::ApInfo::m_apAddr, m_assocRequestEvent, ns3::ApInfo::m_beacon, m_beaconArrival, ns3::ApInfo::m_bssid, m_candidateAps, ns3::RegularWifiMac::m_linkUp, m_maxMissedBeacons, ns3::RegularWifiMac::m_phy, ns3::ApInfo::m_probeResp, ns3::ApInfo::m_snr, m_state, ns3::MicroSeconds(), ns3::WifiMac::NotifyRxDrop(), ns3::Simulator::Now(), NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::Packet::PeekHeader(), ns3::RegularWifiMac::Receive(), REFUSED, ns3::Packet::RemoveHeader(), ns3::Packet::RemovePacketTag(), RestartBeaconWatchdog(), ScanningTimeout(), SetState(), UpdateApInfoFromAssocResp(), UpdateApInfoFromBeacon(), UpdateCandidateApList(), WAIT_ASSOC_RESP, WAIT_BEACON, and WAIT_PROBE_RESP.
|
private |
Restarts the beacon timer.
| delay | the delay before the watchdog fires |
Definition at line 401 of file sta-wifi-mac.cc.
References ns3::Simulator::GetDelayLeft(), ns3::EventId::IsExpired(), m_beaconWatchdog, m_beaconWatchdogEnd, max, MissedBeacons(), ns3::Simulator::Now(), NS_LOG_DEBUG, NS_LOG_FUNCTION, and ns3::Simulator::Schedule().
Referenced by Receive(), and ScanningTimeout().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
This method is called after wait beacon timeout or wait probe request timeout has occurred.
This will trigger association process from beacons or probe responses gathered while scanning.
Definition at line 333 of file sta-wifi-mac.cc.
References ns3::MgtProbeResponseHeader::GetBeaconIntervalUs(), ns3::ApInfo::m_activeProbing, ns3::ApInfo::m_apAddr, ns3::ApInfo::m_beacon, ns3::ApInfo::m_bssid, m_candidateAps, m_maxMissedBeacons, ns3::ApInfo::m_probeResp, ns3::MicroSeconds(), NS_LOG_DEBUG, NS_LOG_FUNCTION, RestartBeaconWatchdog(), SendAssociationRequest(), SetState(), StartScanning(), UpdateApInfoFromBeacon(), UpdateApInfoFromProbeResp(), and WAIT_ASSOC_RESP.
Referenced by Receive(), and StartScanning().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Forward an association or reassociation request packet to the DCF.
The standard is not clear on the correct queue for management frames if QoS is supported. We always use the DCF.
| isReassoc | flag whether it is a reassociation request |
Definition at line 186 of file sta-wifi-mac.cc.
References ns3::Packet::AddHeader(), AssocRequestTimeout(), ns3::EventId::Cancel(), ns3::RegularWifiMac::GetAddress(), ns3::RegularWifiMac::GetBssid(), GetCapabilities(), ns3::RegularWifiMac::GetExtendedCapabilities(), ns3::RegularWifiMac::GetHeCapabilities(), ns3::RegularWifiMac::GetHeSupported(), ns3::RegularWifiMac::GetHtCapabilities(), ns3::RegularWifiMac::GetHtSupported(), ns3::RegularWifiMac::GetSsid(), GetSupportedRates(), ns3::RegularWifiMac::GetVhtCapabilities(), ns3::RegularWifiMac::GetVhtSupported(), ns3::EventId::IsRunning(), m_assocRequestEvent, m_assocRequestTimeout, ns3::RegularWifiMac::m_txop, NS_LOG_FUNCTION, ns3::Txop::Queue(), ns3::Simulator::Schedule(), ns3::WifiMacHeader::SetAddr1(), ns3::WifiMacHeader::SetAddr2(), ns3::WifiMacHeader::SetAddr3(), ns3::MgtAssocRequestHeader::SetCapabilities(), ns3::MgtReassocRequestHeader::SetCapabilities(), ns3::MgtReassocRequestHeader::SetCurrentApAddress(), ns3::WifiMacHeader::SetDsNotFrom(), ns3::WifiMacHeader::SetDsNotTo(), ns3::MgtAssocRequestHeader::SetExtendedCapabilities(), ns3::MgtReassocRequestHeader::SetExtendedCapabilities(), ns3::MgtAssocRequestHeader::SetHeCapabilities(), ns3::MgtReassocRequestHeader::SetHeCapabilities(), ns3::MgtAssocRequestHeader::SetHtCapabilities(), ns3::MgtReassocRequestHeader::SetHtCapabilities(), ns3::MgtAssocRequestHeader::SetListenInterval(), ns3::MgtReassocRequestHeader::SetListenInterval(), ns3::MgtAssocRequestHeader::SetSsid(), ns3::MgtReassocRequestHeader::SetSsid(), ns3::MgtAssocRequestHeader::SetSupportedRates(), ns3::MgtReassocRequestHeader::SetSupportedRates(), ns3::WifiMacHeader::SetType(), ns3::MgtAssocRequestHeader::SetVhtCapabilities(), ns3::MgtReassocRequestHeader::SetVhtCapabilities(), ns3::WIFI_MAC_MGT_ASSOCIATION_REQUEST, and ns3::WIFI_MAC_MGT_REASSOCIATION_REQUEST.
Referenced by AssocRequestTimeout(), PhyCapabilitiesChanged(), and ScanningTimeout().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Forward a probe request packet to the DCF.
The standard is not clear on the correct queue for management frames if QoS is supported. We always use the DCF.
Definition at line 149 of file sta-wifi-mac.cc.
References ns3::Packet::AddHeader(), ns3::RegularWifiMac::GetAddress(), ns3::Mac48Address::GetBroadcast(), ns3::RegularWifiMac::GetExtendedCapabilities(), ns3::RegularWifiMac::GetHeCapabilities(), ns3::RegularWifiMac::GetHeSupported(), ns3::RegularWifiMac::GetHtCapabilities(), ns3::RegularWifiMac::GetHtSupported(), ns3::RegularWifiMac::GetSsid(), GetSupportedRates(), ns3::RegularWifiMac::GetVhtCapabilities(), ns3::RegularWifiMac::GetVhtSupported(), ns3::RegularWifiMac::m_txop, NS_LOG_FUNCTION, ns3::Txop::Queue(), ns3::WifiMacHeader::SetAddr1(), ns3::WifiMacHeader::SetAddr2(), ns3::WifiMacHeader::SetAddr3(), ns3::WifiMacHeader::SetDsNotFrom(), ns3::WifiMacHeader::SetDsNotTo(), ns3::MgtProbeRequestHeader::SetExtendedCapabilities(), ns3::MgtProbeRequestHeader::SetHeCapabilities(), ns3::MgtProbeRequestHeader::SetHtCapabilities(), ns3::MgtProbeRequestHeader::SetSsid(), ns3::MgtProbeRequestHeader::SetSupportedRates(), ns3::WifiMacHeader::SetType(), ns3::MgtProbeRequestHeader::SetVhtCapabilities(), and ns3::WIFI_MAC_MGT_PROBE_REQUEST.
Referenced by StartScanning().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Enable or disable active probing.
| enable | enable or disable active probing |
Definition at line 123 of file sta-wifi-mac.cc.
References m_activeProbing, m_state, NS_LOG_DEBUG, NS_LOG_FUNCTION, StartScanning(), WAIT_BEACON, and WAIT_PROBE_RESP.
Referenced by GetTypeId().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Set the EDCA parameters.
| ac | the access class |
| cwMin | the minimum contention window size |
| cwMax | the maximum contention window size |
| aifsn | the number of slots that make up an AIFS |
| txopLimit | the TXOP limit |
Definition at line 1111 of file sta-wifi-mac.cc.
References ns3::RegularWifiMac::GetQosTxop(), ns3::Txop::SetAifsn(), ns3::Txop::SetMaxCw(), ns3::Txop::SetMinCw(), and ns3::Txop::SetTxopLimit().
Referenced by UpdateApInfoFromAssocResp(), and UpdateApInfoFromBeacon().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Set the MU EDCA parameters.
| ac | the Access Category |
| cwMin | the minimum contention window size |
| cwMax | the maximum contention window size |
| aifsn | the number of slots that make up an AIFS |
| muEdcaTimer | the MU EDCA timer |
Definition at line 1121 of file sta-wifi-mac.cc.
References ns3::RegularWifiMac::GetQosTxop(), ns3::QosTxop::SetMuAifsn(), ns3::QosTxop::SetMuCwMax(), ns3::QosTxop::SetMuCwMin(), and ns3::QosTxop::SetMuEdcaTimer().
Referenced by UpdateApInfoFromAssocResp(), and UpdateApInfoFromBeacon().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Set the current MAC state.
| value | the new state |
Definition at line 1095 of file sta-wifi-mac.cc.
References ASSOCIATED, ns3::RegularWifiMac::GetBssid(), m_assocLogger, m_deAssocLogger, and m_state.
Referenced by AssocRequestTimeout(), MissedBeacons(), PhyCapabilitiesChanged(), Receive(), ScanningTimeout(), and StartScanning().
Here is the call graph for this function:
Here is the caller graph for this function:| phy | the physical layer attached to this MAC. |
Reimplemented from ns3::RegularWifiMac.
Definition at line 141 of file sta-wifi-mac.cc.
References ns3::RegularWifiMac::m_phy, ns3::MakeCallback(), NS_LOG_FUNCTION, third::phy, PhyCapabilitiesChanged(), ns3::WifiPhy::SetCapabilitiesChangedCallback(), and ns3::RegularWifiMac::SetWifiPhy().
Referenced by AmpduAggregationTest::DoRun(), TwoLevelAggregationTest::DoRun(), and HeAggregationTest::DoRunSubTest().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Start the scanning process which trigger active or passive scanning based on the active probing flag.
Definition at line 303 of file sta-wifi-mac.cc.
References ns3::EventId::Cancel(), GetActiveProbing(), ns3::EventId::IsRunning(), m_candidateAps, m_probeRequestEvent, m_probeRequestTimeout, m_waitBeaconEvent, m_waitBeaconTimeout, NS_LOG_FUNCTION, ScanningTimeout(), ns3::Simulator::Schedule(), SendProbeRequest(), SetState(), WAIT_BEACON, and WAIT_PROBE_RESP.
Referenced by DoInitialize(), ScanningTimeout(), SetActiveProbing(), and TryToEnsureAssociated().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Try to ensure that we are associated with an AP by taking an appropriate action depending on the current association status.
Definition at line 258 of file sta-wifi-mac.cc.
References ASSOCIATED, ns3::RegularWifiMac::m_linkDown, m_state, NS_LOG_FUNCTION, REFUSED, StartScanning(), UNASSOCIATED, WAIT_ASSOC_RESP, WAIT_BEACON, and WAIT_PROBE_RESP.
Referenced by Enqueue(), and MissedBeacons().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Update AP's information from association response.
| assocResp | the association response header |
| apAddr | MAC address of the AP |
Definition at line 909 of file sta-wifi-mac.cc.
References ns3::AC_BE, ns3::AC_BK, ns3::AC_VI, ns3::AC_VO, ns3::WifiRemoteStationManager::AddBasicMode(), ns3::WifiRemoteStationManager::AddStationHeCapabilities(), ns3::WifiRemoteStationManager::AddStationHtCapabilities(), ns3::WifiRemoteStationManager::AddStationVhtCapabilities(), ns3::WifiRemoteStationManager::AddSupportedMcs(), ns3::WifiRemoteStationManager::AddSupportedMode(), ns3::RegularWifiMac::ConfigureContentionWindow(), ns3::ErpInformation::GetBarkerPreambleMode(), ns3::EdcaParameterSet::GetBeAifsn(), ns3::EdcaParameterSet::GetBeCWmax(), ns3::EdcaParameterSet::GetBeCWmin(), ns3::EdcaParameterSet::GetBeTxopLimit(), ns3::EdcaParameterSet::GetBkAifsn(), ns3::EdcaParameterSet::GetBkCWmax(), ns3::EdcaParameterSet::GetBkCWmin(), ns3::EdcaParameterSet::GetBkTxopLimit(), ns3::HeOperation::GetBssColor(), ns3::MgtAssocResponseHeader::GetCapabilities(), ns3::WifiPhy::GetChannelWidth(), ns3::MgtAssocResponseHeader::GetEdcaParameterSet(), ns3::MgtAssocResponseHeader::GetErpInformation(), ns3::RegularWifiMac::GetErpSupported(), ns3::MgtAssocResponseHeader::GetExtendedCapabilities(), ns3::MgtAssocResponseHeader::GetHeCapabilities(), ns3::WifiMac::GetHeConfiguration(), ns3::MgtAssocResponseHeader::GetHeOperation(), ns3::RegularWifiMac::GetHeSupported(), ns3::MgtAssocResponseHeader::GetHtCapabilities(), ns3::RegularWifiMac::GetHtSupported(), ns3::WifiPhy::GetMcsList(), ns3::WifiPhy::GetModeList(), ns3::MuEdcaParameterSet::GetMuAifsn(), ns3::MuEdcaParameterSet::GetMuCwMax(), ns3::MuEdcaParameterSet::GetMuCwMin(), ns3::MgtAssocResponseHeader::GetMuEdcaParameterSet(), ns3::MuEdcaParameterSet::GetMuEdcaTimer(), ns3::RegularWifiMac::GetQosSupported(), ns3::VhtCapabilities::GetRxHighestSupportedLgiDataRate(), ns3::WifiRemoteStationManager::GetShortSlotTimeEnabled(), ns3::HeCapabilities::GetSupportedMcsAndNss(), ns3::MgtAssocResponseHeader::GetSupportedRates(), ns3::MgtAssocResponseHeader::GetVhtCapabilities(), ns3::MgtAssocResponseHeader::GetVhtOperation(), ns3::RegularWifiMac::GetVhtSupported(), ns3::EdcaParameterSet::GetViAifsn(), ns3::EdcaParameterSet::GetViCWmax(), ns3::EdcaParameterSet::GetViCWmin(), ns3::EdcaParameterSet::GetViTxopLimit(), ns3::EdcaParameterSet::GetVoAifsn(), ns3::EdcaParameterSet::GetVoCWmax(), ns3::EdcaParameterSet::GetVoCWmin(), ns3::EdcaParameterSet::GetVoTxopLimit(), ns3::SupportedRates::IsBasicRate(), ns3::MuEdcaParameterSet::IsPresent(), ns3::EdcaParameterSet::IsQosSupported(), ns3::CapabilityInformation::IsShortPreamble(), ns3::CapabilityInformation::IsShortSlotTime(), ns3::HtCapabilities::IsSupportedMcs(), ns3::SupportedRates::IsSupportedRate(), ns3::HeCapabilities::IsSupportedRxMcs(), ns3::VhtCapabilities::IsSupportedRxMcs(), ns3::RegularWifiMac::m_phy, ns3::RegularWifiMac::m_stationManager, ns3::MicroSeconds(), NS_LOG_FUNCTION, ns3::WifiRemoteStationManager::RemoveAllSupportedMcs(), SetEdcaParameters(), SetMuEdcaParameters(), ns3::WifiRemoteStationManager::SetQosSupport(), ns3::WifiRemoteStationManager::SetShortPreambleEnabled(), ns3::WifiRemoteStationManager::SetShortSlotTimeEnabled(), ns3::WifiPhy::SetSlot(), ns3::WIFI_MOD_CLASS_ERP_OFDM, ns3::WIFI_MOD_CLASS_HE, ns3::WIFI_MOD_CLASS_HT, and ns3::WIFI_MOD_CLASS_VHT.
Referenced by Receive().
Here is the caller graph for this function:
|
private |
Update associated AP's information from beacon.
If STA is not associated, this information will used for the association process.
| beacon | the beacon header |
| apAddr | MAC address of the AP |
| bssid | MAC address of BSSID |
Definition at line 723 of file sta-wifi-mac.cc.
References ns3::AC_BE, ns3::AC_BK, ns3::AC_VI, ns3::AC_VO, ns3::WifiRemoteStationManager::AddStationHeCapabilities(), ns3::WifiRemoteStationManager::AddStationHtCapabilities(), ns3::WifiRemoteStationManager::AddStationVhtCapabilities(), ns3::WifiRemoteStationManager::AddSupportedMcs(), ns3::WifiRemoteStationManager::AddSupportedMode(), ns3::ErpInformation::GetBarkerPreambleMode(), ns3::EdcaParameterSet::GetBeAifsn(), ns3::EdcaParameterSet::GetBeCWmax(), ns3::EdcaParameterSet::GetBeCWmin(), ns3::EdcaParameterSet::GetBeTxopLimit(), ns3::EdcaParameterSet::GetBkAifsn(), ns3::EdcaParameterSet::GetBkCWmax(), ns3::EdcaParameterSet::GetBkCWmin(), ns3::EdcaParameterSet::GetBkTxopLimit(), ns3::MgtProbeResponseHeader::GetCapabilities(), ns3::WifiPhy::GetChannelWidth(), ns3::MgtProbeResponseHeader::GetEdcaParameterSet(), ns3::MgtProbeResponseHeader::GetErpInformation(), ns3::RegularWifiMac::GetErpSupported(), ns3::MgtProbeResponseHeader::GetExtendedCapabilities(), ns3::MgtProbeResponseHeader::GetHeCapabilities(), ns3::MgtProbeResponseHeader::GetHeOperation(), ns3::RegularWifiMac::GetHeSupported(), ns3::MgtProbeResponseHeader::GetHtCapabilities(), ns3::RegularWifiMac::GetHtSupported(), ns3::WifiPhy::GetMcsList(), ns3::WifiPhy::GetModeList(), ns3::MuEdcaParameterSet::GetMuAifsn(), ns3::MuEdcaParameterSet::GetMuCwMax(), ns3::MuEdcaParameterSet::GetMuCwMin(), ns3::MgtProbeResponseHeader::GetMuEdcaParameterSet(), ns3::MuEdcaParameterSet::GetMuEdcaTimer(), ns3::RegularWifiMac::GetQosSupported(), ns3::VhtCapabilities::GetRxHighestSupportedLgiDataRate(), ns3::HeCapabilities::GetSupportedMcsAndNss(), ns3::MgtProbeResponseHeader::GetSupportedRates(), ns3::ErpInformation::GetUseProtection(), ns3::MgtProbeResponseHeader::GetVhtCapabilities(), ns3::MgtProbeResponseHeader::GetVhtOperation(), ns3::RegularWifiMac::GetVhtSupported(), ns3::EdcaParameterSet::GetViAifsn(), ns3::EdcaParameterSet::GetViCWmax(), ns3::EdcaParameterSet::GetViCWmin(), ns3::EdcaParameterSet::GetViTxopLimit(), ns3::EdcaParameterSet::GetVoAifsn(), ns3::EdcaParameterSet::GetVoCWmax(), ns3::EdcaParameterSet::GetVoCWmin(), ns3::EdcaParameterSet::GetVoTxopLimit(), ns3::MuEdcaParameterSet::IsPresent(), ns3::EdcaParameterSet::IsQosSupported(), ns3::CapabilityInformation::IsShortPreamble(), ns3::CapabilityInformation::IsShortSlotTime(), ns3::HtCapabilities::IsSupportedMcs(), ns3::SupportedRates::IsSupportedRate(), ns3::HeCapabilities::IsSupportedRxMcs(), ns3::VhtCapabilities::IsSupportedRxMcs(), ns3::RegularWifiMac::m_phy, ns3::RegularWifiMac::m_stationManager, ns3::MicroSeconds(), NS_LOG_FUNCTION, ns3::WifiRemoteStationManager::RemoveAllSupportedMcs(), ns3::RegularWifiMac::SetBssid(), SetEdcaParameters(), SetMuEdcaParameters(), ns3::WifiRemoteStationManager::SetQosSupport(), ns3::WifiRemoteStationManager::SetShortPreambleEnabled(), ns3::WifiRemoteStationManager::SetShortSlotTimeEnabled(), ns3::WifiPhy::SetSlot(), ns3::WifiRemoteStationManager::SetUseNonErpProtection(), ns3::WIFI_MOD_CLASS_HE, and ns3::WIFI_MOD_CLASS_VHT.
Referenced by Receive(), and ScanningTimeout().
Here is the caller graph for this function:
|
private |
Update AP's information from probe response.
This information is required for the association process.
| probeResp | the probe response header |
| apAddr | MAC address of the AP |
| bssid | MAC address of BSSID |
Definition at line 843 of file sta-wifi-mac.cc.
References ns3::WifiRemoteStationManager::AddBasicMode(), ns3::WifiRemoteStationManager::AddSupportedMode(), ns3::RegularWifiMac::ConfigureContentionWindow(), ns3::ErpInformation::GetBarkerPreambleMode(), ns3::WifiPhy::GetBssMembershipSelectorList(), ns3::MgtProbeResponseHeader::GetCapabilities(), ns3::WifiPhy::GetChannelWidth(), ns3::MgtProbeResponseHeader::GetErpInformation(), ns3::RegularWifiMac::GetErpSupported(), ns3::WifiPhy::GetModeList(), ns3::WifiRemoteStationManager::GetShortSlotTimeEnabled(), ns3::MgtProbeResponseHeader::GetSupportedRates(), ns3::SupportedRates::IsBasicRate(), ns3::SupportedRates::IsBssMembershipSelectorRate(), ns3::CapabilityInformation::IsShortPreamble(), ns3::CapabilityInformation::IsShortSlotTime(), ns3::SupportedRates::IsSupportedRate(), ns3::RegularWifiMac::m_phy, ns3::RegularWifiMac::m_stationManager, ns3::MicroSeconds(), NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::RegularWifiMac::SetBssid(), ns3::WifiRemoteStationManager::SetShortPreambleEnabled(), ns3::WifiRemoteStationManager::SetShortSlotTimeEnabled(), ns3::WifiPhy::SetSlot(), and ns3::WIFI_MOD_CLASS_ERP_OFDM.
Referenced by ScanningTimeout().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Update list of candidate AP to associate.
The list should contain ApInfo sorted from best to worst SNR, with no duplicate.
| newApInfo | the new ApInfo to be inserted |
Definition at line 697 of file sta-wifi-mac.cc.
References ns3::ApInfo::m_activeProbing, ns3::ApInfo::m_apAddr, ns3::ApInfo::m_beacon, ns3::ApInfo::m_bssid, m_candidateAps, ns3::ApInfo::m_probeResp, ns3::ApInfo::m_snr, and NS_LOG_FUNCTION.
Referenced by Receive().
Here is the caller graph for this function:
|
friend |
Allow test cases to access private members.
Definition at line 112 of file sta-wifi-mac.h.
|
friend |
Allow test cases to access private members.
Definition at line 114 of file sta-wifi-mac.h.
|
friend |
Allow test cases to access private members.
Definition at line 110 of file sta-wifi-mac.h.
|
private |
active probing
Definition at line 328 of file sta-wifi-mac.h.
Referenced by GetActiveProbing(), and SetActiveProbing().
|
private |
Association AID.
Definition at line 318 of file sta-wifi-mac.h.
Referenced by GetAssociationId(), and Receive().
|
private |
association logger
Definition at line 335 of file sta-wifi-mac.h.
Referenced by GetTypeId(), and SetState().
|
private |
association request event
Definition at line 324 of file sta-wifi-mac.h.
Referenced by Receive(), and SendAssociationRequest().
|
private |
association request timeout
Definition at line 321 of file sta-wifi-mac.h.
Referenced by GetTypeId(), and SendAssociationRequest().
|
private |
beacon arrival logger
Definition at line 337 of file sta-wifi-mac.h.
Referenced by GetTypeId(), and Receive().
|
private |
beacon watchdog
Definition at line 325 of file sta-wifi-mac.h.
Referenced by MissedBeacons(), and RestartBeaconWatchdog().
|
private |
beacon watchdog end
Definition at line 326 of file sta-wifi-mac.h.
Referenced by MissedBeacons(), and RestartBeaconWatchdog().
|
private |
list of candidate APs to associate to
Definition at line 329 of file sta-wifi-mac.h.
Referenced by Receive(), ScanningTimeout(), StartScanning(), and UpdateCandidateApList().
|
private |
disassociation logger
Definition at line 336 of file sta-wifi-mac.h.
Referenced by GetTypeId(), and SetState().
|
private |
maximum missed beacons
Definition at line 327 of file sta-wifi-mac.h.
Referenced by GetTypeId(), Receive(), and ScanningTimeout().
|
private |
|
private |
probe request timeout
Definition at line 320 of file sta-wifi-mac.h.
Referenced by GetTypeId(), and StartScanning().
|
private |
MAC state.
Definition at line 317 of file sta-wifi-mac.h.
Referenced by IsAssociated(), IsWaitAssocResp(), Receive(), SetActiveProbing(), SetState(), and TryToEnsureAssociated().
|
private |
|
private |
wait beacon timeout
Definition at line 319 of file sta-wifi-mac.h.
Referenced by GetTypeId(), and StartScanning().