User Manual, Developers Guide and API Documentation

wifimac::lowerMAC::rateAdaptationStrategies::ARF Class Reference

The ARF Rate Adpation tries to find the maximum MCS with a packet error rate below a given value. More...

#include <lowerMAC/rateAdaptationStrategies/ARF.hpp>

Inheritance diagram for wifimac::lowerMAC::rateAdaptationStrategies::ARF:

Inheritance graph
[legend]
Collaboration diagram for wifimac::lowerMAC::rateAdaptationStrategies::ARF:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 ARF (const wns::pyconfig::View &_config, wns::service::dll::UnicastAddress _receiver, wifimac::management::PERInformationBase *_per, wifimac::management::SINRInformationBase *_sinr, wifimac::lowerMAC::Manager *_manager, wifimac::convergence::PhyUser *_phyUser, wns::logger::Logger *_logger)
wifimac::convergence::PhyMode getPhyMode (size_t numTransmissions, const wns::Ratio lqm) const
 getPhyMode with additional lqm
wifimac::convergence::PhyMode getPhyMode (size_t numTransmissions) const
 getPhyMode: Return the PhyMode depending on the number of transmissions.
virtual void setCurrentPhyMode (wifimac::convergence::PhyMode pm)
 Notify the rate adaptation strategy of the used PhyMode.

Private Member Functions

void onTimeout ()
 Your callback. Implement this.

Private Attributes

const wns::simulator::Time arfTimer
wifimac::convergence::PhyMode curPhyMode
const bool exponentialBackoff
struct
wifimac::lowerMAC::rateAdaptationStrategies::ARF::Friends 
friends
const int initialSuccessThreshold
wns::logger::Loggerlogger
const int maxSuccessThreshold
const
wns::service::dll::UnicastAddress 
myReceiver
wifimac::management::PERInformationBaseper
bool probePacket
int successThreshold
bool timeout

Classes

struct  Friends


Detailed Description

ARF RA works only using the statistics of received ACKs as a reply to the used MCS. Hence, it slowly increases the rate by selecting high-rate MCSs, until the PER exceeds a given value. Then, it stays at the next lower MCS until the percieved PER changes again.

Definition at line 53 of file ARF.hpp.


Constructor & Destructor Documentation

Definition at line 38 of file ARF.cpp.


Member Function Documentation

wifimac::convergence::PhyMode ARF::getPhyMode ( size_t  numTransmissions,
const wns::Ratio  lqm 
) const [virtual]

wifimac::convergence::PhyMode ARF::getPhyMode ( size_t  numTransmissions  )  const [virtual]

This method returns the currently selected phyMode of the specific rate adaptation strategy, given the number of transmissions for the frame. This method is const and thus cannot change the internal state of the rate adaptation strategy. Hence, multiple calls to the method at the same simulation time and number of transmissions (e.g. to calculate transmit durations) return ALWAYS the same phyMode.

Implements wifimac::lowerMAC::rateAdaptationStrategies::IRateAdaptationStrategy.

Reimplemented in wifimac::lowerMAC::rateAdaptationStrategies::SINR.

Definition at line 69 of file ARF.cpp.

void ARF::onTimeout (  )  [private, virtual]

The deriver is forced to implement this method. It gets called, whenever the timer fires.

Implements wns::events::CanTimeout.

Definition at line 163 of file ARF.cpp.

void ARF::setCurrentPhyMode ( wifimac::convergence::PhyMode  pm  )  [virtual]


Member Data Documentation

Definition at line 83 of file ARF.hpp.

Definition at line 98 of file ARF.hpp.

Definition at line 84 of file ARF.hpp.

Definition at line 85 of file ARF.hpp.

Reimplemented in wifimac::lowerMAC::rateAdaptationStrategies::SINR.

Definition at line 96 of file ARF.hpp.

Definition at line 86 of file ARF.hpp.

Reimplemented in wifimac::lowerMAC::rateAdaptationStrategies::SINR.

Definition at line 82 of file ARF.hpp.

Reimplemented in wifimac::lowerMAC::rateAdaptationStrategies::SINR.

Definition at line 81 of file ARF.hpp.

Definition at line 89 of file ARF.hpp.

Definition at line 88 of file ARF.hpp.

Definition at line 87 of file ARF.hpp.


The documentation for this class was generated from the following files:

Generated on Sat May 26 03:32:42 2012 for openWNS by  doxygen 1.5.5