Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions

ns3::UanMacRc Class Reference

Non-gateway node MAC for reservation channel MAC protocol. More...

#include <uan-mac-rc.h>

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

List of all members.

Public Types

enum  {
  TYPE_DATA, TYPE_GWPING, TYPE_RTS, TYPE_CTS,
  TYPE_ACK
}

Public Member Functions

virtual Address GetAddress (void)
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)

Static Public Member Functions

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

Protected Member Functions

void DoDispose ()

Detailed Description

Non-gateway node MAC for reservation channel MAC protocol.

This MAC protocol assumes a network topology where all traffic is destined for a set of GW nodes which are connected via some out of band (RF?) means. This particular implementation assumes that there is only a single gateway.

For more information on class operation email lentracy@u.washington.edu (This work is, as of yet, unpublished)


Member Function Documentation

virtual void ns3::UanMacRc::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::UanMacRc::Clear ( void   )  [virtual]

Clears all pointer references

Implements ns3::UanMac.

void ns3::UanMacRc::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::UanMacRc::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::UanMacRc::GetAddress ( void   )  [virtual]
Returns:
MAC Address

Implements ns3::UanMac.

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

Implements ns3::UanMac.

static TypeId ns3::UanMacRc::GetTypeId ( void   )  [static]

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

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

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

Attributes defined for this type:

  • RetryRate: Number of retry attempts per second (of RTS/GWPING)
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 0.2
    • Flags: construct write read
  • MaxFrames: Maximum number of frames to include in a single RTS
  • QueueLimit: Maximum packets to queue at MAC
  • SIFS: Spacing to give between frames (this should match gateway)
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: 200000000ns
    • Flags: construct write read
  • NumberOfRates: Number of rate divisions supported by each PHY
  • MinRetryRate: Smallest allowed RTS retry rate
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 0.01
    • Flags: construct write read
  • RetryStep: Retry rate increment
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 0.01
    • Flags: construct write read
  • NumberOfRetryRates: Number of retry rates
  • MaxPropDelay: Maximum possible propagation delay to gateway
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: 2000000000ns
    • Flags: construct write read

TraceSources defined for this type:

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

Reimplemented from ns3::Object.

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

Implements ns3::UanMac.

virtual void ns3::UanMacRc::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.


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