ArfRateControl

Package: inet.linklayer.ieee80211.mac.ratecontrol

ArfRateControl

simple module

C++ definition

Implements the Auto Rate Fallback (ARF) adaptive rate control mechanism.

Inheritance diagram

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.

Extends

Name Type Description
AarfRateControl simple module

Implements the Adaptive ARF (AARF) rate control mechanism, which was initially described in IEEE 802.11 Rate Adaptation: A Practical Approach, by M. Lacage, M.H. Manshaei, and T. Turletti, 2004.

Parameters

Name Type Default value Description
displayStringTextFormat string ""

Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information

initialRate double -1bps -1 means the fastest mandatory rate
interval double 50ms

The rate (unconditionally) increases after each time interval.

increaseThreshold int 10

Number of successful transmissions needed to increase the rate

decreaseThreshold int 2

Number of consecutive unsuccessful transmissions (in the sense that the ACK does not arrive within the timeout) needed to increase the rate

increaseThresholdFactor double 1

When the transmission of the probing packet fails, increaseThreshold is multiplied by increaseThresholdFactor.

maxIncreaseThreshold int 50

Upper bound for increaseThreshold.

Properties

Name Value Description
class AarfRateControl
display i=block/cogwheel

Signals

Name Type Unit Description
datarateChanged

Statistics

Name Title Source Record Unit Interpolation Mode Description
datarateChanged datarate vector sample-hold

Source code

//
// Implements the Auto Rate Fallback (ARF) adaptive rate
// control mechanism.
//
simple ArfRateControl extends AarfRateControl
{
    parameters:
        increaseThresholdFactor = default(1);
        @display("i=block/cogwheel");
}

File: src/inet/linklayer/ieee80211/mac/ratecontrol/ArfRateControl.ned