FIFOQueue

Package: inet.common.queue

FIFOQueue

simple module

This module implements a passive FIFO queue with unlimited buffer space. It can be combined with algorithmic droppers and schedulers to form an IOutputQueue compound module.

The C++ class implements the IQueueAccess and IPassiveQueue interfaces.

Used in compound modules

Name Type Description
AFxyQueue compound module

This is an example queue, that implements one class of the Assured Forwarding PHB group (RFC 2597).

Parameters

Name Type Default value Description
queueName string "l2queue"

name of the cQueue object, used in the 'q' tag of the display string

Properties

Name Value Description
display i=block/passiveq

Gates

Name Direction Size Description
in [ ] input
out output

Signals

Name Type Unit
queueLength long
queueingTime simtime_t s
dequeuePk cPacket
dropPkByQueue cPacket
rcvdPk cPacket
enqueuePk cPacket

Statistics

Name Title Source Record Unit Interpolation Mode
queueLength queue length max, timeavg, vector sample-hold
queueingTime queueing time histogram, vector none
dropPk dropped packets dropPkByQueue count, sum(packetBytes), vector(packetBytes) none
rcvdPk received packets count, sum(packetBytes), vector(packetBytes) none

Source code

//
// This module implements a passive FIFO queue
// with unlimited buffer space. It can be combined
// with algorithmic droppers and schedulers to form
// an IOutputQueue compound module.
//
// The C++ class implements the IQueueAccess and IPassiveQueue
// interfaces.
//
simple FIFOQueue
{
    parameters:
        string queueName = default("l2queue"); // name of the cQueue object, used in the 'q' tag of the display string
        @display("i=block/passiveq");
        @signal[rcvdPk](type=cPacket);
        @signal[enqueuePk](type=cPacket);
        @signal[dequeuePk](type=cPacket);
        @signal[dropPkByQueue](type=cPacket);
        @signal[queueingTime](type=simtime_t; unit=s);
        @signal[queueLength](type=long);
        @statistic[rcvdPk](title="received packets"; record=count,"sum(packetBytes)","vector(packetBytes)"; interpolationmode=none);
        @statistic[dropPk](title="dropped packets"; source=dropPkByQueue; record=count,"sum(packetBytes)","vector(packetBytes)"; interpolationmode=none);
        @statistic[queueingTime](title="queueing time"; record=histogram,vector; interpolationmode=none);
        @statistic[queueLength](title="queue length"; record=max,timeavg,vector; interpolationmode=sample-hold);
    gates:
        input in[];
        output out;
}
File: src/inet/common/queue/FIFOQueue.ned