IActivePacketSource¶
Package: inet.queueing.contract
module interface IActivePacketSource
Interface for active packet source modules. An active packet source, also called a producer, has one output that must be connected to a passive packet sink module. The active packet source is expected to push packets into the connected passive packet sink over time.
See also: PassivePacketSink, PacketServer, PacketClassifier, IPassivePacketSink
Inheritance diagram¶
Implemented by¶
Name |
Type |
Description |
|---|---|---|
simple module |
(no description) |
|
simple module |
Duplicates incoming packets based on the stream they are part of. The stream is determined by the |
|
compound module |
Implements the given module interface and can be used as an optional module that removes itself from the module hierarchy during initialization. |
|
simple module |
Connects one packet producer to one packet consumer. It can be pushed with packets from the connected packet producer. When this happens, the packet is delayed and eventually pushed to the output. Note that the order of packets may change if the delay parameter is configured to be a distribution. |
|
simple module |
Connects one packet producer to one packet consumer. It can be pushed with packets from the connected packet producer. When this happens, one or more copies of the packet are pushed to the output gate. |
|
compound module |
Connects one packet producer to one packet consumer. It can be pushed with packets from the connected packet producer. It keeps a copy of the last N packets pushed into its input. The packets are available in the runtime user interface (Qtenv) for inspection. |
|
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. |
|
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. |
|
compound module |
Compound module that delays packets for a specified amount of time while preserving their order. Implements the IPacketDelayer interface using a queue and server architecture. The queue stores packets while they wait, and the server processes each packet with a processing time equal to the configured delay. Note that the actual packet delay will be the sum of the queueing time and the configured delay. Unlike the simple PacketDelayer module, this implementation always maintains packet order regardless of delay distribution. |
|
compound module |
Combines multiple packet policing modules into one. |
|
compound module |
Combines a packet meter and a packet filter into a packet policing module. The meter measures the packet flow that is passing through and attaches some meta information to the packets. The filter drops the packets that do not match the implemented filter criteria. |
|
simple module |
Repeatedly pulls packets from the connected packet provider and pushes the packet into the connected packet consumer without delay. |
|
compound module |
Implements the given interface and can be used as an optional module that removes itself from the module hierarchy during initialization. |
|
simple 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 |
|
simple module |
(no description) |
|
simple module |
Repeatedly pulls packets from the connected packet provider and it pushes them into the connected packet consumer. The packets are processed in zero simulation time, and the process continues until the available number of tokens is not sufficient anymore. |
|
compound module |
Implements an asynchronous shaper. The queue sorts packets based on the transmission eligibility time (EligibilityTimeTag) attached to each packet. The gate prevents packets from being transmitted earlier than the attached transmission eligibility time. |
|
compound module |
Implements a credit-based shaper using a gate submodule to manage the number of credits. |
|
compound module |
Implements a parameterizable leaky bucket algorithm. |
|
compound module |
Implements the given module interface and can be used as an omitted optional module that removes itself from the module hierarchy during initialization. |
|
compound module |
Combines a packet queue and a packet gate into a packet shaper module. The queue stores the packets sorted according to its ordering and the gate decides when the first packet can be pulled from the queue. |
|
compound module |
Combines a classifier, a scheduler, and several traffic shapers into a single packet shaper. Packets are classified into one of the traffic shapers, and the scheduler prioritizes among them. |
|
compound module |
Implements a time-aware shaper using a gate submodule that opens and closes according to a time-based schedule. |
|
compound module |
Implements a parameterizable token bucket algorithm. |
|
simple module |
An active packet source which pushes packets into the connected module. It pushes whole packets through the out gate at every production interval. It pushes the first packet after the initial production offset. |
|
compound module |
Mixes two different packet sources to generate bursty traffic. |
|
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. |
|
simple module |
An active packet source which pushes packets into the connected packet consumer. All pushed packets are read from a PCAP file. |
|
compound module |
Produces packets in order to prevent a queue from becoming empty. |
|
compound module |
Generates several different streams of packets, one after the other. For each traffic category, the packets are produced by a separate token-based server. The traffic stream can be started by adding tokens to the corresponding server module. The packet data, packet length, and timing distributions can be configured in the corresponding packet provider. |
Known subclasses¶
Name |
Type |
Description |
|---|---|---|
module interface |
Interface for packet delayers. |
|
module interface |
Interface for packet policing modules. A packet policing connects one input to one output. It operates in passive mode on its input and in active mode on its output. These modules usually meter various traffic properties and drop packets, but they never modify, delay or reorder packets. |
|
module interface |
Interface for packet pushers. A packet pusher connects one input to one output. Packets can be pushed into its input and it pushes packets into its output. |
|
module interface |
Interface for packet server modules. A packet server is an active module which has one active input and one active output. Packets are pulled from the connected input module and pushed into the connected output module with an optional delay but without reordering. |
|
module interface |
Interface for packet shaper modules. A packet shaper connects one input to one output. It operates in passive mode both on its input and its output. These modules may delay and reorder packets but they never modify or drop packets. |
|
module interface |
Interface for traffic conditioner modules. A traffic conditioner connects one input to one output. It operates in passive mode on its input and in active mode on its output. Packets can be pushed into its input and packets can be pulled from its output. A traffic conditioner can drop, delay, and reorder packets, but it doesn’t modify packets in any way. |
Properties¶
Name |
Value |
Description |
|---|---|---|
display |
i=block/source |
Source code¶
//
// Interface for active packet source modules.
// An active packet source, also called a producer, has one output that must
// be connected to a passive packet sink module. The active packet source is
// expected to push packets into the connected passive packet sink over time.
//
// @see ~PassivePacketSink, ~PacketServer, ~PacketClassifier, ~IPassivePacketSink
//
moduleinterface IActivePacketSource
{
parameters:
@display("i=block/source");
gates:
output out @labels(push);
}