PassivePacketSink

Package: inet.queueing.sink

PassivePacketSink

simple module

This module is a passive packet sink which is pushed with packets by the connected packet producer. All pushed packets are counted and deleted.

PassivePacketSink

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
DiffservQueue compound module

This is an example queue, that can be used in interfaces of DS core and edge nodes to support the AFxy (RFC 2597) and EF (RFC 3246) PHBs.

Extends

Name Type Description
PassivePacketSinkBase simple module

This is a base module for various active packet sink modules.

Parameters

Name Type Default value Description
displayStringTextFormat string "received %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

consumptionInterval double 0s

elapsed time between subsequent packets allowed to be pushed by the connected packet producer, 0 means any number of packets can be pushed at the same simulation time

scheduleForAbsoluteTime bool true

when a clock is used relative means that setting the clock will not affect the simulation time of the event

Properties

Name Value Description
display i=block/sink
class PassivePacketSink

Gates

Name Direction Size Description
in input

Signals

Name Type Unit
packetPushed inet::Packet

Statistics

Name Title Source Record Unit Interpolation Mode
packetDelayVariation packet delay variation stddev(weightedMeanPerGroup(groupRegionsPerPacket(lifeTimePerRegion(packetPushed)))) vector, histogram s
packetDelayDifferenceToMean packet delay difference to mean differenceToMean(weightedMeanPerGroup(groupRegionsPerPacket(lifeTimePerRegion(packetPushed)))) vector, histogram s none
meanBitLifeTimePerPacket mean bit life time per packet weightedMeanPerGroup(groupRegionsPerPacket(lifeTimePerRegion(packetPushed))) vector, histogram s none
packetLengths packet lengths packetLength(packetPushed) sum, histogram, vector b none
dataRate data rate throughput(packetPushed) vector bps linear
packetJitter packet jitter jitter(weightedMeanPerGroup(groupRegionsPerPacket(lifeTimePerRegion(packetPushed)))) vector, histogram s none
bitLifeTime bit life time weightTimes(lengthWeightedValuePerRegion(lifeTimePerRegion(packetPushed))) histogram? s none
packets packets packetPushed count pk

Scheduled messages (observed)

msgkindctrltagsmsgnamecontext
ClockEvent0ConsumptionTimer

Direct method calls (observed)

call tofunctioninfo
ResidenceTimeMeasurerinet::ResidenceTimeMeasurer::receiveSignalpacketDropped
BehaviorAggregateClassifierinet::BehaviorAggregateClassifier::handleCanPushPacketChangedhandleCanPushPacketChanged
MultiFieldClassifierinet::MultiFieldClassifier::handleCanPushPacketChangedhandleCanPushPacketChanged
ContentBasedClassifierinet::queueing::ContentBasedClassifier::handleCanPushPacketChangedhandleCanPushPacketChanged
LabelClassifierinet::queueing::LabelClassifier::handleCanPushPacketChangedhandleCanPushPacketChanged
MarkovClassifierinet::queueing::MarkovClassifier::handleCanPushPacketChangedhandleCanPushPacketChanged
PacketClassifierinet::queueing::PacketClassifier::handleCanPushPacketChangedhandleCanPushPacketChanged
WrrClassifierinet::queueing::WrrClassifier::handleCanPushPacketChangedhandleCanPushPacketChanged
OrdinalBasedDuplicatorinet::queueing::OrdinalBasedDuplicator::handleCanPushPacketChangedhandleCanPushPacketChanged
PacketClonerinet::queueing::PacketCloner::handleCanPushPacketChangedhandleCanPushPacketChanged
PacketDelayerinet::queueing::PacketDelayer::handleCanPushPacketChangedhandleCanPushPacketChanged
PacketDuplicatorinet::queueing::PacketDuplicator::handleCanPushPacketChangedhandleCanPushPacketChanged
PacketMultiplexerinet::queueing::PacketMultiplexer::handleCanPushPacketChangedhandleCanPushPacketChanged
ContentBasedFilterinet::queueing::ContentBasedFilter::handleCanPushPacketChangedhandleCanPushPacketChanged
OrdinalBasedDropperinet::queueing::OrdinalBasedDropper::handleCanPushPacketChangedhandleCanPushPacketChanged
StatisticalRateLimiterinet::queueing::StatisticalRateLimiter::handleCanPushPacketChangedhandleCanPushPacketChanged
FlowMeasurementRecorderinet::queueing::FlowMeasurementRecorder::handleCanPushPacketChangedhandleCanPushPacketChanged
PacketGateinet::queueing::PacketGate::handleCanPushPacketChangedhandleCanPushPacketChanged
ContentBasedTaggerinet::queueing::ContentBasedTagger::handleCanPushPacketChangedhandleCanPushPacketChanged
PacketTaggerinet::queueing::PacketTagger::handleCanPushPacketChangedhandleCanPushPacketChanged
PacketServerinet::queueing::PacketServer::handleCanPushPacketChangedhandleCanPushPacketChanged
TokenBasedServerinet::queueing::TokenBasedServer::handleCanPushPacketChangedhandleCanPushPacketChanged
PassivePacketSinkinet::queueing::PassivePacketSink::pushPacketpushPacket
ActivePacketSourceinet::queueing::ActivePacketSource::handleCanPushPacketChangedhandleCanPushPacketChanged
SignalBasedTokenGeneratorinet::queueing::SignalBasedTokenGenerator::receiveSignalpacketDropped
inet.tutorials.queueing.ExampleCompoundPriorityQueueinet::queueing::CompoundPacketQueueBase::receiveSignalpacketDropped

