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.
Usage diagram¶
Inheritance diagram¶
Used in compound modules¶
Name |
Type |
Description |
|---|---|---|
compound module |
Implements a generic sink application. |
|
compound module |
Generates traffic as an Ethernet application. The traffic source and traffic sink modules can be built from queueing model elements. |
|
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. |
|
compound module |
Generates traffic for a IP application. The traffic source and traffic sink modules can be built from queueing model elements. |
|
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. |
|
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. |
|
compound module |
This client application contains a configurable pre-composed telnet traffic source and traffic sink. |
|
compound module |
Contains a configurable pre-composed telnet traffic source and traffic sink as part of a telnet server application. |
|
compound module |
Generates traffic for a UDP application. The traffic source and traffic sink modules can be built from queueing model elements. |
|
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 |
|---|---|---|
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 |
|||
packetPushed |
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);
}