Package: inet.queueing.gate
PeriodicGate
simple moduleThis module allows or forbids packets to pass through depending on whether the gate is open or closed. The gate is open and closed according to the list of change times periodically.
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 | |
clockModule | string | "" |
relative path of a module that implements IClock; optional |
initiallyOpen | bool | true |
specifies if the gate is initially open or closed |
offset | double | 0s |
specifies where the period starts in the list of gate state change durations; where it is in the period at the start |
durations | object | [] |
list of time durations within the period that determine if the gate is open or closed; period is the sum of the durations |
scheduleForAbsoluteTime | bool | true |
when a clock is used relative means that setting the clock will not affect the simulation time of the event |
openSchedulingPriority | int | 0 |
FES scheduling priority for the next gate open event |
closeSchedulingPriority | int | 0 |
FES scheduling priority for the next gate close event |
enableImplicitGuardBand | bool | true |
implicit guard band means that a packet is not allowed to be forwarded if it cannot finish transmission before the end of window. |
Properties
Name | Value | Description |
---|---|---|
display | i=block/cogwheel | |
class | PeriodicGate |
Gates
Name | Direction | Size | Description |
---|---|---|---|
in | input | ||
out | output |
Signals
Name | Type | Unit |
---|---|---|
guardBandStateChanged | bool |
Statistics
Name | Title | Source | Record | Unit | Interpolation Mode |
---|---|---|---|---|---|
guardBandState | guard band state | guardBandStateChanged | vector | sample-hold |
Scheduled messages (observed)
msg | kind | ctrl | tags | msgname | context |
---|---|---|---|---|---|
ClockEvent | 0 | ChangeTimer |
Direct method calls (observed)
call to | function | info |
---|---|---|
LayeredEthernetInterface | inet::NetworkInterface::receiveSignal | POST_MODEL_CHANGE |
Ieee8021qAsynchronousShaper | inet::EligibilityTimeGate::pullPacket | pullPacket |
Ieee8021qCreditBasedShaper | inet::queueing::CreditBasedGate::handleCanPushPacketChanged | handleCanPushPacketChanged |
Ieee8021qCreditBasedShaper | inet::queueing::CreditBasedGate::pullPacket | pullPacket |
Ieee8021qCreditBasedShaper | inet::queueing::CreditBasedGate::receiveSignal | gateStateChanged |
Ieee8021qCreditBasedShaper | inet::queueing::CreditBasedGate::receiveSignal | guardBandStateChanged |
PeriodicGate | inet::queueing::PeriodicGate::handleCanPullPacketChanged | handleCanPullPacketChanged |
DropTailQueue | inet::queueing::PacketQueue::pullPacket | pullPacket |
PacketQueue | inet::queueing::PacketQueue::pullPacket | pullPacket |
PriorityScheduler | inet::queueing::PriorityScheduler::handleCanPullPacketChanged | handleCanPullPacketChanged |
Called methods (observed)
function | info | call from |
---|---|---|
inet::queueing::PeriodicGate::handleCanPullPacketChanged | handleCanPullPacketChanged | Ieee8021qAsynchronousShaper, Ieee8021qCreditBasedShaper, PeriodicGate, DropTailQueue, PacketQueue |
inet::queueing::PeriodicGate::pullPacket | pullPacket | PriorityScheduler |
Pull in messages (observed)
Pulled out messages (observed)
gate | msg | kind | ctrl | destModule | tags |
---|---|---|---|---|---|
out | Packet | 0 | PriorityScheduler | DirectionTag, InterfaceReq, MacAddressReq, PacketProtocolTag, CreditGateTag?, DispatchProtocolInd?, DropEligibleInd?, DropEligibleReq?, EligibilityTimeTag?, EncapsulationProtocolReq?, InterfaceInd?, MulticastReq?, NetworkProtocolInd?, PcpInd?, PcpReq?, SequenceNumberInd?, StreamReq?, TransportProtocolInd?, UserPriorityInd?, UserPriorityReq?, VlanInd?, VlanReq? |
Region Tagging operations (observed)
tagType | tagAction |
---|---|
FlowTag | mapAllTags |
Source code
// // This module allows or forbids packets to pass through depending on whether // the gate is open or closed. The gate is open and closed according to the list // of change times periodically. // simple PeriodicGate extends PacketGateBase like IPacketGate { parameters: string clockModule = default(""); // relative path of a module that implements IClock; optional bool initiallyOpen @mutable = default(true); // specifies if the gate is initially open or closed double offset @mutable @unit(s) = default(0s); // specifies where the period starts in the list of gate state change durations; where it is in the period at the start object durations @mutable @unit(s) = default([]); // list of time durations within the period that determine if the gate is open or closed; period is the sum of the durations bool scheduleForAbsoluteTime = default(true); // when a clock is used relative means that setting the clock will not affect the simulation time of the event int openSchedulingPriority = default(0); // FES scheduling priority for the next gate open event int closeSchedulingPriority = default(0); // FES scheduling priority for the next gate close event bool enableImplicitGuardBand = default(true); // implicit guard band means that a packet is not allowed to be forwarded if it cannot finish transmission before the end of window. @class(PeriodicGate); @signal[guardBandStateChanged](type=bool); @statistic[guardBandState](title="guard band state"; type=enum; enum=ON,OFF; source=guardBandStateChanged; record=vector; interpolationmode=sample-hold); }File: src/inet/queueing/gate/PeriodicGate.ned