A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ns3::UanMacRcGw Class Reference

Gateway side of RC-MAC. More...

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

+ Inheritance diagram for ns3::UanMacRcGw:
+ Collaboration diagram for ns3::UanMacRcGw:

Classes

struct  AckData
 Packet ACK data. More...
 
struct  Request
 Reservation request. More...
 

Public Member Functions

 UanMacRcGw ()
 Constructor. More...
 
virtual ~UanMacRcGw ()
 Dummy destructor, see DoDispose. More...
 
int64_t AssignStreams (int64_t stream)
 Assign a fixed random variable stream number to the random variables used by this model. More...
 
virtual void AttachPhy (Ptr< UanPhy > phy)
 Attach PHY layer to this MAC. More...
 
virtual void Clear (void)
 Clears all pointer references. More...
 
virtual bool Enqueue (Ptr< Packet > pkt, const Address &dest, uint16_t protocolNumber)
 Enqueue packet to be transmitted. More...
 
virtual Address GetAddress (void)
 Get the MAC Address. More...
 
virtual Address GetBroadcast (void) const
 Get the broadcast address. More...
 
virtual void SetAddress (UanAddress addr)
 Set the address. More...
 
virtual void SetForwardUpCb (Callback< void, Ptr< Packet >, const UanAddress & > cb)
 Set the callback to forward packets up to higher layers. More...
 
- Public Member Functions inherited from ns3::Object
 Object ()
 
virtual ~Object ()
 
void AggregateObject (Ptr< Object > other)
 
void Dispose (void)
 Run the DoDispose methods of this object and all the objects aggregated to it. More...
 
AggregateIterator GetAggregateIterator (void) const
 
virtual TypeId GetInstanceTypeId (void) const
 
template<typename T >
Ptr< T > GetObject (void) const
 
template<typename T >
Ptr< T > GetObject (TypeId tid) const
 
void Initialize (void)
 This method calls the virtual DoInitialize method on all the objects aggregated to this object. More...
 
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 Constructor. More...
 
 SimpleRefCount (const SimpleRefCount &o)
 Copy constructor. More...
 
uint32_t GetReferenceCount (void) const
 Get the reference count of the object. More...
 
SimpleRefCountoperator= (const SimpleRefCount &o)
 Assignment. More...
 
void Ref (void) const
 Increment the reference count. More...
 
void Unref (void) const
 Decrement the reference count. More...
 
- Public Member Functions inherited from ns3::ObjectBase
virtual ~ObjectBase ()
 Virtual destructor. More...
 
void GetAttribute (std::string name, AttributeValue &value) const
 
bool GetAttributeFailSafe (std::string name, AttributeValue &attribute) const
 
void SetAttribute (std::string name, const AttributeValue &value)
 
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
 
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
 
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
 
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
 
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)
 

Static Public Member Functions

static TypeId GetTypeId (void)
 Register this type. More...
 
- Static Public Member Functions inherited from ns3::UanMac
static TypeId GetTypeId (void)
 Register this type. More...
 
- Static Public Member Functions inherited from ns3::Object
static TypeId GetTypeId (void)
 Register this type. More...
 
- Static Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
static void Cleanup (void)
 Noop. More...
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId (void)
 Get the type ID. More...
 

Protected Member Functions

virtual void DoDispose ()
 This method is called by Object::Dispose or by the object's destructor, whichever comes first. More...
 
- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
 
virtual void DoInitialize (void)
 This method is called only once by Object::Initialize. More...
 
virtual void NotifyNewAggregate (void)
 This method is invoked whenever two sets of objects are aggregated together. More...
 
- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 
virtual void NotifyConstructionCompleted (void)
 This method is invoked once all member attributes have been initialized. More...
 

Private Types

enum  State { IDLE, INCYCLE, CTSING }
 Gateway state. More...
 

Private Member Functions

uint32_t CompExpMinIndex (uint32_t n, uint32_t k)
 Index to the k'th expected delay among n nodes. More...
 
double ComputeAlpha (uint32_t totalFrames, uint32_t totalBytes, uint32_t n, uint32_t a, double deltaK)
 Compute alpha parameter. More...
 
double ComputeExpBOverA (uint32_t n, uint32_t a, uint32_t ldlh, std::vector< double > deltaK)
 Numeric function. More...
 
