22 #include "ns3/assert.h"
23 #include "ns3/double.h"
26 #define Min(a,b) ((a < b) ? a : b)
42 .AddConstructor<IdealWifiManager> ()
43 .AddAttribute (
"BerThreshold",
44 "The maximum Bit Error Rate acceptable at any transmission mode",
47 MakeDoubleChecker<double> ())
63 for (uint32_t i = 0; i < nModes; i++)
77 if (mode == i->second)
116 double ctsSnr,
WifiMode ctsMode,
double rtsSnr)
123 double ackSnr,
WifiMode ackMode,
double dataSnr)
144 double maxThreshold = 0.0;
150 if (threshold > maxThreshold
151 && threshold < station->m_lastSnr)
153 maxThreshold = threshold;
166 double maxThreshold = 0.0;
172 if (threshold > maxThreshold
173 && threshold < station->m_lastSnr)
175 maxThreshold = threshold;
virtual void DoReportFinalDataFailed(WifiRemoteStation *station)
uint32_t GetNSupported(const WifiRemoteStation *station) const
virtual bool IsLowLatency(void) const
void AddModeSnrThreshold(WifiMode mode, double ber)
virtual void DoReportFinalRtsFailed(WifiRemoteStation *station)
double GetSnrThreshold(WifiMode mode) const
virtual uint32_t GetNModes(void) const =0
virtual void SetupPhy(Ptr< WifiPhy > phy)
#define NS_ASSERT(condition)
virtual double CalculateSnr(WifiMode txMode, double ber) const =0
virtual void DoReportRtsOk(WifiRemoteStation *station, double ctsSnr, WifiMode ctsMode, double rtsSnr)
virtual void SetupPhy(Ptr< WifiPhy > phy)
represent a single transmission modeA WifiMode is implemented by a single integer which is used to lo...
uint32_t GetNumberOfReceiveAntennas(const WifiRemoteStation *station) const
WifiMode GetSupported(const WifiRemoteStation *station, uint32_t i) const
virtual void DoReportRxOk(WifiRemoteStation *station, double rxSnr, WifiMode txMode)
bool GetStbc(const WifiRemoteStation *station) const
static TypeId GetTypeId(void)
NS_OBJECT_ENSURE_REGISTERED(AntennaModel)
WifiMode GetBasicMode(uint32_t i) const
int64x64_t Min(const int64x64_t &a, const int64x64_t &b)
hold a list of per-remote-station state.
virtual void DoReportDataOk(WifiRemoteStation *station, double ackSnr, WifiMode ackMode, double dataSnr)
virtual WifiRemoteStation * DoCreateStation(void) const
virtual WifiMode GetMode(uint32_t mode) const =0
bool GetShortGuardInterval(const WifiRemoteStation *station) const
virtual WifiTxVector DoGetDataTxVector(WifiRemoteStation *station, uint32_t size)
virtual WifiTxVector DoGetRtsTxVector(WifiRemoteStation *station)
uint8_t GetDefaultTxPowerLevel(void) const
uint32_t GetNBasicModes(void) const
uint32_t GetLongRetryCount(const WifiRemoteStation *station) const
WifiMode GetDefaultMode(void) const
Ideal rate control algorithmThis class implements an 'ideal' rate control algorithm similar to RBAR i...
uint32_t GetShortRetryCount(const WifiRemoteStation *station) const
virtual ~IdealWifiManager()
uint32_t GetNumberOfTransmitAntennas(void)
virtual void DoReportDataFailed(WifiRemoteStation *station)
Hold an floating point type.
a unique identifier for an interface.
virtual void DoReportRtsFailed(WifiRemoteStation *station)
TypeId SetParent(TypeId tid)
hold per-remote-station state.