QosRateSelection

Package: inet.linklayer.ieee80211.mac.rateselection

QosRateSelection

simple module

C++ definition

Implements rate selection for IEEE 802.11 QoS frames. Selects appropriate transmission rates for different frame types (data, management, control, response) based on configured parameters and dynamic conditions. Supports different bitrates for multicast frames, response frames (ACK, CTS, BlockAck), and can use a rate control module for dynamic rate adaptation.

<b>See also:</b> IRateControl

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
Hcf compound module

Implements the HCF (Hybrid Coordination Function) for IEEE 802.11.

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

rateControlModule string
multicastFrameBitrate double -1bps
responseAckFrameBitrate double -1bps
responseBlockAckFrameBitrate double -1bps
responseCtsFrameBitrate double -1bps
dataFrameBitrate double -1bps

Fastest

dataFrameBandwidth double nan Hz

Unspecified by default

dataFrameNumSpatialStreams int -1

Unspecified by default

mgmtFrameBitrate double -1bps

Fastest

controlFrameBitrate double -1bps

Properties

Name Value Description
class QosRateSelection
display i=block/cogwheel

Source code

//
// Implements rate selection for IEEE 802.11 QoS frames.
// Selects appropriate transmission rates for different frame types (data, management,
// control, response) based on configured parameters and dynamic conditions. Supports
// different bitrates for multicast frames, response frames (ACK, CTS, BlockAck), and
// can use a rate control module for dynamic rate adaptation.
//
// @see IRateControl
//
simple QosRateSelection extends SimpleModule
{
    parameters:
        @class(QosRateSelection);
        string rateControlModule;

        double multicastFrameBitrate @unit(bps) = default(-1bps);

        double responseAckFrameBitrate @unit(bps) = default(-1bps);
        double responseBlockAckFrameBitrate @unit(bps) = default(-1bps);
        double responseCtsFrameBitrate @unit(bps) = default(-1bps);

        double dataFrameBitrate @unit(bps) = default(-1bps); // Fastest
        double dataFrameBandwidth @unit(Hz) = default(nan Hz); // Unspecified by default
        int dataFrameNumSpatialStreams = default(-1); // Unspecified by default

        double mgmtFrameBitrate @unit(bps) = default(-1bps); // Fastest
        double controlFrameBitrate @unit(bps) = default(-1bps);
        @display("i=block/cogwheel");
}

File: src/inet/linklayer/ieee80211/mac/rateselection/QosRateSelection.ned