double ComputeExpS (uint32_t a, uint32_t ld, std::vector< double > exppdk)
 Throughput for a reservations with framesize ld, given expected delays exppdk. More...
 
double ComputeExpS (uint32_t a, uint32_t ld)
 Throughput for a reservations with framesize ld. More...
 
double ComputePiK (uint32_t a, uint32_t n, uint32_t k)
 Numeric function. More...
 
void CycleStarted (void)
 Set state to INCYCLE. More...
 
void EndCycle (void)
 End cycle by scheduling pending ACKs. More...
 
uint32_t FindOptA (void)
 Compute the optimum maximum number of reservations to accept per cycle. More...
 
std::vector< double > GetExpPdk (void)
 Get the expected propagation delay to each node. More...
 
uint64_t NchooseK (uint32_t n, uint32_t k)
 Binomial coefficient. More...
 
void ReceiveError (Ptr< Packet > pkt, double sinr)
 PHY receive error callback. More...
 
void ReceivePacket (Ptr< Packet > pkt, double sinr, UanTxMode mode)
 PHY recieve ok callback. More...
 
void SendPacket (Ptr< Packet > pkt, uint32_t rate)
 Send packet on PHY. More...
 
void StartCycle (void)
 Cycle through pending requests. More...
 

Private Attributes

std::map< UanAddress, AckDatam_ackData
 AckData for each node. More...
 
uint32_t m_ackSize
 Size of UanHeaderCommon and UanHeaderRcAck. More...
 
UanAddress m_address
 The MAC address. More...
 
bool m_cleared
 Flag when we've been cleared. More...
 
uint32_t m_ctsSizeG
 Size of UanHeaderCommon and UanHeaderRcCtsGlobal. More...
 
uint32_t m_ctsSizeN
 Size of UanHeaderRcCts. More...
 
uint32_t m_currentRateNum
 Rate number corresponding to data rate of current cycle. More...
 
uint16_t m_currentRetryRate
 Retry rate number for current cycle. More...
 
TracedCallback< Time, Time,
uint32_t, uint32_t, double,
uint32_t, double > 
m_cycleLogger
 A packet was destined for and received at this MAC layer. More...
 
Callback< void, Ptr< Packet >
, const UanAddress & > 
m_forwardUpCb
 Forwarding up callback. More...
 
uint32_t m_frameSize
 Size of data frames in bytes. More...
 
Time m_maxDelta
 Maximum propagation delay between gateway and non-gateway nodes . More...
 
uint32_t m_maxRes
 Maximum number of reservations to accept per cycle. More...
 
double m_minRetryRate
 Smallest allowed RTS retry rate. More...
 
uint32_t m_numNodes
 Number of non-gateway nodes in this gateway's neighborhood. More...
 
uint32_t m_numRates
 Number of rates per Phy layer. More...
 
Ptr< UanPhym_phy
 PHY layer attached to this MAC. More...
 
std::map< UanAddress, Timem_propDelay
 Propagation delay to each node. More...
 
uint32_t m_rateStep
 Increments available for rate assignment in bps. More...
 
std::map< UanAddress, Requestm_requests
 Request for each node. More...
 
double m_retryStep
 Retry rate increment. More...
 
uint32_t m_rtsSize
 Size of UanHeaderCommon and UanHeaderRcRts. More...
 
TracedCallback< Ptr< const
Packet >, UanTxMode
m_rxLogger
 A packet was destined for and received at this MAC layer. More...
 
Time m_sifs
 Spacing between frames to account for timing error and processing delay. More...
 
std::set< std::pair< Time,
UanAddress > > 
m_sortedRes
 Queued request times. More...
 
State m_state
 Gateway processing state. More...
 
uint32_t m_totalRate
 Total available channel rate in bps (for a single channel, without splitting reservation channel). More...
 

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 lentr.nosp@m.acy@.nosp@m.u.was.nosp@m.hing.nosp@m.ton.e.nosp@m.du (This work is, as of yet, unpublished)

Config Paths

ns3::UanMacRcGw is accessible through the following paths with Config::Set and Config::Connect:

  • /NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Mac/$ns3::UanMacRcGw

