PacketDelayerBase

Package: inet.queueing.base

simple module PacketDelayerBase

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.

inet.queueing.base.PacketDelayerBasePacketDelayerBasesimple

Inheritance 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 {numProcessedPackets} pk ({processedTotalLength})”

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,:ref:2 <neddoc-msg-inet-iclock>); 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