OriginatorQosMacDataService.ned
NED File src/inet/linklayer/ieee80211/mac/originator/OriginatorQosMacDataService.ned
| Name | Type | Description |
|---|---|---|
| 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. |
Source code
// // Copyright (C) 2016 OpenSim Ltd. // // SPDX-License-Identifier: LGPL-3.0-or-later // package inet.linklayer.ieee80211.mac.originator; import inet.common.Module; import inet.linklayer.ieee80211.mac.contract.IFragmentationPolicy; import inet.linklayer.ieee80211.mac.contract.IMsduAggregationPolicy; import inet.linklayer.ieee80211.mac.contract.IMpduAggregationPolicy; // // 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"); } }