Module Interface IOutputQueue

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

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

IOutputQueue

Usage diagram:

The following diagram shows usage relationships between types. Unresolved types are missing from the diagram.

Inheritance diagram:

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

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;
}