Classes | Public Member Functions | Static Public Member Functions | Protected Member Functions

ns3::UanMacRcGw Class Reference

Gateway side of RC-MAC. More...

#include <uan-mac-rc-gw.h>

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

List of all members.

Classes

struct  AckData
struct  Request

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::UanMacRcGw.

Protected Member Functions

virtual void DoDispose ()

Detailed Description

Gateway side of RC-MAC.

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. UanMacRcGw is the protocol which runs on the gateway nodes.

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

Clears all pointer references

Implements ns3::UanMac.

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

Implements ns3::UanMac.

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

Implements ns3::UanMac.

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

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

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

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

Attributes defined for this type:

  • MaxReservations: Maximum number of reservations to accept per cycle
  • NumberOfRates: Number of rates per Phy layer
  • RetryRate: Number of retry rates per second at non-gateway nodes
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 0.1
    • Flags: construct write read
  • MaxPropDelay: Maximum propagation delay between gateway and non-gateway nodes
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: 2000000000ns
    • Flags: construct write read
  • SIFS: Spacing between frames to account for timing error and processing delay
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: 200000000ns
    • Flags: construct write read
  • NumberOfNodes: Number of non-gateway nodes in this gateway's neighborhood
  • 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
  • TotalRate: Total available channel rate in bps (for a single channel, without splitting reservation channel)
  • RateStep: Increments available for rate assignment in bps
  • FrameSize: Size of data frames in bytes

TraceSources defined for this type:

  • RX: A packet was destined for and received at this MAC layer
  • Cycle: Trace cycle statistics

Reimplemented from ns3::Object.

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

Implements ns3::UanMac.

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