21 #ifndef CHANNEL_ACCESS_MANAGER_H 22 #define CHANNEL_ACCESS_MANAGER_H 26 #include "ns3/event-id.h" 27 #include "ns3/nstime.h" 300 typedef std::vector<Ptr<Txop>>
Txops;
Simulation virtual time values and global simulation resolution.
Time m_eifsNoDifs
EIFS no DIFS time.
void UpdateBackoff(void)
Update backoff slots for all Txops.
bool m_off
flag whether it is in off state
std::vector< Ptr< Txop > > Txops
typedef for a vector of Txops
Time m_lastRxDuration
the last receive duration time
Time m_lastCtsTimeoutEnd
the last CTS timeout end time
void NotifyOnNow(void)
Notify the Txop that the device has been resumed from off mode.
virtual ~ChannelAccessManager()
void SetupPhyListener(Ptr< WifiPhy > phy)
Set up listener for PHY events.
void NotifyMaybeCcaBusyStartNow(Time duration)
Time m_lastBusyStart
the last busy start time
bool IsBusy(void) const
Check if the device is busy sending or receiving, or NAV or CCA busy.
void RequestAccess(Ptr< Txop > txop, bool isCfPeriod=false)
EventId m_accessTimeout
the access timeout ID
Time MostRecent(std::initializer_list< Time > list) const
Return the most recent time.
void RemovePhyListener(Ptr< WifiPhy > phy)
Remove current registered listener for PHY events.
Time GetBackoffStartFor(Ptr< Txop > txop)
Return the time when the backoff procedure started for the given Txop.
Manage a set of ns3::TxopHandle a set of independent ns3::Txop, each of which represents a single DCF...
bool m_sleeping
flag whether it is in sleeping state
Time m_lastTxDuration
the last transmit duration time
bool NeedBackoffUponAccess(Ptr< Txop > txop)
Determine if a new backoff needs to be generated when a packet is queued for transmission.
void NotifyRxStartNow(Time duration)
Time m_lastRxStart
the last receive start time
Time m_lastBusyDuration
the last busy duration time
void NotifyRxEndErrorNow(void)
Notify the Txop that a packet reception was just completed unsuccessfully.
Time m_lastNavDuration
the last NAV duration time
void Add(Ptr< Txop > txop)
void NotifyCtsTimeoutStartNow(Time duration)
Notify that CTS timer has started for the given duration.
Ptr< WifiPhy > m_phy
pointer to the PHY
Time GetEifsNoDifs(void) const
void SetEifsNoDifs(Time eifsNoDifs)
void NotifyOffNow(void)
Notify the Txop that the device has been put in off mode.
Time m_lastSwitchingStart
the last switching start time
void NotifySleepNow(void)
Notify the Txop that the device has been put in sleep mode.
Time m_lastTxStart
the last transmit start time
void NotifyNavResetNow(Time duration)
void NotifyAckTimeoutStartNow(Time duration)
Notify that ack timer has started for the given duration.
Txops m_txops
the vector of managed Txops
void DoGrantPcfAccess(Ptr< Txop > txop)
Grant access to Txop using PCF preemption.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
void NotifyRxEndOkNow(void)
Notify the Txop that a packet reception was just completed successfully.
Time GetAccessGrantStart(bool ignoreNav=false) const
Access will never be granted to the medium before the time returned by this method.
bool m_lastRxReceivedOk
the last receive OK
PhyListener * m_phyListener
the PHY listener
void NotifyCtsTimeoutResetNow(void)
Notify that CTS timer has reset.
void DoGrantDcfAccess(void)
Grant access to Txop using DCF/EDCF contention rules.
An identifier for simulation events.
Time m_lastNavStart
the last NAV start time
void NotifySwitchingStartNow(Time duration)
void NotifyNavStartNow(Time duration)
Time m_lastSwitchingDuration
the last switching duration time
Time GetBackoffEndFor(Ptr< Txop > txop)
Return the time when the backoff procedure ended (or will ended) for the given Txop.
void SetSlot(Time slotTime)
void AccessTimeout(void)
Called when access timeout should occur (e.g.
void NotifyTxStartNow(Time duration)
A base class which provides memory management and object aggregation.
void SetupLow(Ptr< MacLow > low)
Set up listener for MacLow events.
void DoRestartAccessTimeoutIfNeeded(void)
void NotifyWakeupNow(void)
Notify the Txop that the device has been resumed from sleep mode.
Time m_lastAckTimeoutEnd
the last Ack timeout end time
void DoDispose(void)
Destructor implementation.
void NotifyAckTimeoutResetNow(void)
Notify that ack timer has reset.