InterpacketGapInserter

Package: inet.protocolelement.common

InterpacketGapInserter

simple module

(no description)

Inheritance diagram

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

Used in compound modules

Name Type Description
EthernetPhyLayer compound module (no description)
EthernetPreemptingPhyLayer compound module (no description)

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 "delayed %p pk (%l)\nifg: %g"

determines the text that is written on top of the submodule

clockModule string ""

relative path of a module that implements IClock; optional

initialChannelBusy bool false

assume that channel was busy before the simulation started

duration double

Properties

Name Value Description
display i=block/timer
class InterpacketGapInserter

Gates

Name Direction Size Description
in input
out output

Signals

Name Type Unit
interpacketGapEnded double
interpacketGapStarted double

Statistics

Name Title Source Record Unit Interpolation Mode
interpacketGap interpacket gap state count(interpacketGapStarted) - count(interpacketGapEnded) vector sample-hold

Scheduled messages (observed)

msgkindctrltagsmsgnamecontext
ClockEvent0IfgTimer

Direct method calls (observed)

call tofunctioninfo
PcapRecorderinet::PcapRecorder::receiveSignalpacketSentToLower
Ieee8021qCreditBasedShaperinet::queueing::CreditBasedGate::receiveSignalinterpacketGapEnded
EthernetPhyHeaderInserterinet::physicallayer::EthernetPhyHeaderInserter::handleCanPushPacketChangedhandleCanPushPacketChanged
PacketEmitterinet::PacketEmitter::pushPacketpushPacket
PacketEmitterinet::PacketEmitter::pushPacketEndpushPacketEnd
PacketEmitterinet::PacketEmitter::pushPacketProgresspushPacketProgress
PacketTransmitterinet::PacketTransmitter::pushPacketpushPacket
PacketMultiplexerinet::queueing::PacketMultiplexer::handleCanPushPacketChangedhandleCanPushPacketChanged

Called methods (observed)

functioninfocall from
inet::InterpacketGapInserter::handleCanPushPacketChangedhandleCanPushPacketChangedPacketEmitter, PacketTransmitter
inet::InterpacketGapInserter::pushPacketpushPacketEthernetPhyHeaderInserter
inet::InterpacketGapInserter::pushPacketEndpushPacketEndPacketMultiplexer
inet::InterpacketGapInserter::pushPacketProgresspushPacketProgressPacketMultiplexer

Pushed in messages (observed)

gatemsgkindctrlsrcModuletags
inPacket0EthernetPhyHeaderInserterDirectionTag, InterfaceReq, MacAddressReq, PacketProtocolTag, CreditGateTag?, CutthroughTag?, DispatchProtocolInd?, DropEligibleInd?, DropEligibleReq?, EcnInd?, EligibilityTimeTag?, EncapsulationProtocolReq?, Ieee802SapReq?, InterfaceInd?, MulticastReq?, NetworkProtocolInd?, PcpInd?, PcpReq?, SequenceNumberInd?, SocketReq?, StreamReq?, TransportProtocolInd?, UserPriorityInd?, UserPriorityReq?, VlanInd?, VlanReq?
inPacket0PacketMultiplexerDirectionTag, DispatchProtocolInd, EncapsulationProtocolReq, InterfaceReq, MacAddressReq, MulticastReq, NetworkProtocolInd, PacketProtocolTag, TransportProtocolInd, VlanReq, FragmentTag?

Push out messages (observed)

gatemsgkindctrldestModuletags
outPacket0PacketEmitterDirectionTag, InterfaceReq, MacAddressReq, PacketProtocolTag, CreditGateTag?, CutthroughTag?, DispatchProtocolInd?, DropEligibleInd?, DropEligibleReq?, EcnInd?, EligibilityTimeTag?, EncapsulationProtocolReq?, FragmentTag?, Ieee802SapReq?, InterfaceInd?, MulticastReq?, NetworkProtocolInd?, PcpInd?, PcpReq?, SequenceNumberInd?, SocketReq?, StreamReq?, TransportProtocolInd?, UserPriorityInd?, UserPriorityReq?, VlanInd?, VlanReq?
outPacket0PacketTransmitterDirectionTag, InterfaceReq, MacAddressReq, PacketProtocolTag, DispatchProtocolInd?, EncapsulationProtocolReq?, MulticastReq?, NetworkProtocolInd?, TransportProtocolInd?

Source code

simple InterpacketGapInserter extends PacketProcessorBase
{
    parameters:
        string clockModule = default(""); // relative path of a module that implements IClock; optional
        bool initialChannelBusy = default(false); // assume that channel was busy before the simulation started
        volatile double duration @unit(s);
        displayStringTextFormat = default("delayed %p pk (%l)\nifg: %g");
        @display("i=block/timer");
        @class(InterpacketGapInserter);
        @signal[interpacketGapStarted](type=double);
        @signal[interpacketGapEnded](type=double);
        @statistic[interpacketGap](title="interpacket gap state"; type=int; source=count(interpacketGapStarted) - count(interpacketGapEnded); record=vector; interpolationmode=sample-hold);
    gates:
        input in;
        output out;
}
File: src/inet/protocolelement/common/InterpacketGapInserter.ned