Gateway side of RC-MAC. More...
#include <introspected-doxygen.h>
Classes | |
struct | AckData |
struct | Request |
Public Member Functions | |
int64_t | AssignStreams (int64_t stream) |
virtual void | AttachPhy (Ptr< UanPhy > phy) |
virtual void | Clear (void) |
virtual bool | Enqueue (Ptr< Packet > pkt, const Address &dest, uint16_t protocolNumber) |
virtual Address | GetAddress (void) |
virtual Address | GetBroadcast (void) const |
virtual void | SetAddress (UanAddress addr) |
virtual void | SetForwardUpCb (Callback< void, Ptr< Packet >, const UanAddress & > cb) |
Public Member Functions inherited from ns3::Object | |
void | AggregateObject (Ptr< Object > other) |
void | Dispose (void) |
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) |
Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
SimpleRefCount (const SimpleRefCount &o) | |
uint32_t | GetReferenceCount (void) const |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
void | Ref (void) const |
void | Unref (void) const |
Public Member Functions inherited from ns3::ObjectBase | |
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) |
Static Public Member Functions inherited from ns3::UanMac | |
static TypeId | GetTypeId (void) |
Static Public Member Functions inherited from ns3::Object | |
static TypeId | GetTypeId (void) |
Static Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
static void | Cleanup (void) |
Static Public Member Functions inherited from ns3::ObjectBase | |
static TypeId | GetTypeId (void) |
Protected Member Functions | |
virtual void | DoDispose () |
Protected Member Functions inherited from ns3::Object | |
Object (const Object &o) | |
virtual void | DoInitialize (void) |
virtual void | NotifyNewAggregate (void) |
Protected Member Functions inherited from ns3::ObjectBase | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
virtual void | NotifyConstructionCompleted (void) |
Private Types | |
enum | State { IDLE, INCYCLE, CTSING } |
Private Member Functions | |
uint32_t | CompExpMinIndex (uint32_t n, uint32_t k) |
double | ComputeAlpha (uint32_t totalFrames, uint32_t totalBytes, uint32_t n, uint32_t a, double deltaK) |
double | ComputeExpBOverA (uint32_t n, uint32_t a, uint32_t ldlh, std::vector< double > deltaK) |
double | ComputeExpS (uint32_t a, uint32_t ld, std::vector< double > exppdk) |
double | ComputeExpS (uint32_t a, uint32_t ld) |
double | ComputePiK (uint32_t a, uint32_t n, uint32_t k) |
void | CycleStarted (void) |
void | EndCycle (void) |
uint32_t | FindOptA (void) |
std::vector< double > | GetExpPdk (void) |
uint64_t | NchooseK (uint32_t n, uint32_t k) |
void | ReceiveError (Ptr< Packet > pkt, double sinr) |
void | ReceivePacket (Ptr< Packet > pkt, double sinr, UanTxMode mode) |
void | SendPacket (Ptr< Packet > pkt, uint32_t rate) |
void | StartCycle (void) |
Private Attributes | |
std::map< UanAddress, AckData > | m_ackData |
uint32_t | m_ackSize |
UanAddress | m_address |
bool | m_cleared |
uint32_t | m_ctsSizeG |
uint32_t | m_ctsSizeN |
uint32_t | m_currentRateNum |
uint16_t | m_currentRetryRate |
TracedCallback< Time, Time, uint32_t, uint32_t, double, uint32_t, double > | m_cycleLogger |
Callback< void, Ptr< Packet > , const UanAddress & > | m_forwardUpCb |
uint32_t | m_frameSize |
Time | m_maxDelta |
uint32_t | m_maxRes |
double | m_minRetryRate |
uint32_t | m_numNodes |
uint32_t | m_numRates |
uint16_t | m_numRetryRates |
Ptr< UanPhy > | m_phy |
std::map< UanAddress, Time > | m_propDelay |
uint32_t | m_rateStep |
std::map< UanAddress, Request > | m_requests |
double | m_retryRate |
double | m_retryStep |
uint32_t | m_rtsSize |
TracedCallback< Ptr< const Packet >, UanTxMode > | m_rxLogger |
Time | m_sifs |
std::set< std::pair< Time, UanAddress > > | m_sortedRes |
State | m_state |
uint32_t | m_totalRate |
Gateway side of RC-MAC.
ns3::UanMacRcGw is accessible through the following paths with Config::Set and Config::Connect:
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 (This work is, as of yet, unpublished) acy@ u.was hing ton.e du
Definition at line 60 of file uan-mac-rc-gw.h.
|
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.
stream | first stream index to use |
Implements ns3::UanMac.
Definition at line 737 of file uan-mac-rc-gw.cc.
References NS_LOG_FUNCTION.
Attach PHY layer to this MAC. Some MACs may be designed to work with multiple PHY layers. Others may only work with one.
phy | Phy layer to attach to this MAC |
Implements ns3::UanMac.
Definition at line 212 of file uan-mac-rc-gw.cc.
References ns3::MakeCallback().
|
virtual |
Clears all pointer references
Implements ns3::UanMac.
Definition at line 79 of file uan-mac-rc-gw.cc.
|
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 103 of file uan-mac-rc-gw.cc.
|
virtual |
Enqueue packet to be transmitted
pkt | Packet to be transmitted |
dest | Destination address |
protocolNumber | Protocol #. Usage varies by MAC |
Implements ns3::UanMac.
Definition at line 199 of file uan-mac-rc-gw.cc.
References NS_LOG_WARN.
|
virtual |
|
virtual |
|
virtual |
addr | UanAddress for this MAC |
Implements ns3::UanMac.
Definition at line 193 of file uan-mac-rc-gw.cc.
|
virtual |
cb | Callback to be called when a packet is forwarded up to higher layer |
Implements ns3::UanMac.
Definition at line 206 of file uan-mac-rc-gw.cc.