ns-3
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:
Collaboration diagram for ns3::UanMacCw:

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

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:
phyPhy layer to attach to this MAC

Implements ns3::UanMac.

References ns3::MakeCallback(), ns3::UanPhy::RegisterListener(), ns3::UanPhy::SetReceiveErrorCallback(), and ns3::UanPhy::SetReceiveOkCallback().

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

Clears all pointer references

Implements ns3::UanMac.

References ns3::EventId::Cancel(), and ns3::UanPhy::Clear().

Referenced by DoDispose().

void ns3::UanMacCw::DoDispose ( void  )
protectedvirtual

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.

References Clear().

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

Implements ns3::UanMac.

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

This method returns the TypeId associated to 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: +20000000.0ns
    • 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::UanMac.

References ns3::MakeTraceSourceAccessor(), ns3::MilliSeconds(), and ns3::TypeId::SetParent().

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

Implements ns3::UanMac.

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

Implements ns3::UanMac.

void ns3::UanMacCw::SetSlotTime ( Time  duration)
virtual
Parameters:
durationSlot time duration

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