AarfRateControl¶
Package: inet.linklayer.ieee80211.mac.ratecontrol
simple module AarfRateControl
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.
Inheritance diagram¶
Known subclasses¶
Name |
Type |
Description |
|---|---|---|
simple module |
Implements the Auto Rate Fallback (ARF) adaptive rate control mechanism. |
Extends¶
Name |
Type |
Description |
|---|---|---|
simple module |
Base module for all INET simple modules. |
Parameters¶
Name |
Type |
Default value |
Description |
|---|---|---|---|
displayStringTextFormat |
string |
“{currentMode}” |
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) |
increaseThresholdFactor |
double |
2 |
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 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.
//
simple AarfRateControl extends SimpleModule like IRateControl
{
parameters:
@class(AarfRateControl);
double initialRate @unit(bps) = default(-1bps); // -1 means the fastest mandatory rate
double interval @unit(s) = default(50ms); // The rate (unconditionally) increases after each time interval.
int increaseThreshold = default(10); // Number of successful transmissions needed to increase the rate
int decreaseThreshold = default(2); // Number of consecutive unsuccessful transmissions (in the sense that the ACK does not arrive within the timeout)
// needed to increase the rate
double increaseThresholdFactor = default(2); // When the transmission of the probing packet fails, increaseThreshold is multiplied by increaseThresholdFactor.
int maxIncreaseThreshold = default(50); // Upper bound for increaseThreshold.
displayStringTextFormat = default("{currentMode}");
@display("i=block/cogwheel");
@signal[datarateChanged];
@statistic[datarateChanged](title="datarate"; record=vector; interpolationmode=sample-hold);
}
File: src/inet/linklayer/ieee80211/mac/ratecontrol/AarfRateControl.ned