21 #ifndef AARFCD_WIFI_MANAGER_H
22 #define AARFCD_WIFI_MANAGER_H
24 #include "ns3/traced-value.h"
29 struct AarfcdWifiRemoteStation;
80 double ctsSnr,
WifiMode ctsMode,
double rtsSnr);
82 double ackSnr,
WifiMode ackMode,
double dataSnr);
void DoReportDataFailed(WifiRemoteStation *station)
It is important to realize that "recovery" mode starts after failure of the first transmission after ...
WifiTxVector DoGetDataTxVector(WifiRemoteStation *station)
double m_timerK
Multiplication factor for the timer threshold.
This class mimics the TXVECTOR which is to be passed to the PHY in order to define the parameters whi...
bool DoNeedRts(WifiRemoteStation *station, Ptr< const Packet > packet, bool normally)
uint32_t m_maxSuccessThreshold
maximum success threshold
void DoReportRtsOk(WifiRemoteStation *station, double ctsSnr, WifiMode ctsMode, double rtsSnr)
This method is a pure virtual method that must be implemented by the sub-class.
uint32_t m_maxRtsWnd
maximum RTS window
uint32_t m_minRtsWnd
minimum RTS window
bool m_turnOnRtsAfterRateIncrease
turn on RTS after rate increase
void SetHeSupported(bool enable)
Enable or disable HE capability support.
represent a single transmission modeA WifiMode is implemented by a single integer which is used to lo...
void DoReportFinalDataFailed(WifiRemoteStation *station)
This method is a pure virtual method that must be implemented by the sub-class.
void DoReportFinalRtsFailed(WifiRemoteStation *station)
This method is a pure virtual method that must be implemented by the sub-class.
void TurnOnRts(AarfcdWifiRemoteStation *station)
Turn on RTS for the given station.
void TurnOffRts(AarfcdWifiRemoteStation *station)
Turn off RTS for the given station.
TracedValue< uint64_t > m_currentRate
Trace rate changes.
void ResetRtsWnd(AarfcdWifiRemoteStation *station)
Reset the RTS window of the given station.
hold a list of per-remote-station state.
void CheckRts(AarfcdWifiRemoteStation *station)
Check if the use of RTS for the given station can be turned off.
virtual ~AarfcdWifiManager()
Every class exported by the ns3 library is enclosed in the ns3 namespace.
bool IsLowLatency(void) const
void SetVhtSupported(bool enable)
Enable or disable VHT capability support.
void DoReportRtsFailed(WifiRemoteStation *station)
This method is a pure virtual method that must be implemented by the sub-class.
uint32_t m_minSuccessThreshold
minimum success threshold
WifiRemoteStation * DoCreateStation(void) const
hold per-remote-station state for AARF-CD Wifi manager.
void SetHtSupported(bool enable)
Enable or disable HT capability support.
uint32_t m_minTimerThreshold
minimum timer threshold
bool m_turnOffRtsAfterRateDecrease
turn off RTS after rate decrease
double m_successK
Multiplication factor for the success threshold.
static TypeId GetTypeId(void)
Get the type ID.
an implementation of the AARF-CD algorithmThis algorithm was first described in "Efficient Collision ...
void DoReportRxOk(WifiRemoteStation *station, double rxSnr, WifiMode txMode)
This method is a pure virtual method that must be implemented by the sub-class.
void DoReportDataOk(WifiRemoteStation *station, double ackSnr, WifiMode ackMode, double dataSnr)
This method is a pure virtual method that must be implemented by the sub-class.
void IncreaseRtsWnd(AarfcdWifiRemoteStation *station)
Increase the RTS window size of the given station.
a unique identifier for an interface.
hold per-remote-station state.
WifiTxVector DoGetRtsTxVector(WifiRemoteStation *station)