base class for all MAC-level wifi objects. More...
#include <wifi-mac.h>
Public Member Functions | |
virtual void | SetSlot (Time slotTime)=0 |
virtual void | SetSifs (Time sifs)=0 |
virtual void | SetEifsNoDifs (Time eifsNoDifs)=0 |
virtual void | SetPifs (Time pifs)=0 |
virtual void | SetCtsTimeout (Time ctsTimeout)=0 |
virtual void | SetAckTimeout (Time ackTimeout)=0 |
void | SetMaxPropagationDelay (Time delay) |
virtual Time | GetPifs (void) const =0 |
virtual Time | GetSifs (void) const =0 |
virtual Time | GetSlot (void) const =0 |
virtual Time | GetEifsNoDifs (void) const =0 |
virtual Time | GetCtsTimeout (void) const =0 |
virtual Time | GetAckTimeout (void) const =0 |
Time | GetMsduLifetime (void) const |
Time | GetMaxPropagationDelay (void) const |
uint32_t | GetMaxMsduSize (void) const |
virtual Mac48Address | GetAddress (void) const =0 |
virtual Ssid | GetSsid (void) const =0 |
virtual void | SetAddress (Mac48Address address)=0 |
virtual void | SetSsid (Ssid ssid)=0 |
virtual Mac48Address | GetBssid (void) const =0 |
virtual void | Enqueue (Ptr< const Packet > packet, Mac48Address to, Mac48Address from)=0 |
virtual void | Enqueue (Ptr< const Packet > packet, Mac48Address to)=0 |
virtual bool | SupportsSendFrom (void) const =0 |
virtual void | SetWifiPhy (Ptr< WifiPhy > phy)=0 |
virtual void | SetWifiRemoteStationManager (Ptr< WifiRemoteStationManager > stationManager)=0 |
virtual void | SetForwardUpCallback (Callback< void, Ptr< Packet >, Mac48Address, Mac48Address > upCallback)=0 |
virtual void | SetLinkUpCallback (Callback< void > linkUp)=0 |
virtual void | SetLinkDownCallback (Callback< void > linkDown)=0 |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
This method returns the TypeId associated to ns3::WifiMac. | |
Static Private Member Functions | |
static Time | GetDefaultMaxPropagationDelay (void) |
static Time | GetDefaultSlot (void) |
static Time | GetDefaultSifs (void) |
static Time | GetDefaultEifsNoDifs (void) |
static Time | GetDefaultCtsAckDelay (void) |
static Time | GetDefaultCtsAckTimeout (void) |
Private Attributes | |
Time | m_maxPropagationDelay |
uint32_t | m_maxMsduSize |
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).
Definition at line 40 of file wifi-mac.h.
virtual void ns3::WifiMac::Enqueue | ( | Ptr< const Packet > | packet, | |
Mac48Address | to | |||
) | [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::AdhocWifiMac, ns3::NqapWifiMac, and ns3::NqstaWifiMac.
virtual void ns3::WifiMac::Enqueue | ( | Ptr< const Packet > | packet, | |
Mac48Address | to, | |||
Mac48Address | from | |||
) | [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 addresss.
Implemented in ns3::AdhocWifiMac, ns3::NqapWifiMac, and ns3::NqstaWifiMac.
virtual Time ns3::WifiMac::GetAckTimeout | ( | void | ) | const [pure virtual] |
Implemented in ns3::AdhocWifiMac, ns3::NqapWifiMac, and ns3::NqstaWifiMac.
Referenced by GetTypeId().
virtual Mac48Address ns3::WifiMac::GetAddress | ( | void | ) | const [pure virtual] |
Implemented in ns3::AdhocWifiMac, ns3::NqapWifiMac, and ns3::NqstaWifiMac.
virtual Mac48Address ns3::WifiMac::GetBssid | ( | void | ) | const [pure virtual] |
Implemented in ns3::AdhocWifiMac, ns3::NqapWifiMac, and ns3::NqstaWifiMac.
virtual Time ns3::WifiMac::GetCtsTimeout | ( | void | ) | const [pure virtual] |
Implemented in ns3::AdhocWifiMac, ns3::NqapWifiMac, and ns3::NqstaWifiMac.
Referenced by GetTypeId().
Time ns3::WifiMac::GetDefaultCtsAckDelay | ( | void | ) | [static, private] |
Definition at line 51 of file wifi-mac.cc.
References ns3::MicroSeconds().
Referenced by GetDefaultCtsAckTimeout(), and GetDefaultEifsNoDifs().
Time ns3::WifiMac::GetDefaultCtsAckTimeout | ( | void | ) | [static, private] |
Definition at line 57 of file wifi-mac.cc.
References GetDefaultCtsAckDelay(), GetDefaultMaxPropagationDelay(), GetDefaultSifs(), and GetDefaultSlot().
Referenced by GetTypeId().
Time ns3::WifiMac::GetDefaultEifsNoDifs | ( | void | ) | [static, private] |
Definition at line 46 of file wifi-mac.cc.
References GetDefaultCtsAckDelay(), and GetDefaultSifs().
Referenced by GetTypeId().
Time ns3::WifiMac::GetDefaultMaxPropagationDelay | ( | void | ) | [static, private] |
Definition at line 28 of file wifi-mac.cc.
References ns3::Seconds().
Referenced by GetDefaultCtsAckTimeout(), and GetTypeId().
Time ns3::WifiMac::GetDefaultSifs | ( | void | ) | [static, private] |
Definition at line 40 of file wifi-mac.cc.
References ns3::MicroSeconds().
Referenced by GetDefaultCtsAckTimeout(), GetDefaultEifsNoDifs(), and GetTypeId().
Time ns3::WifiMac::GetDefaultSlot | ( | void | ) | [static, private] |
Definition at line 34 of file wifi-mac.cc.
References ns3::MicroSeconds().
Referenced by GetDefaultCtsAckTimeout(), and GetTypeId().
virtual Time ns3::WifiMac::GetEifsNoDifs | ( | void | ) | const [pure virtual] |
Implemented in ns3::AdhocWifiMac, ns3::NqapWifiMac, and ns3::NqstaWifiMac.
Referenced by GetTypeId().
uint32_t ns3::WifiMac::GetMaxMsduSize | ( | void | ) | const |
Definition at line 142 of file wifi-mac.cc.
References m_maxMsduSize.
Time ns3::WifiMac::GetMaxPropagationDelay | ( | void | ) | const |
Time ns3::WifiMac::GetMsduLifetime | ( | void | ) | const |
virtual Time ns3::WifiMac::GetPifs | ( | void | ) | const [pure virtual] |
Implemented in ns3::AdhocWifiMac, ns3::NqapWifiMac, and ns3::NqstaWifiMac.
Referenced by GetTypeId().
virtual Time ns3::WifiMac::GetSifs | ( | void | ) | const [pure virtual] |
Implemented in ns3::AdhocWifiMac, ns3::NqapWifiMac, and ns3::NqstaWifiMac.
Referenced by GetTypeId().
virtual Time ns3::WifiMac::GetSlot | ( | void | ) | const [pure virtual] |
Implemented in ns3::AdhocWifiMac, ns3::NqapWifiMac, and ns3::NqstaWifiMac.
Referenced by GetTypeId().
virtual Ssid ns3::WifiMac::GetSsid | ( | void | ) | const [pure virtual] |
Implemented in ns3::AdhocWifiMac, ns3::NqapWifiMac, and ns3::NqstaWifiMac.
Referenced by GetTypeId().
TypeId ns3::WifiMac::GetTypeId | ( | void | ) | [static] |
This method returns the TypeId associated to ns3::WifiMac.
This object is accessible through the following paths with Config::Set and Config::Connect:
Attributes defined for this type:
No TraceSources defined for this type.
Reimplemented from ns3::Object.
Reimplemented in ns3::AdhocWifiMac, ns3::NqapWifiMac, and ns3::NqstaWifiMac.
Definition at line 72 of file wifi-mac.cc.
References ns3::TypeId::AddAttribute(), GetAckTimeout(), GetCtsTimeout(), GetDefaultCtsAckTimeout(), GetDefaultEifsNoDifs(), GetDefaultMaxPropagationDelay(), GetDefaultSifs(), GetDefaultSlot(), GetEifsNoDifs(), GetPifs(), GetSifs(), GetSlot(), GetSsid(), m_maxMsduSize, m_maxPropagationDelay, SetAckTimeout(), SetCtsTimeout(), SetEifsNoDifs(), ns3::TypeId::SetParent(), SetPifs(), SetSifs(), SetSlot(), and SetSsid().
virtual void ns3::WifiMac::SetAckTimeout | ( | Time | ackTimeout | ) | [pure virtual] |
ackTimeout | the duration of an ACK timeout. |
Implemented in ns3::AdhocWifiMac, ns3::NqapWifiMac, and ns3::NqstaWifiMac.
Referenced by GetTypeId().
virtual void ns3::WifiMac::SetAddress | ( | Mac48Address | address | ) | [pure virtual] |
address | the current address of this MAC layer. |
Implemented in ns3::AdhocWifiMac, ns3::NqapWifiMac, and ns3::NqstaWifiMac.
virtual void ns3::WifiMac::SetCtsTimeout | ( | Time | ctsTimeout | ) | [pure virtual] |
ctsTimeout | the duration of a CTS timeout. |
Implemented in ns3::AdhocWifiMac, ns3::NqapWifiMac, and ns3::NqstaWifiMac.
Referenced by GetTypeId().
virtual void ns3::WifiMac::SetEifsNoDifs | ( | Time | eifsNoDifs | ) | [pure virtual] |
eifsNoDifs | the duration of an EIFS minus DIFS. |
This value is used to calculate the EIFS depending on AIFSN.
Implemented in ns3::AdhocWifiMac, ns3::NqapWifiMac, and ns3::NqstaWifiMac.
Referenced by GetTypeId().
virtual void ns3::WifiMac::SetForwardUpCallback | ( | Callback< void, Ptr< Packet >, Mac48Address, Mac48Address > | upCallback | ) | [pure virtual] |
upCallback | the callback to invoke when a packet must be forwarded up the stack. |
Implemented in ns3::AdhocWifiMac, ns3::NqapWifiMac, and ns3::NqstaWifiMac.
virtual void ns3::WifiMac::SetLinkDownCallback | ( | Callback< void > | linkDown | ) | [pure virtual] |
linkDown | the callback to invoke when the link becomes down. |
Implemented in ns3::AdhocWifiMac, ns3::NqapWifiMac, and ns3::NqstaWifiMac.
virtual void ns3::WifiMac::SetLinkUpCallback | ( | Callback< void > | linkUp | ) | [pure virtual] |
linkUp | the callback to invoke when the link becomes up. |
Implemented in ns3::AdhocWifiMac, ns3::NqapWifiMac, and ns3::NqstaWifiMac.
void ns3::WifiMac::SetMaxPropagationDelay | ( | Time | delay | ) |
delay | the max propagation delay. |
Unused for now.
Definition at line 125 of file wifi-mac.cc.
References m_maxPropagationDelay.
virtual void ns3::WifiMac::SetPifs | ( | Time | pifs | ) | [pure virtual] |
pifs | the pifs duration. |
Implemented in ns3::AdhocWifiMac, ns3::NqapWifiMac, and ns3::NqstaWifiMac.
Referenced by GetTypeId().
virtual void ns3::WifiMac::SetSifs | ( | Time | sifs | ) | [pure virtual] |
sifs | the sifs duration |
Implemented in ns3::AdhocWifiMac, ns3::NqapWifiMac, and ns3::NqstaWifiMac.
Referenced by GetTypeId().
virtual void ns3::WifiMac::SetSlot | ( | Time | slotTime | ) | [pure virtual] |
slotTime | the slot duration |
Implemented in ns3::AdhocWifiMac, ns3::NqapWifiMac, and ns3::NqstaWifiMac.
Referenced by GetTypeId().
virtual void ns3::WifiMac::SetSsid | ( | Ssid | ssid | ) | [pure virtual] |
ssid | the current ssid of this MAC layer. |
Implemented in ns3::AdhocWifiMac, ns3::NqapWifiMac, and ns3::NqstaWifiMac.
Referenced by GetTypeId().
phy | the physical layer attached to this MAC. |
Implemented in ns3::AdhocWifiMac, ns3::NqapWifiMac, and ns3::NqstaWifiMac.
virtual void ns3::WifiMac::SetWifiRemoteStationManager | ( | Ptr< WifiRemoteStationManager > | stationManager | ) | [pure virtual] |
stationManager | the station manager attached to this MAC. |
Implemented in ns3::AdhocWifiMac, ns3::NqapWifiMac, and ns3::NqstaWifiMac.
virtual bool ns3::WifiMac::SupportsSendFrom | ( | void | ) | const [pure virtual] |
Implemented in ns3::AdhocWifiMac, ns3::NqapWifiMac, and ns3::NqstaWifiMac.
uint32_t ns3::WifiMac::m_maxMsduSize [private] |
Definition at line 191 of file wifi-mac.h.
Referenced by GetMaxMsduSize(), and GetTypeId().
Time ns3::WifiMac::m_maxPropagationDelay [private] |
Definition at line 190 of file wifi-mac.h.
Referenced by GetMaxPropagationDelay(), GetTypeId(), and SetMaxPropagationDelay().