21 #ifndef AARFCD_WIFI_MANAGER_H    22 #define AARFCD_WIFI_MANAGER_H    24 #include "ns3/traced-value.h"    25 #include "ns3/wifi-remote-station-manager.h"    29 struct AarfcdWifiRemoteStation;
    60                      double rxSnr, 
WifiMode txMode) 
override;
    76                       double ctsSnr, 
WifiMode ctsMode, 
double rtsSnr) 
override;
    78                        double dataSnr, uint16_t dataChannelWidth, uint8_t dataNss) 
override;
    84                   uint32_t size, 
bool normally) 
override;
 WifiTxVector DoGetDataTxVector(WifiRemoteStation *station) override
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...
uint32_t m_maxSuccessThreshold
maximum success threshold 
void DoReportRtsOk(WifiRemoteStation *station, double ctsSnr, WifiMode ctsMode, double rtsSnr) override
This method is a pure virtual method that must be implemented by the sub-class. 
uint32_t m_maxRtsWnd
maximum RTS window 
void DoReportRtsFailed(WifiRemoteStation *station) override
This method is a pure virtual method that must be implemented by the sub-class. 
uint32_t m_minRtsWnd
minimum RTS window 
bool m_turnOnRtsAfterRateIncrease
turn on RTS after rate increase 
represent a single transmission modeA WifiMode is implemented by a single integer which is used to lo...
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. 
void DoReportDataFailed(WifiRemoteStation *station) override
It is important to realize that "recovery" mode starts after failure of the first transmission after ...
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. 
void DoInitialize(void) override
Initialize() implementation. 
void DoReportRxOk(WifiRemoteStation *station, double rxSnr, WifiMode txMode) override
This method is a pure virtual method that must be implemented by the sub-class. 
uint32_t m_minSuccessThreshold
minimum success threshold 
hold per-remote-station state for AARF-CD Wifi manager. 
uint32_t m_minTimerThreshold
minimum timer threshold 
bool m_turnOffRtsAfterRateDecrease
turn off RTS after rate decrease 
void DoReportFinalRtsFailed(WifiRemoteStation *station) override
This method is a pure virtual method that must be implemented by the sub-class. 
WifiRemoteStation * DoCreateStation(void) const override
double m_successK
Multiplication factor for the success threshold. 
WifiTxVector DoGetRtsTxVector(WifiRemoteStation *station) override
void DoReportDataOk(WifiRemoteStation *station, double ackSnr, WifiMode ackMode, double dataSnr, uint16_t dataChannelWidth, uint8_t dataNss) override
This method is a pure virtual method that must be implemented by the sub-class. 
void DoReportFinalDataFailed(WifiRemoteStation *station) override
This method is a pure virtual method that must be implemented by the sub-class. 
static TypeId GetTypeId(void)
Get the type ID. 
an implementation of the AARF-CD algorithmThis algorithm was first described in "Efficient Collision ...
void IncreaseRtsWnd(AarfcdWifiRemoteStation *station)
Increase the RTS window size of the given station. 
a unique identifier for an interface. 
bool DoNeedRts(WifiRemoteStation *station, uint32_t size, bool normally) override
hold per-remote-station state.