Module Interface OutputQueue

Package: inet.networklayer.queue
File: src/networklayer/queue/OutputQueue.ned

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

Interface to Layer 2 modules: The C++ class implementing the queue must implement (i.e. subclass from) IPassiveQueue, and should send a packet whenever the L2 module asks for one by calling the requestPacket() method.

See also: DropTailQueue, DropTailQoSQueue, REDQueue

OutputQueue

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
EthernetInterface compound module

Ethernet network interface. Complements EtherMAC and EtherEncap with an output queue for QoS and RED support.

EthernetInterface2 compound module

Ethernet network interface which supports full-duplex operation only. Complements EtherMAC2 and EtherEncap with an output queue for QoS and RED support.

PPPInterface compound module

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

PPPInterfaceWithDLDuplicatesGenerator compound module

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

PPPInterfaceWithDLThruputMeter compound module

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

PPPInterfaceWithULDropsGenerator compound module

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

PPPInterfaceWithULThruputMeter 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 per-NIC output queues. Concrete queues can implement
// drop-tail, RED etc. policy.
//
// Interface to Layer 2 modules: The C++ class implementing the queue
// must implement (i.e. subclass from) IPassiveQueue, and should
// send a packet whenever the L2 module asks for one by calling the
// requestPacket() method.
//
// @see DropTailQueue, DropTailQoSQueue, REDQueue
//
moduleinterface OutputQueue
{
    parameters:
        @display("i=block/queue");
    gates:
        input in;
        output out;
}