Package: inet.queueing.server
PacketServer
simple moduleRepeatedly 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