Package: inet.linklayer.ethernet
EtherQueue
compound moduleQueue 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