OriginatorQosMacDataService

Package: inet.linklayer.ieee80211.mac.originator

OriginatorQosMacDataService

compound module

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.

msduAggregationPolicy : like IMsduAggregationPolicy

BasicMsduAggregationPolicy: Implements a basic MSDU aggregation policy, controlled by parameters such as the minimum number of...

IMsduAggregationPolicy: Interface for MSDU aggregation policies.

Source:
msduAggregationPolicy: <default("BasicMsduAggregationPolicy")> like IMsduAggregationPolicy if typename != "" {
    parameters:
        @display("p=100,100");
} mpduAggregationPolicy : like IMpduAggregationPolicy

BasicMpduAggregationPolicy: Implements an MPDU aggregation policy that never aggregates frames.

IMpduAggregationPolicy: Interface for MPDU aggregation policies.

Source:
mpduAggregationPolicy: <default("BasicMpduAggregationPolicy")> like IMpduAggregationPolicy if typename != "" {
    parameters:
        @display("p=100,300");
} fragmentationPolicy : like IFragmentationPolicy

BasicFragmentationPolicy: Implements a basic fragmentation policy, which employs a fragmentation frame size threshold.

IFragmentationPolicy: Interface for fragmentation policies.

Source:
fragmentationPolicy: <default("BasicFragmentationPolicy")> like IFragmentationPolicy if typename != "" {
    parameters:
        @display("p=100,200");
}

Usage diagram

The following diagram shows usage relationships between types. Unresolved types are missing from the diagram.

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
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

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