24 #include "ns3/nstime.h"
25 #include "ns3/event-id.h"
60 void SetCwMin (uint32_t minCw);
61 void SetCwMax (uint32_t maxCw);
62 uint32_t GetAifsn (
void)
const;
63 uint32_t GetCwMin (
void)
const;
64 uint32_t GetCwMax (
void)
const;
89 uint32_t
GetCw (
void)
const;
99 uint32_t GetBackoffSlots (
void)
const;
100 Time GetBackoffStart (
void)
const;
101 void UpdateBackoffSlotsNow (uint32_t nSlots,
Time backoffUpdateBound);
102 void NotifyAccessRequested (
void);
103 void NotifyAccessGranted (
void);
104 void NotifyCollision (
void);
105 void NotifyInternalCollision (
void);
106 void NotifyChannelSwitching (
Time duration, uint16_t toChannel);
107 void NotifyChannelSensing (
void);
146 virtual void DoNotifyChannelSensing () = 0;
149 uint32_t m_backoffSlots;
157 bool m_accessRequested;
273 void NotifySensingStartNow (
Time duration);
286 void NotifyAckTimeoutStartNow (
Time duration);
287 void NotifyAckTimeoutResetNow ();
288 void NotifyCtsTimeoutStartNow (
Time duration);
289 void NotifyCtsTimeoutResetNow ();
291 void UpdateBackoff (
void);
308 void AccessTimeout (
void);
310 bool IsBusy (
void)
const;
312 typedef std::vector<DcfState *> States;
315 Time m_lastAckTimeoutEnd;
316 Time m_lastCtsTimeoutEnd;
318 Time m_lastNavDuration;
320 Time m_lastRxDuration;
321 bool m_lastRxReceivedOk;
324 Time m_lastTxDuration;
325 Time m_lastBusyStart;
326 Time m_lastBusyDuration;
327 Time m_lastSwitchingStart;
328 Time m_lastSensingStart;
329 Time m_lastSwitchingDuration;
330 Time m_lastSensingDuration;
335 uint32_t m_slotTimeUs;
void RequestAccess(DcfState *state)
virtual void DoNotifyCollision(void)=0
void SetAifsn(uint32_t aifsn)
void NotifyNavResetNow(Time duration)
void NotifyRxEndOkNow(void)
Time GetAccessGrantStart(void) const
void NotifyTxStartNow(Time duration)
Manage a set of ns3::DcfStateHandle a set of independent ns3::DcfState, each of which represents a si...
keep track of the state needed for a single DCF function.Multiple instances of a DcfState can be regi...
bool IsAccessRequested(void) const
void StartBackoffNow(uint32_t nSlots)
virtual void DoNotifyAccessGranted(void)=0
void NotifyRxEndErrorNow(void)
virtual void DoNotifyChannelSwitching(Time duration, uint16_t toChannel)=0
void SetEifsNoDifs(Time eifsNoDifs)
virtual void DoNotifyInternalCollision(void)=0
void NotifyMaybeCcaBusyStartNow(Time duration)
void SetSlot(Time slotTime)
void NotifyNavStartNow(Time duration)
an identifier for simulation events.
uint32_t GetCw(void) const
void NotifyRxStartNow(Time duration)
Time GetEifsNoDifs() const
void DoRestartAccessTimeoutIfNeeded(void)
void UpdateFailedCw(void)
void NotifySwitchingStartNow(Time duration, uint16_t toChannel)