InteractiveGate

Package: inet.queueing.gate

InteractiveGate

simple module

This packet gate module allows or forbids packets to pass through depending on whether the gate is open or closed as specified by the parameter. The gate can also be controlled by the user by manually changing the open parameter from the graphical user interface while the simulation is paused.

Inheritance diagram

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

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
open bool true

Properties

Name Value Description
display i=block/cogwheel
class InteractiveGate

Gates

Name Direction Size Description
in input
out output

Signals

Name Type Unit
gateStateChanged bool

Statistics

Name Title Source Record Unit Interpolation Mode
gateState gate state gateStateChanged vector sample-hold

Direct method calls (observed)

call tofunctioninfo
StreamClassifierinet::StreamClassifier::handleCanPushPacketChangedhandleCanPushPacketChanged
EligibilityTimeMeterinet::EligibilityTimeMeter::pushPacketpushPacket
InteractiveGateinet::queueing::InteractiveGate::handleCanPushPacketChangedhandleCanPushPacketChanged
SingleRateTwoColorMeterinet::queueing::TokenBucketMeter::pushPacketpushPacket
SlidingWindowRateMeterinet::queueing::SlidingWindowRateMeter::pushPacketpushPacket

Called methods (observed)

functioninfocall from
inet::queueing::InteractiveGate::handleCanPushPacketChangedhandleCanPushPacketChangedInteractiveGate, SingleRateTwoColorMeter
inet::queueing::InteractiveGate::pushPacketpushPacketStreamClassifier

Pushed in messages (observed)

gatemsgkindctrlsrcModuletags
inPacket0StreamClassifierDirectionTag, PacketProtocolTag, DispatchProtocolReq?, DropEligibleInd?, EncapsulationProtocolInd?, InterfaceInd?, MacAddressInd?, PcpInd?, StreamInd?, StreamReq?, UserPriorityInd?, VlanInd?

Push out messages (observed)

gatemsgkindctrldestModuletags
outPacket0EligibilityTimeMeterDirectionTag, DispatchProtocolReq, DropEligibleInd, EncapsulationProtocolInd, InterfaceInd, MacAddressInd, PacketProtocolTag, PcpInd, StreamInd, UserPriorityInd, VlanInd
outPacket0SingleRateTwoColorMeterDirectionTag, PacketProtocolTag, DispatchProtocolReq?, DropEligibleInd?, EncapsulationProtocolInd?, InterfaceInd?, MacAddressInd?, PcpInd?, StreamInd?, StreamReq?, UserPriorityInd?, VlanInd?
outPacket0SlidingWindowRateMeterDirectionTag, DispatchProtocolReq, DropEligibleInd, EncapsulationProtocolInd, InterfaceInd, MacAddressInd, PacketProtocolTag, PcpInd, StreamInd, UserPriorityInd, VlanInd

Region Tagging operations (observed)

tagTypetagAction
FlowTagmapAllTags

Source code

//
// This packet gate module allows or forbids packets to pass through depending
// on whether the gate is open or closed as specified by the parameter. The gate
// can also be controlled by the user by manually changing the open parameter
// from the graphical user interface while the simulation is paused.
//
simple InteractiveGate extends PacketGateBase like IPacketGate
{
    parameters:
        bool open @mutable = default(true);
        @class(InteractiveGate);
}
File: src/inet/queueing/gate/InteractiveGate.ned