Called methods (observed)

functioninfocall from
inet::queueing::PassivePacketSink::pushPacketpushPacketContentBasedClassifier, LabelClassifier, MarkovClassifier, PacketClassifier, WrrClassifier, OrdinalBasedDuplicator, PacketCloner, PacketDelayer, PacketDuplicator, PacketMultiplexer, ContentBasedFilter, OrdinalBasedDropper, StatisticalRateLimiter, FlowMeasurementRecorder, PacketGate, ContentBasedTagger, PacketTagger, PacketServer, TokenBasedServer, PassivePacketSink, ActivePacketSource

Incoming messages (observed)

gatemsgkindctrlsrcModuletags
inPacket0UdpSocketIoDscpInd, EcnInd, HopLimitInd, InterfaceInd, L3AddressInd, L4PortInd, NetworkProtocolInd, TosInd, TransportProtocolInd, DirectionTag?, MacAddressInd?
inPacket0Ieee80211PortalDispatchProtocolReq, ErrorRateInd, InterfaceInd, MacAddressInd, PacketProtocolTag, SignalPowerInd, SignalTimeInd, SnirInd, Ieee80211ChannelInd, Ieee80211ModeInd
inPacket1TcpClientSocketIo
inPacket1TcpServerSocketIo

Pushed in messages (observed)

gatemsgkindctrlsrcModuletags
inPacket0SingleRateThreeColorMeterDispatchProtocolInd, InterfaceInd, InterfaceReq, MacAddressInd, NetworkProtocolInd, PacketProtocolTag
inPacket0ContentBasedClassifierDirectionTag
inPacket0LabelClassifierDirectionTag, LabelsTag
inPacket0MarkovClassifierDirectionTag
inPacket0PacketClassifierDirectionTag
inPacket0WrrClassifierDirectionTag
inPacket0OrdinalBasedDuplicatorDirectionTag
inPacket0PacketClonerDirectionTag
inPacket0PacketDelayerDirectionTag
inPacket0PacketDuplicatorDirectionTag
inPacket0PacketMultiplexerDirectionTag
inPacket0ContentBasedFilterDirectionTag
inPacket0OrdinalBasedDropperDirectionTag
inPacket0StatisticalRateLimiterDirectionTag, RateTag
inPacket0FlowMeasurementRecorderDirectionTag, DscpInd, EcnInd, HopLimitInd, InterfaceInd, L3AddressInd, L4PortInd, MacAddressInd, NetworkProtocolInd, TosInd, TransportProtocolInd
inPacket0PacketGateDirectionTag
inPacket0ContentBasedTaggerDirectionTag, HopLimitReq?
inPacket0PacketTaggerDirectionTag, HopLimitReq
inPacket0PacketServerDirectionTag
inPacket0TokenBasedServerDirectionTag
inPacket0ActivePacketSourceDirectionTag

Packet operations (observed)

chunkTypepacketAction
peekData

Region Tagging operations (observed)

tagTypetagAction
CreationTimeTaggetAllTags

Source code

//
// This module is a passive packet sink which is pushed with packets by the
// connected packet producer. All pushed packets are counted and deleted.
//
simple PassivePacketSink extends PassivePacketSinkBase like IPassivePacketSink
{
    parameters:
        string clockModule = default(""); // relative path of a module that implements IClock; optional
        volatile double consumptionInterval @unit(s) = default(0s); // elapsed time between subsequent packets allowed to be pushed by the connected packet producer, 0 means any number of packets can be pushed at the same simulation time
        bool scheduleForAbsoluteTime = default(true); // when a clock is used relative means that setting the clock will not affect the simulation time of the event
        @class(PassivePacketSink);
    gates:
        input in @labels(push);
}

File: src/inet/queueing/sink/PassivePacketSink.ned