#include <arf-wifi-manager.h>
Public Member Functions | |
ArfWifiRemoteStation (Ptr< ArfWifiManager > stations, int minTimerTimeout, int minSuccessThreshold) | |
virtual | ~ArfWifiRemoteStation () |
Protected Member Functions | |
virtual void | DoReportRxOk (double rxSnr, WifiMode txMode) |
virtual void | DoReportRtsFailed (void) |
virtual void | DoReportDataFailed (void) |
virtual void | DoReportRtsOk (double ctsSnr, WifiMode ctsMode, double rtsSnr) |
virtual void | DoReportDataOk (double ackSnr, WifiMode ackMode, double dataSnr) |
virtual void | DoReportFinalRtsFailed (void) |
virtual void | DoReportFinalDataFailed (void) |
uint32_t | GetMinTimerTimeout (void) |
uint32_t | GetMinSuccessThreshold (void) |
uint32_t | GetTimerTimeout (void) |
uint32_t | GetSuccessThreshold (void) |
void | SetTimerTimeout (uint32_t timerTimeout) |
void | SetSuccessThreshold (uint32_t successThreshold) |
Private Member Functions | |
virtual Ptr < WifiRemoteStationManager > | GetManager (void) const |
virtual WifiMode | DoGetDataMode (uint32_t size) |
virtual WifiMode | DoGetRtsMode (void) |
virtual void | ReportRecoveryFailure (void) |
virtual void | ReportFailure (void) |
uint32_t | GetMaxRate (void) |
uint32_t | GetMinRate (void) |
bool | NeedRecoveryFallback (void) |
bool | NeedNormalFallback (void) |
Private Attributes | |
uint32_t | m_timer |
uint32_t | m_success |
uint32_t | m_failed |
bool | m_recovery |
uint32_t | m_retry |
uint32_t | m_timerTimeout |
uint32_t | m_successThreshold |
uint32_t | m_rate |
uint32_t | m_minTimerTimeout |
uint32_t | m_minSuccessThreshold |
Ptr< ArfWifiManager > | m_stations |
Definition at line 55 of file arf-wifi-manager.h.
ns3::ArfWifiRemoteStation::ArfWifiRemoteStation | ( | Ptr< ArfWifiManager > | stations, | |
int | minTimerTimeout, | |||
int | minSuccessThreshold | |||
) |
Definition at line 31 of file arf-wifi-manager.cc.
References GetMinRate(), m_failed, m_minSuccessThreshold, m_minTimerTimeout, m_rate, m_recovery, m_retry, m_success, m_successThreshold, m_timer, and m_timerTimeout.
ns3::ArfWifiRemoteStation::~ArfWifiRemoteStation | ( | ) | [virtual] |
Definition at line 48 of file arf-wifi-manager.cc.
WifiMode ns3::ArfWifiRemoteStation::DoGetDataMode | ( | uint32_t | size | ) | [private, virtual] |
Implements ns3::WifiRemoteStation.
Definition at line 174 of file arf-wifi-manager.cc.
References ns3::WifiRemoteStation::GetSupportedMode(), and m_rate.
WifiMode ns3::ArfWifiRemoteStation::DoGetRtsMode | ( | void | ) | [private, virtual] |
Implements ns3::WifiRemoteStation.
Definition at line 179 of file arf-wifi-manager.cc.
References ns3::WifiRemoteStation::GetSupportedMode().
void ns3::ArfWifiRemoteStation::DoReportDataFailed | ( | void | ) | [protected, virtual] |
It is important to realize that "recovery" mode starts after failure of the first transmission after a rate increase and ends at the first successful transmission. Specifically, recovery mode transcends retransmissions boundaries. Fundamentally, ARF handles each data transmission independently, whether it is the initial transmission of a packet or the retransmission of a packet. The fundamental reason for this is that there is a backoff between each data transmission, be it an initial transmission or a retransmission.
Implements ns3::WifiRemoteStation.
Definition at line 103 of file arf-wifi-manager.cc.
References GetMinRate(), m_failed, m_rate, m_recovery, m_retry, m_success, m_timer, NeedNormalFallback(), NeedRecoveryFallback(), NS_ASSERT, ReportFailure(), and ReportRecoveryFailure().
void ns3::ArfWifiRemoteStation::DoReportDataOk | ( | double | ackSnr, | |
WifiMode | ackMode, | |||
double | dataSnr | |||
) | [protected, virtual] |
Implements ns3::WifiRemoteStation.
Definition at line 147 of file arf-wifi-manager.cc.
References GetMaxRate(), GetSuccessThreshold(), GetTimerTimeout(), m_failed, m_rate, m_recovery, m_retry, m_success, m_timer, and NS_LOG_DEBUG.
void ns3::ArfWifiRemoteStation::DoReportFinalDataFailed | ( | void | ) | [protected, virtual] |
Implements ns3::WifiRemoteStation.
Definition at line 170 of file arf-wifi-manager.cc.
void ns3::ArfWifiRemoteStation::DoReportFinalRtsFailed | ( | void | ) | [protected, virtual] |
Implements ns3::WifiRemoteStation.
Definition at line 167 of file arf-wifi-manager.cc.
void ns3::ArfWifiRemoteStation::DoReportRtsFailed | ( | void | ) | [protected, virtual] |
Implements ns3::WifiRemoteStation.
Definition at line 91 of file arf-wifi-manager.cc.
void ns3::ArfWifiRemoteStation::DoReportRtsOk | ( | double | ctsSnr, | |
WifiMode | ctsMode, | |||
double | rtsSnr | |||
) | [protected, virtual] |
Implements ns3::WifiRemoteStation.
Definition at line 143 of file arf-wifi-manager.cc.
References NS_LOG_DEBUG.
void ns3::ArfWifiRemoteStation::DoReportRxOk | ( | double | rxSnr, | |
WifiMode | txMode | |||
) | [protected, virtual] |
Implements ns3::WifiRemoteStation.
Definition at line 141 of file arf-wifi-manager.cc.
Ptr< WifiRemoteStationManager > ns3::ArfWifiRemoteStation::GetManager | ( | void | ) | const [private, virtual] |
Implements ns3::WifiRemoteStation.
Definition at line 217 of file arf-wifi-manager.cc.
References m_stations.
uint32_t ns3::ArfWifiRemoteStation::GetMaxRate | ( | void | ) | [private] |
Definition at line 52 of file arf-wifi-manager.cc.
References ns3::WifiRemoteStation::GetNSupportedModes().
Referenced by DoReportDataOk().
uint32_t ns3::ArfWifiRemoteStation::GetMinRate | ( | void | ) | [private] |
Definition at line 57 of file arf-wifi-manager.cc.
Referenced by ArfWifiRemoteStation(), and DoReportDataFailed().
uint32_t ns3::ArfWifiRemoteStation::GetMinSuccessThreshold | ( | void | ) | [protected] |
Definition at line 194 of file arf-wifi-manager.cc.
References m_minSuccessThreshold.
Referenced by ns3::AarfWifiRemoteStation::ReportFailure().
uint32_t ns3::ArfWifiRemoteStation::GetMinTimerTimeout | ( | void | ) | [protected] |
Definition at line 190 of file arf-wifi-manager.cc.
References m_minTimerTimeout.
Referenced by ns3::AarfWifiRemoteStation::ReportFailure(), and ns3::AarfWifiRemoteStation::ReportRecoveryFailure().
uint32_t ns3::ArfWifiRemoteStation::GetSuccessThreshold | ( | void | ) | [protected] |
Definition at line 202 of file arf-wifi-manager.cc.
References m_successThreshold.
Referenced by DoReportDataOk(), and ns3::AarfWifiRemoteStation::ReportRecoveryFailure().
uint32_t ns3::ArfWifiRemoteStation::GetTimerTimeout | ( | void | ) | [protected] |
Definition at line 198 of file arf-wifi-manager.cc.
References m_timerTimeout.
Referenced by DoReportDataOk().
bool ns3::ArfWifiRemoteStation::NeedNormalFallback | ( | void | ) | [private] |
Definition at line 75 of file arf-wifi-manager.cc.
References m_retry.
Referenced by DoReportDataFailed().
bool ns3::ArfWifiRemoteStation::NeedRecoveryFallback | ( | void | ) | [private] |
Definition at line 63 of file arf-wifi-manager.cc.
References m_retry.
Referenced by DoReportDataFailed().
void ns3::ArfWifiRemoteStation::ReportFailure | ( | void | ) | [private, virtual] |
Reimplemented in ns3::AarfWifiRemoteStation.
Definition at line 188 of file arf-wifi-manager.cc.
Referenced by DoReportDataFailed().
void ns3::ArfWifiRemoteStation::ReportRecoveryFailure | ( | void | ) | [private, virtual] |
Reimplemented in ns3::AarfWifiRemoteStation.
Definition at line 186 of file arf-wifi-manager.cc.
Referenced by DoReportDataFailed().
void ns3::ArfWifiRemoteStation::SetSuccessThreshold | ( | uint32_t | successThreshold | ) | [protected] |
Definition at line 211 of file arf-wifi-manager.cc.
References m_minSuccessThreshold, m_successThreshold, and NS_ASSERT.
Referenced by ns3::AarfWifiRemoteStation::ReportFailure(), and ns3::AarfWifiRemoteStation::ReportRecoveryFailure().
void ns3::ArfWifiRemoteStation::SetTimerTimeout | ( | uint32_t | timerTimeout | ) | [protected] |
Definition at line 206 of file arf-wifi-manager.cc.
References m_minTimerTimeout, m_timerTimeout, and NS_ASSERT.
Referenced by ns3::AarfWifiRemoteStation::ReportFailure(), and ns3::AarfWifiRemoteStation::ReportRecoveryFailure().
uint32_t ns3::ArfWifiRemoteStation::m_failed [private] |
Definition at line 79 of file arf-wifi-manager.h.
Referenced by ArfWifiRemoteStation(), DoReportDataFailed(), and DoReportDataOk().
uint32_t ns3::ArfWifiRemoteStation::m_minSuccessThreshold [private] |
Definition at line 89 of file arf-wifi-manager.h.
Referenced by ArfWifiRemoteStation(), GetMinSuccessThreshold(), and SetSuccessThreshold().
uint32_t ns3::ArfWifiRemoteStation::m_minTimerTimeout [private] |
Definition at line 88 of file arf-wifi-manager.h.
Referenced by ArfWifiRemoteStation(), GetMinTimerTimeout(), and SetTimerTimeout().
uint32_t ns3::ArfWifiRemoteStation::m_rate [private] |
Definition at line 86 of file arf-wifi-manager.h.
Referenced by ArfWifiRemoteStation(), DoGetDataMode(), DoReportDataFailed(), and DoReportDataOk().
bool ns3::ArfWifiRemoteStation::m_recovery [private] |
Definition at line 80 of file arf-wifi-manager.h.
Referenced by ArfWifiRemoteStation(), DoReportDataFailed(), and DoReportDataOk().
uint32_t ns3::ArfWifiRemoteStation::m_retry [private] |
Definition at line 81 of file arf-wifi-manager.h.
Referenced by ArfWifiRemoteStation(), DoReportDataFailed(), DoReportDataOk(), NeedNormalFallback(), and NeedRecoveryFallback().
Definition at line 91 of file arf-wifi-manager.h.
Referenced by GetManager().
uint32_t ns3::ArfWifiRemoteStation::m_success [private] |
Definition at line 78 of file arf-wifi-manager.h.
Referenced by ArfWifiRemoteStation(), DoReportDataFailed(), and DoReportDataOk().
uint32_t ns3::ArfWifiRemoteStation::m_successThreshold [private] |
Definition at line 84 of file arf-wifi-manager.h.
Referenced by ArfWifiRemoteStation(), GetSuccessThreshold(), and SetSuccessThreshold().
uint32_t ns3::ArfWifiRemoteStation::m_timer [private] |
Definition at line 77 of file arf-wifi-manager.h.
Referenced by ArfWifiRemoteStation(), DoReportDataFailed(), and DoReportDataOk().
uint32_t ns3::ArfWifiRemoteStation::m_timerTimeout [private] |
Definition at line 83 of file arf-wifi-manager.h.
Referenced by ArfWifiRemoteStation(), GetTimerTimeout(), and SetTimerTimeout().