Attributes

  • MaxReservations: Maximum number of reservations to accept per cycle.
  • NumberOfRates: Number of rates per Phy layer.
  • MaxPropDelay: Maximum propagation delay between gateway and non-gateway nodes.
    • Set with class: ns3::TimeValue
    • Underlying type: Time -9223372036854775808.0ns:+9223372036854775807.0ns
    • Initial value: +2000000000.0ns
    • Flags: construct write read
  • SIFS: Spacing between frames to account for timing error and processing delay.
    • Set with class: ns3::TimeValue
    • Underlying type: Time -9223372036854775808.0ns:+9223372036854775807.0ns
    • Initial value: +200000000.0ns
    • 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
  • 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

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

Definition at line 57 of file uan-mac-rc-gw.h.

Member Enumeration Documentation

enum ns3::UanMacRcGw::State
private

Gateway state.

Enumerator
IDLE 

Initial idle state.

INCYCLE 

Cycling through nodes.

CTSING 

Sending CTS.

Definition at line 81 of file uan-mac-rc-gw.h.

Constructor & Destructor Documentation

ns3::UanMacRcGw::~UanMacRcGw ( )
virtual

Dummy destructor, see DoDispose.

Definition at line 69 of file uan-mac-rc-gw.cc.

Member Function Documentation

int64_t ns3::UanMacRcGw::AssignStreams ( int64_t  stream)
virtual

Assign a fixed random variable stream number to the random variables used by this model.

Return the number of streams (possibly zero) that have been assigned.

Parameters
streamFirst stream index to use.
Returns
The number of stream indices assigned by this model.

Implements ns3::UanMac.

Definition at line 723 of file uan-mac-rc-gw.cc.

References NS_LOG_FUNCTION.

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

Implements ns3::UanMac.

Definition at line 197 of file uan-mac-rc-gw.cc.

References m_phy, ns3::MakeCallback(), ReceiveError(), and ReceivePacket().

+ Here is the call graph for this function:

void ns3::UanMacRcGw::Clear ( void  )
virtual

Clears all pointer references.

Implements ns3::UanMac.

Definition at line 74 of file uan-mac-rc-gw.cc.

References m_ackData, m_cleared, m_phy, m_propDelay, m_requests, and m_sortedRes.

Referenced by DoDispose().

+ Here is the caller graph for this function:

uint32_t ns3::UanMacRcGw::CompExpMinIndex ( uint32_t  n,
uint32_t  k 
)
private

Index to the k'th expected delay among n nodes.

Parameters
nNumber of nodes.
kTarget index.
Returns
The expected index.

Definition at line 637 of file uan-mac-rc-gw.cc.

References NchooseK().

Referenced by GetExpPdk().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

double ns3::UanMacRcGw::ComputeAlpha ( uint32_t  totalFrames,
uint32_t  totalBytes,
uint32_t  n,
uint32_t  a,
double  deltaK 
)
private

Compute alpha parameter.

Parameters
totalFramesTotal number of frames in m_requests.
totalBytesTotal number of bytes in m_requests.
nNumber of nodes.
am_maxRes, or optimal A value.
deltaKPropagation delay.
Returns
Alpha parameter.

Definition at line 543 of file uan-mac-rc-gw.cc.

References ns3::Time::GetSeconds(), m_ctsSizeG, m_maxDelta, m_rtsSize, m_sifs, m_totalRate, NS_ASSERT_MSG, and visualizer.higcontainer::w.

Referenced by ComputeExpBOverA(), ComputeExpS(), and StartCycle().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

double ns3::UanMacRcGw::ComputeExpBOverA ( uint32_t  n,
uint32_t  a,
uint32_t  ldlh,
std::vector< double >  deltaK 
)
private

Numeric function.

Parameters
nNumber of nodes.
aNumber of reservations.
ldlhSum of common header length and frame size.
deltaKResult of GetExpPdk
Returns
value.

Definition at line 657 of file uan-mac-rc-gw.cc.

References ComputeAlpha(), ComputePiK(), m_ackSize, m_ctsSizeG, m_ctsSizeN, and m_totalRate.

Referenced by ComputeExpS().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

double ns3::UanMacRcGw::ComputeExpS ( uint32_t  a,
uint32_t  ld,
std::vector< double >  exppdk 
)
private

Throughput for a reservations with framesize ld, given expected delays exppdk.

Parameters
aNumber of reservations.
ldFrame size.
exppdkExpected delays, given by GetExpPdk.
Returns
Expected throughput.

