PacketServer

Package: inet.queueing.server

PacketServer

simple module

C++ definition

Repeatedly pulls packets from the connected packet provider and after a processing delay, it pushes the packet into the connected packet consumer. The processing delay is processingTime + packetLength / processingBitrate.

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
ExampleInterface compound module (no description)

Used in

Name Type Description
PeekingUnderTheHoodShowcase network (no description)
ServerTutorialStep network (no description)

Extends

Name Type Description
PacketServerBase simple module

Base module for various packet server modules.

Parameters

Name Type Default value Description
displayStringTextFormat string "served %p pk (%l)\n%s"

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,2); optional

serveSchedulingPriority int -1

Specifies the FES scheduling priority for the extra event that is pulling the packet, -1 means no extra event

processingTime double

Determines additional processing time per packet

processingBitrate double inf bps

Determines additional processing time per bit

Properties

Name Value Description
class PacketServer
display i=block/server

Gates

Name Direction Size Description
in input
out output

Signals

Name Type Unit Description
packetPushed inet::Packet
packetPulled inet::Packet

Statistics

Name Title Source Record Unit Interpolation Mode Description
outgoingDataRate outgoing datarate throughput(packetPushed) vector bps linear

the statistical value is the data rate of the outgoing packets

incomingDataRate incoming datarate throughput(packetPulled) vector bps linear

the statistical value is the data rate of the incoming packets

outgoingPacketLengths outgoing packet lengths packetLength(packetPushed) sum, histogram, vector b none

the statistical value is the length of the outgoing packet

incomingPacketLengths incoming packet lengths packetLength(packetPulled) sum, histogram, vector b none

the statistical value is the length of the incoming packet

incomingPackets incoming packets packetPulled count pk

the statistical value is the incoming packet

outgoingPackets outgoing packets packetPushed count pk

the statistical value is the outgoing packet

Source code

//
// Repeatedly pulls packets from the connected packet provider and
// after a processing delay, it pushes the packet into the connected packet
// consumer. The processing delay is `processingTime` + `packetLength` / `processingBitrate`.
//
simple PacketServer extends PacketServerBase like IPacketServer
{
    parameters:
        displayStringTextFormat = default("served %p pk (%l)\n%s");
        string clockModule = default(""); // Relative path of a module that implements IClock; optional
        int serveSchedulingPriority = default(-1); // Specifies the FES scheduling priority for the extra event that is pulling the packet, -1 means no extra event
        volatile double processingTime @unit(s); // Determines additional processing time per packet
        volatile double processingBitrate @unit(bps) = default(inf bps); // Determines additional processing time per bit
        @class(PacketServer);
}
File: src/inet/queueing/server/PacketServer.ned