EligibilityTimeGate

Package: inet.protocolelement.shaper

EligibilityTimeGate

simple module

This module is a packet gate that operates based on the EligibilityTimeTag attached to the next packet waiting to be pulled through. The gate is closed if the eligibility time is greater than the current simulation time, it is open otherwise.

This module is part of the asynchronous shaper architecture.

See also: EligibilityTimeQueue, EligibilityTimeFilter, EligibilityTimeMeter, EligibilityTimeTag

Inheritance diagram

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

Known subclasses

Name Type Description
Ieee8021qAsynchronousShaper compound module

This module implements the IEEE 802.1Q asynchronous shaper.

Extends

Name Type Description
PacketGateBase simple module

This is a base module for various packet gate modules.

Parameters

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

determines the text that is written on top of the submodule

bitrate double nan bps
extraLength int 0b
extraDuration double 0s
clockModule string ""

relative path of a module that implements IClock; optional

Properties

Name Value Description
display i=block/cogwheel
class EligibilityTimeGate

Gates

Name Direction Size Description
in input
out output

Signals

Name Type Unit
remainingEligibilityTimeChanged simtime_t

Statistics

Name Title Source Record Unit Interpolation Mode
remainingEligibilityTime remaining eligibility time remainingEligibilityTimeChanged vector s linear

Scheduled messages (observed)

msgkindctrltagsmsgnamecontext
ClockEvent0EligibilityTimer

Direct method calls (observed)

call tofunctioninfo
EligibilityTimeGateinet::EligibilityTimeGate::handleCanPullPacketChangedhandleCanPullPacketChanged
EligibilityTimeGateinet::EligibilityTimeGate::pullPacketpullPacket
EligibilityTimeQueueinet::queueing::PacketQueue::pullPacketpullPacket
PacketServerinet::queueing::PacketServer::handleCanPullPacketChangedhandleCanPullPacketChanged

Called methods (observed)

functioninfocall from
inet::EligibilityTimeGate::handleCanPullPacketChangedhandleCanPullPacketChangedEligibilityTimeGate, EligibilityTimeQueue
inet::EligibilityTimeGate::pullPacketpullPacketEligibilityTimeGate, PacketServer

Pull in messages (observed)

gatemsgkindctrlsrcModuletags
inPacket0EligibilityTimeQueueDirectionTag, EligibilityTimeTag, PacketProtocolTag

Pulled out messages (observed)

gatemsgkindctrldestModuletags
outPacket0PacketServerDirectionTag, EligibilityTimeTag, PacketProtocolTag

Shared Tagging operations (observed)

tagTypetagAction
EligibilityTimeTaggetTag

Region Tagging operations (observed)

tagTypetagAction
FlowTagmapAllTags

Source code

//
// This module is a packet gate that operates based on the ~EligibilityTimeTag
// attached to the next packet waiting to be pulled through. The gate is closed
// if the eligibility time is greater than the current simulation time, it is
// open otherwise.
//
// This module is part of the asynchronous shaper architecture.
//
// @see ~EligibilityTimeQueue, ~EligibilityTimeFilter, ~EligibilityTimeMeter, ~EligibilityTimeTag
//
simple EligibilityTimeGate extends PacketGateBase like IPacketGate
{
    parameters:
        string clockModule = default(""); // relative path of a module that implements IClock; optional
        @signal[remainingEligibilityTimeChanged](type=simtime_t);
        @statistic[remainingEligibilityTime](title="remaining eligibility time"; source=remainingEligibilityTimeChanged; record=vector; unit=s; interpolationmode=linear);
        @class(EligibilityTimeGate);
}
File: src/inet/protocolelement/shaper/EligibilityTimeGate.ned