#include <sta-wifi-mac.h>
Public Member Functions | |
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) |
![]() | |
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 |
Time | GetEifsNoDifs (void) const |
Time | GetPifs (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 | RestartAccess (void) |
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 | 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 | 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 |
![]() | |
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) |
![]() | |
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) |
![]() | |
SimpleRefCount (const SimpleRefCount &o) | |
uint32_t | GetReferenceCount (void) const |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
void | Ref (void) const |
void | Unref (void) const |
![]() | |
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 TypeId | GetTypeId (void) |
![]() | |
static TypeId | GetTypeId (void) |
![]() | |
static TypeId | GetTypeId (void) |
![]() | |
static void | Cleanup (void) |
![]() | |
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 |
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) |
Private Attributes | |
TracedCallback< Mac48Address > | m_assocLogger |
EventId | m_assocRequestEvent |
Time | m_assocRequestTimeout |
EventId | m_beaconWatchdog |
Time | m_beaconWatchdogEnd |
TracedCallback< Mac48Address > | m_deAssocLogger |
uint32_t | m_maxMissedBeacons |
EventId | m_probeRequestEvent |
Time | m_probeRequestTimeout |
enum MacState | m_state |
Additional Inherited Members | |
![]() | |
typedef Callback< void, Ptr < Packet >, Mac48Address, Mac48Address > | ForwardUpCallback |
![]() | |
typedef std::map< AcIndex, Ptr < EdcaTxopN > > | EdcaQueues |
![]() | |
virtual void | DeaggregateAmsduAndForward (Ptr< Packet > aggregatedPacket, const WifiMacHeader *hdr) |
virtual void | DoDispose () |
virtual void | DoInitialize () |
virtual void | FinishConfigureStandard (enum WifiPhyStandard standard) |
void | ForwardUp (Ptr< Packet > packet, Mac48Address from, Mac48Address to) |
bool | GetQosSupported () const |
bool | IsRxRadio (void) |
bool | IsTxRadio (void) |
virtual void | SendAddBaResponse (const MgtAddBaRequestHeader *reqHdr, Mac48Address originator) |
void | SetQosSupported (bool enable) |
void | SetRxRadio (bool isRx, Ptr< Node > node, Ptr< Repository > repo, Ptr< PUModel > puModel, Ptr< WifiPhy > phy) |
void | SetTxRadio (bool isTx) |
void | SetTypeOfStation (TypeOfStation type) |
virtual void | TxFailed (const WifiMacHeader &hdr) |
virtual void | TxOk (const WifiMacHeader &hdr) |
![]() | |
void | ConfigureCCHDcf (Ptr< Dcf > dcf, uint32_t cwmin, uint32_t cwmax, enum AcIndex ac) |
void | ConfigureDcf (Ptr< Dcf > dcf, uint32_t cwmin, uint32_t cwmax, enum AcIndex ac) |
![]() | |
Object (const Object &o) | |
virtual void | NotifyNewAggregate (void) |
![]() | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
virtual void | NotifyConstructionCompleted (void) |
![]() | |
Ptr< DcaTxop > | m_dca |
DcfManager * | m_dcfManager |
EdcaQueues | m_edca |
ForwardUpCallback | m_forwardUp |
Callback< void > | m_linkDown |
Callback< void > | m_linkUp |
Ptr< MacLow > | m_low |
Ptr< WifiPhy > | m_phy |
bool | m_qosSupported |
MacRxMiddle * | m_rxMiddle |
Ssid | m_ssid |
Ptr< WifiRemoteStationManager > | m_stationManager |
MacTxMiddle * | m_txMiddle |
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.
|
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 308 of file sta-wifi-mac.cc.
References ns3::RegularWifiMac::GetBssid(), ns3::RegularWifiMac::m_dca, ns3::RegularWifiMac::m_edca, ns3::RegularWifiMac::m_qosSupported, ns3::WifiMac::NotifyTxDrop(), NS_ASSERT, NS_LOG_FUNCTION, ns3::QosUtilsGetTidForPacket(), and ns3::QosUtilsMapTidToAc().
|
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 374 of file sta-wifi-mac.cc.
References ns3::EventId::Cancel(), ns3::RegularWifiMac::DeaggregateAmsduAndForward(), ns3::RegularWifiMac::GetAddress(), ns3::RegularWifiMac::GetBssid(), ns3::WifiMode::GetDataRate(), ns3::WifiPhy::GetMode(), ns3::WifiPhy::GetNModes(), ns3::RegularWifiMac::GetSsid(), ns3::Mac48Address::IsGroup(), ns3::EventId::IsRunning(), ns3::MicroSeconds(), ns3::WifiMac::NotifyRxDrop(), NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::RegularWifiMac::Receive(), ns3::Packet::RemoveHeader(), and ns3::RegularWifiMac::SetBssid().
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 129 of file sta-wifi-mac.cc.
References NS_LOG_FUNCTION.
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 115 of file sta-wifi-mac.cc.
References 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 122 of file sta-wifi-mac.cc.
References NS_LOG_FUNCTION.
void ns3::StaWifiMac::StartActiveAssociation | ( | void | ) |
Start an active association sequence immediately.
Definition at line 136 of file sta-wifi-mac.cc.
References NS_LOG_FUNCTION.