#include <sta-wifi-mac.h>
Inheritance diagram for ns3::StaWifiMac:
Collaboration diagram for ns3::StaWifiMac:Public Member Functions | |
| StaWifiMac () | |
| virtual | ~StaWifiMac () |
| virtual void | Enqueue (Ptr< const Packet > packet, Mac48Address to) |
| void | SetAssocRequestTimeout (Time timeout) |
| void | SetMaxMissedBeacons (uint32_t missed) |
| void | SetProbeRequestTimeout (Time timeout) |
| void | StartActiveAssociation (void) |
Public Member Functions inherited from ns3::RegularWifiMac | |
| RegularWifiMac () | |
| virtual | ~RegularWifiMac () |
| virtual void | Enqueue (Ptr< const Packet > packet, Mac48Address to, Mac48Address from) |
| Time | GetAckTimeout (void) const |
| virtual Mac48Address | GetAddress (void) const |
| virtual Time | GetBasicBlockAckTimeout (void) const |
| virtual Mac48Address | GetBssid (void) const |
| virtual Time | GetCompressedBlockAckTimeout (void) const |
| Time | GetCtsTimeout (void) const |
| bool | GetCtsToSelfSupported () const |
| Time | GetEifsNoDifs (void) const |
| Time | GetPifs (void) const |
| Time | GetRifs (void) const |
| Time | GetSifs (void) const |
| Time | GetSlot (void) const |
| virtual Ssid | GetSsid (void) const |
| virtual Ptr< WifiPhy > | GetWifiPhy () const |
| virtual Ptr < WifiRemoteStationManager > | GetWifiRemoteStationManager () const |
| void | SetAckTimeout (Time ackTimeout) |
| virtual void | SetAddress (Mac48Address address) |
| virtual void | SetBasicBlockAckTimeout (Time blockAckTimeout) |
| virtual void | SetBssid (Mac48Address bssid) |
| virtual void | SetCompressedBlockAckTimeout (Time blockAckTimeout) |
| void | SetCtsTimeout (Time ctsTimeout) |
| void | SetCtsToSelfSupported (bool enable) |
| void | SetEifsNoDifs (Time eifsNoDifs) |
| virtual void | SetForwardUpCallback (ForwardUpCallback upCallback) |
| virtual void | SetLinkDownCallback (Callback< void > linkDown) |
| virtual void | SetLinkUpCallback (Callback< void > linkUp) |
| void | SetPifs (Time pifs) |
| virtual void | SetPromisc (void) |
| Sets the interface in promiscuous mode. More... | |
| void | SetRifs (Time rifs) |
| void | SetSifs (Time sifs) |
| void | SetSlot (Time slotTime) |
| virtual void | SetSsid (Ssid ssid) |
| virtual void | SetWifiPhy (Ptr< WifiPhy > phy) |
| virtual void | SetWifiRemoteStationManager (Ptr< WifiRemoteStationManager > stationManager) |
| virtual bool | SupportsSendFrom (void) const |
Public Member Functions inherited from ns3::WifiMac | |
| void | ConfigureStandard (enum WifiPhyStandard standard) |
| Time | GetMaxPropagationDelay (void) const |
| Time | GetMsduLifetime (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) |
| virtual void | SetForwardUpCallback (Callback< void, Ptr< Packet >, Mac48Address, Mac48Address > upCallback)=0 |
| void | SetMaxPropagationDelay (Time delay) |
Public Member Functions inherited from ns3::Object | |
| Object () | |
| virtual | ~Object () |
| void | AggregateObject (Ptr< Object > other) |
| void | Dispose (void) |
| AggregateIterator | GetAggregateIterator (void) const |
| virtual TypeId | GetInstanceTypeId (void) const |
| template<typename T > | |
| Ptr< T > | GetObject (void) const |
| template<typename T > | |
| Ptr< T > | GetObject (TypeId tid) const |
| void | Initialize (void) |
Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
| SimpleRefCount () | |
| SimpleRefCount (const SimpleRefCount &o) | |
| uint32_t | GetReferenceCount (void) const |
| SimpleRefCount & | operator= (const SimpleRefCount &o) |
| void | Ref (void) const |
| void | Unref (void) const |
Public Member Functions inherited from ns3::ObjectBase | |
| virtual | ~ObjectBase () |
| void | GetAttribute (std::string name, AttributeValue &value) const |
| bool | GetAttributeFailSafe (std::string name, AttributeValue &attribute) const |
| void | SetAttribute (std::string name, const AttributeValue &value) |
| bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
| bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
| bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
| bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
| bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Static Public Member Functions | |
| static TypeId | GetTypeId (void) |
Static Public Member Functions inherited from ns3::RegularWifiMac | |
| static TypeId | GetTypeId (void) |
Static Public Member Functions inherited from ns3::WifiMac | |
| static TypeId | GetTypeId (void) |
Static Public Member Functions inherited from ns3::Object | |
| static TypeId | GetTypeId (void) |
Static Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
| static void | Cleanup (void) |
Static Public Member Functions inherited from ns3::ObjectBase | |
| static TypeId | GetTypeId (void) |
Private Types | |
| enum | MacState { ASSOCIATED, WAIT_PROBE_RESP, WAIT_ASSOC_RESP, BEACON_MISSED, REFUSED } |
Private Member Functions | |
| void | AssocRequestTimeout (void) |
| bool | GetActiveProbing (void) const |
| HtCapabilities | GetHtCapabilities (void) const |
| SupportedRates | GetSupportedRates (void) const |
| bool | IsAssociated (void) const |
| bool | IsWaitAssocResp (void) const |
| void | MissedBeacons (void) |
| void | ProbeRequestTimeout (void) |
| virtual void | Receive (Ptr< Packet > packet, const WifiMacHeader *hdr) |
| void | RestartBeaconWatchdog (Time delay) |
| void | SendAssociationRequest (void) |
| void | SendProbeRequest (void) |
| void | SetActiveProbing (bool enable) |
| void | SetState (enum MacState value) |
| void | TryToEnsureAssociated (void) |
The Wifi MAC high model for a non-AP STA in a BSS.
ns3::StaWifiMac is accessible through the following paths with Config::Set and Config::Connect:
Definition at line 43 of file sta-wifi-mac.h.
|
private |
| Enumerator | |
|---|---|
| ASSOCIATED | |
| WAIT_PROBE_RESP | |
| WAIT_ASSOC_RESP | |
| BEACON_MISSED | |
| REFUSED | |
Definition at line 87 of file sta-wifi-mac.h.
| ns3::StaWifiMac::StaWifiMac | ( | ) |
Definition at line 97 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 |
Definition at line 273 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:
|
virtual |
| 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 333 of file sta-wifi-mac.cc.
References ns3::RegularWifiMac::GetBssid(), IsAssociated(), ns3::RegularWifiMac::m_dca, ns3::RegularWifiMac::m_edca, ns3::RegularWifiMac::m_htSupported, ns3::RegularWifiMac::m_low, ns3::RegularWifiMac::m_qosSupported, ns3::WifiMacHeader::NORMAL_ACK, ns3::WifiMac::NotifyTxDrop(), NS_ASSERT, NS_LOG_FUNCTION, ns3::QosUtilsGetTidForPacket(), ns3::QosUtilsMapTidToAc(), 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(), ns3::WifiMacHeader::SetTypeData(), TryToEnsureAssociated(), and ns3::WIFI_MAC_QOSDATA.
Here is the call graph for this function:
|
private |
|
private |
Definition at line 619 of file sta-wifi-mac.cc.
References ns3::WifiPhy::GetGreenfield(), ns3::WifiPhy::GetGuardInterval(), ns3::WifiPhy::GetLdpc(), ns3::WifiPhy::GetMcs(), ns3::WifiPhy::GetNMcs(), ns3::RegularWifiMac::m_phy, ns3::HtCapabilities::SetGreenfield(), ns3::HtCapabilities::SetHtSupported(), ns3::HtCapabilities::SetLdpc(), ns3::HtCapabilities::SetRxMcsBitmask(), and ns3::HtCapabilities::SetShortGuardInterval20().
Referenced by SendAssociationRequest(), and SendProbeRequest().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Definition at line 601 of file sta-wifi-mac.cc.
References ns3::SupportedRates::AddSupportedRate(), ns3::WifiPhy::GetBssMembershipSelector(), ns3::WifiMode::GetDataRate(), ns3::WifiPhy::GetMode(), ns3::WifiPhy::GetNBssMembershipSelectors(), ns3::WifiPhy::GetNModes(), ns3::RegularWifiMac::m_htSupported, ns3::RegularWifiMac::m_phy, and ns3::SupportedRates::SetBasicRate().
Referenced by SendAssociationRequest(), and SendProbeRequest().
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 66 of file sta-wifi-mac.cc.
References m_assocLogger, m_assocRequestTimeout, m_deAssocLogger, m_maxMissedBeacons, m_probeRequestTimeout, ns3::MakeTimeChecker(), ns3::MakeTraceSourceAccessor(), SetActiveProbing(), and ns3::TypeId::SetParent().
Here is the call graph for this function:
|
private |
Definition at line 321 of file sta-wifi-mac.cc.
References ASSOCIATED, and m_state.
Referenced by Enqueue(), and Receive().
Here is the caller graph for this function:
|
private |
Definition at line 327 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 |
Definition at line 289 of file sta-wifi-mac.cc.
References BEACON_MISSED, ns3::EventId::Cancel(), ns3::EventId::IsRunning(), m_beaconWatchdog, m_beaconWatchdogEnd, ns3::Simulator::Now(), NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::Simulator::Schedule(), SetState(), and TryToEnsureAssociated().
Referenced by RestartBeaconWatchdog().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Definition at line 281 of file sta-wifi-mac.cc.
References NS_LOG_FUNCTION, SendProbeRequest(), SetState(), and WAIT_PROBE_RESP.
Referenced by SendProbeRequest().
Here is the call graph for this function:
Here is the caller graph for this function:
|
privatevirtual |
This method acts as the MacRxMiddle receive callback and is invoked to notify us that a frame has been received. The implementation is intended to capture logic that is going to be common to all (or most) derived classes. Specifically, handling of Block Ack managment frames is dealt with here.
This method will need, however, to be overriden by derived classes so that they can perform their data handling before invoking the base version.
| packet | the packet that has been received. |
| hdr | a pointer to the MAC header of the received frame. |
Reimplemented from ns3::RegularWifiMac.
Definition at line 403 of file sta-wifi-mac.cc.
References ASSOCIATED, BEACON_MISSED, ns3::EventId::Cancel(), ns3::RegularWifiMac::DeaggregateAmsduAndForward(), ns3::RegularWifiMac::ForwardUp(), ns3::WifiMacHeader::GetAddr1(), ns3::WifiMacHeader::GetAddr2(), ns3::WifiMacHeader::GetAddr3(), ns3::RegularWifiMac::GetAddress(), ns3::MgtProbeResponseHeader::GetBeaconIntervalUs(), ns3::RegularWifiMac::GetBssid(), ns3::WifiPhy::GetBssMembershipSelector(), ns3::WifiMode::GetDataRate(), ns3::MgtAssocResponseHeader::GetHtCapabilities(), ns3::WifiPhy::GetMcs(), ns3::WifiPhy::GetMode(), ns3::WifiPhy::GetNBssMembershipSelectors(), ns3::WifiPhy::GetNMcs(), ns3::WifiPhy::GetNModes(), ns3::RegularWifiMac::GetSsid(), ns3::MgtProbeResponseHeader::GetSsid(), ns3::MgtAssocResponseHeader::GetStatusCode(), ns3::MgtAssocResponseHeader::GetSupportedRates(), ns3::MgtProbeResponseHeader::GetSupportedRates(), IsAssociated(), ns3::WifiMacHeader::IsAssocReq(), ns3::WifiMacHeader::IsAssocResp(), ns3::SupportedRates::IsBasicRate(), ns3::WifiMacHeader::IsBeacon(), ns3::WifiMacHeader::IsCtl(), ns3::WifiMacHeader::IsData(), ns3::Ssid::IsEqual(), 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::EventId::IsRunning(), ns3::StatusCode::IsSuccess(), ns3::HtCapabilities::IsSupportedMcs(), ns3::SupportedRates::IsSupportedRate(), ns3::WifiMacHeader::IsToDs(), IsWaitAssocResp(), m_assocRequestEvent, ns3::RegularWifiMac::m_htSupported, ns3::RegularWifiMac::m_linkUp, m_maxMissedBeacons, ns3::RegularWifiMac::m_phy, m_probeRequestEvent, m_state, ns3::RegularWifiMac::m_stationManager, ns3::WifiMac::NotifyRxDrop(), NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::RegularWifiMac::Receive(), REFUSED, ns3::Packet::RemoveHeader(), RestartBeaconWatchdog(), SendAssociationRequest(), ns3::RegularWifiMac::SetBssid(), SetState(), WAIT_ASSOC_RESP, and WAIT_PROBE_RESP.
|
private |
Definition at line 308 of file sta-wifi-mac.cc.
References ns3::Simulator::GetDelayLeft(), ns3::EventId::IsExpired(), m_beaconWatchdog, m_beaconWatchdogEnd, MissedBeacons(), ns3::Simulator::Now(), NS_LOG_DEBUG, NS_LOG_FUNCTION, and ns3::Simulator::Schedule().
Referenced by Receive().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Definition at line 195 of file sta-wifi-mac.cc.
References ns3::Packet::AddHeader(), AssocRequestTimeout(), ns3::EventId::Cancel(), ns3::RegularWifiMac::GetAddress(), ns3::RegularWifiMac::GetBssid(), GetHtCapabilities(), ns3::RegularWifiMac::GetSsid(), GetSupportedRates(), ns3::EventId::IsRunning(), m_assocRequestEvent, m_assocRequestTimeout, ns3::RegularWifiMac::m_dca, ns3::RegularWifiMac::m_htSupported, NS_LOG_FUNCTION, ns3::Simulator::Schedule(), ns3::WifiMacHeader::SetAddr1(), ns3::WifiMacHeader::SetAddr2(), ns3::WifiMacHeader::SetAddr3(), ns3::WifiMacHeader::SetAssocReq(), ns3::WifiMacHeader::SetDsNotFrom(), ns3::WifiMacHeader::SetDsNotTo(), ns3::WifiMacHeader::SetNoOrder(), and ns3::MgtAssocRequestHeader::SetSsid().
Referenced by AssocRequestTimeout(), and Receive().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Definition at line 158 of file sta-wifi-mac.cc.
References ns3::Packet::AddHeader(), ns3::EventId::Cancel(), ns3::RegularWifiMac::GetAddress(), ns3::Mac48Address::GetBroadcast(), GetHtCapabilities(), ns3::RegularWifiMac::GetSsid(), GetSupportedRates(), ns3::EventId::IsRunning(), ns3::RegularWifiMac::m_dca, ns3::RegularWifiMac::m_htSupported, m_probeRequestEvent, m_probeRequestTimeout, NS_LOG_FUNCTION, ProbeRequestTimeout(), ns3::Simulator::Schedule(), ns3::WifiMacHeader::SetAddr1(), ns3::WifiMacHeader::SetAddr2(), ns3::WifiMacHeader::SetAddr3(), ns3::WifiMacHeader::SetDsNotFrom(), ns3::WifiMacHeader::SetDsNotTo(), ns3::WifiMacHeader::SetNoOrder(), ns3::WifiMacHeader::SetProbeReq(), and ns3::MgtProbeRequestHeader::SetSsid().
Referenced by ProbeRequestTimeout(), and TryToEnsureAssociated().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Definition at line 144 of file sta-wifi-mac.cc.
References ns3::EventId::Cancel(), m_probeRequestEvent, NS_LOG_FUNCTION, ns3::Simulator::ScheduleNow(), and TryToEnsureAssociated().
Referenced by GetTypeId().
Here is the call graph for this function:
Here is the caller graph for this function:| void ns3::StaWifiMac::SetAssocRequestTimeout | ( | Time | timeout | ) |
| timeout | If no association response is received within the specified timeout, the station sends a new association request. |
Definition at line 130 of file sta-wifi-mac.cc.
References m_assocRequestTimeout, NS_LOG_FUNCTION, and timeout.
| void ns3::StaWifiMac::SetMaxMissedBeacons | ( | uint32_t | missed | ) |
| missed | the number of beacons which must be missed before a new association sequence is started. |
Definition at line 116 of file sta-wifi-mac.cc.
References m_maxMissedBeacons, and NS_LOG_FUNCTION.
| void ns3::StaWifiMac::SetProbeRequestTimeout | ( | Time | timeout | ) |
| timeout | If no probe response is received within the specified timeout, the station sends a new probe request. |
Definition at line 123 of file sta-wifi-mac.cc.
References m_probeRequestTimeout, NS_LOG_FUNCTION, and timeout.
|
private |
Definition at line 633 of file sta-wifi-mac.cc.
References ASSOCIATED, ns3::RegularWifiMac::GetBssid(), m_assocLogger, m_deAssocLogger, and m_state.
Referenced by AssocRequestTimeout(), MissedBeacons(), ProbeRequestTimeout(), Receive(), and TryToEnsureAssociated().
Here is the call graph for this function:
Here is the caller graph for this function:| void ns3::StaWifiMac::StartActiveAssociation | ( | void | ) |
Start an active association sequence immediately.
Definition at line 137 of file sta-wifi-mac.cc.
References NS_LOG_FUNCTION, and TryToEnsureAssociated().
Here is the call graph for this function:
|
private |
Definition at line 232 of file sta-wifi-mac.cc.
References ASSOCIATED, BEACON_MISSED, ns3::RegularWifiMac::m_linkDown, m_state, NS_LOG_FUNCTION, REFUSED, SendProbeRequest(), SetState(), WAIT_ASSOC_RESP, and WAIT_PROBE_RESP.
Referenced by Enqueue(), MissedBeacons(), SetActiveProbing(), and StartActiveAssociation().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Definition at line 123 of file sta-wifi-mac.h.
Referenced by GetTypeId(), and SetState().
|
private |
Definition at line 118 of file sta-wifi-mac.h.
Referenced by Receive(), and SendAssociationRequest().
|
private |
Definition at line 116 of file sta-wifi-mac.h.
Referenced by GetTypeId(), SendAssociationRequest(), and SetAssocRequestTimeout().
|
private |
Definition at line 119 of file sta-wifi-mac.h.
Referenced by MissedBeacons(), and RestartBeaconWatchdog().
|
private |
Definition at line 120 of file sta-wifi-mac.h.
Referenced by MissedBeacons(), and RestartBeaconWatchdog().
|
private |
Definition at line 124 of file sta-wifi-mac.h.
Referenced by GetTypeId(), and SetState().
|
private |
Definition at line 121 of file sta-wifi-mac.h.
Referenced by GetTypeId(), Receive(), and SetMaxMissedBeacons().
|
private |
Definition at line 117 of file sta-wifi-mac.h.
Referenced by Receive(), SendProbeRequest(), and SetActiveProbing().
|
private |
Definition at line 115 of file sta-wifi-mac.h.
Referenced by GetTypeId(), SendProbeRequest(), and SetProbeRequestTimeout().
|
private |
Definition at line 114 of file sta-wifi-mac.h.
Referenced by IsAssociated(), IsWaitAssocResp(), Receive(), SetState(), and TryToEnsureAssociated().