Package: inet.common.queue
FIFOQueue
simple moduleThis 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