|
A Discrete-Event Network Simulator
|
API
|
Go to the documentation of this file.
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;
a unique identifier for an interface.
uint32_t m_minSuccessThreshold
minimum success threshold
hold per-remote-station state for AARF-CD Wifi manager.
double m_successK
Multiplication factor for the success threshold.
void DoReportRtsFailed(WifiRemoteStation *station) override
This method is a pure virtual method that must be implemented by the sub-class.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
static TypeId GetTypeId(void)
Get the type ID.
hold a list of per-remote-station state.
uint32_t m_minTimerThreshold
minimum 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
bool DoNeedRts(WifiRemoteStation *station, uint32_t size, bool normally) override
void DoReportRxOk(WifiRemoteStation *station, double rxSnr, WifiMode txMode) override
This method is a pure virtual method that must be implemented by the sub-class.
WifiTxVector DoGetRtsTxVector(WifiRemoteStation *station) override
bool m_turnOnRtsAfterRateIncrease
turn on RTS after rate increase
WifiTxVector DoGetDataTxVector(WifiRemoteStation *station) override
void ResetRtsWnd(AarfcdWifiRemoteStation *station)
Reset the RTS window of the given station.
void CheckRts(AarfcdWifiRemoteStation *station)
Check if the use of RTS for the given station can be turned off.
WifiRemoteStation * DoCreateStation(void) const override
represent a single transmission mode
an implementation of the AARF-CD algorithm
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 DoReportDataFailed(WifiRemoteStation *station) override
It is important to realize that "recovery" mode starts after failure of the first transmission after ...
uint32_t m_maxRtsWnd
maximum RTS window
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.
void IncreaseRtsWnd(AarfcdWifiRemoteStation *station)
Increase the RTS window size of the given station.
hold per-remote-station state.
uint32_t m_minRtsWnd
minimum RTS window
bool m_turnOffRtsAfterRateDecrease
turn off RTS after rate decrease
virtual ~AarfcdWifiManager()
void DoReportFinalRtsFailed(WifiRemoteStation *station) override
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 DoInitialize(void) override
Initialize() implementation.
void TurnOffRts(AarfcdWifiRemoteStation *station)
Turn off RTS for the given station.
void DoReportFinalDataFailed(WifiRemoteStation *station) override
This method is a pure virtual method that must be implemented by the sub-class.
TracedValue< uint64_t > m_currentRate
Trace rate changes.
double m_timerK
Multiplication factor for the timer threshold.