Definition at line 602 of file uan-mac-rc-gw.cc.

References ComputeAlpha(), ComputeExpBOverA(), ComputePiK(), ns3::Time::GetSeconds(), ns3::UanHeaderCommon::GetSerializedSize(), m_ctsSizeG, m_maxDelta, m_numNodes, m_rtsSize, m_sifs, m_totalRate, NS_LOG_DEBUG, and s.

Referenced by ComputeExpS(), and FindOptA().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

double ns3::UanMacRcGw::ComputeExpS ( uint32_t  a,
uint32_t  ld 
)
private

Throughput for a reservations with framesize ld.

Parameters
aNumber of reservations.
ldFrame size.
Returns
Expected throughput.

Definition at line 631 of file uan-mac-rc-gw.cc.

References ComputeExpS(), and GetExpPdk().

+ Here is the call graph for this function:

double ns3::UanMacRcGw::ComputePiK ( uint32_t  a,
uint32_t  n,
uint32_t  k 
)
private

Numeric function.

Parameters
aNumber of reservations.
nnumber of nodes.
kK'th node.
Returns
Value.

Definition at line 650 of file uan-mac-rc-gw.cc.

References NchooseK().

Referenced by ComputeExpBOverA(), and ComputeExpS().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::UanMacRcGw::CycleStarted ( void  )
private

Set state to INCYCLE.

Definition at line 460 of file uan-mac-rc-gw.cc.

References INCYCLE, and m_state.

Referenced by StartCycle().

+ Here is the caller graph for this function:

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

Definition at line 98 of file uan-mac-rc-gw.cc.

References Clear(), and ns3::Object::DoDispose().

+ Here is the call graph for this function:

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

Enqueue packet to be transmitted.

Parameters
pktPacket to be transmitted.
destDestination address.
protocolNumberProtocol number. Usage varies by MAC.
Returns
True if packet was successfully enqueued.

Implements ns3::UanMac.

Definition at line 184 of file uan-mac-rc-gw.cc.

References NS_LOG_WARN.

uint32_t ns3::UanMacRcGw::FindOptA ( void  )
private

Compute the optimum maximum number of reservations to accept per cycle.

Returns
Optimum number.

Definition at line 699 of file uan-mac-rc-gw.cc.

References ComputeExpS(), m_frameSize, ns3::Simulator::Now(), and NS_LOG_DEBUG.

Referenced by StartCycle().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Address ns3::UanMacRcGw::GetAddress ( void  )
virtual

Get the MAC Address.

Returns
MAC Address.

Implements ns3::UanMac.

Definition at line 172 of file uan-mac-rc-gw.cc.

References m_address.

Address ns3::UanMacRcGw::GetBroadcast ( void  ) const
virtual

Get the broadcast address.

Returns
The broadcast address.

Implements ns3::UanMac.

Definition at line 210 of file uan-mac-rc-gw.cc.

References ns3::UanAddress::GetBroadcast().

+ Here is the call graph for this function:

std::vector< double > ns3::UanMacRcGw::GetExpPdk ( void  )
private

Get the expected propagation delay to each node.

Returns
Vector of expected propagation delays.

Definition at line 574 of file uan-mac-rc-gw.cc.

References CompExpMinIndex(), ns3::Time::GetSeconds(), m_maxDelta, m_numNodes, and m_propDelay.

Referenced by ComputeExpS().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Register this type.

Returns
The type ID.

Definition at line 104 of file uan-mac-rc-gw.cc.

References m_cycleLogger, m_frameSize, m_maxDelta, m_maxRes, m_minRetryRate, m_numNodes, m_numRates, m_rateStep, m_retryStep, m_rxLogger, m_sifs, m_totalRate, ns3::MakeTimeChecker(), ns3::MakeTraceSourceAccessor(), and ns3::TypeId::SetParent().

+ Here is the call graph for this function:

uint64_t ns3::UanMacRcGw::NchooseK ( uint32_t  n,
uint32_t  k 
)
private

Binomial coefficient.

Parameters
nPool size.
kSelection size.
Returns
Binomial coefficient n choose k.

Definition at line 676 of file uan-mac-rc-gw.cc.

Referenced by CompExpMinIndex(), and ComputePiK().

+ Here is the caller graph for this function:

