base class for all MAC-level wifi objects. More...
#include <wifi-mac.h>
Public Member Functions | |
void | ConfigureStandard (enum 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 Time | GetSifs (void) const =0 |
virtual Time | GetSlot (void) const =0 |
virtual Ssid | GetSsid (void) const =0 |
virtual Ptr< WifiPhy > | GetWifiPhy (void) const =0 |
return current attached WifiPhy device More... | |
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 current 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 | 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 |
Implement the GetInstanceTypeId method defined in ObjectBase. 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. More... | |
void | Initialize (void) |
Invoke DoInitialize on all Objects aggregated to this one. More... | |
![]() | |
SimpleRefCount () | |
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. 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) |
![]() | |
static TypeId | GetTypeId (void) |
Register this type. More... | |
![]() | |
static void | Cleanup (void) |
Noop. More... | |
![]() | |
static TypeId | GetTypeId (void) |
Get the type ID. More... | |
Protected Member Functions | |
void | ConfigureDcf (Ptr< Dcf > dcf, uint32_t cwmin, uint32_t cwmax, enum 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 | 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, 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, Slot, EifsNoDifs, Pifs, CtsTimeout, and AckTimeout. More... | |
virtual void | FinishConfigureStandard (enum 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 |
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 44 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 350 of file wifi-mac.cc.
References GetDefaultMaxPropagationDelay(), ns3::MicroSeconds(), 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 361 of file wifi-mac.cc.
References GetDefaultMaxPropagationDelay(), ns3::MicroSeconds(), 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 316 of file wifi-mac.cc.
References GetDefaultMaxPropagationDelay(), ns3::MicroSeconds(), SetAckTimeout(), SetCtsTimeout(), SetEifsNoDifs(), SetPifs(), SetSifs(), and SetSlot().
Referenced by Configure80211n_5Ghz(), and ConfigureStandard().
|
private |
This method sets 802.11b standards-compliant defaults for following attributes: Sifs, Slot, EifsNoDifs, Pifs, CtsTimeout, and AckTimeout.
Definition at line 327 of file wifi-mac.cc.
References GetDefaultMaxPropagationDelay(), ns3::MicroSeconds(), 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 338 of file wifi-mac.cc.
References GetDefaultMaxPropagationDelay(), ns3::MicroSeconds(), 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, Slot, EifsNoDifs, Pifs, CtsTimeout, and AckTimeout.
There is no support for short slot time.
Definition at line 372 of file wifi-mac.cc.
References Configure80211g(), GetDefaultBasicBlockAckDelay(), GetDefaultCompressedBlockAckDelay(), GetDefaultMaxPropagationDelay(), GetSifs(), GetSlot(), ns3::MicroSeconds(), SetAckTimeout(), SetBasicBlockAckTimeout(), SetCompressedBlockAckTimeout(), SetCtsTimeout(), and SetRifs().
Referenced by ConfigureStandard().
|
private |
This method sets 802.11n 5 GHz standards-compliant defaults for following attributes: Sifs, Slot, EifsNoDifs, Pifs, CtsTimeout, and AckTimeout.
Definition at line 382 of file wifi-mac.cc.
References Configure80211a(), GetDefaultBasicBlockAckDelay(), GetDefaultCompressedBlockAckDelay(), GetDefaultMaxPropagationDelay(), GetSifs(), GetSlot(), ns3::MicroSeconds(), SetAckTimeout(), SetBasicBlockAckTimeout(), SetCompressedBlockAckTimeout(), SetCtsTimeout(), and SetRifs().
Referenced by ConfigureStandard().
|
protected |
dcf | the DCF to be configured |
cwmin | the minimum congestion window for the DCF |
cwmax | the maximum congestion window for the DCF |
ac | the access category for the DCF |
Configure the DCF with appropriate values depending on the given access category.
Definition at line 393 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, and NS_FATAL_ERROR.
Referenced by ns3::RegularWifiMac::FinishConfigureStandard().
void ns3::WifiMac::ConfigureStandard | ( | enum 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 280 of file wifi-mac.cc.
References Configure80211_10Mhz(), Configure80211_5Mhz(), Configure80211a(), Configure80211b(), Configure80211g(), Configure80211n_2_4Ghz(), Configure80211n_5Ghz(), FinishConfigureStandard(), NS_ASSERT, ns3::WIFI_PHY_STANDARD_80211_10MHZ, ns3::WIFI_PHY_STANDARD_80211_5MHZ, ns3::WIFI_PHY_STANDARD_80211a, ns3::WIFI_PHY_STANDARD_80211b, ns3::WIFI_PHY_STANDARD_80211g, ns3::WIFI_PHY_STANDARD_80211n_2_4GHZ, ns3::WIFI_PHY_STANDARD_80211n_5GHZ, and ns3::WIFI_PHY_STANDARD_holland.
Referenced by WifiTest::CreateOne(), InterferenceHelperSequenceTest::CreateOne(), Bug555TestCase::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::MeshWifiInterfaceMac, ns3::ApWifiMac, 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 118 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 131 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 80 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 93 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 86 of file wifi-mac.cc.
References ns3::MicroSeconds().
Referenced by Configure80211n_2_4Ghz(), Configure80211n_5Ghz(), and GetDefaultCompressedBlockAckTimeout().
|
staticprivate |
Return the default compressed block ACK timeout.
Definition at line 102 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 60 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 66 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 55 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 49 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 43 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 37 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 244 of file wifi-mac.cc.
References m_maxPropagationDelay.
Time ns3::WifiMac::GetMsduLifetime | ( | void | ) | const |
Unused for now.
Definition at line 239 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.
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 |
Definition at line 138 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().
return current attached WifiPhy device
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 268 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 262 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 274 of file wifi-mac.cc.
References m_macRxDropTrace.
Referenced by ns3::ApWifiMac::Receive(), ns3::StaWifiMac::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 250 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 256 of file wifi-mac.cc.
References m_macTxDropTrace.
Referenced by ns3::StaWifiMac::Enqueue().
|
pure virtual |
remove current 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(), Configure80211n_2_4Ghz(), Configure80211n_5Ghz(), and GetTypeId().
|
pure virtual |
address | the current address of this MAC layer. |
Implemented in ns3::RegularWifiMac, ns3::ApWifiMac, and ns3::AdhocWifiMac.
|
virtual |
blockAckTimeout | the duration for basic block ACK timeout. |
Sets the timeout for basic block ACK.
Reimplemented in ns3::RegularWifiMac.
Definition at line 112 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 125 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(), Configure80211n_2_4Ghz(), Configure80211n_5Ghz(), 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 233 of file wifi-mac.cc.
References m_maxPropagationDelay.
|
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 |
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.
|
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 460 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 477 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 469 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 451 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 443 of file wifi-mac.h.
Referenced by GetTypeId(), and NotifyTx().
|
private |
Definition at line 397 of file wifi-mac.h.
Referenced by GetMaxPropagationDelay(), GetTypeId(), and SetMaxPropagationDelay().