The Wifi MAC high model for a STA or AP in a BSS. More...
#include "infrastructure-wifi-mac.h"
Inheritance diagram for ns3::InfrastructureWifiMac:
Collaboration diagram for ns3::InfrastructureWifiMac:Public Member Functions | |
| InfrastructureWifiMac () | |
| virtual | ~InfrastructureWifiMac () |
| virtual void | Enqueue (Ptr< const Packet > packet, Mac48Address to)=0 |
| bool | GetPcfSupported () const |
| Return whether the device supports PCF. More... | |
| void | SetPcfSupported (bool enable) |
| Enable or disable PCF support for the device. More... | |
| void | SetQosSupported (bool enable) |
| Enable or disable QoS support for the device. More... | |
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 |
| Mac48Address | GetAddress (void) const |
| Time | GetBasicBlockAckTimeout (void) const |
| Mac48Address | GetBssid (void) const |
| Time | GetCompressedBlockAckTimeout (void) const |
| Time | GetCtsTimeout (void) const |
| Time | GetEifsNoDifs (void) const |
| ExtendedCapabilities | GetExtendedCapabilities (void) const |
| Return the extended capabilities of the device. More... | |
| HeCapabilities | GetHeCapabilities (void) const |
| Return the HE capabilities of the device. More... | |
| HtCapabilities | GetHtCapabilities (void) const |
| Return the HT capabilities of the device. More... | |
| Time | GetPifs (void) const |
| Time | GetRifs (void) const |
| bool | GetRifsSupported (void) const |
| bool | GetShortSlotTimeSupported (void) const |
| Time | GetSifs (void) const |
| Time | GetSlot (void) const |
| Ssid | GetSsid (void) const |
| VhtCapabilities | GetVhtCapabilities (void) const |
| Return the VHT capabilities of the device. More... | |
| Ptr< WifiPhy > | GetWifiPhy (void) const |
| Ptr< WifiRemoteStationManager > | GetWifiRemoteStationManager (void) const |
| void | ResetWifiPhy (void) |
| removes attached WifiPhy device from this MAC. More... | |
| void | SetAckTimeout (Time ackTimeout) |
| void | SetAddress (Mac48Address address) |
| void | SetBasicBlockAckTimeout (Time blockAckTimeout) |
| void | SetBssid (Mac48Address bssid) |
| void | SetCompressedBlockAckTimeout (Time blockAckTimeout) |
| void | SetCtsTimeout (Time ctsTimeout) |
| void | SetCtsToSelfSupported (bool enable) |
| Enable or disable CTS-to-self feature. More... | |
| void | SetEifsNoDifs (Time eifsNoDifs) |
| void | SetForwardUpCallback (ForwardUpCallback upCallback) |
| void | SetLinkDownCallback (Callback< void > linkDown) |
| void | SetLinkUpCallback (Callback< void > linkUp) |
| void | SetPifs (Time pifs) |
| void | SetPromisc (void) |
| Sets the interface in promiscuous mode. More... | |
| void | SetRifs (Time rifs) |
| void | SetRifsSupported (bool enable) |
| Enable or disable RIFS feature. More... | |
| void | SetShortSlotTimeSupported (bool enable) |
| Enable or disable short slot time feature. More... | |
| void | SetSifs (Time sifs) |
| void | SetSlot (Time slotTime) |
| void | SetSsid (Ssid ssid) |
| virtual void | SetWifiPhy (const Ptr< WifiPhy > phy) |
| virtual void | SetWifiRemoteStationManager (const Ptr< WifiRemoteStationManager > stationManager) |
| virtual bool | SupportsSendFrom (void) const |
Public Member Functions inherited from ns3::WifiMac | |
| void | ConfigureStandard (WifiPhyStandard standard) |
| 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... | |
| virtual void | SetForwardUpCallback (Callback< void, Ptr< Packet >, Mac48Address, Mac48Address > upCallback)=0 |
| void | SetMaxPropagationDelay (Time delay) |
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<typename T > | |
| Ptr< T > | GetObject (void) const |
| Get a pointer to the requested aggregated Object. More... | |
| template<typename T > | |
| Ptr< T > | GetObject (TypeId tid) const |
| Get a pointer to the requested aggregated Object by TypeId. 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 Attributes | |
| bool | m_pcfSupported |
This Boolean is set true iff this WifiMac support PCF. More... | |
Additional Inherited Members | |
Public Types inherited from ns3::RegularWifiMac | |
| typedef Callback< void, Ptr< 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< Packet > aggregatedPacket, const WifiMacHeader *hdr) |
| This method can be called to de-aggregate an A-MSDU and forward the constituent packets up the stack. More... | |
| virtual void | DoDispose () |
| Destructor implementation. More... | |
| virtual void | DoInitialize () |
| Initialize() implementation. More... | |
| void | FinishConfigureStandard (WifiPhyStandard standard) |
| void | ForwardUp (Ptr< 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... | |
| bool | GetDsssSupported () const |
| Return whether the device supports DSSS. More... | |
| bool | GetErpSupported () const |
| Return whether the device supports ERP. More... | |
| bool | GetHeSupported () const |
| Return whether the device supports HE. More... | |
| bool | GetHtSupported () const |
| Return whether the device supports HT. More... | |
| bool | GetQosSupported () const |
| Return whether the device supports QoS. More... | |
| Ptr< Txop > | GetTxop (void) const |
| Accessor for the DCF object. More... | |
| bool | GetVhtSupported () const |
| Return whether the device supports VHT. 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... | |
| virtual void | Receive (Ptr< Packet > packet, const WifiMacHeader *hdr) |
| This method acts as the MacRxMiddle receive callback and is invoked to notify us that a frame has been received. More... | |
| void | SendAddBaResponse (const MgtAddBaRequestHeader *reqHdr, Mac48Address originator) |
| This method can be called to accept a received ADDBA Request. 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... | |
| void | SetHeSupported (bool enable) |
| Enable or disable HE support for the device. More... | |
| void | SetHtSupported (bool enable) |
| Enable or disable HT support for the device. More... | |
| void | SetTypeOfStation (TypeOfStation type) |
| This method is invoked by a subclass to specify what type of station it is implementing. More... | |
| void | SetVhtSupported (bool enable) |
| Enable or disable VHT support for the device. More... | |
| virtual void | TxFailed (const WifiMacHeader &hdr) |
| The packet we sent was successfully received by the receiver (i.e. More... | |
| virtual void | TxOk (const WifiMacHeader &hdr) |
| The packet we sent was successfully received by the receiver (i.e. 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... | |
| 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< MacLow > | m_low |
| MacLow (RTS, CTS, DATA, ACK etc.) More... | |
| Ptr< WifiPhy > | m_phy |
| Wifi PHY. More... | |
| Ptr< MacRxMiddle > | m_rxMiddle |
| RX middle (de-fragmentation 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 STA or AP in a BSS.
ns3::InfrastructureWifiMac is accessible through the following paths with Config::Set and Config::Connect:
No TraceSources are defined for this type.
Size of this type is 376 bytes (on a 64-bit architecture).
Definition at line 33 of file infrastructure-wifi-mac.h.
| ns3::InfrastructureWifiMac::InfrastructureWifiMac | ( | ) |
Definition at line 47 of file infrastructure-wifi-mac.cc.
References NS_LOG_FUNCTION.
|
virtual |
Definition at line 53 of file infrastructure-wifi-mac.cc.
References NS_LOG_FUNCTION.
|
pure 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.
Implemented in ns3::StaWifiMac, and ns3::ApWifiMac.
| bool ns3::InfrastructureWifiMac::GetPcfSupported | ( | ) | const |
Return whether the device supports PCF.
Definition at line 78 of file infrastructure-wifi-mac.cc.
References m_pcfSupported.
Referenced by ns3::ApWifiMac::GetCapabilities(), ns3::StaWifiMac::GetCapabilities(), ns3::ApWifiMac::GetCfParameterSet(), GetTypeId(), ns3::ApWifiMac::Receive(), ns3::StaWifiMac::Receive(), ns3::ApWifiMac::SendCfEnd(), ns3::ApWifiMac::SendCfPoll(), ns3::StaWifiMac::SendCfPollResponse(), ns3::ApWifiMac::SendNextCfFrame(), ns3::ApWifiMac::SendOneBeacon(), SetQosSupported(), ns3::ApWifiMac::SetWifiRemoteStationManager(), ns3::StaWifiMac::SetWifiRemoteStationManager(), and ns3::ApWifiMac::TxOk().
Here is the caller graph for this function:
|
static |
Get the type ID.
Definition at line 32 of file infrastructure-wifi-mac.cc.
References GetPcfSupported(), ns3::MakeBooleanAccessor(), ns3::MakeBooleanChecker(), ns3::TypeId::SetParent(), and SetPcfSupported().
Here is the call graph for this function:| void ns3::InfrastructureWifiMac::SetPcfSupported | ( | bool | enable | ) |
Enable or disable PCF support for the device.
| enable | whether PCF is supported |
Definition at line 66 of file infrastructure-wifi-mac.cc.
References ns3::RegularWifiMac::GetQosSupported(), m_pcfSupported, ns3::RegularWifiMac::m_stationManager, NS_ASSERT_MSG(), NS_LOG_FUNCTION, and ns3::WifiRemoteStationManager::SetPcfSupported().
Referenced by GetTypeId().
Here is the call graph for this function:
Here is the caller graph for this function:
|
virtual |
Enable or disable QoS support for the device.
| enable | whether QoS is supported |
Reimplemented from ns3::RegularWifiMac.
Definition at line 59 of file infrastructure-wifi-mac.cc.
References GetPcfSupported(), NS_ASSERT_MSG(), and ns3::RegularWifiMac::SetQosSupported().
Here is the call graph for this function:
|
private |
This Boolean is set true iff this WifiMac support PCF.
Definition at line 79 of file infrastructure-wifi-mac.h.
Referenced by GetPcfSupported(), and SetPcfSupported().