PacketPusherBase¶
Package: inet.queueing.base
simple module PacketPusherBase
Base module for various packet pusher modules.
Inheritance diagram¶
Known subclasses¶
Name |
Type |
Description |
|---|---|---|
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. |
|
simple module |
(no description) |
|
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. |
|
simple module |
(no description) |
|
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. |
|
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. |
|
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. |
|
compound module |
(no description) |
|
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. |
|
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. |
|
simple module |
Duplicates incoming packets based on the stream they are part of. The stream is determined by the |
Extends¶
Name |
Type |
Description |
|---|---|---|
simple module |
Base module for various packet processing modules which maintains a few statistics. |
Parameters¶
Name |
Type |
Default value |
Description |
|---|---|---|---|
displayStringTextFormat |
string |
“processed {numProcessedPackets} pk ({processedTotalLength})” |
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;
}