Compound Module DSQueue1

Package: inet.examples.diffserv.onedomain
File: examples/diffserv/onedomain/DSQueue1.ned

Diffserv Queue used in Experiment 1.1 - 1.6 and 5.1.

BehaviorAggregateClassifier DropTailQueue DropTailQueue DropTailQueue DropTailQueue DropTailQueue DropTailQueue WRRScheduler PriorityScheduler

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.

Parameters:

Name Type Default value Description
frameCapacity int 100

Gates:

Name Direction Size Description
in input
out output

Unassigned submodule parameters:

Name Type Default value Description
efQueue.queueName string "l2queue"

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

af1xQueue.queueName string "l2queue"

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

af2xQueue.queueName string "l2queue"

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

af3xQueue.queueName string "l2queue"

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

af4xQueue.queueName string "l2queue"

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

beQueue.queueName string "l2queue"

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

wrr.weights string

Source code:

//
// Diffserv Queue used in Experiment 1.1 - 1.6 and 5.1.
//
module DSQueue1 like IOutputQueue
{
    parameters:
        int frameCapacity = default(100);

    gates:
        input in;
        output out;

    submodules:
        classifier: BehaviorAggregateClassifier {
            dscps = "EF AF11 AF21 AF31 AF41";
            @display("p=41,284");
        }
        efQueue: DropTailQueue {
            frameCapacity = frameCapacity;
            @display("p=195,95");
        }
        af1xQueue: DropTailQueue {
            frameCapacity = frameCapacity;
            @display("p=195,224");
        }
        af2xQueue: DropTailQueue {
            frameCapacity = frameCapacity;
            @display("p=195,329");
        }
        af3xQueue: DropTailQueue {
            frameCapacity = frameCapacity;
            @display("p=195,421");
        }
        af4xQueue: DropTailQueue {
            frameCapacity = frameCapacity;
            @display("p=195,537");
        }
        beQueue: DropTailQueue {
            frameCapacity = frameCapacity;
            @display("p=195,628");
        }
        wrr: WRRScheduler {
            @display("p=384,368");
        }
        priority: PriorityScheduler {
            @display("p=556,263");
        }

    connections:
        in --> classifier.in;
        classifier.outs++ --> efQueue.in;
        classifier.outs++ --> af1xQueue.in;
        classifier.outs++ --> af2xQueue.in;
        classifier.outs++ --> af3xQueue.in;
        classifier.outs++ --> af4xQueue.in;
        classifier.defaultOut --> beQueue.in;

        af1xQueue.out --> wrr.in++;
        af2xQueue.out --> wrr.in++;
        af3xQueue.out --> wrr.in++;
        af4xQueue.out --> wrr.in++;
        beQueue.out --> wrr.in++;
        efQueue.out --> priority.in++;
        wrr.out --> priority.in++;
        priority.out --> out;
}