Package: inet.queueing.contract
IPacketQueue
module interfaceInterface 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.
Inheritance diagram
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.
Implemented by
| Name | Type | Description |
|---|---|---|
| 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. |
| 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. |
| 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. |
| 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. |
| 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) |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| RedDropperQueue | compound module |
Combines a packet queue with random early detection (RED) dropper. |
| REDQueue | compound module | (no description) |
Used in compound modules
| Name | Type | Description |
|---|---|---|
| AckingWirelessInterface | compound module |
Implements a highly abstracted wireless network interface (NIC) that uses a trivial MAC protocol. It offers simplicity for scenarios where Layer 1 and 2 effects can be completely ignored, for example testing the basic functionality of a wireless ad-hoc routing protocol. |
| DataService | compound module | (no description) |
| DataService | compound module | (no description) |
| Dcaf | compound module |
Implements the DCAF (Distributed Channel Access Function) for IEEE 802.11. |
| Edcaf | compound module |
Implements EDCAF (Enhanced Distributed Channel Access Function) for IEEE 802.11. EDCAF represents one access category within EDCA. |
| EthernetFragmentingMacLayer | compound module | (no description) |
| EthernetInterface | compound module |
Represents an Ethernet network interface. |
| EthernetMacLayer | compound module | (no description) |
| EthernetPlcaInterface | compound module |
Implements a network interface that is suitable for use in Ethernet 10BASE-T1S multidrop links. Such a multidrop link uses the Ethernet Phyisical Layer Collision Avoidance (PLCA) protocol. The protocol is defined in the IEEE 802.3cg-2019 standard. This network interface can be used in any network node module (e.g. ~StandardHost) that allows replacing its network interfaces. All network interfaces on the same multidrop link must use this module. |
| EthernetPreemptingMacLayer | 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. |
| EthernetStreamingMacLayer | compound module | (no description) |
| ExtUpperEthernetInterface | compound module |
Provides an Ethernet network interface suitable for emulation. The upper part of the network interface is realized in the real world using a real TAP device of the host computer which is running the simulation. |
| 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. |
| Ieee802154NarrowbandInterface | compound module |
Implements an IEEE 802.15.4 narrowband network interface. |
| Ieee802154UwbIrInterface | compound module |
Implements an IEEE 802.15.4 UWB-IR network interface. |
| Ieee8021qTimeAwareShaper | compound module |
Implements the IEEE 802.1Q time aware shaper. |
| LeakyBucket | compound module |
Implements a parameterizable leaky bucket algorithm. |
| 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. |
| 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. |
| PppInterface | compound module |
Implements a PPP network interface. |
| PriorityQueue | compound module |
Implements a priority queue with multiple inner queues and an optional shared memory buffer. |
| 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. |
| 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. |
| TokenBucket | compound module |
Implements a parameterizable token bucket algorithm. |
| WirelessInterface | compound module |
Implements a generic wireless network interface. |
Extends
| Name | Type | Description |
|---|---|---|
| IPassivePacketSink | module interface |
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. |
| IPassivePacketSource | module interface |
Interface for passive packet source modules. A passive packet source, also called a provider, has one output that must be connected to an active packet sink module. The connected active packet sink is expected to pull packets from the passive packet source over time. |
Properties
| Name | Value | Description |
|---|---|---|
| omittedTypename | OmittedPacketQueue | |
| display | i=block/source |
Source code
// // 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. // moduleinterface IPacketQueue extends IPassivePacketSink, IPassivePacketSource { parameters: @omittedTypename(OmittedPacketQueue); @display("i=block/queue"); }File: src/inet/queueing/contract/IPacketQueue.ned