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 popped from the passive output are provided from the stored packets.

IPacketQueue

Inheritance diagram

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.

Implemented by

Name Type Description
CompoundPacketQueue 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.

EtherQosQueue compound module

Queue module that gives the PAUSE frames a higher priority, and can be parametrized with an IPacketQueue for serving the data frames.

EtherQosRedQueue 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.

EtherQueue compound module

Queue module that gives the PAUSE frames a higher priority.

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.

RedDropperQueue compound module

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

Used in compound modules

Name Type Description
AckingMac compound module

This module implements a trivial MAC protocol for use in AckingWirelessInterface.

BMac compound module

Implementation of B-MAC (called also Berkeley MAC, Low Power Listening or LPL). See C++ documentation for details.

CsmaCaMac compound module

Implements an imaginary CSMA/CA-based MAC protocol with optional acknowledgements and a retry mechanism. With the appropriate settings, it can approximate basic 802.11b ad-hoc mode operation.

Dcaf compound module (no description)
Edcaf compound module

IEEE 802.11 Enhanced Distributed Channel Access Function

EtherMac compound module

Ethernet MAC layer. MAC performs transmission and reception of frames. See the IEtherMac for the Ethernet MAC layer general informations. Doesn't do encapsulation/decapsulation; see Ieee8022Llc and EtherEncap for that.

EtherMacFullDuplex compound module

Ethernet MAC which supports full-duplex operation ONLY. See the IEtherMac for general informations.

EtherQosQueue compound module

Queue module that gives the PAUSE frames a higher priority, and can be parametrized with an IPacketQueue for serving the data frames.

EtherQosRedQueue 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.

Ieee802154Mac compound module

Generic CSMA protocol supporting Mac-ACKs as well as constant, linear or exponential backoff times.

LeakyBucket compound module

This module implements a parameterizable leaky bucket algorithm.

LMac compound module

Implementation of L-MAC (Lightweight Medium Access Protocol for Wireless Sensor Networks).

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.

Ppp compound module

PPP implementation.

PriorityQueue compound module

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

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.

XMac compound module

Implementation of X-MAC. See C++ documentation for details.

Extends

Name Type Description
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.

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 pop packets from the passive packet source over time.

Properties

Name Value Description
display i=block/queue

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
// popped from the passive output are provided from the stored packets.
//
moduleinterface IPacketQueue extends IPassivePacketSink, IPassivePacketSource
{
    parameters:
        @display("i=block/queue");
}
File: src/inet/queueing/contract/IPacketQueue.ned