IPacketQueue

Package: inet.queueing.contract

IPacketQueue

module interface

This module interface is implemented by 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 (no description)
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 which drops packets at the head of the queue.

DropTailQueue simple module

This module is a limited packet queue which drops packets at the tail of the queue.

EligibilityTimeQueue simple module

This module is 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.

GatingPriorityQueue compound module

This module implements a priority queue with multiple inner queues each having its own periodic gate for packet selection and an optional shared memory buffer.

Ieee8021qTimeAwareShaper compound module

This module implements the IEEE 802.1Q time aware shaper.

InProgressQueue simple module (no description)
OmittedPacketQueue 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.

PacketQueue simple module

This module implements a widely configurable packet queue, which is suitable among others, to be used in MAC protocols, traffic conditioning, and quality of services. 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 (no description)
PriorityQueue compound module

This module implements a priority queue with multiple inner queues and an optional shared memory buffer.

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.

RedDropperQueue compound module

Combines a packet queue with random early detection (RED) dropper.

Used in compound modules

Name Type Description
AckingWirelessInterface compound module

This 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)
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

This module represents an Ethernet network interface.

EthernetMacLayer compound module (no description)
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

This 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

This module implements a priority queue with multiple inner queues each having its own periodic gate for packet selection and an optional shared memory buffer.

Ieee802154NarrowbandInterface compound module

This module implements an IEEE 802.15.4 narrowband network interface.

Ieee802154UwbIrInterface compound module

This module implements an IEEE 802.15.4 UWB-IR network interface.

Ieee8021qTimeAwareShaper compound module

This module implements the IEEE 802.1Q time aware shaper.

LeakyBucket compound module

This module implements a parameterizable leaky bucket algorithm.

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.

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.

PppInterface compound module

This module implements a PPP network interface.

PriorityQueue compound module

This module implements a priority queue with multiple inner queues and an optional shared memory buffer.

QueueingPacketDelayer compound module (no description)
RedDropperQueue compound module

Combines a packet queue with random early detection (RED) dropper.

RequestConsumer compound module

This 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

This module implements a parameterizable token bucket algorithm.

WirelessInterface compound module

This module implements a generic wireless network interface.

Extends

Name Type Description
IPassivePacketSource module interface

This module interface must be implemented by 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.

IPassivePacketSink module interface

This module interface must be implemented by 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.

Properties

Name Value Description
display i=block/queue
omittedTypename OmittedPacketQueue

Source code

//
// This module interface is implemented by 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