Public Member Functions | Static Public Member Functions | Private Member Functions

ns3::WifiMac Class Reference

base class for all MAC-level wifi objects. More...

#include <wifi-mac.h>

Inheritance diagram for ns3::WifiMac:
Inheritance graph
[legend]
Collaboration diagram for ns3::WifiMac:
Collaboration graph
[legend]

List of all members.

Public Member Functions

virtual void SetSlot (Time slotTime)=0
virtual void SetSifs (Time sifs)=0
virtual void SetEifsNoDifs (Time eifsNoDifs)=0
void SetPifs (Time pifs)
void SetCtsTimeout (Time ctsTimeout)
void SetAckTimeout (Time ackTimeout)
void SetMaxPropagationDelay (Time delay)
Time GetPifs (void) const
virtual Time GetSifs (void) const =0
virtual Time GetSlot (void) const =0
virtual Time GetEifsNoDifs (void) const =0
Time GetCtsTimeout (void) const
Time GetAckTimeout (void) const
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 Mac48Address GetBssid (void) const =0
virtual void SetAddress (Mac48Address address)=0
virtual void SetSsid (Ssid ssid)=0

Static Public Member Functions

static TypeId GetTypeId (void)
 This method returns the TypeId associated to ns3::WifiMac.

Private Member Functions

virtual void Enqueue (Ptr< const Packet > packet, Mac48Address to)=0
virtual void SetWifiPhy (Ptr< WifiPhy > phy)=0
virtual void SetWifiRemoteStationManager (Ptr< WifiRemoteStationManager > stationManager)=0
virtual void SetForwardUpCallback (Callback< void, Ptr< Packet >, const Mac48Address & > upCallback)=0
virtual void SetLinkUpCallback (Callback< void > linkUp)=0
virtual void SetLinkDownCallback (Callback< void > linkDown)=0

Detailed Description

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).


Member Function Documentation

virtual void ns3::WifiMac::Enqueue ( Ptr< const Packet packet,
Mac48Address  to 
) [private, pure virtual]
Parameters:
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.

Time ns3::WifiMac::GetAckTimeout ( void   )  const
Returns:
the current ACK timeout duration.
virtual Mac48Address ns3::WifiMac::GetAddress ( void   )  const [pure virtual]
Returns:
the MAC address associated to this MAC layer.

Implemented in ns3::AdhocWifiMac, ns3::NqapWifiMac, and ns3::NqstaWifiMac.

virtual Mac48Address ns3::WifiMac::GetBssid ( void   )  const [pure virtual]
Returns:
the BSSID associated to the current SSID.

If we are an AP, this is the address of the AP itself. If are a STA, this is the address of the AP with which the STA is associated.

Implemented in ns3::AdhocWifiMac, ns3::NqapWifiMac, and ns3::NqstaWifiMac.

Time ns3::WifiMac::GetCtsTimeout ( void   )  const
Returns:
the current CTS timeout duration.
virtual Time ns3::WifiMac::GetEifsNoDifs ( void   )  const [pure virtual]
Returns:
the current EIFS minus DIFS duration

Implemented in ns3::AdhocWifiMac, ns3::NqapWifiMac, and ns3::NqstaWifiMac.

uint32_t ns3::WifiMac::GetMaxMsduSize ( void   )  const
Returns:
the maximum size of a MAC-level data payload.
Time ns3::WifiMac::GetMaxPropagationDelay ( void   )  const

Unused for now.

Time ns3::WifiMac::GetMsduLifetime ( void   )  const

Unused for now.

Time ns3::WifiMac::GetPifs ( void   )  const
Returns:
the current PIFS duration.
virtual Time ns3::WifiMac::GetSifs ( void   )  const [pure virtual]
Returns:
the current SIFS duration.

Implemented in ns3::AdhocWifiMac, ns3::NqapWifiMac, and ns3::NqstaWifiMac.

virtual Time ns3::WifiMac::GetSlot ( void   )  const [pure virtual]
Returns:
the current slot duration.

Implemented in ns3::AdhocWifiMac, ns3::NqapWifiMac, and ns3::NqstaWifiMac.

