ns3::UanMacCw Class Reference

CW-MAC A MAC protocol similar in idea to the 802.11 DCF with constant backoff window. More...

#include <uan-mac-cw.h>

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

List of all members.

Public Member Functions

virtual void SetCw (uint32_t cw)
virtual void SetSlotTime (Time duration)
virtual uint32_t GetCw (void)
virtual Time GetSlotTime (void)
virtual Address GetAddress ()
virtual void SetAddress (UanAddress addr)
virtual bool Enqueue (Ptr< Packet > pkt, const Address &dest, uint16_t protocolNumber)
virtual void SetForwardUpCb (Callback< void, Ptr< Packet >, const UanAddress & > cb)
virtual void AttachPhy (Ptr< UanPhy > phy)
virtual Address GetBroadcast (void) const
virtual void Clear (void)
virtual void NotifyRxStart (void)
 Function called by UanPhy object to notify of packet reception.
virtual void NotifyRxEndOk (void)
 Function called by UanPhy object to notify of packet received successfully.
virtual void NotifyRxEndError (void)
 Function called by UanPhy object to notify of packet received in error.
virtual void NotifyCcaStart (void)
 Function called by UanPhy object to notify of channel sensed busy.
virtual void NotifyCcaEnd (void)
 Function called by UanPhy object to notify of channel no longer sensed busy.
virtual void NotifyTxStart (Time duration)
 Function called by UanPhy object to notify of outgoing transmission start.

Static Public Member Functions

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

Protected Member Functions

virtual void DoDispose ()

Detailed Description

CW-MAC A MAC protocol similar in idea to the 802.11 DCF with constant backoff window.

For more information on this MAC protocol, see: Parrish, N.; Tracy, L.; Roy, S.; Arabshahi, P.; Fox, W., "System Design Considerations for Undersea Networks: Link and Multiple Access Protocols," Selected Areas in Communications, IEEE Journal on , vol.26, no.9, pp.1720-1730, December 2008


Member Function Documentation

virtual void ns3::UanMacCw::AttachPhy ( Ptr< UanPhy phy  )  [virtual]

Attach PHY layer to this MAC. Some MACs may be designed to work with multiple PHY layers. Others may only work with one.

Parameters:
phy Phy layer to attach to this MAC

Implements ns3::UanMac.

virtual void ns3::UanMacCw::Clear ( void   )  [virtual]

Clears all pointer references

Implements ns3::UanMac.

virtual void ns3::UanMacCw::DoDispose (  )  [protected, virtual]

This method is called by Object::Dispose or by the object's destructor, whichever comes first.

Subclasses are expected to implement their real destruction code in an overriden version of this method and chain up to their parent's implementation once they are done. i.e., for simplicity, the destructor of every subclass should be empty and its content should be moved to the associated DoDispose method.

It is safe to call GetObject from within this method.

Reimplemented from ns3::Object.

virtual bool ns3::UanMacCw::Enqueue ( Ptr< Packet pkt,
const Address dest,
uint16_t  protocolNumber 
) [virtual]

Enqueue packet to be transmitted

Parameters:
pkt Packet to be transmitted
dest Destination address
protocolNumber Protocol #. Usage varies by MAC

Implements ns3::UanMac.

virtual Address ns3::UanMacCw::GetAddress (  )  [virtual]
Returns:
MAC Address

Implements ns3::UanMac.

virtual Address ns3::UanMacCw::GetBroadcast ( void   )  const [virtual]
Returns:
Broadcast address

Implements ns3::UanMac.

virtual uint32_t ns3::UanMacCw::GetCw ( void   )  [virtual]
Returns:
Contention window size
virtual Time ns3::UanMacCw::GetSlotTime ( void   )  [virtual]
Returns:
slot time duration
static TypeId ns3::UanMacCw::GetTypeId ( void   )  [static]

This method returns the TypeId associated to ns3::UanMacCw.

This object is accessible through the following paths with Config::Set and Config::Connect:

  • /NodeList/[i]/DeviceList/[i]/$ns3::AlohaNoackNetDevice/Phy/$ns3::UanMacCw
  • /NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/BsIpcsPacketClassifier/$ns3::UanMacCw
  • /NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/LinkManager/$ns3::UanMacCw
  • /NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/SSManager/$ns3::UanMacCw
  • /NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/ServiceFlowManager/$ns3::UanMacCw
  • /NodeList/[i]/DeviceList/[i]/$ns3::NonCommunicatingNetDevice/Phy/$ns3::UanMacCw
  • /NodeList/[i]/DeviceList/[i]/$ns3::SubscriberStationNetDevice/Classifier/$ns3::UanMacCw
  • /NodeList/[i]/DeviceList/[i]/$ns3::SubscriberStationNetDevice/LinkManager/$ns3::UanMacCw
  • /NodeList/[i]/DeviceList/[i]/$ns3::SubscriberStationNetDevice/SSScheduler/$ns3::UanMacCw
  • /NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Channel/NoiseModel/$ns3::UanMacCw
  • /NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Channel/PropagationModel/$ns3::UanMacCw
  • /NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Mac/$ns3::UanMacCw
  • /NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Phy/$ns3::UanMacCw
  • /NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Transducer/$ns3::UanMacCw
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/BsIpcsPacketClassifier/$ns3::UanMacCw
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/LinkManager/$ns3::UanMacCw
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/SSManager/$ns3::UanMacCw
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/ServiceFlowManager/$ns3::UanMacCw
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::SubscriberStationNetDevice/Classifier/$ns3::UanMacCw
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::SubscriberStationNetDevice/LinkManager/$ns3::UanMacCw
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::SubscriberStationNetDevice/SSScheduler/$ns3::UanMacCw
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/BandwidthManager/$ns3::UanMacCw
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/BurstProfileManager/$ns3::UanMacCw
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/Channel/$ns3::UanChannel/NoiseModel/$ns3::UanMacCw
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/Channel/$ns3::UanChannel/PropagationModel/$ns3::UanMacCw
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/ConnectionManager/$ns3::UanMacCw
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/Phy/Channel/$ns3::UanChannel/NoiseModel/$ns3::UanMacCw
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/Phy/Channel/$ns3::UanChannel/PropagationModel/$ns3::UanMacCw

Attributes defined for this type:

  • CW: The MAC parameter CW
  • SlotTime: Time slot duration for MAC backoff
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: 20000000ns
    • Flags: construct write read

TraceSources defined for this type:

  • Enqueue: A packet arrived at the MAC for transmission
  • Dequeue: A was passed down to the PHY from the MAC
  • RX: A packet was destined for this MAC and was received

Reimplemented from ns3::Object.

virtual void ns3::UanMacCw::SetAddress ( UanAddress  addr  )  [virtual]
Parameters:
addr UanAddress for this MAC

Implements ns3::UanMac.

virtual void ns3::UanMacCw::SetCw ( uint32_t  cw  )  [virtual]
Parameters:
cw Contention window size
virtual void ns3::UanMacCw::SetForwardUpCb ( Callback< void, Ptr< Packet >, const UanAddress & >  cb  )  [virtual]
Parameters:
cb Callback to be called when a packet is forwarded up to higher layer

Implements ns3::UanMac.

virtual void ns3::UanMacCw::SetSlotTime ( Time  duration  )  [virtual]
Parameters:
duration Slot time duration

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

Generated on 6 Jan 2011 for NS-3 by  doxygen 1.6.1