Package: inet.queueing.contract
IActivePacketSource
module interfaceThis module interface must be implemented by 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
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.
Implemented by
Name | Type | Description |
---|---|---|
ActivePacketSource | simple module |
This module is 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. |
AsynchronousShaper | compound module |
This module implements an asynchronous shaper. The queue sorts packets based on the transmission eligibility time (EligibilityTimeTag) attached to each packet. The gate prevents packets to be transmitter earlier than the attached transmission eligibility time. |
BurstyPacketProducer | compound module |
This module mixes two different packet sources to generate bursty traffic. |
CreditBasedShaper | compound module |
This module implements a credit based shaper using a gate submodule to manage the number of credits. |
EmptyPacketSource | simple module |
This module is 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. |
EthernetCutthroughBarrier | simple module | (no description) |
InstantServer | simple module |
This module repeatedly pulls packets from the connected packet provider and pushes the packet into the connected packet consumer without delay. |
LeakyBucket | compound module |
This module implements a parameterizable leaky bucket algorithm. |
MultiPacketPolicing | compound module |
This module combines multiple packet policing modules into one. |
OmittedPacketDelayer | compound module |
This module implements the module given interface and can be used as an omitted optional module that removes itself from the module hierarchy during initialize. |
OmittedPacketServer | compound module |
This module implements the module given interface and can be used as an omitted optional module that removes itself from the module hierarchy during initialize. |
OmittedTrafficConditioner | compound module |
This module implements the module given interface and can be used as an omitted optional module that removes itself from the module hierarchy during initialize. |
PacketDelayer | simple module |
This 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. |
PacketDuplicator | simple module |
This 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 copy of the packet is pushed to the output gate. |
PacketHistory | compound module |
This 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. |
PacketMultiplexer | simple module |
This 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. |
PacketPolicing | compound module |
This 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 don't match the implemented filter criteria. |
PacketSendToPush | simple module | (no description) |
PacketServer | simple module |
This 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 processingTime + packetLength / processingBitrate. |
PacketShaper | compound module |
This 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. |
PcapFilePacketProducer | simple module |
This module is an active packet source which pushes packets into the connected packet consumer. All pushed packets are read from a PCAP file. |
PreemptingServer | simple module | (no description) |
PriorityShaper | compound module |
This 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. |
QueueFiller | compound module |
This module produces packets in order to prevent a queue from becoming empty. |
QueueingPacketDelayer | compound module | (no description) |
ResponseProducer | compound module |
This module is capable of generating 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 the corresponding server module. The packet data, packet length, and timing distributions can be configured in the corresponding packet provider. |
StreamSplitter | simple module |
This 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 packet is determined by the mapping parameter. Each outgoing packet will have an attached StreamReq with the tag name taken from the mapping parameter. |
TimeAwareShaper | compound module |
This module implements a time-aware shaper using a gate submodule that opens and closes according to a time-based schedule. |
TokenBasedServer | simple module |
This 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. |
TokenBucket | compound module |
This module implements a parameterizable token bucket algorithm. |
Used in compound modules
Name | Type | Description |
---|---|---|
EthernetApp | compound module |
This module generates traffic as an Ethernet application. The traffic source and traffic sink modules can be built from queueing model elements. |
Ieee8022LlcApp | compound module |
This module generates traffic as an IEEE 802.2 LLC application. The traffic source and traffic sink modules can be built from queueing model elements. |
IpApp | compound module |
This module generates traffic for a IP application. The traffic source and traffic sink modules can be built from queueing model elements. |
SourceApp | compound module |
This module implements a generic source application. |
TcpClientApp | compound module |
This module is a generic TCP client application. The traffic source and traffic sink modules can be built from queueing model elements. |
TcpServerConnection | compound module |
This module is a generic TCP server connection. The traffic source and traffic sink modules can be built from queueing model elements. |
TelnetClientApp | compound module |
This client application contains a configurable pre-composed telnet traffic source and traffic sink. |
UdpApp | compound module |
This module generates traffic for a UDP application. The traffic source and traffic sink modules can be built from queueing model elements. |
Known subclasses
Name | Type | Description |
---|---|---|
IPacketDelayer | module interface |
This module interface is implemented by packet delayers. |
IPacketPolicing | module interface |
This module interface is implemented by 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. |
IPacketPusher | module interface |
This module interface is implemented by packet pushers. A packet pusher connects one input to one output. Packets can be pushed into its input and it pushed packets into its output. |
IPacketServer | module interface |
This module interface is implemented by 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. |
IPacketShaper | module interface |
This module interface is implemented by 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. |
ITrafficConditioner | module interface |
This module interface is implemented by 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
// // This module interface must be implemented by 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); }File: src/inet/queueing/contract/IActivePacketSource.ned