virtual Ssid ns3::WifiMac::GetSsid ( void   )  const [pure virtual]
Returns:
the ssid which this MAC layer is going to try to stay in.

Implemented in ns3::AdhocWifiMac, ns3::NqapWifiMac, and ns3::NqstaWifiMac.

static 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:

  • /NodeList/[i]/DeviceList/[i]/$ns3WifiNetDevice/Mac

Attributes defined for this type:

  • CtsTimeout: When this timeout expires, the RTS/CTS handshake has failed.
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: 75666ns
    • Flags: construct write read
  • AckTimeout: When this timeout expires, the DATA/ACK handshake has failed.
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: 75666ns
    • Flags: construct write read
  • Sifs: The value of the SIFS constant.
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: 16000ns
    • Flags: construct write read
  • EifsNoDifs: The value of EIFS-DIFS
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: 60000ns
    • Flags: construct write read
  • Slot: The duration of a Slot.
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: 9000ns
    • Flags: construct write read
  • Pifs: The value of the PIFS constant.
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: 25000ns
    • Flags: construct write read
  • MaxPropagationDelay: The maximum propagation delay. Unused for now.
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: 3333ns
    • Flags: construct write read
  • MaxMsduSize: The maximum size of an MSDU accepted by the MAC layer.This value conforms to the specification.
  • Ssid: The ssid we want to belong to.
    • Set with class: SsidValue
    • Underlying type: Ssid
    • Initial value: default
    • Flags: construct write read

No TraceSources defined for this type.

Reimplemented from ns3::Object.

Reimplemented in ns3::AdhocWifiMac, ns3::NqapWifiMac, and ns3::NqstaWifiMac.

void ns3::WifiMac::SetAckTimeout ( Time  ackTimeout  ) 
Parameters:
ackTimeout the duration of an ACK timeout.
virtual void ns3::WifiMac::SetAddress ( Mac48Address  address  )  [pure virtual]
Parameters:
address the current address of this MAC layer.

Implemented in ns3::AdhocWifiMac, ns3::NqapWifiMac, and ns3::NqstaWifiMac.

void ns3::WifiMac::SetCtsTimeout ( Time  ctsTimeout  ) 
Parameters:
ctsTimeout the duration of a CTS timeout.
virtual void ns3::WifiMac::SetEifsNoDifs ( Time  eifsNoDifs  )  [pure virtual]
Parameters:
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.

virtual void ns3::WifiMac::SetForwardUpCallback ( Callback< void, Ptr< Packet >, const Mac48Address & >  upCallback  )  [private, pure virtual]
Parameters:
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  )  [private, pure virtual]
Parameters:
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  )  [private, pure virtual]
Parameters:
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  ) 
Parameters:
delay the max propagation delay.

Unused for now.

void ns3::WifiMac::SetPifs ( Time  pifs  ) 
Parameters:
pifs the pifs duration.
virtual void ns3::WifiMac::SetSifs ( Time  sifs  )  [pure virtual]
Parameters:
sifs the sifs duration

Implemented in ns3::AdhocWifiMac, ns3::NqapWifiMac, and ns3::NqstaWifiMac.

virtual void ns3::WifiMac::SetSlot ( Time  slotTime  )  [pure virtual]
Parameters:
slotTime the slot duration

Implemented in ns3::AdhocWifiMac, ns3::NqapWifiMac, and ns3::NqstaWifiMac.

virtual void ns3::WifiMac::SetSsid ( Ssid  ssid  )  [pure virtual]
Parameters:
ssid the current ssid of this MAC layer.

Implemented in ns3::AdhocWifiMac, ns3::NqapWifiMac, and ns3::NqstaWifiMac.

virtual void ns3::WifiMac::SetWifiPhy ( Ptr< WifiPhy phy  )  [private, pure virtual]
Parameters:
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  )  [private, pure virtual]
Parameters:
stationManager the station manager attached to this MAC.

Implemented in ns3::AdhocWifiMac, ns3::NqapWifiMac, and ns3::NqstaWifiMac.


The documentation for this class was generated from the following files: