Robust Rate Adaptation AlgorithmThis is an implementation of RRAA as described in "Robust rate adaptation for 802.11 wireless networks" by "Starsky H. Y. Wong", "Hao Yang", "Songwu Lu", and, "Vaduvur Bharghavan" published in Mobicom 06. More...
#include <rraa-wifi-manager.h>
Classes | |
struct | ThresholdsItem |
Public Member Functions | |
RraaWifiManager () | |
virtual | ~RraaWifiManager () |
![]() | |
WifiRemoteStationManager () | |
virtual | ~WifiRemoteStationManager () |
void | AddBasicMode (WifiMode mode) |
void | AddSupportedMode (Mac48Address address, WifiMode mode) |
WifiMode | GetAckMode (Mac48Address address, WifiMode dataMode) |
WifiMode | GetBasicMode (uint32_t i) const |
WifiMode | GetCtsMode (Mac48Address address, WifiMode rtsMode) |
WifiMode | GetDataMode (Mac48Address address, const WifiMacHeader *header, Ptr< const Packet > packet, uint32_t fullPacketSize) |
WifiMode | GetDefaultMode (void) const |
uint32_t | GetFragmentationThreshold (void) const |
uint32_t | GetFragmentOffset (Mac48Address address, const WifiMacHeader *header, Ptr< const Packet > packet, uint32_t fragmentNumber) |
uint32_t | GetFragmentSize (Mac48Address address, const WifiMacHeader *header, Ptr< const Packet > packet, uint32_t fragmentNumber) |
WifiRemoteStationInfo | GetInfo (Mac48Address address) |
uint32_t | GetMaxSlrc (void) const |
uint32_t | GetMaxSsrc (void) const |
uint32_t | GetNBasicModes (void) const |
WifiMode | GetNonUnicastMode (void) const |
uint32_t | GetRtsCtsThreshold (void) const |
WifiMode | GetRtsMode (Mac48Address address, const WifiMacHeader *header, Ptr< const Packet > packet) |
bool | IsAssociated (Mac48Address address) const |
bool | IsBrandNew (Mac48Address address) const |
bool | IsLastFragment (Mac48Address address, const WifiMacHeader *header, Ptr< const Packet > packet, uint32_t fragmentNumber) |
bool | IsWaitAssocTxOk (Mac48Address address) const |
bool | NeedDataRetransmission (Mac48Address address, const WifiMacHeader *header, Ptr< const Packet > packet) |
bool | NeedFragmentation (Mac48Address address, const WifiMacHeader *header, Ptr< const Packet > packet) |
bool | NeedRts (Mac48Address address, const WifiMacHeader *header, Ptr< const Packet > packet) |
bool | NeedRtsRetransmission (Mac48Address address, const WifiMacHeader *header, Ptr< const Packet > packet) |
void | PrepareForQueue (Mac48Address address, const WifiMacHeader *header, Ptr< const Packet > packet, uint32_t fullPacketSize) |
void | RecordDisassociated (Mac48Address address) |
void | RecordGotAssocTxFailed (Mac48Address address) |
void | RecordGotAssocTxOk (Mac48Address address) |
void | RecordWaitAssocTxOk (Mac48Address address) |
void | ReportDataFailed (Mac48Address address, const WifiMacHeader *header) |
void | ReportDataOk (Mac48Address address, const WifiMacHeader *header, double ackSnr, WifiMode ackMode, double dataSnr) |
void | ReportFinalDataFailed (Mac48Address address, const WifiMacHeader *header) |
void | ReportFinalRtsFailed (Mac48Address address, const WifiMacHeader *header) |
void | ReportRtsFailed (Mac48Address address, const WifiMacHeader *header) |
void | ReportRtsOk (Mac48Address address, const WifiMacHeader *header, double ctsSnr, WifiMode ctsMode, double rtsSnr) |
void | ReportRxOk (Mac48Address address, const WifiMacHeader *header, double rxSnr, WifiMode txMode) |
void | Reset (void) |
void | Reset (Mac48Address address) |
void | SetFragmentationThreshold (uint32_t threshold) |
void | SetMaxSlrc (uint32_t maxSlrc) |
void | SetMaxSsrc (uint32_t maxSsrc) |
void | SetRtsCtsThreshold (uint32_t threshold) |
virtual void | SetupPhy (Ptr< WifiPhy > phy) |
![]() | |
Object () | |
virtual | ~Object () |
void | AggregateObject (Ptr< Object > other) |
void | Dispose (void) |
AggregateIterator | GetAggregateIterator (void) const |
virtual TypeId | GetInstanceTypeId (void) const |
template<typename T > | |
Ptr< T > | GetObject (void) const |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
void | Start (void) |
![]() | |
SimpleRefCount () | |
SimpleRefCount (const SimpleRefCount &o) | |
uint32_t | GetReferenceCount (void) const |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
void | Ref (void) const |
void | Unref (void) const |
![]() | |
virtual | ~ObjectBase () |
void | GetAttribute (std::string name, AttributeValue &value) const |
bool | GetAttributeFailSafe (std::string name, AttributeValue &attribute) const |
void | SetAttribute (std::string name, const AttributeValue &value) |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
This method returns the TypeId associated to ns3::RraaWifiManager. |
Private Attributes | |
bool | m_basic |
uint32_t | m_ewndfor12 |
uint32_t | m_ewndfor18 |
uint32_t | m_ewndfor24 |
uint32_t | m_ewndfor36 |
uint32_t | m_ewndfor48 |
uint32_t | m_ewndfor54 |
uint32_t | m_ewndfor6 |
uint32_t | m_ewndfor9 |
double | m_pmtlfor12 |
double | m_pmtlfor18 |
double | m_pmtlfor24 |
double | m_pmtlfor36 |
double | m_pmtlfor48 |
double | m_pmtlfor54 |
double | m_pmtlfor9 |
double | m_porifor12 |
double | m_porifor18 |
double | m_porifor24 |
double | m_porifor36 |
double | m_porifor48 |
double | m_porifor6 |
double | m_porifor9 |
Time | m_timeout |
Additional Inherited Members | |
![]() | |
virtual void | DoDispose (void) |
uint32_t | GetNSupported (const WifiRemoteStation *station) const |
WifiMode | GetSupported (const WifiRemoteStation *station, uint32_t i) const |
Robust Rate Adaptation Algorithm
This is an implementation of RRAA as described in "Robust rate adaptation for 802.11 wireless networks" by "Starsky H. Y. Wong", "Hao Yang", "Songwu Lu", and, "Vaduvur Bharghavan" published in Mobicom 06.
Definition at line 39 of file rraa-wifi-manager.h.
ns3::RraaWifiManager::RraaWifiManager | ( | ) |
Definition at line 180 of file rraa-wifi-manager.cc.
|
virtual |
Definition at line 183 of file rraa-wifi-manager.cc.
|
private |
Definition at line 333 of file rraa-wifi-manager.cc.
References ns3::RraaWifiRemoteStation::m_lastFrameFail, ns3::RraaWifiRemoteStation::m_rtsCounter, ns3::RraaWifiRemoteStation::m_rtsOn, and ns3::RraaWifiRemoteStation::m_rtsWnd.
Referenced by DoNeedRts().
|
private |
Definition at line 301 of file rraa-wifi-manager.cc.
References ns3::RraaWifiRemoteStation::m_counter, ns3::RraaWifiRemoteStation::m_lastReset, m_timeout, ns3::Now(), and ResetCountersBasic().
Referenced by DoReportDataFailed(), and DoReportDataOk().
|
privatevirtual |
|
privatevirtual |
Definition at line 271 of file rraa-wifi-manager.cc.
References ns3::WifiRemoteStationManager::GetSupported(), ns3::RraaWifiRemoteStation::m_initialized, ns3::RraaWifiRemoteStation::m_rate, and ResetCountersBasic().
|
privatevirtual |
Definition at line 282 of file rraa-wifi-manager.cc.
References ns3::WifiRemoteStationManager::GetSupported().
|
privatevirtual |
Definition at line 288 of file rraa-wifi-manager.cc.
References ARts(), m_basic, and ns3::RraaWifiRemoteStation::m_rtsOn.
|
privatevirtual |
Definition at line 231 of file rraa-wifi-manager.cc.
References CheckTimeout(), ns3::RraaWifiRemoteStation::m_counter, ns3::RraaWifiRemoteStation::m_failed, ns3::RraaWifiRemoteStation::m_lastFrameFail, and RunBasicAlgorithm().
|
privatevirtual |
Definition at line 252 of file rraa-wifi-manager.cc.
References CheckTimeout(), ns3::RraaWifiRemoteStation::m_counter, ns3::RraaWifiRemoteStation::m_lastFrameFail, and RunBasicAlgorithm().
|
privatevirtual |
Definition at line 266 of file rraa-wifi-manager.cc.
|
privatevirtual |
Definition at line 262 of file rraa-wifi-manager.cc.
|
privatevirtual |
Definition at line 226 of file rraa-wifi-manager.cc.
|
privatevirtual |
Definition at line 246 of file rraa-wifi-manager.cc.
References NS_LOG_DEBUG.
|
privatevirtual |
Definition at line 241 of file rraa-wifi-manager.cc.
|
private |
Definition at line 214 of file rraa-wifi-manager.cc.
References ns3::WifiRemoteStationManager::GetNSupported().
Referenced by ResetCountersBasic(), and RunBasicAlgorithm().
|
private |
Definition at line 219 of file rraa-wifi-manager.cc.
Referenced by RunBasicAlgorithm().
|
readprivate |
Definition at line 367 of file rraa-wifi-manager.cc.
References m_ewndfor12, m_ewndfor18, m_ewndfor24, m_ewndfor36, m_ewndfor48, m_ewndfor54, m_ewndfor6, m_ewndfor9, m_pmtlfor12, m_pmtlfor18, m_pmtlfor24, m_pmtlfor36, m_pmtlfor48, m_pmtlfor54, m_pmtlfor9, m_porifor12, m_porifor18, m_porifor24, m_porifor36, m_porifor48, m_porifor6, m_porifor9, and NS_ASSERT_MSG.
Referenced by GetThresholds(), ResetCountersBasic(), and RunBasicAlgorithm().
|
readprivate |
Definition at line 359 of file rraa-wifi-manager.cc.
References ns3::WifiRemoteStationManager::GetSupported(), and GetThresholds().
|
static |
This method returns the TypeId associated to ns3::RraaWifiManager.
This object is accessible through the following paths with Config::Set and Config::Connect:
Attributes defined for this type:
Attributes defined in parent class ns3::WifiRemoteStationManager:
No TraceSources defined for this type.
TraceSources defined in parent class ns3::WifiRemoteStationManager:
Reimplemented from ns3::WifiRemoteStationManager.
Definition at line 50 of file rraa-wifi-manager.cc.
References m_basic, m_ewndfor12, m_ewndfor18, m_ewndfor24, m_ewndfor36, m_ewndfor48, m_ewndfor54, m_ewndfor6, m_ewndfor9, m_pmtlfor12, m_pmtlfor18, m_pmtlfor24, m_pmtlfor36, m_pmtlfor48, m_pmtlfor54, m_pmtlfor9, m_porifor12, m_porifor18, m_porifor24, m_porifor36, m_porifor48, m_porifor6, m_porifor9, m_timeout, ns3::Seconds(), and ns3::TypeId::SetParent().
|
privatevirtual |
Definition at line 457 of file rraa-wifi-manager.cc.
|
private |
Definition at line 201 of file rraa-wifi-manager.cc.
References ns3::RraaWifiManager::ThresholdsItem::ewnd, GetMaxRate(), GetThresholds(), ns3::RraaWifiRemoteStation::m_counter, ns3::RraaWifiRemoteStation::m_failed, ns3::RraaWifiRemoteStation::m_initialized, ns3::RraaWifiRemoteStation::m_lastReset, ns3::RraaWifiRemoteStation::m_rate, and ns3::Now().
Referenced by CheckTimeout(), DoGetDataMode(), and RunBasicAlgorithm().
|
private |
Definition at line 311 of file rraa-wifi-manager.cc.
References ns3::RraaWifiManager::ThresholdsItem::ewnd, GetMaxRate(), GetMinRate(), GetThresholds(), ns3::RraaWifiRemoteStation::m_counter, ns3::RraaWifiRemoteStation::m_failed, ns3::RraaWifiRemoteStation::m_rate, ns3::RraaWifiManager::ThresholdsItem::pmtl, ns3::RraaWifiManager::ThresholdsItem::pori, and ResetCountersBasic().
Referenced by DoReportDataFailed(), and DoReportDataOk().
|
private |
Definition at line 83 of file rraa-wifi-manager.h.
Referenced by DoNeedRts(), and GetTypeId().
|
private |
Definition at line 90 of file rraa-wifi-manager.h.
Referenced by GetThresholds(), and GetTypeId().
|
private |
Definition at line 89 of file rraa-wifi-manager.h.
Referenced by GetThresholds(), and GetTypeId().
|
private |
Definition at line 88 of file rraa-wifi-manager.h.
Referenced by GetThresholds(), and GetTypeId().
|
private |
Definition at line 87 of file rraa-wifi-manager.h.
Referenced by GetThresholds(), and GetTypeId().
|
private |
Definition at line 86 of file rraa-wifi-manager.h.
Referenced by GetThresholds(), and GetTypeId().
|
private |
Definition at line 85 of file rraa-wifi-manager.h.
Referenced by GetThresholds(), and GetTypeId().
|
private |
Definition at line 92 of file rraa-wifi-manager.h.
Referenced by GetThresholds(), and GetTypeId().
|
private |
Definition at line 91 of file rraa-wifi-manager.h.
Referenced by GetThresholds(), and GetTypeId().
|
private |
Definition at line 105 of file rraa-wifi-manager.h.
Referenced by GetThresholds(), and GetTypeId().
|
private |
Definition at line 104 of file rraa-wifi-manager.h.
Referenced by GetThresholds(), and GetTypeId().
|
private |
Definition at line 103 of file rraa-wifi-manager.h.
Referenced by GetThresholds(), and GetTypeId().
|
private |
Definition at line 102 of file rraa-wifi-manager.h.
Referenced by GetThresholds(), and GetTypeId().
|
private |
Definition at line 101 of file rraa-wifi-manager.h.
Referenced by GetThresholds(), and GetTypeId().
|
private |
Definition at line 100 of file rraa-wifi-manager.h.
Referenced by GetThresholds(), and GetTypeId().
|
private |
Definition at line 106 of file rraa-wifi-manager.h.
Referenced by GetThresholds(), and GetTypeId().
|
private |
Definition at line 97 of file rraa-wifi-manager.h.
Referenced by GetThresholds(), and GetTypeId().
|
private |
Definition at line 96 of file rraa-wifi-manager.h.
Referenced by GetThresholds(), and GetTypeId().
|
private |
Definition at line 95 of file rraa-wifi-manager.h.
Referenced by GetThresholds(), and GetTypeId().
|
private |
Definition at line 94 of file rraa-wifi-manager.h.
Referenced by GetThresholds(), and GetTypeId().
|
private |
Definition at line 93 of file rraa-wifi-manager.h.
Referenced by GetThresholds(), and GetTypeId().
|
private |
Definition at line 99 of file rraa-wifi-manager.h.
Referenced by GetThresholds(), and GetTypeId().
|
private |
Definition at line 98 of file rraa-wifi-manager.h.
Referenced by GetThresholds(), and GetTypeId().
|
private |
Definition at line 84 of file rraa-wifi-manager.h.
Referenced by CheckTimeout(), and GetTypeId().