void ns3::UanMacRcGw::ReceiveError ( Ptr< Packet pkt,
double  sinr 
)
private

PHY receive error callback.

Parameters
pktThe failed packet.
sinrThe SINR value on the channel.

Definition at line 205 of file uan-mac-rc-gw.cc.

Referenced by AttachPhy().

+ Here is the caller graph for this function:

void ns3::UanMacRcGw::SendPacket ( Ptr< Packet pkt,
uint32_t  rate 
)
private

Send packet on PHY.

Parameters
pktThe Packet.
rateThe UanTxMode number, m_currentRateNum.

Definition at line 511 of file uan-mac-rc-gw.cc.

References ns3::UanHeaderCommon::GetDest(), ns3::Packet::GetSize(), ns3::UanHeaderCommon::GetType(), m_phy, ns3::Simulator::Now(), NS_LOG_DEBUG, ns3::Packet::PeekHeader(), ns3::UanMacRc::TYPE_ACK, ns3::UanMacRc::TYPE_CTS, ns3::UanMacRc::TYPE_DATA, ns3::UanMacRc::TYPE_GWPING, and ns3::UanMacRc::TYPE_RTS.

Referenced by EndCycle(), and StartCycle().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::UanMacRcGw::SetAddress ( UanAddress  addr)
virtual

Set the address.

Parameters
addrUanAddress for this MAC.

Implements ns3::UanMac.

Definition at line 178 of file uan-mac-rc-gw.cc.

References m_address.

void ns3::UanMacRcGw::SetForwardUpCb ( Callback< void, Ptr< Packet >, const UanAddress & >  cb)
virtual

Set the callback to forward packets up to higher layers.

Parameters
cbThe callback. packet The packet. address The source address.

Implements ns3::UanMac.

Definition at line 191 of file uan-mac-rc-gw.cc.

References m_forwardUpCb.

Member Data Documentation

std::map<UanAddress, AckData> ns3::UanMacRcGw::m_ackData
private

AckData for each node.

Definition at line 138 of file uan-mac-rc-gw.h.

Referenced by Clear(), EndCycle(), ReceivePacket(), and StartCycle().

uint32_t ns3::UanMacRcGw::m_ackSize
private

Size of UanHeaderCommon and UanHeaderRcAck.

Definition at line 123 of file uan-mac-rc-gw.h.

Referenced by ComputeExpBOverA(), EndCycle(), StartCycle(), and UanMacRcGw().

UanAddress ns3::UanMacRcGw::m_address
private

The MAC address.

Definition at line 115 of file uan-mac-rc-gw.h.

Referenced by EndCycle(), GetAddress(), ReceivePacket(), SetAddress(), and StartCycle().

bool ns3::UanMacRcGw::m_cleared
private

Flag when we've been cleared.

Definition at line 146 of file uan-mac-rc-gw.h.

Referenced by Clear().

uint32_t ns3::UanMacRcGw::m_ctsSizeG
private
uint32_t ns3::UanMacRcGw::m_ctsSizeN
private

Size of UanHeaderRcCts.

Definition at line 121 of file uan-mac-rc-gw.h.

Referenced by ComputeExpBOverA(), StartCycle(), and UanMacRcGw().

uint32_t ns3::UanMacRcGw::m_currentRateNum
private

Rate number corresponding to data rate of current cycle.

Definition at line 125 of file uan-mac-rc-gw.h.

Referenced by EndCycle(), and StartCycle().

uint16_t ns3::UanMacRcGw::m_currentRetryRate
private

Retry rate number for current cycle.

Definition at line 124 of file uan-mac-rc-gw.h.

Referenced by StartCycle().

TracedCallback<Time, Time, uint32_t, uint32_t, double, uint32_t, double> ns3::UanMacRcGw::m_cycleLogger
private

A packet was destined for and received at this MAC layer.

Start time min propagation delay reservations frames bytes window size CTS rate retry rate

Definition at line 163 of file uan-mac-rc-gw.h.

Referenced by GetTypeId(), and StartCycle().

Callback<void, Ptr<Packet>, const UanAddress& > ns3::UanMacRcGw::m_forwardUpCb
private

Forwarding up callback.

Definition at line 112 of file uan-mac-rc-gw.h.

Referenced by ReceivePacket(), and SetForwardUpCb().

uint32_t ns3::UanMacRcGw::m_frameSize
private

