IOutputQueue

Package: inet.common.queue

IOutputQueue

module interface

Prototype for output queues. Concrete queues can implement drop-tail, RED etc. policy.

The implementation of IOutputQueue can be either a simple module whose C++ class implements (i.e. subclass from) IPassiveQueue, or a compound module whose out gate is connected to a simple module implementing the IPassiveQueue interface. The IPassiveQueue component should send a packet whenever a module asks for one by calling the requestPacket() method.

See also: DropTailQueue

Inheritance diagram

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

Implemented by

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

DropTailQueue simple module

Drop-tail queue, to be used in network interfaces. Conforms to the IOutputQueue interface.

EtherQoSQueue compound module

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

Used in compound modules

Name Type Description
EtherQoSQueue compound module

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

IdealWirelessNic compound module

Highly abstracted wireless NIC that consists of a unit disk radio and 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.

Ieee802154UWBIRNic compound module (no description)
PPPInterface compound module

PPP interface. Complements the PPP module with an output queue for QoS and RED support.

Properties

Name Value Description
display i=block/queue

Source code

//
// Prototype for output queues. Concrete queues can implement
// drop-tail, RED etc. policy.
//
// The implementation of IOutputQueue
// can be either a simple module whose C++ class implements
// (i.e. subclass from) IPassiveQueue, or a compound module
// whose out gate is connected to a simple module implementing
// the IPassiveQueue interface. The IPassiveQueue component
// should send a packet whenever a module asks for one
// by calling the requestPacket() method.
//
// @see ~DropTailQueue
//
moduleinterface IOutputQueue
{
    parameters:
        @display("i=block/queue");
    gates:
        input in;
        output out;
}

File: src/inet/common/queue/IOutputQueue.ned