PacketProcessorBase

Package: inet.queueing.base

PacketProcessorBase

simple module

C++ definition

Base module for various packet processing modules which maintains a few statistics.

Available display string text format directives:

  • %p - number of processed packets
  • %l - total processed packet length

Inheritance diagram

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.

Known subclasses

Name Type Description
DscpMarker simple module

Sets the DSCP field (lower six bit of Tos/TrafficClass) of IP datagrams to the value specified by the dscps parameter.

EmptyPacketSource simple module

An active/passive empty packet source. It doesn't push packets into the connected module, and it doesn't allow packets to be pulled from it by the connected module. The output gate generates backpressure for pull packet operations.

FullPacketSink simple module

An active/passive full packet sink. It doesn't pull packets from the connected module, and it doesn't allow packets to be pushed by the connected module. The input gate generates backpressure for push packet operations.

InterpacketGapInserter simple module

Enforces a minimum time gap between consecutive packets, which is important for protocols like Ethernet that require an interpacket gap (IPG) or interframe spacing. This module delays packet transmission to ensure the configured minimum gap duration is maintained between packets. It can optionally use an external clock module for timing, and supports packet streaming.

MessageDispatcher simple module

Facilitates the interconnection of applications, protocols, and network interfaces, dispatching messages and packets among them. It supports diverse configurations, ranging from layered architectures with distinct message dispatchers for separate communication layers, to centralized structures where a single dispatcher manages connections to all components.

PacketBufferBase simple module

Base module for various packet buffer modules which maintains a few statistics.

PacketClassifierBase simple module

Base module for various packet classifier modules. Derived modules must implement a single packet classifier function which determines the index of the output gate for the next pushed packet.

PacketCloner simple module

Connects one packet producer to one packet consumer. It can be pushed with packets from the connected packet producer. When this happens, a separate copy of the packet is pushed to each output gate.

PacketDelayerBase simple module

Base module for packet delayer implementations. Provides common functionality for delaying packets for a specified amount of time before forwarding them. Supports clock synchronization, scheduling priorities, and zero-delay handling. Adds delay-related tags to packets for tracking and analysis.

PacketDemultiplexer simple module

Connects multiple packet collectors to one packet provider. When a packet is pulled by one of the connected packet collectors, then the demultiplexer simply pulls a packet from the connected packet provider.

PacketDestreamer simple module

Takes packets streamed to its input and passes them to its output.

PacketDuplicatorBase simple module

Base type for packet duplicator implementations. Provides common functionality for creating and forwarding multiple copies of incoming packets.

PacketFilterBase simple module

Base module for various packet filter modules. Derived modules must implement a single packet matcher function which determines if a packet is to be passed through or filtered out.

PacketFlowBase simple module

Base module for various packet flow modules. A packet flow module passes or streams all pushed or pulled packets after processing them from its input to its output.

PacketMeterBase simple module (no description)
PacketMultiplexer simple module

Connects multiple packet producers to one packet consumer. When a packet is pushed by one of the connected packet producers, then the multiplexer simply pushes the packet to the connected packet consumer.

PacketPullerBase simple module

Base module for various packet puller modules.

PacketPusherBase simple module

Base module for various packet pusher modules.

PacketQueueBase simple module

Base module for various packet queue modules which maintains a few statistics.

PacketReceiverBase simple module (no description)
PacketSchedulerBase simple module

Base module for various packet scheduler modules. Derived modules must implement a single packet scheduler function which determines the index of the input gate for the pulled packet.

PacketSendToPush simple module

Adapter module that converts packet sending to packet pushing. When it receives a packet as a message through its input gate, it pushes the packet to the connected consumer module through its output gate. Serves as a bridge between different packet handling mechanisms in protocol stacks and packet processing pipelines.

PacketServerBase simple module

Base module for various packet server modules.

PacketSinkBase simple module

Base module for various packet sink modules.

PacketSourceBase simple module

Base module for various packet source modules. Packets are created randomly with regard to packet length and packet data. The representation of packet data can also be configured.

PacketStreamer simple module

Takes packets passed to its input and streams them to its output.

PacketTransmitterBase simple module (no description)
PreemptableStreamer simple module

Takes packets passed to its input and streams them to its output.

TokenGeneratorBase simple module

Base module for various token generator modules.

Extends

Name Type Description
SimpleModule simple module

Base module for all INET simple modules.

Parameters

Name Type Default value Description
displayStringTextFormat string "processed %p pk (%l)"

Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information

Properties

Name Value Description
class PacketProcessorBase
display i=block/star

Source code

//
// Base module for various packet processing modules which maintains
// a few statistics.
//
// Available display string text format directives:
// - %p - number of processed packets
// - %l - total processed packet length
//
simple PacketProcessorBase extends SimpleModule
{
    parameters:
        @class(PacketProcessorBase);
        displayStringTextFormat = default("processed %p pk (%l)"); // Determines the text that is written on top of the submodule
        @display("i=block/star");
}
File: src/inet/queueing/base/PacketProcessorBase.ned