Size of data frames in bytes.

Definition at line 129 of file uan-mac-rc-gw.h.

Referenced by FindOptA(), and GetTypeId().

Time ns3::UanMacRcGw::m_maxDelta
private

Maximum propagation delay between gateway and non-gateway nodes .

Definition at line 116 of file uan-mac-rc-gw.h.

Referenced by ComputeAlpha(), ComputeExpS(), GetExpPdk(), GetTypeId(), ReceivePacket(), and StartCycle().

uint32_t ns3::UanMacRcGw::m_maxRes
private

Maximum number of reservations to accept per cycle.

Definition at line 118 of file uan-mac-rc-gw.h.

Referenced by GetTypeId(), and StartCycle().

double ns3::UanMacRcGw::m_minRetryRate
private

Smallest allowed RTS retry rate.

Definition at line 131 of file uan-mac-rc-gw.h.

Referenced by GetTypeId(), and StartCycle().

uint32_t ns3::UanMacRcGw::m_numNodes
private

Number of non-gateway nodes in this gateway's neighborhood.

Definition at line 126 of file uan-mac-rc-gw.h.

Referenced by ComputeExpS(), GetExpPdk(), GetTypeId(), and StartCycle().

uint32_t ns3::UanMacRcGw::m_numRates
private

Number of rates per Phy layer.

Definition at line 119 of file uan-mac-rc-gw.h.

Referenced by GetTypeId(), and StartCycle().

Ptr<UanPhy> ns3::UanMacRcGw::m_phy
private

PHY layer attached to this MAC.

Definition at line 114 of file uan-mac-rc-gw.h.

Referenced by AttachPhy(), Clear(), EndCycle(), SendPacket(), and StartCycle().

std::map<UanAddress, Time> ns3::UanMacRcGw::m_propDelay
private

Propagation delay to each node.

Definition at line 135 of file uan-mac-rc-gw.h.

Referenced by Clear(), GetExpPdk(), and ReceivePacket().

uint32_t ns3::UanMacRcGw::m_rateStep
private

Increments available for rate assignment in bps.

Definition at line 128 of file uan-mac-rc-gw.h.

Referenced by GetTypeId(), and StartCycle().

std::map<UanAddress, Request> ns3::UanMacRcGw::m_requests
private

Request for each node.

Definition at line 141 of file uan-mac-rc-gw.h.

Referenced by Clear(), ReceivePacket(), and StartCycle().

double ns3::UanMacRcGw::m_retryStep
private

Retry rate increment.

Definition at line 132 of file uan-mac-rc-gw.h.

Referenced by GetTypeId(), and StartCycle().

uint32_t ns3::UanMacRcGw::m_rtsSize
private

Size of UanHeaderCommon and UanHeaderRcRts.

Definition at line 120 of file uan-mac-rc-gw.h.

Referenced by ComputeAlpha(), ComputeExpS(), StartCycle(), and UanMacRcGw().

TracedCallback<Ptr<const Packet>, UanTxMode > ns3::UanMacRcGw::m_rxLogger
private

A packet was destined for and received at this MAC layer.

Definition at line 149 of file uan-mac-rc-gw.h.

Referenced by GetTypeId(), and ReceivePacket().

Time ns3::UanMacRcGw::m_sifs
private

Spacing between frames to account for timing error and processing delay.

Definition at line 117 of file uan-mac-rc-gw.h.

Referenced by ComputeAlpha(), ComputeExpS(), EndCycle(), GetTypeId(), and StartCycle().

std::set<std::pair<Time, UanAddress> > ns3::UanMacRcGw::m_sortedRes
private

Queued request times.

Definition at line 143 of file uan-mac-rc-gw.h.

Referenced by Clear(), ReceivePacket(), and StartCycle().

State ns3::UanMacRcGw::m_state
private

Gateway processing state.

Definition at line 86 of file uan-mac-rc-gw.h.

Referenced by CycleStarted(), ReceivePacket(), and StartCycle().

uint32_t ns3::UanMacRcGw::m_totalRate
private

Total available channel rate in bps (for a single channel, without splitting reservation channel).

Definition at line 127 of file uan-mac-rc-gw.h.

Referenced by ComputeAlpha(), ComputeExpBOverA(), ComputeExpS(), GetTypeId(), and StartCycle().


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