EtherQueue

Package: inet.linklayer.ethernet

EtherQueue

compound module

Queue module that gives the PAUSE frames a higher priority.

Inheritance diagram

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

Extends

Name Type Description
DropTailQueue simple module

This module is a limited packet queue which drops packets at the tail of the queue.

Parameters

Name Type Default value Description
displayStringTextFormat string "contains %p pk (%l) pushed %u\npopped %o removed %r dropped %d"

determines display string text above the submodule

packetCapacity int 100

maximum number of packets in the queue, no limit by default

dataCapacity int -1b

maximum total length of packets in the queue, no limit by default

dropperClass string "inet::queueing::PacketAtCollectionEndDropper"

determines which packets are dropped when the queue is overloaded, packets are not dropped by default; the parameter must be the name of a C++ class which implements the IPacketDropperFunction C++ interface and is registered via Register_Class

comparatorClass string "inet::EthernetFrameTypeComparator"

determines the order of packets in the queue, insertion order by default; the parameter must be the name of a C++ class which implements the IPacketComparatorFunction C++ interface and is registered via Register_Class

bufferModule string ""

relative module path to the IPacketBuffer module used by this queue, implicit buffer by default

Properties

Name Value Description
display i=block/queue
class PacketQueue

Gates

Name Direction Size Description
in input
out output

Signals

Name Type Unit
packetRemoved inet::Packet
packetPushed inet::Packet
packetDropped inet::Packet
packetPopped inet::Packet

Statistics

Name Title Source Record Unit Interpolation Mode
packetRemoved packets removed count, sum(packetBytes), vector(packetBytes) none
queueLength queue length count(packetPushed) - count(packetPopped) - count(packetRemoved) - count(packetDropped) max, timeavg, vector sample-hold
queueingTime queueing times queueingTime(packetPopped) histogram, vector s none
packetPushed packet pushed count, sum(packetBytes), vector(packetBytes) none
packetDropQueueOverflow packet drops: queue overflow packetDropReasonIsQueueOverflow(packetDropped) count, sum(packetBytes), vector(packetBytes) none
packetPopped packet popped count, sum(packetBytes), vector(packetBytes) none

Source code

//
// Queue module that gives the PAUSE frames a higher priority.
//
//# TODO: rename to EtherQosQueue or keep name as it is?
module EtherQueue extends DropTailQueue
{
    parameters:
        comparatorClass = default("inet::EthernetFrameTypeComparator");
}

File: src/inet/linklayer/ethernet/EtherQosQueue.ned