Package: inet.queueing.base
PacketPusherBase
simple moduleBase module for various packet pusher modules.
Inheritance diagram
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.
Known subclasses
| Name | Type | Description |
|---|---|---|
| AggregatorBase | compound module |
Base module for packet aggregation. Collects multiple packets and combines them into a single aggregated packet based on a configurable aggregation policy. Aggregation improves network efficiency by reducing header overhead when transmitting multiple small packets. The module delegates the aggregation decision to a policy class or module that determines if a packet can be aggregated with the current set. |
| DeaggregatorBase | simple module |
Base module for packet deaggregation. Takes an aggregated packet and splits it back into its original subpackets. Deaggregation is the reverse process of aggregation, extracting individual packets that were previously combined to reduce header overhead. The module receives an aggregated packet, extracts the individual subpackets, and forwards each one separately through its output gate. |
| DefragmenterBase | simple module |
Base type for packet defragmenters that reassemble original packets from fragments. Collects and stores fragments until all fragments of a packet are received, then reconstructs the original packet. |
| DuplicateRemoval | simple module |
Filters out duplicate packets based on sequence numbers. Keeps track of the last processed sequence number and discards packets with the same sequence number to prevent duplicate packet processing. Note that in order for this strategy to work, packets must arrive in the correct order. |
| EthernetSocketPacketProcessor | simple module | (no description) |
| FragmenterBase | compound module | (no description) |
| Ieee8021qSocketPacketProcessor | simple module |
Processes packets related to IEEE 802.1Q VLAN sockets. Delivers packets to registered sockets based on protocol and VLAN ID matching. Duplicates packets for delivery to interested sockets and supports "stealing" packets to prevent them from being forwarded. Enables applications to communicate directly with specific VLANs and implements protocol handlers for VLAN-specific traffic. Works in conjunction with ~Ieee8021qSocketTable to provide a socket-based API for VLAN communication. |
| RelayInterfaceSelector | simple module |
Selects the outgoing interface for the packet passing through from the MAC address table (forwarding information database) based on the destination MAC address. The selected interface is attached to the packet in an ~InterfaceReq. The packet may be duplicated if multiple interfaces are found. |
| Reordering | simple module |
Reorders out-of-sequence packets based on their sequence numbers. Buffers packets until they can be delivered in the correct order, ensuring sequential processing of packets despite network reordering. Note that this module does not contain a mechanism to recover from packet losses, i.e. a lost packet will cause subsequent packets will be buffered in this module indefinitely. |
| Resending | simple module | (no description) |
| StreamSplitter | simple module |
Duplicates incoming packets based on the stream they are part of. The stream is determined by the StreamReq tag that is attached to the packet. The number of outgoing packets is determined by the mapping parameter. Each outgoing packet will have an attached StreamReq with the tag name taken from the mapping parameter. |
Extends
| Name | Type | Description |
|---|---|---|
| PacketProcessorBase | simple module |
Base module for various packet processing modules which maintains a few statistics. |
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 | PacketPusherBase | |
| display | i=block/star |
Gates
| Name | Direction | Size | Description |
|---|---|---|---|
| in | input | ||
| out | output |
Source code
// // Base module for various packet pusher modules. // simple PacketPusherBase extends PacketProcessorBase { parameters: @class(PacketPusherBase); gates: input in; output out; }File: src/inet/queueing/base/PacketPusherBase.ned