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 () |
Public Member Functions inherited from ns3::WifiRemoteStationManager | |
WifiRemoteStationManager () | |
virtual | ~WifiRemoteStationManager () |
void | AddBasicMcs (uint8_t mcs) |
Add a given Modulation and Coding Scheme (MCS) index to the set of basic MCS. More... | |
void | AddBasicMode (WifiMode mode) |
Invoked in a STA upon association to store the set of rates which belong to the BSSBasicRateSet of the associated AP and which are supported locally. More... | |
void | AddStationHtCapabilities (Mac48Address from, HtCapabilities htcapabilities) |
Records HT capabilities of the remote station. More... | |
void | AddSupportedMcs (Mac48Address address, uint8_t mcs) |
Record the MCS index supported by the station. More... | |
void | AddSupportedMode (Mac48Address address, WifiMode mode) |
Invoked in a STA or AP to store the set of modes supported by a destination which is also supported locally. More... | |
WifiTxVector | DoGetCtsToSelfTxVector (void) |
Since CTS-to-self parameters are not dependent on the station, it is implemented in wifiremote station manager. More... | |
WifiTxVector | GetAckTxVector (Mac48Address address, WifiMode dataMode) |
uint8_t | GetBasicMcs (uint32_t i) const |
Return the MCS at the given list index. More... | |
WifiMode | GetBasicMode (uint32_t i) const |
Return a basic mode from the set of basic modes. More... | |
WifiTxVector | GetBlockAckTxVector (Mac48Address address, WifiMode dataMode) |
WifiTxVector | GetCtsToSelfTxVector (const WifiMacHeader *header, Ptr< const Packet > packet) |
WifiTxVector | GetCtsTxVector (Mac48Address address, WifiMode rtsMode) |
WifiTxVector | GetDataTxVector (Mac48Address address, const WifiMacHeader *header, Ptr< const Packet > packet, uint32_t fullPacketSize) |
uint8_t | GetDefaultMcs (void) const |
Return the default Modulation and Coding Scheme (MCS) index. More... | |
WifiMode | GetDefaultMode (void) const |
Return the default transmission mode. More... | |
uint8_t | GetDefaultTxPowerLevel (void) const |
uint32_t | GetFragmentationThreshold (void) const |
Return the fragmentation threshold. More... | |
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) |
bool | GetGreenfieldSupported (Mac48Address address) const |
Return whether the station supports Greenfield or not. More... | |
WifiRemoteStationInfo | GetInfo (Mac48Address address) |
uint32_t | GetMaxSlrc (void) const |
Return the maximum STA long retry count (SLRC). More... | |
uint32_t | GetMaxSsrc (void) const |
Return the maximum STA short retry count (SSRC). More... | |
uint32_t | GetNBasicMcs (void) const |
Return the number of basic MCS index. More... | |
uint32_t | GetNBasicModes (void) const |
Return the number of basic modes we support. More... | |
WifiMode | GetNonUnicastMode (void) const |
Return a mode for non-unicast packets. More... | |
uint32_t | GetNumberOfTransmitAntennas (void) |
uint32_t | GetRtsCtsThreshold (void) const |
Return the RTS threshold. More... | |
WifiTxVector | GetRtsTxVector (Mac48Address address, const WifiMacHeader *header, Ptr< const Packet > packet) |
bool | HasHtSupported (void) const |
Return whether the device has HT capability support enabled. More... | |
bool | IsAssociated (Mac48Address address) const |
Return whether the station associated. More... | |
bool | IsBrandNew (Mac48Address address) const |
Return whether the station state is brand new. More... | |
bool | IsLastFragment (Mac48Address address, const WifiMacHeader *header, Ptr< const Packet > packet, uint32_t fragmentNumber) |
bool | IsWaitAssocTxOk (Mac48Address address) const |
Return whether we are waiting for an ACK for the association response we sent. More... | |
bool | NeedCtsToSelf (WifiTxVector txVector) |
Return if we need to do Cts-to-self before sending a DATA. More... | |
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) |
Records that the STA was disassociated. More... | |
void | RecordGotAssocTxFailed (Mac48Address address) |
Records that we missed an ACK for the association response we sent. More... | |
void | RecordGotAssocTxOk (Mac48Address address) |
Records that we got an ACK for the association response we sent. More... | |
void | RecordWaitAssocTxOk (Mac48Address address) |
Records that we are waiting for an ACK for the association response we sent. More... | |
void | ReportDataFailed (Mac48Address address, const WifiMacHeader *header) |
Should be invoked whenever the AckTimeout associated to a transmission attempt expires. More... | |
void | ReportDataOk (Mac48Address address, const WifiMacHeader *header, double ackSnr, WifiMode ackMode, double dataSnr) |
Should be invoked whenever we receive the Ack associated to a data packet we just sent. More... | |
void | ReportFinalDataFailed (Mac48Address address, const WifiMacHeader *header) |
Should be invoked after calling ReportDataFailed if NeedDataRetransmission returns false. More... | |
void | ReportFinalRtsFailed (Mac48Address address, const WifiMacHeader *header) |
Should be invoked after calling ReportRtsFailed if NeedRtsRetransmission returns false. More... | |
void | ReportRtsFailed (Mac48Address address, const WifiMacHeader *header) |
Should be invoked whenever the RtsTimeout associated to a transmission attempt expires. More... | |
void | ReportRtsOk (Mac48Address address, const WifiMacHeader *header, double ctsSnr, WifiMode ctsMode, double rtsSnr) |
Should be invoked whenever we receive the Cts associated to an RTS we just sent. More... | |
void | ReportRxOk (Mac48Address address, const WifiMacHeader *header, double rxSnr, WifiMode txMode) |
void | Reset (void) |
Reset the station, invoked in a STA upon dis-association or in an AP upon reboot. More... | |
void | Reset (Mac48Address address) |
Invoked in an AP upon disassociation of a specific STA. More... | |
void | SetDefaultTxPowerLevel (uint8_t txPower) |
Set the default transmission power level. More... | |
void | SetFragmentationThreshold (uint32_t threshold) |
Sets a fragmentation threshold. More... | |
void | SetHtSupported (bool enable) |
Enable or disable HT capability support. More... | |
void | SetMaxSlrc (uint32_t maxSlrc) |
Sets the maximum STA long retry count (SLRC). More... | |
void | SetMaxSsrc (uint32_t maxSsrc) |
Sets the maximum STA short retry count (SSRC). More... | |
void | SetRtsCtsThreshold (uint32_t threshold) |
Sets the RTS threshold. More... | |
virtual void | SetupPhy (Ptr< WifiPhy > phy) |
Set up PHY associated with this device since it is the object that knows the full set of transmit rates that are supported. More... | |
Public Member Functions inherited from ns3::Object | |
Object () | |
virtual | ~Object () |
void | AggregateObject (Ptr< Object > other) |
void | Dispose (void) |
Run the DoDispose methods of this object and all the objects aggregated to it. More... | |
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 | Initialize (void) |
This method calls the virtual DoInitialize method on all the objects aggregated to this object. More... | |
Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
SimpleRefCount () | |
Constructor. More... | |
SimpleRefCount (const SimpleRefCount &o) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount (void) const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
Assignment. More... | |
void | Ref (void) const |
Increment the reference count. More... | |
void | Unref (void) const |
Decrement the reference count. More... | |
Public Member Functions inherited from ns3::ObjectBase | |
virtual | ~ObjectBase () |
Virtual destructor. More... | |
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) |
Static Public Member Functions inherited from ns3::WifiRemoteStationManager | |
static TypeId | GetTypeId (void) |
Static Public Member Functions inherited from ns3::Object | |
static TypeId | GetTypeId (void) |
Register this type. More... | |
Static Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
static void | Cleanup (void) |
Noop. More... | |
Static Public Member Functions inherited from ns3::ObjectBase | |
static TypeId | GetTypeId (void) |
Get the type ID. More... | |
Private Member Functions | |
void | ARts (RraaWifiRemoteStation *station) |
Activate the use of RTS for the given station if the conditions are met. More... | |
void | CheckTimeout (RraaWifiRemoteStation *station) |
Check if the counter should be resetted. More... | |
virtual WifiRemoteStation * | DoCreateStation (void) const |
virtual WifiTxVector | DoGetDataTxVector (WifiRemoteStation *station, uint32_t size) |
virtual WifiTxVector | DoGetRtsTxVector (WifiRemoteStation *station) |
virtual bool | DoNeedRts (WifiRemoteStation *st, Ptr< const Packet > packet, bool normally) |
virtual void | DoReportDataFailed (WifiRemoteStation *station) |
This method is a pure virtual method that must be implemented by the sub-class. More... | |
virtual void | DoReportDataOk (WifiRemoteStation *station, double ackSnr, WifiMode ackMode, double dataSnr) |
This method is a pure virtual method that must be implemented by the sub-class. More... | |
virtual void | DoReportFinalDataFailed (WifiRemoteStation *station) |
This method is a pure virtual method that must be implemented by the sub-class. More... | |
virtual void | DoReportFinalRtsFailed (WifiRemoteStation *station) |
This method is a pure virtual method that must be implemented by the sub-class. More... | |
virtual void | DoReportRtsFailed (WifiRemoteStation *station) |
This method is a pure virtual method that must be implemented by the sub-class. More... | |
virtual void | DoReportRtsOk (WifiRemoteStation *station, double ctsSnr, WifiMode ctsMode, double rtsSnr) |
This method is a pure virtual method that must be implemented by the sub-class. More... | |
virtual void | DoReportRxOk (WifiRemoteStation *station, double rxSnr, WifiMode txMode) |
This method is a pure virtual method that must be implemented by the sub-class. More... | |
uint32_t | GetMaxRate (RraaWifiRemoteStation *station) |
Return the index for the maximum transmission rate for the given station. More... | |
uint32_t | GetMinRate (RraaWifiRemoteStation *station) |
Return the index for the minimum transmission rate for the given station. More... | |
struct ThresholdsItem | GetThresholds (WifiMode mode) const |
Get a threshold for the given mode. More... | |
struct ThresholdsItem | GetThresholds (RraaWifiRemoteStation *station, uint32_t rate) const |
Get a threshold for the given station and mode index. More... | |
virtual bool | IsLowLatency (void) const |
void | ResetCountersBasic (RraaWifiRemoteStation *station) |
Reset the counters of the given station. More... | |
void | RunBasicAlgorithm (RraaWifiRemoteStation *station) |
Find an appropriate rate for the given station, using a basic algorithm. More... | |
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 | |
Protected Member Functions inherited from ns3::WifiRemoteStationManager | |
virtual void | DoDispose (void) |
This method is called by Object::Dispose or by the object's destructor, whichever comes first. More... | |
bool | GetGreenfield (const WifiRemoteStation *station) const |
Return whether the station supports Greenfield or not. More... | |
uint32_t | GetLongRetryCount (const WifiRemoteStation *station) const |
Return the long retry limit of the given station. More... | |
uint8_t | GetMcsSupported (const WifiRemoteStation *station, uint32_t i) const |
Return the MCS index supported by the specified station at the specified index. More... | |
uint32_t | GetNMcsSupported (const WifiRemoteStation *station) const |
Return the number of MCS supported by the given station. More... | |
uint32_t | GetNSupported (const WifiRemoteStation *station) const |
Return the number of modes supported by the given station. More... | |
uint32_t | GetNumberOfReceiveAntennas (const WifiRemoteStation *station) const |
Return the number of receive antenna the station has. More... | |
uint32_t | GetNumberOfTransmitAntennas (const WifiRemoteStation *station) const |
Return the number of transmit antenna the station has. More... | |
bool | GetShortGuardInterval (const WifiRemoteStation *station) const |
Return whether the given station supports short guard interval. More... | |
uint32_t | GetShortRetryCount (const WifiRemoteStation *station) const |
Return the short retry limit of the given station. More... | |
bool | GetStbc (const WifiRemoteStation *station) const |
Return whether the given station supports space-time block coding (STBC). More... | |
WifiMode | GetSupported (const WifiRemoteStation *station, uint32_t i) const |
Return whether mode associated with the specified station at the specified index. More... | |
Protected Member Functions inherited from ns3::Object | |
Object (const Object &o) | |
virtual void | DoInitialize (void) |
This method is called only once by Object::Initialize. More... | |
virtual void | NotifyNewAggregate (void) |
This method is invoked whenever two sets of objects are aggregated together. More... | |
Protected Member Functions inherited from ns3::ObjectBase | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
virtual void | NotifyConstructionCompleted (void) |
This method is invoked once all member attributes have been initialized. More... | |
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.
ns3::RraaWifiManager is accessible through the following paths with Config::Set and Config::Connect:
No TraceSources are defined for this type.
Definition at line 39 of file rraa-wifi-manager.h.
ns3::RraaWifiManager::RraaWifiManager | ( | ) |
Definition at line 189 of file rraa-wifi-manager.cc.
|
virtual |
Definition at line 192 of file rraa-wifi-manager.cc.
|
private |
Activate the use of RTS for the given station if the conditions are met.
station |
Definition at line 342 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 |
Check if the counter should be resetted.
station |
Definition at line 310 of file rraa-wifi-manager.cc.
References ns3::RraaWifiRemoteStation::m_counter, ns3::RraaWifiRemoteStation::m_lastReset, m_timeout, ns3::Simulator::Now(), and ResetCountersBasic().
Referenced by DoReportDataFailed(), and DoReportDataOk().
|
privatevirtual |
Implements ns3::WifiRemoteStationManager.
Definition at line 198 of file rraa-wifi-manager.cc.
References ns3::RraaWifiRemoteStation::m_initialized, ns3::RraaWifiRemoteStation::m_lastFrameFail, ns3::RraaWifiRemoteStation::m_rtsCounter, ns3::RraaWifiRemoteStation::m_rtsOn, and ns3::RraaWifiRemoteStation::m_rtsWnd.
|
privatevirtual |
station | the station that we need to communicate |
size | size of the packet or fragment we want to send |
Note: This method is called before sending a unicast packet or a fragment of a unicast packet to decide which transmission mode to use.
Implements ns3::WifiRemoteStationManager.
Definition at line 280 of file rraa-wifi-manager.cc.
References ns3::WifiRemoteStationManager::GetDefaultTxPowerLevel(), ns3::WifiRemoteStationManager::GetLongRetryCount(), ns3::WifiRemoteStationManager::GetNumberOfReceiveAntennas(), ns3::WifiRemoteStationManager::GetNumberOfTransmitAntennas(), ns3::WifiRemoteStationManager::GetShortGuardInterval(), ns3::WifiRemoteStationManager::GetStbc(), ns3::WifiRemoteStationManager::GetSupported(), ns3::RraaWifiRemoteStation::m_initialized, ns3::RraaWifiRemoteStation::m_rate, ns3::Min(), and ResetCountersBasic().
|
privatevirtual |
station | the station that we need to communicate |
Note: This method is called before sending an rts to a station to decide which transmission mode to use for the rts.
Implements ns3::WifiRemoteStationManager.
Definition at line 291 of file rraa-wifi-manager.cc.
References ns3::WifiRemoteStationManager::GetDefaultTxPowerLevel(), ns3::WifiRemoteStationManager::GetNumberOfReceiveAntennas(), ns3::WifiRemoteStationManager::GetNumberOfTransmitAntennas(), ns3::WifiRemoteStationManager::GetShortGuardInterval(), ns3::WifiRemoteStationManager::GetShortRetryCount(), ns3::WifiRemoteStationManager::GetStbc(), ns3::WifiRemoteStationManager::GetSupported(), and ns3::Min().
|
privatevirtual |
station | the station that we need to communicate |
packet | the packet to send |
normally | indicates whether the normal 802.11 rts enable mechanism would request that the rts is sent or not. |
Note: This method is called before a unicast packet is sent on the medium.
Reimplemented from ns3::WifiRemoteStationManager.
Definition at line 297 of file rraa-wifi-manager.cc.
References ARts(), m_basic, and ns3::RraaWifiRemoteStation::m_rtsOn.
|
privatevirtual |
This method is a pure virtual method that must be implemented by the sub-class.
This allows different types of WifiRemoteStationManager to respond differently,
station | the station that we failed to send DATA |
Implements ns3::WifiRemoteStationManager.
Definition at line 240 of file rraa-wifi-manager.cc.
References CheckTimeout(), ns3::RraaWifiRemoteStation::m_counter, ns3::RraaWifiRemoteStation::m_failed, ns3::RraaWifiRemoteStation::m_lastFrameFail, and RunBasicAlgorithm().
|
privatevirtual |
This method is a pure virtual method that must be implemented by the sub-class.
This allows different types of WifiRemoteStationManager to respond differently,
station | the station that we successfully sent RTS |
ackSnr | the SNR of the ACK we received |
ackMode | the WifiMode the receiver used to send the ACK |
dataSnr | the SNR of the DATA we sent |
Implements ns3::WifiRemoteStationManager.
Definition at line 261 of file rraa-wifi-manager.cc.
References CheckTimeout(), ns3::RraaWifiRemoteStation::m_counter, ns3::RraaWifiRemoteStation::m_lastFrameFail, and RunBasicAlgorithm().
|
privatevirtual |
This method is a pure virtual method that must be implemented by the sub-class.
This allows different types of WifiRemoteStationManager to respond differently,
station | the station that we failed to send DATA |
Implements ns3::WifiRemoteStationManager.
Definition at line 275 of file rraa-wifi-manager.cc.
|
privatevirtual |
This method is a pure virtual method that must be implemented by the sub-class.
This allows different types of WifiRemoteStationManager to respond differently,
station | the station that we failed to send RTS |
Implements ns3::WifiRemoteStationManager.
Definition at line 271 of file rraa-wifi-manager.cc.
|
privatevirtual |
This method is a pure virtual method that must be implemented by the sub-class.
This allows different types of WifiRemoteStationManager to respond differently,
station | the station that we failed to send RTS |
Implements ns3::WifiRemoteStationManager.
Definition at line 235 of file rraa-wifi-manager.cc.
|
privatevirtual |
This method is a pure virtual method that must be implemented by the sub-class.
This allows different types of WifiRemoteStationManager to respond differently,
station | the station that we successfully sent RTS |
ctsSnr | the SNR of the CTS we received |
ctsMode | the WifiMode the receiver used to send the CTS |
rtsSnr | the SNR of the RTS we sent |
Implements ns3::WifiRemoteStationManager.
Definition at line 255 of file rraa-wifi-manager.cc.
References NS_LOG_DEBUG.
|
privatevirtual |
This method is a pure virtual method that must be implemented by the sub-class.
This allows different types of WifiRemoteStationManager to respond differently,
station | the station that sent the DATA to us |
rxSnr | the SNR of the DATA we received |
txMode | the WifiMode the sender used to send the DATA |
Implements ns3::WifiRemoteStationManager.
Definition at line 250 of file rraa-wifi-manager.cc.
|
private |
Return the index for the maximum transmission rate for the given station.
station |
Definition at line 223 of file rraa-wifi-manager.cc.
References ns3::WifiRemoteStationManager::GetNSupported().
Referenced by ResetCountersBasic(), and RunBasicAlgorithm().
|
private |
Return the index for the minimum transmission rate for the given station.
station |
Definition at line 228 of file rraa-wifi-manager.cc.
Referenced by RunBasicAlgorithm().
|
private |
Get a threshold for the given mode.
mode |
Definition at line 376 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().
|
private |
Get a threshold for the given station and mode index.
station | |
rate |
Definition at line 368 of file rraa-wifi-manager.cc.
References ns3::WifiRemoteStationManager::GetSupported(), and GetThresholds().
|
static |
Definition at line 59 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::MakeTimeChecker(), and ns3::TypeId::SetParent().
|
privatevirtual |
Note: In this context, low vs high latency is defined in IEEE 802.11 Rate Adaptation: A Practical Approach, by M. Lacage, M.H. Manshaei, and T. Turletti.
Implements ns3::WifiRemoteStationManager.
Definition at line 466 of file rraa-wifi-manager.cc.
|
private |
Reset the counters of the given station.
station |
Definition at line 210 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::Simulator::Now().
Referenced by CheckTimeout(), DoGetDataTxVector(), and RunBasicAlgorithm().
|
private |
Find an appropriate rate for the given station, using a basic algorithm.
station |
Definition at line 320 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 131 of file rraa-wifi-manager.h.
Referenced by DoNeedRts(), and GetTypeId().
|
private |
Definition at line 138 of file rraa-wifi-manager.h.
Referenced by GetThresholds(), and GetTypeId().
|
private |
Definition at line 137 of file rraa-wifi-manager.h.
Referenced by GetThresholds(), and GetTypeId().
|
private |
Definition at line 136 of file rraa-wifi-manager.h.
Referenced by GetThresholds(), and GetTypeId().
|
private |
Definition at line 135 of file rraa-wifi-manager.h.
Referenced by GetThresholds(), and GetTypeId().
|
private |
Definition at line 134 of file rraa-wifi-manager.h.
Referenced by GetThresholds(), and GetTypeId().
|
private |
Definition at line 133 of file rraa-wifi-manager.h.
Referenced by GetThresholds(), and GetTypeId().
|
private |
Definition at line 140 of file rraa-wifi-manager.h.
Referenced by GetThresholds(), and GetTypeId().
|
private |
Definition at line 139 of file rraa-wifi-manager.h.
Referenced by GetThresholds(), and GetTypeId().
|
private |
Definition at line 153 of file rraa-wifi-manager.h.
Referenced by GetThresholds(), and GetTypeId().
|
private |
Definition at line 152 of file rraa-wifi-manager.h.
Referenced by GetThresholds(), and GetTypeId().
|
private |
Definition at line 151 of file rraa-wifi-manager.h.
Referenced by GetThresholds(), and GetTypeId().
|
private |
Definition at line 150 of file rraa-wifi-manager.h.
Referenced by GetThresholds(), and GetTypeId().
|
private |
Definition at line 149 of file rraa-wifi-manager.h.
Referenced by GetThresholds(), and GetTypeId().
|
private |
Definition at line 148 of file rraa-wifi-manager.h.
Referenced by GetThresholds(), and GetTypeId().
|
private |
Definition at line 154 of file rraa-wifi-manager.h.
Referenced by GetThresholds(), and GetTypeId().
|
private |
Definition at line 145 of file rraa-wifi-manager.h.
Referenced by GetThresholds(), and GetTypeId().
|
private |
Definition at line 144 of file rraa-wifi-manager.h.
Referenced by GetThresholds(), and GetTypeId().
|
private |
Definition at line 143 of file rraa-wifi-manager.h.
Referenced by GetThresholds(), and GetTypeId().
|
private |
Definition at line 142 of file rraa-wifi-manager.h.
Referenced by GetThresholds(), and GetTypeId().
|
private |
Definition at line 141 of file rraa-wifi-manager.h.
Referenced by GetThresholds(), and GetTypeId().
|
private |
Definition at line 147 of file rraa-wifi-manager.h.
Referenced by GetThresholds(), and GetTypeId().
|
private |
Definition at line 146 of file rraa-wifi-manager.h.
Referenced by GetThresholds(), and GetTypeId().
|
private |
Definition at line 132 of file rraa-wifi-manager.h.
Referenced by CheckTimeout(), and GetTypeId().