Simple Module TTIncoming

Package: core4inet.incoming.AS6802
File: src/core4inet/incoming/AS6802/TTIncoming.ned

C++ definition

Module for the conformance checks of incoming time-triggered traffic.

The traffic is checked for conformance with the receive window and afterwards delayed until the permanence point in time (permanence_pit). Therefore it registers a timer message (SchedulerActionTimeEvent) with the schduler module (TTEScheduler)

See also: ~Incoming, ~IScheduled, ~SchedulerActionTimeEvent, ~TTEScheduler

Author: Till Steinbach

TTIncoming

Usage diagram:

The following diagram shows usage relationships between types. Unresolved types are missing from the diagram. Click here to see the full picture.

Inheritance diagram:

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram. Click here to see the full picture.

Extends:

Name Type Description
Incoming simple module

Abstract module for the conformance checks of incoming traffic.

Used in compound modules:

Name Type Description
Node1 compound module

unit1: configuration in unit1.ini.

Node1 compound module

node1(1,2,3,4): configuration in node1(1,2,3,4).ini.

Node1 compound module (no description)
node1 compound module (no description)
node1 compound module (no description)
node1 compound module (no description)
Node2 compound module

unit2: configuration in unit2.ini.

Node2 compound module

node2(1,2,3,4): configuration in node2(1,2,3,4).ini.

node2 compound module (no description)
node2 compound module (no description)
node2 compound module (no description)
Node3 compound module

unit3: configuration in unit3.ini.

Node3 compound module

node3(1,2,3,4): configuration in node3(1,2,3,4).ini.

Node3 compound module (no description)
node3 compound module (no description)
node3 compound module (no description)
node3 compound module (no description)
node3 compound module (no description)
node4 compound module (no description)
node5 compound module (no description)
node6 compound module (no description)
node7 compound module (no description)
node9 compound module (no description)
Node_3 compound module (no description)
Node_4 compound module (no description)
Node_5 compound module (no description)
Node_6 compound module (no description)
Node_7 compound module (no description)
Node_9 compound module (no description)
Switch1 compound module

switch1(1,2,3,4): configuration in switch1(1,2,3,4).ini Forwards time-triggered messages with VL-ID 100 and rc messages with VL-ID 101

Switch1 compound module

switch1(1,2,3,4): configuration in switch1(1,2,3,4).ini Forwards time-triggered messages with VL-ID 100 and rate-constrained messages with VL-ID 101

Switch1 compound module

switch1(1,2,3,4): configuration in switch1(1,2,3,4).ini Forwards time-triggered messages with VL-ID 100

Switch1 compound module

switch1(1,2,3,4): configuration in switch1(1,2,3,4).ini Forwards time-triggered messages with VL-ID 100

switch1 compound module (no description)
switch1 compound module (no description)
switch1 compound module (no description)
switch1 compound module (no description)
switch2 compound module (no description)
switch3 compound module (no description)
Switch_1 compound module (no description)
Switch_2 compound module (no description)
Switch_3 compound module (no description)
Tic compound module

tic: configuration in tic.ini.

Toc compound module

tic: configuration in tic.ini.

Parameters:

Name Type Default value Description
hardware_delay double 0s

Hardware delay between incoming and outgoing buffer

receive_window_start int

Beginning of the receive window in number of ticks (-1 means no receive window)

receive_window_end int

End of the receive window in number of ticks (-1 means no receive window)

permanence_pit int

permanence point in time in number of ticks (-1 means no permanence point, frame is relayed immediately)

period string "^.scheduler.period[0]"

Period of Scheduler this ctc is assigned to

oscillator string "^.scheduler.oscillator"

Oscillator of the timed module (must be set to the name of an oscillator module in the Node) when left empty: oscillator

timer string "^.scheduler.timer"

Timer of the timed module (must be set to the name of an timer module in the Node) when left empty: timer

Properties:

Name Value Description
class TTIncoming

TTIncoming is implemented by the TTIncoming C++ Class

display i=,red

Gates:

Name Direction Size Description
in input

input of the ctc

out output

output of the ctc

schedulerIn input

Input gate for the incoming SchedulerActionTimeEvent messages

Signals:

Name Type Unit
rxPk inet::EtherFrame
droppedPk inet::EtherFrame

Statistics:

Name Title Source Record Unit Interpolation Mode
rxBytes Received Bytes rxPk sum(packetBytes)?, vector(packetBytes)? B none
rxPk Received Packets rxPk count
latency End-to-end latency messageAge(rxPk) stats, histogram?, vector s none
dropped Packets Dropped droppedPk count, vector(constant1)

Source code:

//
// Module for the conformance checks of incoming time-triggered traffic.
//
// The traffic is checked for conformance with the receive window and afterwards
// delayed until the permanence point in time (permanence_pit). Therefore it registers a
// timer message (SchedulerActionTimeEvent) with the schduler module (TTEScheduler)
//
// @see ~Incoming, ~IScheduled, ~SchedulerActionTimeEvent, ~TTEScheduler
//
// @author Till Steinbach
//
simple TTIncoming extends Incoming like IScheduled
{
    parameters:
        @display("i=,red");
        //TTIncoming is implemented by the TTIncoming C++ Class
        @class(TTIncoming);

        //Beginning of the receive window in number of ticks (-1 means no receive window)
        int receive_window_start @unit(tick);
        //End of the receive window in number of ticks (-1 means no receive window)
        int receive_window_end @unit(tick);
        //permanence point in time in number of ticks (-1 means no permanence point, frame is relayed immediately)
        int permanence_pit @unit(tick);
        //Period of Scheduler this ctc is assigned to
        string period = default("^.scheduler.period[0]");
        //Oscillator of the timed module (must be set to the name of an oscillator module in the Node) when left empty: oscillator
        string oscillator = default("^.scheduler.oscillator");
        //Timer of the timed module (must be set to the name of an timer module in the Node) when left empty: timer
        string timer = default("^.scheduler.timer");

        //Hardware delay is set to 0s as the forwarding is scheduled (permanence_pit)
        hardware_delay = 0s;

    gates:
        //Input gate for the incoming SchedulerActionTimeEvent messages
        input schedulerIn @directIn @label(SchedulerMessage);
}