25 #include "uan-address.h"
27 #include "ns3/nstime.h"
28 #include "ns3/trace-source-accessor.h"
29 #include "ns3/traced-callback.h"
30 #include "ns3/event-id.h"
31 #include "ns3/random-variable-stream.h"
44 class UanHeaderRcCtsGlobal;
114 std::list<std::pair <Ptr<Packet>,
UanAddress > > m_pktList;
117 std::vector<Time> m_timestamp;
141 TYPE_DATA, TYPE_GWPING, TYPE_RTS, TYPE_CTS, TYPE_ACK
146 static TypeId GetTypeId (
void);
155 virtual void Clear (
void);
169 UNASSOCIATED, GWPSENT, IDLE, RTSSENT, DATATX
181 uint32_t m_currentRate;
182 uint32_t m_maxFrames;
183 uint32_t m_queueLimit;
188 uint16_t m_numRetryRates;
189 double m_minRetryRate;
197 std::list<std::pair <Ptr<Packet>,
UanAddress > > m_pktQueue;
198 std::list<Reservation> m_resList;
209 void Associate (
void);
210 void AssociateTimeout (
void);
212 void RtsTimeout (
void);
217 bool IsPhy1Ok (
void);
218 void BlockRtsing (
void);
220 static uint32_t m_cntrlSends;
void AddTimestamp(Time t)
forward calls to a chain of CallbackAn ns3::TracedCallback has almost exactly the same API as a norma...
virtual Address GetAddress(void)
Non-gateway node MAC for reservation channel MAC protocol.
a polymophic address class
virtual Address GetBroadcast(void) const
uint32_t GetNoFrames() const
void SetTransmitted(bool t=true)
Sets reservation transmitted state.
Virtual base class for all UAN MAC protocols.
Reservation()
Create empty object with default values.
uint8_t GetRetryNo() const
virtual void SetForwardUpCb(Callback< void, Ptr< Packet >, const UanAddress & > cb)
Abstraction of packet modulation information.
bool IsTransmitted() const
Ptr< ExponentialRandomVariable > m_ev
Provides exponential random variables.
void SetFrameNo(uint8_t fn)
const std::list< std::pair< Ptr< Packet >, UanAddress > > & GetPktList(void) const
int64_t AssignStreams(int64_t stream)
an identifier for simulation events.
virtual void SetAddress(UanAddress addr)
virtual void AttachPhy(Ptr< UanPhy > phy)
uint32_t GetLength() const
Stores reservation info for use in scheduling data channel by reservation channel MAC...
uint8_t GetFrameNo() const
a unique identifier for an interface.
void IncrementRetry()
Increments retry count by 1.
Time GetTimestamp(uint8_t n) const
virtual bool Enqueue(Ptr< Packet > pkt, const Address &dest, uint16_t protocolNumber)