Package: inet.queueing.server
PacketServer
simple moduleThis module 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.
Extends
Name | Type | Description |
---|---|---|
PacketServerBase | simple module |
This is a 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 |
clockModule | string | "" |
relative path of a module that implements IClock; 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 |
---|---|---|
display | i=block/server | |
class | PacketServer |
Gates
Name | Direction | Size | Description |
---|---|---|---|
in | input | ||
out | output |
Signals
Name | Type | Unit |
---|---|---|
packetPushed | inet::Packet | |
packetPulled | inet::Packet |
Statistics
Name | Title | Source | Record | Unit | Interpolation Mode |
---|---|---|---|---|---|
outgoingDataRate | outgoing datarate | throughput(packetPushed) | vector | bps | linear |
incomingDataRate | incoming datarate | throughput(packetPulled) | vector | bps | linear |
outgoingPacketLengths | outgoing packet lengths | packetLength(packetPushed) | sum, histogram, vector | b | none |
incomingPacketLengths | incoming packet lengths | packetLength(packetPulled) | sum, histogram, vector | b | none |
incomingPackets | incoming packets | packetPulled | count | pk | |
outgoingPackets | outgoing packets | packetPushed | count | pk |
Scheduled messages (observed)
msg | kind | ctrl | tags | msgname | context |
---|---|---|---|---|---|
ClockEvent | 0 | ProcessingTimer |
Direct method calls (observed)
call to | function | info |
---|---|---|
EligibilityTimeGate | inet::EligibilityTimeGate::pullPacket | pullPacket |
PacketDelayer | inet::queueing::PacketDelayer::pushPacket | pushPacket |
DropTailQueue | inet::queueing::PacketQueue::pullPacket | pullPacket |
PacketQueue | inet::queueing::PacketQueue::pullPacket | pullPacket |
PassivePacketSink | inet::queueing::PassivePacketSink::pushPacket | pushPacket |
PassivePacketSource | inet::queueing::PassivePacketSource::pullPacket | pullPacket |
Called methods (observed)
function | info | call from |
---|---|---|
inet::queueing::PacketServer::handleCanPullPacketChanged | handleCanPullPacketChanged | EligibilityTimeGate, DropTailQueue, PacketQueue, PassivePacketSource |
inet::queueing::PacketServer::handleCanPushPacketChanged | handleCanPushPacketChanged | PacketDelayer, PassivePacketSink |
Pull in messages (observed)
Push out messages (observed)
gate | msg | kind | ctrl | destModule | tags |
---|---|---|---|---|---|
out | Packet | 0 | PacketDelayer | DirectionTag, PacketProtocolTag | |
out | Packet | 0 | PassivePacketSink | DirectionTag, PacketProtocolTag, EligibilityTimeTag? |
Region Tagging operations (observed)
tagType | tagAction |
---|---|
PacketEventTag | mapAllTagsForUpdate |
ProcessingTimeTag | mapAllTagsForUpdate |
Source code
// // This module 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