QosRecoveryProcedure

Package: inet.linklayer.ieee80211.mac.originator

QosRecoveryProcedure

simple module

C++ definition

Implements frame retransmission and recovery procedures for QoS frames in IEEE 802.11 networks. Manages retry counters for failed transmissions, adjusts contention window size, and enforces retry limits. Maintains separate short and long retry counters based on frame size relative to RTS threshold, and tracks per-TID frame status to support Quality of Service requirements.

<b>See also:</b> IRtsPolicy, Dcaf, Edcaf

Inheritance diagram

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

Used in compound modules

Name Type Description
Edcaf compound module

Implements EDCAF (Enhanced Distributed Channel Access Function) for IEEE 802.11. EDCAF represents one access category within EDCA.

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

cwCalculatorModule string
rtsPolicyModule string
shortRetryLimit int 7
longRetryLimit int 4

Properties

Name Value Description
class QosRecoveryProcedure
display i=block/cogwheel

Signals

Name Type Unit Description
contentionWindowChanged long
retryLimitReached inet::Packet

Statistics

Name Title Source Record Unit Interpolation Mode Description
contentionWindowChanged contention window vector sample-hold
retryLimitReached retry limit reached count

Source code

//
// Implements frame retransmission and recovery procedures for QoS frames in IEEE
// 802.11 networks. Manages retry counters for failed transmissions, adjusts
// contention window size, and enforces retry limits. Maintains separate short and
// long retry counters based on frame size relative to RTS threshold, and tracks
// per-TID frame status to support Quality of Service requirements.
//
// @see IRtsPolicy, Dcaf, Edcaf
//
simple QosRecoveryProcedure extends SimpleModule
{
    parameters:
        @class(QosRecoveryProcedure);
        string cwCalculatorModule;
        string rtsPolicyModule;

        int shortRetryLimit = default(7);
        int longRetryLimit = default(4);
        @display("i=block/cogwheel");
        @signal[contentionWindowChanged](type=long);
        @signal[retryLimitReached](type=inet::Packet);
        @statistic[contentionWindowChanged](title="contention window"; record=vector; interpolationmode=sample-hold);
        @statistic[retryLimitReached](title="retry limit reached"; record=count);
}

File: src/inet/linklayer/ieee80211/mac/originator/QosRecoveryProcedure.ned