PassivePacketSink

Package: inet.queueing.sink

simple module PassivePacketSink

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

inet.queueing.sink.PassivePacketSinkPassivePacketSinksimple

Usage diagram

Inheritance diagram

Used in compound modules

Name

Type

Description

SinkApp

compound module

Implements a generic sink application.

EthernetApp

compound module

Generates traffic as an Ethernet application. The traffic source and traffic sink modules can be built from queueing model elements.

Ieee8022LlcApp

compound module

Generates traffic as an IEEE 802.2 LLC application. The traffic source and traffic sink modules can be built from queueing model elements.

IpApp

compound module

Generates traffic for a IP application. The traffic source and traffic sink modules can be built from queueing model elements.

TcpClientApp

compound module

A generic, very modular TCP client application, similar to TcpServerApp. The traffic source and traffic sink modules can be built from queueing model elements.

TcpServerConnection

compound module

This is a pre-assembled module type to be used in TcpServerApp. One instance of this module type is launched by TcpServerListener for each incoming connection. It is composed of a traffic source, a traffic sink, a socket I/O and other modules, and most of the module types are parametric. The traffic source and traffic sink modules can be built from queueing model elements.

TelnetClientApp

compound module

This client application contains a configurable pre-composed telnet traffic source and traffic sink.

TelnetServerConnection

compound module

Contains a configurable pre-composed telnet traffic source and traffic sink as part of a telnet server application.

UdpApp

compound module

Generates traffic for a UDP application. The traffic source and traffic sink modules can be built from queueing model elements.

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

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, 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

initialConsumptionOffset

double

0s

Initial duration before which packets are not consumed

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

class

PassivePacketSink

display

i=block/sink

Gates

Name

Direction

Size

Description

in

input

Signals

Name

Type

Unit

Description

packetDropped

inet::Packet

packetPushed

inet::Packet

Statistics

Name

Title

Source

Record

Unit

Interpolation Mode

Description

bitLifeTime

bit life time

weightTimes(lengthWeightedValuePerRegion(lifeTimePerRegion(packetPushed)))

histogram?

s

none

the statistical value is the time difference of the current simulation time and the creation time of the bit

dataRate

data rate

throughput(packetPushed)

vector

bps

linear

the statistical value is the data rate of the packets

droppedDataRate

dropped data rate

throughput(packetDropped)

vector

bps

linear

the statistical value is the data rate of the dropped packets

droppedPacketLengths

dropped packet lengths

packetLength(packetDropped)

sum,histogram,vector

b

none

the statistical value is the length of the dropped packet

droppedPackets

dropped packets

packetDropped

count

pk

the statistical value is the dropped packet

duplicatePacketLengths

duplicate packet lengths

packetLength(duplicatePacket(packetPushed))

vector?

b

none

the statistical value is the length of the packet, packet name must have an index suffix (e.g. Foo-42)

duplicatePackets

duplicate packets

duplicatePacket(packetPushed)

count?

pk

the statistical value is the packet, packet name must have an index suffix (e.g. Foo-42)

meanBitLifeTimePerPacket

mean bit life time per packet

weightedMeanPerGroup(groupRegionsPerPacket(lifeTimePerRegion(packetPushed)))

vector,histogram

s

none

the statistical value is the time difference of the current simulation time and the creation time of any bit in the region

missingPacketIndices

missing packet indices

missingPacketIndex(packetPushed)

count?

pk

the statistical value is the packet index, packet name must have an index suffix (e.g. Foo-42)

outOfOrderPacketLengths

out of order packet lenghts

packetLength(outOfOrderPacket(packetPushed))

vector?

b

none

the statistical value is the length of the packet, packet name must have an index suffix (e.g. Foo-42)

outOfOrderPackets

out of order packets

outOfOrderPacket(packetPushed)

count?

pk

the statistical value is the packet, packet name must have an index suffix (e.g. Foo-42)

packetDelayDifferenceToMean

packet delay difference to mean

differenceToMean(weightedMeanPerGroup(groupRegionsPerPacket(lifeTimePerRegion(packetPushed))))

vector,histogram

s

none

the statistical value is the difference of the current and the mean bit elapsed time per packet

packetDelayVariation

packet delay variation

stddev(weightedMeanPerGroup(groupRegionsPerPacket(lifeTimePerRegion(packetPushed))))

vector,histogram

s

the statistical value is the variation of the mean bit elapsed time per packet

packetJitter

packet jitter

jitter(weightedMeanPerGroup(groupRegionsPerPacket(lifeTimePerRegion(packetPushed))))

vector,histogram

s

none

the statistical value is the difference of subsequent values of the mean bit elapsed time per packet

packetLengths

packet lengths

packetLength(packetPushed)

sum,histogram,vector

b

none

the statistical value is the length of the packet

packetLifeTime

packet life time

packetLifeTime(packetPushed)

vector,histogram

s

none

the statistical value is the time difference of the current simulation time and the creation time of the whole packet data, nan if not all bits have the same value

packets

packets

packetPushed

count

pk

the statistical value is the packet

Source code

//
// 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
        double initialConsumptionOffset @unit(s) = default(0s); // Initial duration before which packets are not consumed
        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