21 #ifndef UAN_MAC_RC_GW_H
22 #define UAN_MAC_RC_GW_H
25 #include "uan-address.h"
27 #include "ns3/nstime.h"
28 #include "ns3/traced-callback.h"
66 static TypeId GetTypeId (
void);
75 virtual void Clear (
void);
105 std::set<uint8_t> rxFrames;
120 uint16_t m_currentRetryRate;
121 uint32_t m_currentRateNum;
123 uint32_t m_totalRate;
125 uint32_t m_frameSize;
127 uint16_t m_numRetryRates;
128 double m_minRetryRate;
131 std::map<UanAddress, Time> m_propDelay;
133 std::map<UanAddress, AckData> m_ackData;
136 std::map<UanAddress, Request> m_requests;
137 std::set<std::pair<Time, UanAddress> > m_sortedRes;
147 void StartCycle (
void);
148 void EndCycle (
void);
150 void CycleStarted (
void);
154 double ComputeAlpha (uint32_t totalFrames, uint32_t totalBytes, uint32_t n, uint32_t a,
double deltaK);
155 std::vector<double> GetExpPdk (
void);
156 double ComputeExpS (uint32_t a, uint32_t ld, std::vector<double> exppdk);
157 double ComputeExpS (uint32_t a, uint32_t ld);
158 uint32_t CompExpMinIndex (uint32_t n, uint32_t k);
159 double ComputePiK (uint32_t a, uint32_t n, uint32_t k);
160 double ComputeExpBOverA (uint32_t n, uint32_t a, uint32_t ldlh, std::vector<double> deltaK);
161 uint64_t NchooseK (uint32_t n, uint32_t k);
162 uint32_t FindOptA (
void);
virtual void AttachPhy(Ptr< UanPhy > phy)
int64_t AssignStreams(int64_t stream)
forward calls to a chain of CallbackAn ns3::TracedCallback has almost exactly the same API as a norma...
virtual Address GetBroadcast(void) const
a polymophic address class
Virtual base class for all UAN MAC protocols.
virtual Address GetAddress(void)
Abstraction of packet modulation information.
virtual void SetAddress(UanAddress addr)
virtual bool Enqueue(Ptr< Packet > pkt, const Address &dest, uint16_t protocolNumber)
a unique identifier for an interface.
virtual void SetForwardUpCb(Callback< void, Ptr< Packet >, const UanAddress & > cb)