|
A Discrete-Event Network Simulator
|
API
|
Go to the documentation of this file.
21 #ifndef AMRR_WIFI_MANAGER_H
22 #define AMRR_WIFI_MANAGER_H
24 #include "ns3/traced-value.h"
25 #include "ns3/wifi-remote-station-manager.h"
29 struct AmrrWifiRemoteStation;
61 double rxSnr,
WifiMode txMode)
override;
65 double ctsSnr,
WifiMode ctsMode,
double rtsSnr)
override;
67 double dataSnr, uint16_t dataChannelWidth, uint8_t dataNss)
override;
static TypeId GetTypeId(void)
Get the type ID.
a unique identifier for an interface.
void DoInitialize(void) override
Initialize() implementation.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
void DecreaseRate(AmrrWifiRemoteStation *station)
Decrease the transmission rate to the given station.
WifiRemoteStation * DoCreateStation(void) const override
TracedValue< uint64_t > m_currentRate
Trace rate changes.
void IncreaseRate(AmrrWifiRemoteStation *station)
Increase the transmission rate to the given station.
bool IsEnough(AmrrWifiRemoteStation *station) const
Check if the number of retransmission, transmission error, and successful transmission are greater th...
hold a list of per-remote-station state.
This class mimics the TXVECTOR which is to be passed to the PHY in order to define the parameters whi...
hold per-remote-station state for AMRR Wifi manager.
bool IsSuccess(AmrrWifiRemoteStation *station) const
Check if the number of retransmission and transmission error is less than the number of successful tr...
void DoReportRxOk(WifiRemoteStation *station, double rxSnr, WifiMode txMode) override
This method is a pure virtual method that must be implemented by the sub-class.
AMRR Rate control algorithm.
bool IsMaxRate(AmrrWifiRemoteStation *station) const
Check if the current rate for the given station is the maximum rate.
WifiTxVector DoGetDataTxVector(WifiRemoteStation *station) override
double m_successRatio
success ratio
represent a single transmission mode
Time m_updatePeriod
update period
void DoReportRtsFailed(WifiRemoteStation *station) override
This method is a pure virtual method that must be implemented by the sub-class.
void DoReportFinalRtsFailed(WifiRemoteStation *station) override
This method is a pure virtual method that must be implemented by the sub-class.
uint32_t m_maxSuccessThreshold
maximum success threshold
Simulation virtual time values and global simulation resolution.
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.
bool IsFailure(AmrrWifiRemoteStation *station) const
Check if the number of retransmission and transmission error is greater than the number of successful...
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.
bool IsMinRate(AmrrWifiRemoteStation *station) const
Check if the current rate for the given station is the minimum rate.
void ResetCnt(AmrrWifiRemoteStation *station)
Reset transmission statistics of the given station.
void UpdateMode(AmrrWifiRemoteStation *station)
Update the mode used to send to the given station.
void DoReportFinalDataFailed(WifiRemoteStation *station) override
This method is a pure virtual method that must be implemented by the sub-class.
hold per-remote-station state.
virtual ~AmrrWifiManager()
uint32_t m_minSuccessThreshold
minimum success threshold
void DoReportDataFailed(WifiRemoteStation *station) override
This method is a pure virtual method that must be implemented by the sub-class.
WifiTxVector DoGetRtsTxVector(WifiRemoteStation *station) override
double m_failureRatio
failure ratio