Package: inet.linklayer.ieee80211.mac.ratecontrol
AARFRateControl
simple moduleReferences: [1] ftp://ftp-sop.inria.fr/planete/ivs/papers/mswim04.pdf [2] http://research.microsoft.com/en-us/projects/mesh/mobicom01.pdf "However, there is a clear threshold region in the 40ms-60ms range, depending on the degree of mobility, beyond which there is little performance change but below which there is a noticeable drop."
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 | (no description) |
Parameters
Name | Type | Default value | Description |
---|---|---|---|
initialRate | double | -1bps | -1 means fastest mandatory rate |
interval | double | 50ms |
The rate (unconditionally) increases after each time interval (the default interval is unspecified [2]). |
increaseThreshold | int | 10 |
Number of successful transmissions needed to increase the rate |
decreaseThreshold | int | 2 |
Number of consecutive unsuccessful transmissions (in the sense that ACK does not arrive within timeout) needed to increase the rate |
increaseThresholdFactor | double | 2 |
When the transmission of probing packet fails, we multiply by "increaseThresholdFactor" the increaseThreshold. |
maxIncreaseThreshold | int | 50 |
Upper bound for increaseThreshold. |
Properties
Name | Value | Description |
---|---|---|
display | i=block/cogwheel |
Signals
Name | Type | Unit |
---|---|---|
datarate |
Statistics
Name | Title | Source | Record | Unit | Interpolation Mode |
---|---|---|---|---|---|
datarate | vector |
Source code
// References: // [1] ftp://ftp-sop.inria.fr/planete/ivs/papers/mswim04.pdf // [2] http://research.microsoft.com/en-us/projects/mesh/mobicom01.pdf // "However, there is a clear threshold region in the 40ms-60ms // range, depending on the degree of mobility, beyond which // there is little performance change but below which there is a // noticeable drop." // simple AARFRateControl like IRateControl { parameters: double initialRate @unit("bps") = default(-1bps); // -1 means fastest mandatory rate double interval @unit("s") = default(50ms); // The rate (unconditionally) increases after each time interval (the default interval is unspecified [2]). 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 ACK does not arrive within timeout) // needed to increase the rate double increaseThresholdFactor = default(2); // When the transmission of probing packet fails, we multiply by "increaseThresholdFactor" the increaseThreshold. int maxIncreaseThreshold = default(50); // Upper bound for increaseThreshold. @display("i=block/cogwheel"); @signal[datarate]; @statistic[datarate](record=vector); }File: src/inet/linklayer/ieee80211/mac/ratecontrol/AARFRateControl.ned