PacketDelayer

Package: inet.queueing.common

PacketDelayer

simple module

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

PacketDelayer

Inheritance diagram

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

Extends

Name Type Description
PacketProcessorBase simple module

This is a 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

clockModule string ""

relative path of a module that implements IClock; optional

delay double

Properties

Name Value Description
display i=block/delay
class PacketDelayer

Gates

Name Direction Size Description
in input
out output

Scheduled messages (observed)

msgkindctrltagsmsgnamecontext
Packet0DirectionTagproducer-N
Packet0DirectionTagsourceApplication-N

Direct method calls (observed)

call tofunctioninfo
PacketServerinet::queueing::PacketServer::handleCanPushPacketChangedhandleCanPushPacketChanged
PassivePacketSinkinet::queueing::PassivePacketSink::pushPacketpushPacket
ActivePacketSourceinet::queueing::ActivePacketSource::handleCanPushPacketChangedhandleCanPushPacketChanged

Called methods (observed)

functioninfocall from
inet::queueing::PacketDelayer::handleCanPushPacketChangedhandleCanPushPacketChangedPassivePacketSink
inet::queueing::PacketDelayer::pushPacketpushPacketPacketServer, ActivePacketSource

Pushed in messages (observed)

gatemsgkindctrlsrcModuletags
inPacket0PacketServerDirectionTag
inPacket0ActivePacketSourceDirectionTag

Push out messages (observed)

gatemsgkindctrldestModuletags
outPacket0PassivePacketSinkDirectionTag

Region Tagging operations (observed)

tagTypetagAction
DelayingTimeTagmapAllTagsForUpdate
PacketEventTagmapAllTagsForUpdate

Source code

//
// This 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.
//
simple PacketDelayer extends PacketProcessorBase like IPacketDelayer
{
    parameters:
        string clockModule = default(""); // relative path of a module that implements IClock; optional
        volatile double delay @unit(s);
        @class(PacketDelayer);
        @display("i=block/delay");
    gates:
        input in @labels(push);
        output out @labels(push);
}
File: src/inet/queueing/common/PacketDelayer.ned