AggregatorBase

Package: inet.protocolelement.aggregation.base

AggregatorBase

compound module

Base module for packet aggregation. Collects multiple packets and combines them into a single aggregated packet based on a configurable aggregation policy. Aggregation improves network efficiency by reducing header overhead when transmitting multiple small packets. The module delegates the aggregation decision to a policy class or module that determines if a packet can be aggregated with the current set.

<b>See also:</b> DeaggregatorBase

aggregatorPolicy : like IAggregatorPolicy

LengthBasedAggregatorPolicy: A policy for aggregating subpackets based on their length

IAggregatorPolicy: Interface for aggregator policy modules that determine when packets can be aggregated.

Source:
aggregatorPolicy: <default("LengthBasedAggregatorPolicy")> like IAggregatorPolicy if typename != "" {
    parameters:
        @display("p=100,100");
}

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.

Known subclasses

Name Type Description
SubpacketLengthHeaderBasedAggregator compound module

Aggregates multiple packets into a single packet by inserting a length field header before each subpacket. This module collects packets according to the aggregation policy and combines them into a single aggregated packet. Each subpacket is preceded by a SubpacketLengthHeader that contains the length of the following subpacket, allowing the receiver to extract individual packets.

Extends

Name Type Description
PacketPusherBase simple module

Base module for various packet pusher modules.

Parameters

Name Type Default value Description
displayStringTextFormat string "processed %p pk (%l)"

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

deleteSelf bool false
aggregatorPolicyClass string ""
aggregatorPolicyModule string ".aggregatorPolicy"

Only used if aggregatorPolicyClass==""

Properties

Name Value Description
class AggregatorBase
display i=block/join

Gates

Name Direction Size Description
in input
out output

Source code

//
// Base module for packet aggregation. Collects multiple packets and combines them
// into a single aggregated packet based on a configurable aggregation policy.
// Aggregation improves network efficiency by reducing header overhead when
// transmitting multiple small packets. The module delegates the aggregation
// decision to a policy class or module that determines if a packet can be
// aggregated with the current set.
//
// @see DeaggregatorBase
//
module AggregatorBase extends PacketPusherBase
{
    parameters:
        bool deleteSelf = default(false);
        string aggregatorPolicyClass = default("");
        string aggregatorPolicyModule = default(".aggregatorPolicy");  // Only used if aggregatorPolicyClass==""
        @display("i=block/join");
        @class(AggregatorBase);
    submodules:
        aggregatorPolicy: <default("LengthBasedAggregatorPolicy")> like IAggregatorPolicy if typename != "" {
            parameters:
                @display("p=100,100");
        }
}
File: src/inet/protocolelement/aggregation/base/AggregatorBase.ned