Package: inet.linklayer.ieee80211.mac.ratecontrol
AarfRateControl
simple moduleImplements 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
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.
Known subclasses
| Name | Type | Description |
|---|---|---|
| ArfRateControl | simple module |
Implements the Auto Rate Fallback (ARF) adaptive rate control mechanism. |
Extends
| Name | Type | Description |
|---|---|---|
| SimpleModule | simple module |
Base module for all INET simple modules. |
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 | 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. @display("i=block/cogwheel"); @signal[datarateChanged]; @statistic[datarateChanged](title="datarate"; record=vector; interpolationmode=sample-hold); }File: src/inet/linklayer/ieee80211/mac/ratecontrol/AarfRateControl.ned