base class for all MAC-level wifi objects. More...
#include "wifi-mac.h"
Public Member Functions | |
void | ConfigureStandard (WifiPhyStandard standard) |
virtual void | Enqueue (Ptr< const Packet > packet, Mac48Address to, Mac48Address from)=0 |
virtual void | Enqueue (Ptr< const Packet > packet, Mac48Address to)=0 |
virtual Time | GetAckTimeout (void) const =0 |
virtual Mac48Address | GetAddress (void) const =0 |
virtual Time | GetBasicBlockAckTimeout (void) const |
virtual Mac48Address | GetBssid (void) const =0 |
virtual Time | GetCompressedBlockAckTimeout (void) const |
virtual Time | GetCtsTimeout (void) const =0 |
virtual Time | GetEifsNoDifs (void) const =0 |
Time | GetMaxPropagationDelay (void) const |
Time | GetMsduLifetime (void) const |
virtual Time | GetPifs (void) const =0 |
virtual Time | GetRifs (void) const =0 |
virtual bool | GetRifsSupported (void) const =0 |
virtual bool | GetShortSlotTimeSupported (void) const =0 |
virtual Time | GetSifs (void) const =0 |
virtual Time | GetSlot (void) const =0 |
virtual Ssid | GetSsid (void) const =0 |
virtual Ptr< WifiPhy > | GetWifiPhy (void) const =0 |
virtual Ptr< WifiRemoteStationManager > | GetWifiRemoteStationManager (void) const =0 |
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 | ResetWifiPhy (void)=0 |
remove currently attached WifiPhy device from this MAC. More... | |
virtual void | SetAckTimeout (Time ackTimeout)=0 |
virtual void | SetAddress (Mac48Address address)=0 |
virtual void | SetBasicBlockAckTimeout (Time blockAckTimeout) |
virtual void | SetCompressedBlockAckTimeout (Time blockAckTimeout) |
virtual void | SetCtsTimeout (Time ctsTimeout)=0 |
virtual void | SetEifsNoDifs (Time eifsNoDifs)=0 |
virtual void | SetForwardUpCallback (Callback< void, Ptr< Packet >, Mac48Address, Mac48Address > upCallback)=0 |
virtual void | SetLinkDownCallback (Callback< void > linkDown)=0 |
virtual void | SetLinkUpCallback (Callback< void > linkUp)=0 |
void | SetMaxPropagationDelay (Time delay) |
virtual void | SetPifs (Time pifs)=0 |
virtual void | SetPromisc (void)=0 |
Sets the interface in promiscuous mode. More... | |
virtual void | SetRifs (Time rifs)=0 |
virtual void | SetShortSlotTimeSupported (bool enable)=0 |
virtual void | SetSifs (Time sifs)=0 |
virtual void | SetSlot (Time slotTime)=0 |
virtual void | SetSsid (Ssid ssid)=0 |
virtual void | SetWifiPhy (Ptr< WifiPhy > phy)=0 |
virtual void | SetWifiRemoteStationManager (Ptr< WifiRemoteStationManager > stationManager)=0 |
virtual bool | SupportsSendFrom (void) const =0 |
![]() | |
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) |
Register this type. More... | |
![]() | |
static TypeId | GetTypeId (void) |
Get the type ID. More... | |
Protected Member Functions | |
void | ConfigureDcf (Ptr< DcaTxop > dcf, uint32_t cwmin, uint32_t cwmax, bool isDsss, AcIndex ac) |
![]() | |
Object (const Object &o) | |
Copy an Object. More... | |
virtual void | DoDispose (void) |
Destructor implementation. More... | |
virtual void | DoInitialize (void) |
Initialize() implementation. 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... | |
Private Member Functions | |
void | Configure80211_10Mhz (void) |
This method sets 802.11 with 10Mhz channel spacing standards-compliant defaults for following attributes: Sifs, Slot, EifsNoDifs, Pifs, CtsTimeout, and AckTimeout. More... | |
void | Configure80211_5Mhz () |
This method sets 802.11 with 5Mhz channel spacing standards-compliant defaults for following attributes: Sifs, Slot, EifsNoDifs, Pifs, CtsTimeout, and AckTimeout. More... | |
void | Configure80211a (void) |
This method sets 802.11a standards-compliant defaults for following attributes: Sifs, Slot, EifsNoDifs, Pifs, CtsTimeout, and AckTimeout. More... | |
void | Configure80211ac (void) |
This method sets 802.11ac standards-compliant defaults for following attributes: Sifs, Slot, EifsNoDifs, Pifs, CtsTimeout, and AckTimeout. More... | |
void | Configure80211ax_2_4Ghz (void) |
This method sets 802.11ax 2.4 GHz standards-compliant defaults for following attributes: Sifs, Slot, EifsNoDifs, Pifs, CtsTimeout, and AckTimeout. More... | |
void | Configure80211ax_5Ghz (void) |
This method sets 802.11ax 5 GHz standards-compliant defaults for following attributes: Sifs, Slot, EifsNoDifs, Pifs, CtsTimeout, and AckTimeout. More... | |
void | Configure80211b (void) |
This method sets 802.11b standards-compliant defaults for following attributes: Sifs, Slot, EifsNoDifs, Pifs, CtsTimeout, and AckTimeout. More... | |
void | Configure80211g (void) |
This method sets 802.11g standards-compliant defaults for following attributes: Sifs, Slot, EifsNoDifs, Pifs, CtsTimeout, and AckTimeout. More... | |
void | Configure80211n_2_4Ghz (void) |
This method sets 802.11n 2.4 GHz standards-compliant defaults for following attributes: Sifs, Rifs, Slot, EifsNoDifs, Pifs, CtsTimeout, and AckTimeout. More... | |
void | Configure80211n_5Ghz (void) |
This method sets 802.11n 5 GHz standards-compliant defaults for following attributes: Sifs, Rifs, Slot, EifsNoDifs, Pifs, CtsTimeout, and AckTimeout. More... | |
virtual void | FinishConfigureStandard (WifiPhyStandard standard)=0 |
Static Private Member Functions | |
static Time | GetDefaultBasicBlockAckDelay (void) |
Return the default basic block ACK delay. More... | |
static Time | GetDefaultBasicBlockAckTimeout (void) |
Return the default basic block ACK timeout. More... | |
static Time | GetDefaultCompressedBlockAckDelay (void) |
Return the default compressed block ACK delay. More... | |
static Time | GetDefaultCompressedBlockAckTimeout (void) |
Return the default compressed block ACK timeout. More... | |
static Time | GetDefaultCtsAckDelay (void) |
static Time | GetDefaultCtsAckTimeout (void) |
static Time | GetDefaultEifsNoDifs (void) |
static Time | GetDefaultMaxPropagationDelay (void) |
static Time | GetDefaultRifs (void) |
static Time | GetDefaultSifs (void) |
static Time | GetDefaultSlot (void) |
Private Attributes | |
TracedCallback< Ptr< const Packet > > | m_macPromiscRxTrace |
The trace source fired for packets successfully received by the device immediately before being forwarded up to higher layers (at the L2/L3 transition). More... | |
TracedCallback< Ptr< const Packet > > | m_macRxDropTrace |
The trace source fired when packets coming into the "top" of the device are dropped at the MAC layer during reception. More... | |
TracedCallback< Ptr< const Packet > > | m_macRxTrace |
The trace source fired for packets successfully received by the device immediately before being forwarded up to higher layers (at the L2/L3 transition). More... | |
TracedCallback< Ptr< const Packet > > | m_macTxDropTrace |
The trace source fired when packets coming into the "top" of the device are dropped at the MAC layer during transmission. More... | |
TracedCallback< Ptr< const Packet > > | m_macTxTrace |
The trace source fired when packets come into the "top" of the device at the L3/L2 transition, before being queued for transmission. More... | |
Time | m_maxPropagationDelay |
maximum propagation delay More... | |
Additional Inherited Members | |
![]() | |
static TypeId | GetObjectIid (void) |
Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. More... | |
base class for all MAC-level wifi objects.
This class encapsulates all the low-level MAC functionality DCA, EDCA, etc) and all the high-level MAC functionality (association/disassociation state machines).
ns3::WifiMac is accessible through the following paths with Config::Set and Config::Connect:
Size of this type is 120 bytes (on a 64-bit architecture).
Definition at line 41 of file wifi-mac.h.
|
private |
This method sets 802.11 with 10Mhz channel spacing standards-compliant defaults for following attributes: Sifs, Slot, EifsNoDifs, Pifs, CtsTimeout, and AckTimeout.
Definition at line 376 of file wifi-mac.cc.
References GetDefaultMaxPropagationDelay(), ns3::MicroSeconds(), NS_LOG_FUNCTION, SetAckTimeout(), SetCtsTimeout(), SetEifsNoDifs(), SetPifs(), SetSifs(), and SetSlot().
Referenced by ConfigureStandard().
|
private |
This method sets 802.11 with 5Mhz channel spacing standards-compliant defaults for following attributes: Sifs, Slot, EifsNoDifs, Pifs, CtsTimeout, and AckTimeout.
Definition at line 388 of file wifi-mac.cc.
References GetDefaultMaxPropagationDelay(), ns3::MicroSeconds(), NS_LOG_FUNCTION, SetAckTimeout(), SetCtsTimeout(), SetEifsNoDifs(), SetPifs(), SetSifs(), and SetSlot().
Referenced by ConfigureStandard().
|
private |
This method sets 802.11a standards-compliant defaults for following attributes: Sifs, Slot, EifsNoDifs, Pifs, CtsTimeout, and AckTimeout.
Definition at line 336 of file wifi-mac.cc.
References GetDefaultMaxPropagationDelay(), ns3::MicroSeconds(), NS_LOG_FUNCTION, SetAckTimeout(), SetCtsTimeout(), SetEifsNoDifs(), SetPifs(), SetSifs(), and SetSlot().
Referenced by Configure80211n_5Ghz(), and ConfigureStandard().
|
private |
This method sets 802.11ac standards-compliant defaults for following attributes: Sifs, Slot, EifsNoDifs, Pifs, CtsTimeout, and AckTimeout.
Definition at line 419 of file wifi-mac.cc.
References Configure80211n_5Ghz(), and NS_LOG_FUNCTION.
Referenced by Configure80211ax_5Ghz(), and ConfigureStandard().
|
private |
This method sets 802.11ax 2.4 GHz standards-compliant defaults for following attributes: Sifs, Slot, EifsNoDifs, Pifs, CtsTimeout, and AckTimeout.
There is no support for short slot time.
Definition at line 426 of file wifi-mac.cc.
References Configure80211n_2_4Ghz(), and NS_LOG_FUNCTION.
Referenced by ConfigureStandard().
|
private |
This method sets 802.11ax 5 GHz standards-compliant defaults for following attributes: Sifs, Slot, EifsNoDifs, Pifs, CtsTimeout, and AckTimeout.
Definition at line 433 of file wifi-mac.cc.
References Configure80211ac(), and NS_LOG_FUNCTION.
Referenced by ConfigureStandard().
|
private |
This method sets 802.11b standards-compliant defaults for following attributes: Sifs, Slot, EifsNoDifs, Pifs, CtsTimeout, and AckTimeout.
Definition at line 348 of file wifi-mac.cc.
References GetDefaultMaxPropagationDelay(), ns3::MicroSeconds(), NS_LOG_FUNCTION, SetAckTimeout(), SetCtsTimeout(), SetEifsNoDifs(), SetPifs(), SetSifs(), and SetSlot().
Referenced by ConfigureStandard().
|
private |
This method sets 802.11g standards-compliant defaults for following attributes: Sifs, Slot, EifsNoDifs, Pifs, CtsTimeout, and AckTimeout.
There is no support for short slot time.
Definition at line 360 of file wifi-mac.cc.
References GetDefaultMaxPropagationDelay(), ns3::MicroSeconds(), NS_LOG_FUNCTION, SetAckTimeout(), SetCtsTimeout(), SetEifsNoDifs(), SetPifs(), SetSifs(), and SetSlot().
Referenced by Configure80211n_2_4Ghz(), and ConfigureStandard().
|
private |
This method sets 802.11n 2.4 GHz standards-compliant defaults for following attributes: Sifs, Rifs, Slot, EifsNoDifs, Pifs, CtsTimeout, and AckTimeout.
There is no support for short slot time.
Definition at line 400 of file wifi-mac.cc.
References Configure80211g(), GetDefaultBasicBlockAckDelay(), GetDefaultMaxPropagationDelay(), GetSifs(), GetSlot(), ns3::MicroSeconds(), NS_LOG_FUNCTION, SetBasicBlockAckTimeout(), SetCompressedBlockAckTimeout(), and SetRifs().
Referenced by Configure80211ax_2_4Ghz(), and ConfigureStandard().
|
private |
This method sets 802.11n 5 GHz standards-compliant defaults for following attributes: Sifs, Rifs, Slot, EifsNoDifs, Pifs, CtsTimeout, and AckTimeout.
Definition at line 409 of file wifi-mac.cc.
References Configure80211a(), GetDefaultBasicBlockAckDelay(), GetDefaultCompressedBlockAckDelay(), GetDefaultMaxPropagationDelay(), GetSifs(), GetSlot(), ns3::MicroSeconds(), NS_LOG_FUNCTION, SetBasicBlockAckTimeout(), SetCompressedBlockAckTimeout(), and SetRifs().
Referenced by Configure80211ac(), and ConfigureStandard().
|
protected |
dcf | the DCF to be configured |
cwmin | the minimum congestion window for the DCF |
cwmax | the maximum congestion window for the DCF |
isDsss | flag to indicate whether PHY is DSSS or HR/DSSS |
ac | the access category for the DCF |
Configure the DCF with appropriate values depending on the given access category.
Definition at line 440 of file wifi-mac.cc.
References ns3::AC_BE, ns3::AC_BE_NQOS, ns3::AC_BK, ns3::AC_UNDEF, ns3::AC_VI, ns3::AC_VO, ns3::MicroSeconds(), NS_FATAL_ERROR, and NS_LOG_FUNCTION.
Referenced by ns3::RegularWifiMac::ConfigureContentionWindow().
void ns3::WifiMac::ConfigureStandard | ( | WifiPhyStandard | standard | ) |
standard | the wifi standard to be configured |
This method sets standards-compliant defaults for WifiMac parameters such as sifs time, slot time, timeout values, etc., based on the standard selected.
Definition at line 289 of file wifi-mac.cc.
References Configure80211_10Mhz(), Configure80211_5Mhz(), Configure80211a(), Configure80211ac(), Configure80211ax_2_4Ghz(), Configure80211ax_5Ghz(), Configure80211b(), Configure80211g(), Configure80211n_2_4Ghz(), Configure80211n_5Ghz(), FinishConfigureStandard(), NS_FATAL_ERROR, NS_LOG_FUNCTION, ns3::WIFI_PHY_STANDARD_80211_10MHZ, ns3::WIFI_PHY_STANDARD_80211_5MHZ, ns3::WIFI_PHY_STANDARD_80211a, ns3::WIFI_PHY_STANDARD_80211ac, ns3::WIFI_PHY_STANDARD_80211ax_2_4GHZ, ns3::WIFI_PHY_STANDARD_80211ax_5GHZ, ns3::WIFI_PHY_STANDARD_80211b, ns3::WIFI_PHY_STANDARD_80211g, ns3::WIFI_PHY_STANDARD_80211n_2_4GHZ, ns3::WIFI_PHY_STANDARD_80211n_5GHZ, ns3::WIFI_PHY_STANDARD_holland, and ns3::WIFI_PHY_STANDARD_UNSPECIFIED.
Referenced by WifiTest::CreateOne(), InterferenceHelperSequenceTest::CreateOne(), DcfImmediateAccessBroadcastTestCase::DoRun(), Bug2831TestCase::DoRun(), and ns3::WaveHelper::Install().
|
pure virtual |
packet | the packet to send. |
to | the address to which the packet should be sent. |
from | the address from which the packet should be sent. |
The packet should be enqueued in a tx queue, and should be dequeued as soon as the DCF function determines that access it granted to this MAC. The extra parameter "from" allows this device to operate in a bridged mode, forwarding received frames without altering the source address.
Implemented in ns3::RegularWifiMac, ns3::ApWifiMac, and ns3::MeshWifiInterfaceMac.
|
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 DCF function determines that access it granted to this MAC.
Implemented in ns3::RegularWifiMac, ns3::OcbWifiMac, ns3::ApWifiMac, ns3::MeshWifiInterfaceMac, ns3::AdhocWifiMac, and ns3::StaWifiMac.
|
privatepure virtual |
standard | the phy standard to be used |
This method is called by ns3::WifiMac::ConfigureStandard to complete the configuration process for a requested phy standard. Subclasses should implement this method to configure their dcf queues according to the requested standard.
Implemented in ns3::RegularWifiMac, ns3::OcbWifiMac, and ns3::MeshWifiInterfaceMac.
Referenced by ConfigureStandard().
|
pure virtual |
Implemented in ns3::RegularWifiMac.
Referenced by GetTypeId().
|
pure virtual |
Implemented in ns3::RegularWifiMac.
|
virtual |
Reimplemented in ns3::RegularWifiMac.
Definition at line 127 of file wifi-mac.cc.
References ns3::MicroSeconds().
Referenced by GetTypeId().
|
pure virtual |
Implemented in ns3::RegularWifiMac, and ns3::OcbWifiMac.
|
virtual |
Reimplemented in ns3::RegularWifiMac.
Definition at line 140 of file wifi-mac.cc.
References ns3::MicroSeconds().
Referenced by GetTypeId().
|
pure virtual |
Implemented in ns3::RegularWifiMac.
Referenced by GetTypeId().
|
staticprivate |
Return the default basic block ACK delay.
Currently it returns 250 microseconds.
Definition at line 86 of file wifi-mac.cc.
References ns3::MicroSeconds().
Referenced by Configure80211n_2_4Ghz(), Configure80211n_5Ghz(), and GetDefaultBasicBlockAckTimeout().
|
staticprivate |
Return the default basic block ACK timeout.
Definition at line 101 of file wifi-mac.cc.
References GetDefaultBasicBlockAckDelay(), GetDefaultMaxPropagationDelay(), GetDefaultSifs(), GetDefaultSlot(), and ns3::MicroSeconds().
Referenced by GetTypeId().
|
staticprivate |
Return the default compressed block ACK delay.
Currently it returns 76 microseconds.
Definition at line 93 of file wifi-mac.cc.
References ns3::MicroSeconds().
Referenced by Configure80211n_5Ghz(), and GetDefaultCompressedBlockAckTimeout().
|
staticprivate |
Return the default compressed block ACK timeout.
Definition at line 111 of file wifi-mac.cc.
References GetDefaultCompressedBlockAckDelay(), GetDefaultMaxPropagationDelay(), GetDefaultSifs(), GetDefaultSlot(), and ns3::MicroSeconds().
Referenced by GetTypeId().
|
staticprivate |
Return a default value for 802.11a at 6Mbps (44 microseconds)
Definition at line 65 of file wifi-mac.cc.
References ns3::MicroSeconds().
Referenced by GetDefaultCtsAckTimeout(), and GetDefaultEifsNoDifs().
|
staticprivate |
Return the default CTS and ACK timeout. Cts_Timeout and Ack_Timeout are specified in the Annex C (Formal description of MAC operation, see details on the Trsp timer setting at page 346)
Definition at line 72 of file wifi-mac.cc.
References GetDefaultCtsAckDelay(), GetDefaultMaxPropagationDelay(), GetDefaultSifs(), GetDefaultSlot(), and ns3::MicroSeconds().
Referenced by GetTypeId().
|
staticprivate |
Return default SIFS + default CTS-ACK delay
Definition at line 59 of file wifi-mac.cc.
References GetDefaultCtsAckDelay(), and GetDefaultSifs().
Referenced by GetTypeId().
|
staticprivate |
By default, we get the maximum propagation delay from 1000 m and speed of light (3e8 m/s).
Definition at line 31 of file wifi-mac.cc.
References ns3::Seconds().
Referenced by Configure80211_10Mhz(), Configure80211_5Mhz(), Configure80211a(), Configure80211b(), Configure80211g(), Configure80211n_2_4Ghz(), Configure80211n_5Ghz(), GetDefaultBasicBlockAckTimeout(), GetDefaultCompressedBlockAckTimeout(), GetDefaultCtsAckTimeout(), and GetTypeId().
|
staticprivate |
Return a default RIFS value for 802.11n (2 microseconds).
Definition at line 52 of file wifi-mac.cc.
References ns3::MicroSeconds().
Referenced by GetTypeId().
|
staticprivate |
Return a default SIFS value for 802.11a (16 microseconds).
Definition at line 45 of file wifi-mac.cc.
References ns3::MicroSeconds().
Referenced by GetDefaultBasicBlockAckTimeout(), GetDefaultCompressedBlockAckTimeout(), GetDefaultCtsAckTimeout(), GetDefaultEifsNoDifs(), and GetTypeId().
|
staticprivate |
Return a default slot value for 802.11a (9 microseconds).
Definition at line 38 of file wifi-mac.cc.
References ns3::MicroSeconds().
Referenced by GetDefaultBasicBlockAckTimeout(), GetDefaultCompressedBlockAckTimeout(), GetDefaultCtsAckTimeout(), and GetTypeId().
|
pure virtual |
Implemented in ns3::RegularWifiMac.
Referenced by GetTypeId().
Time ns3::WifiMac::GetMaxPropagationDelay | ( | void | ) | const |
Unused for now.
Definition at line 253 of file wifi-mac.cc.
References m_maxPropagationDelay.
Time ns3::WifiMac::GetMsduLifetime | ( | void | ) | const |
Unused for now.
Definition at line 247 of file wifi-mac.cc.
References ns3::Seconds().
|
pure virtual |
Implemented in ns3::RegularWifiMac.
Referenced by GetTypeId().
|
pure virtual |
Implemented in ns3::RegularWifiMac.
Referenced by GetTypeId().
|
pure virtual |
Implemented in ns3::RegularWifiMac.
|
pure virtual |
Implemented in ns3::RegularWifiMac.
|
pure virtual |
Implemented in ns3::RegularWifiMac.
Referenced by Configure80211n_2_4Ghz(), Configure80211n_5Ghz(), and GetTypeId().
|
pure virtual |
Implemented in ns3::RegularWifiMac.
Referenced by Configure80211n_2_4Ghz(), Configure80211n_5Ghz(), and GetTypeId().
|
pure virtual |
Implemented in ns3::RegularWifiMac, and ns3::OcbWifiMac.
Referenced by GetTypeId().
|
static |
Get the type ID.
Definition at line 147 of file wifi-mac.cc.
References GetAckTimeout(), GetBasicBlockAckTimeout(), GetCompressedBlockAckTimeout(), GetCtsTimeout(), GetDefaultBasicBlockAckTimeout(), GetDefaultCompressedBlockAckTimeout(), GetDefaultCtsAckTimeout(), GetDefaultEifsNoDifs(), GetDefaultMaxPropagationDelay(), GetDefaultRifs(), GetDefaultSifs(), GetDefaultSlot(), GetEifsNoDifs(), GetPifs(), GetRifs(), GetSifs(), GetSlot(), GetSsid(), m_macPromiscRxTrace, m_macRxDropTrace, m_macRxTrace, m_macTxDropTrace, m_macTxTrace, m_maxPropagationDelay, ns3::MakeSsidAccessor(), ns3::MakeSsidChecker(), ns3::MakeTimeAccessor(), ns3::MakeTimeChecker(), ns3::MakeTraceSourceAccessor(), SetAckTimeout(), SetBasicBlockAckTimeout(), SetCompressedBlockAckTimeout(), SetCtsTimeout(), SetEifsNoDifs(), ns3::TypeId::SetParent(), SetPifs(), SetRifs(), SetSifs(), SetSlot(), and SetSsid().
Implemented in ns3::RegularWifiMac.
|
pure virtual |
Implemented in ns3::RegularWifiMac.
packet | the packet we received promiscuously |
Public method used to fire a MacPromiscRx trace. Implemented for encapsulation purposes.
Definition at line 277 of file wifi-mac.cc.
References m_macPromiscRxTrace.
Referenced by ns3::WaveNetDevice::ForwardUp().
packet | the packet we received |
Public method used to fire a MacRx trace. Implemented for encapsulation purposes.
Definition at line 271 of file wifi-mac.cc.
References m_macRxTrace.
Referenced by ns3::WaveNetDevice::ForwardUp().
packet | the packet we received but is not destined for us |
Public method used to fire a MacRxDrop trace. Implemented for encapsulation purposes.
Definition at line 283 of file wifi-mac.cc.
References m_macRxDropTrace.
Referenced by ns3::StaWifiMac::Receive(), ns3::ApWifiMac::Receive(), and ns3::OcbWifiMac::Receive().
packet | the packet being enqueued |
Public method used to fire a MacTx trace. Implemented for encapsulation purposes. Note this trace indicates that the packet was accepted by the device only. The packet may be dropped later (e.g. if the queue is full).
Definition at line 259 of file wifi-mac.cc.
References m_macTxTrace.
packet | the packet being dropped |
Public method used to fire a MacTxDrop trace. Implemented for encapsulation purposes. This trace indicates that the packet was dropped before it was transmitted (e.g. when a STA is not associated with an AP).
Definition at line 265 of file wifi-mac.cc.
References m_macTxDropTrace.
Referenced by ns3::StaWifiMac::Enqueue(), ns3::ApWifiMac::Enqueue(), ns3::RegularWifiMac::RegularWifiMac(), and ns3::RegularWifiMac::SetupEdcaQueue().
|
pure virtual |
remove currently attached WifiPhy device from this MAC.
Implemented in ns3::RegularWifiMac.
|
pure virtual |
ackTimeout | the duration of an ACK timeout. |
Implemented in ns3::RegularWifiMac.
Referenced by Configure80211_10Mhz(), Configure80211_5Mhz(), Configure80211a(), Configure80211b(), Configure80211g(), and GetTypeId().
|
pure virtual |
address | the current address of this MAC layer. |
Implemented in ns3::RegularWifiMac, ns3::ApWifiMac, and ns3::AdhocWifiMac.
Referenced by Bug2831TestCase::DoRun().
|
virtual |
blockAckTimeout | the duration for basic block ACK timeout. |
Sets the timeout for basic block ACK.
Reimplemented in ns3::RegularWifiMac.
Definition at line 121 of file wifi-mac.cc.
Referenced by Configure80211n_2_4Ghz(), Configure80211n_5Ghz(), and GetTypeId().
|
virtual |
blockAckTimeout | Sets the timeout for compressed block ACK. |
Reimplemented in ns3::RegularWifiMac.
Definition at line 134 of file wifi-mac.cc.
Referenced by Configure80211n_2_4Ghz(), Configure80211n_5Ghz(), and GetTypeId().
|
pure virtual |
ctsTimeout | the duration of a CTS timeout. |
Implemented in ns3::RegularWifiMac.
Referenced by Configure80211_10Mhz(), Configure80211_5Mhz(), Configure80211a(), Configure80211b(), Configure80211g(), and GetTypeId().
|
pure virtual |
eifsNoDifs | the duration of an EIFS minus DIFS. |
This value is used to calculate the EIFS depending on AIFSN.
Implemented in ns3::RegularWifiMac.
Referenced by Configure80211_10Mhz(), Configure80211_5Mhz(), Configure80211a(), Configure80211b(), Configure80211g(), and GetTypeId().
|
pure virtual |
upCallback | the callback to invoke when a packet must be forwarded up the stack. |
|
pure virtual |
linkDown | the callback to invoke when the link becomes down. |
Implemented in ns3::RegularWifiMac, and ns3::OcbWifiMac.
|
pure virtual |
linkUp | the callback to invoke when the link becomes up. |
Implemented in ns3::RegularWifiMac, ns3::OcbWifiMac, ns3::MeshWifiInterfaceMac, ns3::ApWifiMac, and ns3::AdhocWifiMac.
void ns3::WifiMac::SetMaxPropagationDelay | ( | Time | delay | ) |
delay | the max propagation delay. |
Unused for now.
Definition at line 240 of file wifi-mac.cc.
References m_maxPropagationDelay, and NS_LOG_FUNCTION.
|
pure virtual |
pifs | the pifs duration. |
Implemented in ns3::RegularWifiMac.
Referenced by Configure80211_10Mhz(), Configure80211_5Mhz(), Configure80211a(), Configure80211b(), Configure80211g(), and GetTypeId().
|
pure virtual |
Sets the interface in promiscuous mode.
Enables promiscuous mode on the interface. Note that any further filtering on the incoming frame path may affect the overall behavior.
Implemented in ns3::RegularWifiMac.
|
pure virtual |
rifs | the rifs duration. |
Implemented in ns3::RegularWifiMac.
Referenced by Configure80211n_2_4Ghz(), Configure80211n_5Ghz(), and GetTypeId().
|
pure virtual |
enable | true if short slot time is to be supported, false otherwise |
Implemented in ns3::RegularWifiMac.
|
pure virtual |
sifs | the sifs duration |
Implemented in ns3::RegularWifiMac.
Referenced by Configure80211_10Mhz(), Configure80211_5Mhz(), Configure80211a(), Configure80211b(), Configure80211g(), and GetTypeId().
|
pure virtual |
slotTime | the slot duration |
Implemented in ns3::RegularWifiMac.
Referenced by Configure80211_10Mhz(), Configure80211_5Mhz(), Configure80211a(), Configure80211b(), Configure80211g(), and GetTypeId().
|
pure virtual |
ssid | the current ssid of this MAC layer. |
Implemented in ns3::RegularWifiMac, and ns3::OcbWifiMac.
Referenced by GetTypeId().
phy | the physical layer attached to this MAC. |
Implemented in ns3::RegularWifiMac, and ns3::StaWifiMac.
|
pure virtual |
stationManager | the station manager attached to this MAC. |
Implemented in ns3::RegularWifiMac, and ns3::ApWifiMac.
|
pure virtual |
The interface may or may not support sending from arbitrary address. This function returns true if sending from arbitrary address is supported, false otherwise.
Implemented in ns3::RegularWifiMac, ns3::ApWifiMac, and ns3::MeshWifiInterfaceMac.
|
private |
The trace source fired for packets successfully received by the device immediately before being forwarded up to higher layers (at the L2/L3 transition).
This is a promiscuous trace.
Definition at line 488 of file wifi-mac.h.
Referenced by GetTypeId(), and NotifyPromiscRx().
|
private |
The trace source fired when packets coming into the "top" of the device are dropped at the MAC layer during reception.
Definition at line 503 of file wifi-mac.h.
Referenced by GetTypeId(), and NotifyRxDrop().
|
private |
The trace source fired for packets successfully received by the device immediately before being forwarded up to higher layers (at the L2/L3 transition).
This is a non- promiscuous trace.
Definition at line 496 of file wifi-mac.h.
Referenced by GetTypeId(), and NotifyRx().
|
private |
The trace source fired when packets coming into the "top" of the device are dropped at the MAC layer during transmission.
Definition at line 480 of file wifi-mac.h.
Referenced by GetTypeId(), and NotifyTxDrop().
|
private |
The trace source fired when packets come into the "top" of the device at the L3/L2 transition, before being queued for transmission.
Definition at line 473 of file wifi-mac.h.
Referenced by GetTypeId(), and NotifyTx().
|
private |
maximum propagation delay
Definition at line 411 of file wifi-mac.h.
Referenced by GetMaxPropagationDelay(), GetTypeId(), and SetMaxPropagationDelay().