Package: inet.queueing.contract
IPassivePacketSink
module interfaceInterface for passive packet sink modules. A passive packet sink, also called a consumer, has one input that must be connected to an active packet source module. The connected active packet source is expected to push packets into the passive packet sink over time.
<b>See also:</b> ~PassivePacketSink, ~PacketQueue, ~PacketClassifier, ~IActivePacketSource
Inheritance diagram
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.
Implemented by
| Name | Type | Description |
|---|---|---|
| AsynchronousShaper | 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. |
| CompoundPacketQueueBase | compound module |
This compound module serves as a base module for complex packet queues formed by combining several queueing components. |
| CompoundPendingQueue | compound module |
Implements a prioritized queue system for IEEE 802.11 MAC frames. Uses a classifier to separate incoming packets into three queues: management frames (highest priority), multicast frames (medium priority), and unicast frames (lowest priority). A priority scheduler then selects packets from these queues in order of priority. |
| ContentBasedClassifier | simple module |
Connects one packet producer to multiple packet consumers. It can be populated with packets from the connected packet producer. When this occurs, the classifier pushes the packet to one of its connected packet consumers based on the configured packet filters. The first matching expression determines the index of the output gate. |
| CreditBasedShaper | compound module |
Implements a credit-based shaper using a gate submodule to manage the number of credits. |
| DiffservQueue | compound module |
This is an example queue that can be used in interfaces of DS core and edge nodes to support the AFxy (RFC 2597) and EF (RFC 3246) PHBs. |
| DiffservTrafficConditioner | compound module |
TODO documentation |
| DropHeadQueue | simple module |
This is a limited packet queue that drops packets at the head of the queue. |
| DropTailQueue | simple module |
A limited packet queue that drops packets at the tail of the queue. |
| DSQueue1 | compound module |
Diffserv Queue used in Experiment 1.1 - 1.6 and 5.1. |
| DSQueue2 | compound module |
Diffserv Queue used in Experiment 2.1 - 2.4. |
| DualRateThreeColorClassifier | simple module |
This packet classifier module classifies packets using two token buckets. Each packet is classified depending on which token bucket is the first one that contains the required number of tokens for the packet. |
| DynamicClassifier | simple module | (no description) |
| EligibilityTimeQueue | simple module |
A packet queue that keeps the packets in ascending order based on the eligibility time in the attached ~EligibilityTimeTag of the packets. |
| EthernetCutthroughBarrier | simple module | (no description) |
| EthernetFrameClassifier | simple module |
Classifier that forwards Ethernet PAUSE frames to the pauseOut gate, and other frames to the defaultOut gate. |
| EthernetGatingQueue | compound module | (no description) |
| EthernetPriorityQueue | compound module | (no description) |
| EthernetQosQueue | compound module |
Queue module that gives the PAUSE frames a higher priority, and can be parametrized with an ~IPacketQueue for serving the data frames. |
| EthernetQosRedQueue | compound module |
Queue module that gives the PAUSE frames a higher priority, and using Random Early Detection algorithm on data frames, and can be parametrized with an ~IPacketQueue for serving the data frames. |
| EthernetQueue | compound module |
Queue module that gives the PAUSE frames a higher priority. |
| ExampleCompoundPriorityQueue | compound module | (no description) |
| 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. |
| GatingPriorityQueue | compound module |
Implements a priority queue with multiple inner queues each having its own periodic gate for packet selection and an optional shared memory buffer. |
| GatingQueue | compound module |
Implements a queue having its own periodic gate. |
| Ieee8021qTimeAwareShaper | compound module |
Implements the IEEE 802.1Q time aware shaper. |
| InProgressQueue | simple module |
Specialized packet queue that only accepts packets with higher priority than those already in the queue. Unlike standard packet queues, it always returns false for canPushSomePacket() and only allows insertion of packets that compare favorably against the first packet in the queue according to the configured comparator function (see comparatorClass parameter). Useful for implementing priority-based packet processing where only higher priority packets can preempt currently queued packets. |
| LabelClassifier | simple module |
Classifies packets based on the attached labels in a ~LabelsTag. |
| LeakyBucket | compound module |
Implements a parameterizable leaky bucket algorithm. |
| MarkovClassifier | simple module |
Implements a packet classifier using a Markov process that has as many states as output gates the classifier has. The output gate for a given packet is determined by the current state of the Markov process. |
| MultiPacketPolicing | compound module |
Combines multiple packet policing modules into one. |
| MultiTokenBucketClassifier | simple module |
Classifies packets into the first bucket that contains the required number of tokens. The packet is forwarded to the output gate that corresponds to the selected bucket. |
| OmittedPacketDelayer | compound module |
Implements the given module interface and can be used as an optional module that removes itself from the module hierarchy during initialization. |
| OmittedPacketQueue | compound module |
Implements the given module interface and can be used as an optional module that removes itself from the module hierarchy during initialization. |
| OmittedTrafficConditioner | 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. |
| PacketBasedTokenGenerator | simple module |
Generates tokens into the configured ~TokenBasedServer for each consumed packet. |
| PacketClassifier | simple module |
Connects one packet producer to multiple packet consumers. It can be pushed with packets from the connected packet producer. When this happens, the classifier pushes the packet to one of its connected packet consumers based on the configured packet classifier function. The packet classifier function takes a packet and returns an integer which in turn is used for determining the output gate. |
| 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. |
| PacketDelayer | 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. |
| PacketDuplicator | 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. |
| PacketHistory | 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. |
| PacketPolicing | 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. |
| PacketPushToSend | simple module |
Acts as an adapter between the queueing framework and standard OMNeT++ modules. It receives packets through the push mechanism (as a passive packet sink) and forwards them using the standard OMNeT++ send operation. This module is useful for connecting queueing components to non-queueing modules that expect to receive packets via message sending. |
| PacketQueue | simple module |
Implements a configurable packet queue, which is suitable for use in MAC protocols, traffic conditioning, and quality of services, among others. This is a passive component: packets are pushed into it on its input, and pulled from it on its output. This module can be used on its own, but it's also often supplemented by additional queueing components such as servers, classifiers, schedulers, multiplexers, etc. This kind of composition allows to form a larger module which can act as a packet queue with more complex behavior. |
| PacketShaper | 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. |
| PassivePacketSink | simple module |
A passive packet sink which is pushed with packets by the connected packet producer. All pushed packets are counted and deleted. |
| PcapFilePacketConsumer | simple module |
A passive packet sink which is pushed with packets by the connected packet producer. All pushed packets are written to a PCAP file. |
| PcpClassifier | simple module |
Classifies packets based on the attached PCP value [0, 7]. The PCP is determined by a PcpReq or a PcpInd or both. The output gate index is the ith value in the pcpToGateIndex parameter. |
| PcpTrafficClassClassifier | compound module |
Classifies packets based on the attached PCP value [0, 7]. The PCP is determined by a PcpReq or a PcpInd or both. The output gate index is the value found in the mapping matrix using the PCP value as the row index and the number of connected consumers (traffic categories) as the column index. |
| PendingQueue | simple module |
Implements a priority queue for IEEE 802.11 MAC frames. Uses a comparator to determine the order in which frames are processed. By default, prioritizes management frames over data frames, but can be configured to use different prioritization schemes such as management over multicast over unicast frames. |
| PriorityClassifier | simple module |
This classifier pushes packets into the first non-full among its connected packet consumers. |
| PriorityQueue | compound module |
Implements a priority queue with multiple inner queues and an optional shared memory buffer. |
| PriorityShaper | 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. |
| QueueingPacketDelayer | 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. |
| RedDropperQueue | compound module |
Combines a packet queue with random early detection (RED) dropper. |
| REDQueue | compound module | (no description) |
| RequestConsumer | compound module |
Processes incoming packets one by one in the order they arrive. First, it classifies a packet according to the configured classifier function, then it generates tokens for the selected category in the configured response producer. |
| SingleRateThreeColorClassifier | simple module |
This packet classifier module classifies packets using two token buckets. Each packet is classified depending on which token bucket is the first one that contains the required number of tokens for the packet. |
| SingleRateTwoColorClassifier | simple module |
This packet classifier module classifies packets using one token bucket. Each packet is classified depending on whether the token bucket contains the required number of tokens for the packet. |
| StreamClassifier | simple module |
Classifies packets based on the stream they are part of. The stream is determined by a StreamReq or a StreamInd or both. |
| 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. |
| TC1 | compound module |
Traffic conditioner used in Experiments 1.1-1.6 and 5.1. |
| TC2 | compound module |
Traffic conditioner used in Experiment 3.1. |
| TC3 | compound module |
Traffic conditioner used in Experiment 3.2. |
| TimeAwareShaper | compound module |
Implements a time-aware shaper using a gate submodule that opens and closes according to a time-based schedule. |
| TokenBucket | compound module |
Implements a parameterizable token bucket algorithm. |
| TokenBucketClassifier | simple module |
Classifies packets to the first output gate if the bucket contains enough number of tokens for the packet passing through, otherwise the second output gate is used. The amount of required tokens is equal to the packet length in bits and is subtracted from the number of stored tokens. New tokens are generated with the provided constant rate and they may also be added by other modules. |
| TrafficConditioner | compound module |
TODO documentation |
| UserPriorityClassifier | simple module |
Classifies packets based on the attached ~UserPriority tag. |
| WrrClassifier | simple module |
Implements a weighted round-robin classifier. |
Used in compound modules
| Name | Type | Description |
|---|---|---|
| EthernetApp | compound module |
Generates traffic as an Ethernet application. The traffic source and traffic sink modules can be built from queueing model elements. |
| Ieee8022LlcApp | compound 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 |
Generates traffic for a IP application. The traffic source and traffic sink modules can be built from queueing model elements. |
| RequestConsumer | compound module |
Processes incoming packets one by one in the order they arrive. First, it classifies a packet according to the configured classifier function, then it generates tokens for the selected category in the configured response producer. |
| ServerApp | compound module | (no description) |
| SinkApp | compound module |
Implements a generic sink application. |
| TcpClientApp | compound module |
A generic, very modular TCP client application, similar to ~TcpServerApp. The traffic source and traffic sink modules can be built from queueing model elements. |
| TcpServerConnection | compound module |
This is a pre-assembled module type to be used in ~TcpServerApp. One instance of this module type is launched by ~TcpServerListener for each incoming connection. It is composed of a traffic source, a traffic sink, a socket I/O and other modules, and most of the module types are parametric. 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. |
| TelnetClientTraffic | compound module | (no description) |
| TelnetServerConnection | compound module |
Contains a configurable pre-composed telnet traffic source and traffic sink as part of a telnet server application. |
| TelnetServerTraffic | compound module | (no description) |
| UdpApp | compound 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 |
|---|---|---|
| IPacketClassifier | module interface |
Interface for packet classifier modules. A packet classifier is a passive module which has one passive input and multiple active outputs. Packets pushed into the passive input are passed through to one of the active outputs without any delay or reordering. |
| IPacketDelayer | module interface |
Interface for packet delayers. |
| IPacketPolicing | 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. |
| IPacketPusher | 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. |
| IPacketQueue | module interface |
Interface for packet queue modules. A packet queue is a passive module which has one passive input and one passive output. Packets pushed into the passive input are either stored or dropped. Packets pulled from the passive output are provided from the stored packets. |
| IPacketShaper | 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. |
| ITrafficConditioner | 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/sink |
Source code
// // Interface for passive packet sink modules. // A passive packet sink, also called a consumer, has one input that must be // connected to an active packet source module. The connected active packet // source is expected to push packets into the passive packet sink over time. // // @see ~PassivePacketSink, ~PacketQueue, ~PacketClassifier, ~IActivePacketSource // moduleinterface IPassivePacketSink { parameters: @display("i=block/sink"); gates: input in @labels(push); }File: src/inet/queueing/contract/IPassivePacketSink.ned