LabelScheduler

Package: inet.queueing.scheduler

LabelScheduler

simple module

This module schedules packets based on the attached labels in a LabelsTag.

Inheritance diagram

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

Extends

Name Type Description
PacketSchedulerBase simple module

This is a base module for various packet scheduler modules. Derived modules must implement a single packet scheduler function which determines the index of the input gate for the pulled packet.

Parameters

Name Type Default value Description
displayStringTextFormat string "scheduled %p pk (%l)"

determines the text that is written on top of the submodule

reverseOrder bool false
defaultGateIndex int 0

default gate index if no matching labels are found

labels string

space separated list of labels in the order of priority (highest first)

Properties

Name Value Description
display i=block/join
class LabelScheduler

Gates

Name Direction Size Description
in [ ] input
out output

Signals

Name Type Unit
packetPulled inet::Packet

Statistics

Name Title Source Record Unit Interpolation Mode
packetLengths packet lengths packetLength(packetPulled) sum, histogram, vector b none
dataRate data rate throughput(packetPulled) vector bps linear
packets packets packetPulled count pk

Source code

//
// This module schedules packets based on the attached labels in a ~LabelsTag.
//
simple LabelScheduler extends PacketSchedulerBase like IPacketScheduler
{
    parameters:
        int defaultGateIndex = default(0); // default gate index if no matching labels are found
        string labels; // space separated list of labels in the order of priority (highest first)
        @class(LabelScheduler);
}
File: src/inet/queueing/scheduler/LabelScheduler.ned