OriginatorQosMacDataService

Package: inet.linklayer.ieee80211.mac.originator

compound module OriginatorQosMacDataService

Implements the MAC data service for the originator (sender) side in IEEE 802.11 QoS networks. Extends the basic MAC data service with QoS capabilities including MSDU aggregation (A-MSDU) and MPDU aggregation (A-MPDU). Processes outgoing frames by assigning sequence numbers, performing aggregation, and fragmentation based on configured policies. Follows the MAC data plane architecture described in IEEE 802.11 standard.

Usage diagram

Inheritance 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

Module

compound module

Base module for all INET compound 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

Properties

Name

Value

Description

class

OriginatorQosMacDataService

display

i=block/fork

Signals

Name

Type

Unit

Description

packetAggregated

inet::Packet

packetFragmented

inet::Packet

Statistics

Name

Title

Source

Record

Unit

Interpolation Mode

Description

packetAggregated

packets aggregated

count

packetFragmented

packets fragmented

count

Unassigned submodule parameters

Name

Type

Default value

Description

msduAggregationPolicy.displayStringTextFormat

string

“”

Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information

msduAggregationPolicy.subframeNumThreshold

int

-1

Minimum number of subframes needed to compose an A-MSDU. (-1 means it won’t be checked)

msduAggregationPolicy.aggregationLengthThreshold

int

-1

The minimum length for an aggregated payload necessary to create an A-MSDU (-1 means it won’t be checked).

msduAggregationPolicy.maxAMsduSize

int

4065

-1 means infinity

msduAggregationPolicy.qOsCheck

bool

true

Turns on/off the check of the presence of the QoS flag (false means off – this is needed for aggregation in DCF mode).

mpduAggregationPolicy.displayStringTextFormat

string

“”

Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information

fragmentationPolicy.displayStringTextFormat

string

“”

Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information

fragmentationPolicy.fragmentationThreshold

int

1500B

Source code

//
// Implements the MAC data service for the originator (sender) side in IEEE 802.11
// QoS networks. Extends the basic MAC data service with QoS capabilities including
// MSDU aggregation (A-MSDU) and MPDU aggregation (A-MPDU). Processes outgoing
// frames by assigning sequence numbers, performing aggregation, and fragmentation
// based on configured policies. Follows the MAC data plane architecture described
// in IEEE 802.11 standard.
//
module OriginatorQosMacDataService extends Module
{
    parameters:
        @class(OriginatorQosMacDataService);
        @display("i=block/fork");
        @signal[packetFragmented](type=inet::Packet);
        @signal[packetAggregated](type=inet::Packet);
        @statistic[packetFragmented](title="packets fragmented"; record=count);
        @statistic[packetAggregated](title="packets aggregated"; record=count);
    submodules:
        msduAggregationPolicy: <default("BasicMsduAggregationPolicy")> like IMsduAggregationPolicy if typename != "" {
            parameters:
                @display("p=100,100");
        }
        mpduAggregationPolicy: <default("BasicMpduAggregationPolicy")> like IMpduAggregationPolicy if typename != "" {
            parameters:
                @display("p=100,300");
        }
        fragmentationPolicy: <default("BasicFragmentationPolicy")> like IFragmentationPolicy if typename != "" {
            parameters:
                @display("p=100,200");
        }
}

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