26 #include "ns3/callback.h"
27 #include "ns3/packet.h"
28 #include "ns3/nstime.h"
29 #include "ns3/object.h"
30 #include "ns3/wifi-phy.h"
31 #include "ns3/wifi-mac-header.h"
32 #include "ns3/wifi-mode.h"
33 #include "ns3/wifi-remote-station-manager.h"
35 #include "ns3/cognitive-packet-tags.h"
43 class WifiMacParameters;
73 static TypeId GetTypeId (
void);
97 virtual void SetMinCw (uint32_t minCw);
98 virtual void SetMaxCw (uint32_t maxCw);
99 virtual void SetAifsn (uint32_t aifsn);
100 virtual uint32_t GetMinCw (
void)
const;
101 virtual uint32_t GetMaxCw (
void)
const;
102 virtual uint32_t GetAifsn (
void)
const;
145 bool NeedsAccess (
void)
const;
146 void NotifyAccessGranted (
void);
147 void NotifyInternalCollision (
void);
148 void NotifyCollision (
void);
153 void NotifyChannelSensing (
void);
155 void GotCts (
double snr,
WifiMode txMode);
156 void MissedCts (
void);
157 void GotAck (
double snr,
WifiMode txMode);
158 void MissedAck (
void);
159 void StartNext (
void);
161 void EndTxNoAck (
void);
162 void UpdateActiveChannels (uint16_t channel);
163 uint16_t GetNextActiveChannel (
void);
165 void StartAccessIfNeeded (
void);
167 bool NeedRtsRetransmission (
void);
168 bool NeedDataRetransmission (
void);
169 bool NeedFragmentation (
void);
170 uint32_t GetNextFragmentSize (
void);
171 uint32_t GetFragmentSize (
void);
172 uint32_t GetFragmentOffset (
void);
173 bool IsLastFragment (
void);
174 void NextFragment (
void);
177 void SwitchQueueHandler (
void);
189 typedef std::list<struct ActiveChannels> ListActiveChannels;
190 typedef std::list<struct ActiveChannels>::iterator ListActiveChannelsI;
192 bool m_accessOngoing;
195 uint8_t m_fragmentNumber;
196 uint16_t m_currentChannel;
197 ListActiveChannels m_activeChannels;
199 Time m_activeChannelTimeout;
200 Time m_queueUtilizationTime;
smart pointer class similar to boost::intrusive_ptr
void SetTxFailedCallback(TxFailed callback)
int64_t AssignStreams(int64_t stream)
represent a single transmission modeA WifiMode is implemented by a single integer which is used to lo...
void SetTxOkCallback(TxOk callback)
void Queue(Ptr< const Packet > packet, const WifiMacHeader &hdr)
Manage a set of ns3::DcfStateHandle a set of independent ns3::DcfState, each of which represents a si...
void NotifyChannelSwitching(Time duration, uint16_t toChannel)
an identifier for simulation events.
virtual void DoDispose(void)
void RestartAccessIfNeeded(void)
handle packet fragmentation and retransmissions.This class implements the packet fragmentation and re...
a unique identifier for an interface.