The Wifi MAC high model for a STA or AP in a BSS. More...
#include "infrastructure-wifi-mac.h"
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... | |
![]() | |
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 |
![]() | |
void | ConfigureStandard (WifiPhyStandard standard) |
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) |
![]() | |
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... | |
![]() | |
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... | |
![]() | |
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 TypeId | GetTypeId (void) |
Get the type ID. More... | |
![]() | |
static TypeId | GetTypeId (void) |
Get the type ID. More... | |
![]() | |
static TypeId | GetTypeId (void) |
Register this type. More... | |
![]() | |
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 | |
![]() | |
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... | |
![]() | |
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... | |
![]() | |
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... | |
![]() | |
void | ConfigureDcf (Ptr< Txop > dcf, uint32_t cwmin, uint32_t cwmax, bool isDsss, AcIndex ac) |
![]() | |
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... | |
![]() | |
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... | |
![]() | |
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... | |
![]() | |
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 360 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().
|
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().
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().
|
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().
|
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().