PacketDelayerBase

Package: inet.queueing.base

PacketDelayerBase

simple module

C++ definition

Base module for packet delayer implementations. Provides common functionality for delaying packets for a specified amount of time before forwarding them. Supports clock synchronization, scheduling priorities, and zero-delay handling. Adds delay-related tags to packets for tracking and analysis.

Inheritance diagram

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.

Known subclasses

Name Type Description
EthernetCutthroughBarrier simple module (no description)
PacketDelayer simple module

Connects one packet producer to one packet consumer. It can be pushed with packets from the connected packet producer. When this happens, the packet is delayed and eventually pushed to the output. Note that the order of packets may change if the delay parameter is configured to be a distribution.

Extends

Name Type Description
PacketProcessorBase simple module

Base module for various packet processing modules which maintains a few statistics.

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

clockModule string ""

Relative path of a module that implements IClock(1,2); optional

schedulingPriority int 0
scheduleZeroDelay bool true

Properties

Name Value Description
class PacketDelayerBase
display i=block/delay

Gates

Name Direction Size Description
in input
out output

Source code

//
// Base module for packet delayer implementations. Provides common functionality
// for delaying packets for a specified amount of time before forwarding them.
// Supports clock synchronization, scheduling priorities, and zero-delay handling.
// Adds delay-related tags to packets for tracking and analysis.
//
simple PacketDelayerBase extends PacketProcessorBase
{
    parameters:
        string clockModule = default(""); // Relative path of a module that implements IClock; optional
        int schedulingPriority = default(0);
        bool scheduleZeroDelay = default(true);
        @class(PacketDelayerBase);
        @display("i=block/delay");
    gates:
        input in @labels(push);
        output out @labels(push);
}
File: src/inet/queueing/base/PacketDelayerBase.ned