PriorityScheduler

Package: inet.queueing.scheduler

PriorityScheduler

simple module

This scheduler pulls packets from the first non-empty among its connected packet providers.

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
CompoundPendingQueue compound module (no description)
DiffservQueue compound module

This is an example queue, that can be used in interfaces of DS core and edge nodes to support the AFxy (RFC 2597) and EF (RFC 3246) PHBs.

EthernetPreemptingMacLayer compound module (no description)

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

Properties

Name Value Description
display i=block/join
class PriorityScheduler

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

Direct method calls (observed)

call tofunctioninfo
EthernetCsmaMacinet::EthernetCsmaMac::handleCanPullPacketChangedhandleCanPullPacketChanged
EthernetMacinet::EthernetMac::handleCanPullPacketChangedhandleCanPullPacketChanged
EthernetFcsCheckerinet::EthernetFcsChecker::canPullSomePacketcanPullSomePacket
Pppinet::Ppp::handleCanPullPacketChangedhandleCanPullPacketChanged
PacketEmitterinet::PacketEmitter::pullPacketEndpullPacketEnd
PacketEmitterinet::PacketEmitter::pullPacketStartpullPacketStart
PeriodicGateinet::queueing::PeriodicGate::pullPacketpullPacket
DropTailQueueinet::queueing::PacketQueue::pullPacketpullPacket
PacketQueueinet::queueing::PacketQueue::pullPacketpullPacket
WrrSchedulerinet::queueing::WrrScheduler::pullPacketpullPacket
InstantServerinet::queueing::InstantServer::handleCanPullPacketChangedhandleCanPullPacketChanged
PreemptingServerinet::queueing::PreemptingServer::handleCanPullPacketChangedhandleCanPullPacketChanged
ActivePacketSinkinet::queueing::ActivePacketSink::handleCanPullPacketChangedhandleCanPullPacketChanged

Called methods (observed)

functioninfocall from
inet::queueing::PriorityScheduler::handleCanPullPacketChangedhandleCanPullPacketChangedPacketEmitter, PeriodicGate, DropTailQueue, PacketQueue, WrrScheduler
inet::queueing::PriorityScheduler::pullPacketpullPacketinet.examples.diffserv.onedomain.DSQueue1, EthernetQosQueue, Ieee8021qTimeAwareShaper, DiffservQueue, GatingPriorityQueue, PriorityQueue, ActivePacketSink, inet.tutorials.queueing.ExampleCompoundPriorityQueue
inet::queueing::PriorityScheduler::pullPacketEndpullPacketEndPreemptingServer
inet::queueing::PriorityScheduler::pullPacketStartpullPacketStartPreemptingServer

Pull in messages (observed)

gatemsgkindctrlsrcModuletags
in[]Packet0PacketEmitterDirectionTag, DispatchProtocolInd, EncapsulationProtocolReq, InterfaceReq, MacAddressReq, MulticastReq, NetworkProtocolInd, TransportProtocolInd, VlanReq, FragmentTag?, PacketProtocolTag?
in[]Packet0PeriodicGateDirectionTag, InterfaceReq, MacAddressReq, PacketProtocolTag, CreditGateTag?, DispatchProtocolInd?, DropEligibleInd?, DropEligibleReq?, EligibilityTimeTag?, EncapsulationProtocolReq?, InterfaceInd?, MulticastReq?, NetworkProtocolInd?, PcpInd?, PcpReq?, SequenceNumberInd?, StreamReq?, TransportProtocolInd?, UserPriorityInd?, UserPriorityReq?, VlanInd?, VlanReq?
in[]Packet0DropTailQueueInterfaceReq, PacketProtocolTag, DirectionTag?, DispatchProtocolInd?, EcnInd?, EncapsulationProtocolReq?, Ieee802SapReq?, InterfaceInd?, MacAddressInd?, MacAddressReq?, MulticastReq?, NetworkProtocolInd?, TransportProtocolInd?, VlanReq?
in[]Packet0PacketQueueDirectionTag, PacketProtocolTag
in[]Packet0WrrSchedulerDispatchProtocolInd, InterfaceInd, InterfaceReq, NetworkProtocolInd, PacketProtocolTag, MacAddressInd?

Pulled out messages (observed)

gatemsgkindctrldestModuletags
outPacket0EthernetCsmaMacInterfaceReq, MacAddressReq, PacketProtocolTag, DirectionTag?, DispatchProtocolInd?, EncapsulationProtocolReq?, Ieee802SapReq?, InterfaceInd?, MacAddressInd?, NetworkProtocolInd?
outPacket0EthernetMacInterfaceReq, MacAddressReq, PacketProtocolTag, DirectionTag?, DispatchProtocolInd?, EcnInd?, EncapsulationProtocolReq?, Ieee802SapReq?, InterfaceInd?, MacAddressInd?, MulticastReq?, NetworkProtocolInd?, TransportProtocolInd?
outPacket0PppDispatchProtocolInd, InterfaceInd, InterfaceReq, NetworkProtocolInd, PacketProtocolTag, MacAddressInd?
outPacket0InstantServerDirectionTag, InterfaceReq, MacAddressReq, PacketProtocolTag, CreditGateTag?, DispatchProtocolInd?, DropEligibleInd?, DropEligibleReq?, EligibilityTimeTag?, EncapsulationProtocolReq?, InterfaceInd?, MulticastReq?, NetworkProtocolInd?, PcpInd?, PcpReq?, SequenceNumberInd?, StreamReq?, TransportProtocolInd?, UserPriorityInd?, UserPriorityReq?, VlanInd?, VlanReq?
outPacket0PreemptingServerDirectionTag, DispatchProtocolInd, EncapsulationProtocolReq, InterfaceReq, MacAddressReq, MulticastReq, NetworkProtocolInd, TransportProtocolInd, VlanReq, FragmentTag?, PacketProtocolTag?
outPacket0ActivePacketSinkDirectionTag, PacketProtocolTag

Source code

//
// This scheduler pulls packets from the first non-empty among its connected
// packet providers.
//
simple PriorityScheduler extends PacketSchedulerBase like IPacketScheduler
{
    parameters:
        @class(PriorityScheduler);
}
File: src/inet/queueing/scheduler/PriorityScheduler.ned