Package: inet.linklayer.ethernet
EtherQoSQueue
compound moduleQueue module that gives the PAUSE frames a higher priority, and can be parametrized with an IOutputQueue for serving the other frames.
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 |
---|---|---|
EtherHost | compound module |
An example host with one Ethernet port and a traffic generator that generates request-reply traffic directly over Ethernet. This host model does not contain higher layer protocols (IP, TCP). By default it is configured to use half-duplex MAC (CSMA/CD). |
EtherHost2 | compound module |
An example host with one Ethernet interface and an Ethernet traffic generator directly connected to it. This host model does not contain higher layer protocols (IP, TCP). By default is configured to use half-duplex MAC (CSMA/CD). |
EthernetInterface | compound module |
Ethernet network interface. Complements EtherMAC and EtherEncap with an output queue for QoS and RED support. |
Parameters
Name | Type | Default value | Description |
---|---|---|---|
dataQueueType | string | "DropTailQueue" |
class that inherits from IOutputQueue (DropTailQueue, EtherQoSQueue, DiffservQueue etc.) |
Properties
Name | Value | Description |
---|---|---|
display | i=block/queue |
Gates
Name | Direction | Size | Description |
---|---|---|---|
in | input | ||
out | output |
Unassigned submodule parameters
Name | Type | Default value | Description |
---|---|---|---|
pauseQueue.frameCapacity | int | 100 |
Source code
// // Queue module that gives the PAUSE frames a higher priority, // and can be parametrized with an ~IOutputQueue for serving the // other frames. // module EtherQoSQueue like IOutputQueue { parameters: string dataQueueType = default("DropTailQueue"); // class that inherits from IOutputQueue (~DropTailQueue, ~EtherQoSQueue, ~DiffservQueue etc.) @display("i=block/queue"); gates: input in; output out; submodules: classifier: EtherFrameClassifier { @display("p=46,145"); } pauseQueue: DropTailQueue { queueName = "pauseQueue"; @display("p=187,91"); } dataQueue: <dataQueueType> like IOutputQueue { parameters: @display("p=187,192;q=l2queue"); } scheduler: PriorityScheduler { @display("p=318,145"); } connections: in --> classifier.in; classifier.pauseOut --> pauseQueue.in; classifier.defaultOut --> dataQueue.in; pauseQueue.out --> scheduler.in++; dataQueue.out --> scheduler.in++; scheduler.out --> out; }File: src/inet/linklayer/ethernet/EtherQoSQueue.ned