21 #ifndef UAN_MAC_RC_GW_H
22 #define UAN_MAC_RC_GW_H
27 #include "ns3/nstime.h"
28 #include "ns3/traced-callback.h"
75 virtual void Clear (
void);
152 double ComputeAlpha (uint32_t totalFrames, uint32_t totalBytes, uint32_t n, uint32_t a,
double deltaK);
154 double ComputeExpS (uint32_t a, uint32_t ld, std::vector<double> exppdk);
157 double ComputePiK (uint32_t a, uint32_t n, uint32_t k);
158 double ComputeExpBOverA (uint32_t n, uint32_t a, uint32_t ldlh, std::vector<double> deltaK);
159 uint64_t
NchooseK (uint32_t n, uint32_t k);
std::set< std::pair< Time, UanAddress > > m_sortedRes
keep track of time values and allow control of global simulation resolution
virtual void AttachPhy(Ptr< UanPhy > phy)
uint32_t CompExpMinIndex(uint32_t n, uint32_t k)
TracedCallback< Time, Time, uint32_t, uint32_t, double, uint32_t, double > m_cycleLogger
int64_t AssignStreams(int64_t stream)
forward calls to a chain of CallbackAn ns3::TracedCallback has almost exactly the same API as a norma...
std::map< UanAddress, Time > m_propDelay
uint16_t m_currentRetryRate
bool operator<(const Room &a, const Room &b)
virtual Address GetBroadcast(void) const
Callback< void, Ptr< Packet >, const UanAddress & > m_forwardUpCb
a polymophic address class
std::vector< double > GetExpPdk(void)
void ReceiveError(Ptr< Packet > pkt, double sinr)
double ComputeExpS(uint32_t a, uint32_t ld, std::vector< double > exppdk)
void SendPacket(Ptr< Packet > pkt, uint32_t rate)
Virtual base class for all UAN MAC protocols.
virtual Address GetAddress(void)
uint64_t NchooseK(uint32_t n, uint32_t k)
Abstraction of packet modulation information.
void ReceivePacket(Ptr< Packet > pkt, double sinr, UanTxMode mode)
virtual void SetAddress(UanAddress addr)
TracedCallback< Ptr< const Packet >, UanTxMode > m_rxLogger
uint32_t m_currentRateNum
static TypeId GetTypeId(void)
std::map< UanAddress, Request > m_requests
double ComputePiK(uint32_t a, uint32_t n, uint32_t k)
std::map< UanAddress, AckData > m_ackData
virtual bool Enqueue(Ptr< Packet > pkt, const Address &dest, uint16_t protocolNumber)
double ComputeAlpha(uint32_t totalFrames, uint32_t totalBytes, uint32_t n, uint32_t a, double deltaK)
std::set< uint8_t > rxFrames
a unique identifier for an interface.
double ComputeExpBOverA(uint32_t n, uint32_t a, uint32_t ldlh, std::vector< double > deltaK)
virtual void SetForwardUpCb(Callback< void, Ptr< Packet >, const UanAddress & > cb)