Network rt_tictoc

Package: core4inet.examples.AS6802.rt_tictoc
File: examples/AS6802/rt_tictoc/rt_tictoc.ned

Small sample network with two hosts and one switch that shows how to build application models for the simulation. The example uses two different applications (TicApp and TocApp) that pass messages to each other

Tic Toc Switch1

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.

Properties:

Name Value Description
isNetwork
display bgb=,,white

Unassigned submodule parameters:

Name Type Default value Description
tic.status.initialStatus string "UP"

TODO @signal, @statistic

tic.phy.shaper.numRCpriority int 10
tic.phy.shaper.tt_buffers string ""

Comma seperated list of TTBuffers that send messages to this port

tic.phy.shaper.safety_margin int 5

Safety margin for TT-Messages in ticks (musst be set according to maximum clock correction!)

tic.phy.shaper.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

tic.phy.shaper.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

tic.phy.inControl.oscillator string "oscillator"

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

tic.phy.inControl.timer string "timer"

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

tic.phy.inControl.ct_marker int
tic.phy.inControl.ct_mask int

Critical traffic mask of the buffer

tic.phy.inControl.ct_incomings string ""

Comma seperated list of ctc modules the input uses

tic.phy.mac.interfaceTableModule string

The path to the InterfaceTable module

tic.phy.mac.address string "auto"

MAC address as hex string (12 hex digits), or "auto". "auto" values will be replaced by a generated MAC address in init stage 0.

tic.phy.mac.duplexMode bool true

must be set to "true", as EtherMACFullDuplex does not support half-duplex operation (parameter is present to reduce the risk of accidental misconfiguration)

tic.phy.mac.txQueueLimit int 1000

maximum number of frames queued up for transmission in the internal queue (only used if queueModule==""); additional frames cause a runtime error

tic.phy.mac.mtu int 1500B
tic.phy.mac.connectionColoring bool true

colors the connection when transmitting

tic.encap.useSNAP bool false

create EtherFrameWithSNAP frames instead of EthernetIIFrame

tic.app.buffers string

Comma seperated list of buffer modules the application is allowed to use

tic.app.displayName string

Name shown above the module

tic.bgIn.destination_gates string ""

Comma seperated list of gates where the frames of the buffer are delivered

tic.bgIn.maxMessageSize int 1522B

The maximum allowed message size for this buffer. Larger Frames are dropped.

tic.bgIn.enabled bool true

Switch to enable and disable the buffer

tic.bgIn.size int -1

Maximum size of the buffer negative means infinite

tic.bgIn.dropNew bool false

Dropping policy, Should the newest frame instead of the oldest frame be dropped when the buffer is full (see size parameter)

tic.bgOut.destination_gates string ""

Comma seperated list of gates where the frames of the buffer are delivered

tic.bgOut.maxMessageSize int 1522B

The maximum allowed message size for this buffer. Larger Frames are dropped.

tic.bgOut.enabled bool true

Switch to enable and disable the buffer

tic.bgOut.size int -1

Maximum size of the buffer negative means infinite

tic.bgOut.dropNew bool false

Dropping policy, Should the newest frame instead of the oldest frame be dropped when the buffer is full (see size parameter)

tic.checkedBuffer.buffer.destination_gates string

Comma seperated list of gates where the frames of the buffer are delivered

tic.interfaceTable.displayAddresses bool true

whether to display IP addresses on links

tic.vl_100_ctc.receive_window_start int

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

tic.vl_100_ctc.receive_window_end int

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

tic.vl_100_ctc.permanence_pit int

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

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

Period of Scheduler this ctc is assigned to

tic.vl_100_ctc.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

tic.vl_100_ctc.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

tic.vl_100.destination_gates string ""

Comma seperated list of gates where the frames of the buffer are delivered

tic.vl_100.maxMessageSize int 1522B

The maximum allowed message size for this buffer. Larger Frames are dropped.

tic.vl_100.enabled bool true

Switch to enable and disable the buffer

tic.vl_100.priority int -1

Priority of the buffer (currently only used for rate-constrained traffic)

tic.vl_100.ct_id int

Critical traffic ID of the buffer

tic.vl_100.ct_marker int

Critical traffic marker of the buffer

tic.vl_100.ct_mask int

Critical traffic mask of the buffer

tic.vl_100.oscillator string "^.scheduler.oscillator"

Oscillator this buffer is assigned to

tic.vl_100.timer string "^.scheduler.timer"

Timer this buffer is assigned to

tic.vl_100.sendWindowStart int

Beginning of the send window in number of ticks (Changes to this parameter will get active for future scheduled frames only)

tic.vl_100.sendWindowEnd int 0tick

End of the send window in number of ticks

tic.vl_100.period string "period[0]"

Period of Scheduler this buffer is assigned to

tic.vl_101_ctc.hardware_delay double 0s

Hardware delay between incoming and outgoing buffer

tic.vl_101_ctc.bag int 0tick

Bandwidth allocation gap in number of ticks (Changes to this parameter will get active for future frames only)

tic.vl_101_ctc.jitter int 0tick

Maximum jitter for the bandwidth allocation gap in number of ticks

tic.vl_101_ctc.oscillator string "^.scheduler.oscillator"
tic.vl_101_ctc.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

tic.vl_101.destination_gates string ""

Comma seperated list of gates where the frames of the buffer are delivered

tic.vl_101.maxMessageSize int 1522B

The maximum allowed message size for this buffer. Larger Frames are dropped.

tic.vl_101.enabled bool true

Switch to enable and disable the buffer

tic.vl_101.priority int -1

Priority of the buffer (currently only used for rate-constrained traffic)

tic.vl_101.ct_id int

Critical traffic ID of the buffer

tic.vl_101.ct_marker int

Critical traffic marker of the buffer

tic.vl_101.ct_mask int

Critical traffic mask of the buffer

tic.vl_101.oscillator string "^.scheduler.oscillator"

Oscillator this buffer is assigned to

tic.vl_101.timer string "^.scheduler.timer"

Timer this buffer is assigned to

tic.vl_101.max_dispatch_delay int 0tick

Not used

tic.vl_101.bag int 0tick

Bandwidth allocation gap in number of ticks (Changes to this parameter will get active for future frames only)

tic.vl_101.jitter int 0tick

Maximum jitter for the bandwidth allocation gap in number of ticks

tic.vl_101.size int -1

Size of the buffer negative means infinite

tic.vl_101.dropNew bool false

Dropping policy, Should the newest frame instead of the oldest frame be dropped when the buffer is full (see size parameter)

toc.status.initialStatus string "UP"

TODO @signal, @statistic

toc.phy.shaper.numRCpriority int 10
toc.phy.shaper.tt_buffers string ""

Comma seperated list of TTBuffers that send messages to this port

toc.phy.shaper.safety_margin int 5

Safety margin for TT-Messages in ticks (musst be set according to maximum clock correction!)

toc.phy.shaper.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

toc.phy.shaper.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

toc.phy.inControl.oscillator string "oscillator"

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

toc.phy.inControl.timer string "timer"

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

toc.phy.inControl.ct_marker int
toc.phy.inControl.ct_mask int

Critical traffic mask of the buffer

toc.phy.inControl.ct_incomings string ""

Comma seperated list of ctc modules the input uses

toc.phy.mac.interfaceTableModule string

The path to the InterfaceTable module

toc.phy.mac.address string "auto"

MAC address as hex string (12 hex digits), or "auto". "auto" values will be replaced by a generated MAC address in init stage 0.

toc.phy.mac.duplexMode bool true

must be set to "true", as EtherMACFullDuplex does not support half-duplex operation (parameter is present to reduce the risk of accidental misconfiguration)

toc.phy.mac.txQueueLimit int 1000

maximum number of frames queued up for transmission in the internal queue (only used if queueModule==""); additional frames cause a runtime error

toc.phy.mac.mtu int 1500B
toc.phy.mac.connectionColoring bool true

colors the connection when transmitting

toc.encap.useSNAP bool false

create EtherFrameWithSNAP frames instead of EthernetIIFrame

toc.app.buffers string

Comma seperated list of buffer modules the application is allowed to use

toc.app.displayName string

Name shown above the module

toc.bgIn.destination_gates string ""

Comma seperated list of gates where the frames of the buffer are delivered

toc.bgIn.maxMessageSize int 1522B

The maximum allowed message size for this buffer. Larger Frames are dropped.

toc.bgIn.enabled bool true

Switch to enable and disable the buffer

toc.bgIn.size int -1

Maximum size of the buffer negative means infinite

toc.bgIn.dropNew bool false

Dropping policy, Should the newest frame instead of the oldest frame be dropped when the buffer is full (see size parameter)

toc.bgOut.destination_gates string ""

Comma seperated list of gates where the frames of the buffer are delivered

toc.bgOut.maxMessageSize int 1522B

The maximum allowed message size for this buffer. Larger Frames are dropped.

toc.bgOut.enabled bool true

Switch to enable and disable the buffer

toc.bgOut.size int -1

Maximum size of the buffer negative means infinite

toc.bgOut.dropNew bool false

Dropping policy, Should the newest frame instead of the oldest frame be dropped when the buffer is full (see size parameter)

toc.checkedBuffer.buffer.destination_gates string

Comma seperated list of gates where the frames of the buffer are delivered

toc.interfaceTable.displayAddresses bool true

whether to display IP addresses on links

toc.vl_100_ctc.receive_window_start int

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

toc.vl_100_ctc.receive_window_end int

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

toc.vl_100_ctc.permanence_pit int

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

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

Period of Scheduler this ctc is assigned to

toc.vl_100_ctc.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

toc.vl_100_ctc.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

toc.vl_100.destination_gates string ""

Comma seperated list of gates where the frames of the buffer are delivered

toc.vl_100.maxMessageSize int 1522B

The maximum allowed message size for this buffer. Larger Frames are dropped.

toc.vl_100.enabled bool true

Switch to enable and disable the buffer

toc.vl_100.priority int -1

Priority of the buffer (currently only used for rate-constrained traffic)

toc.vl_100.ct_id int

Critical traffic ID of the buffer

toc.vl_100.ct_marker int

Critical traffic marker of the buffer

toc.vl_100.ct_mask int

Critical traffic mask of the buffer

toc.vl_100.oscillator string "^.scheduler.oscillator"

Oscillator this buffer is assigned to

toc.vl_100.timer string "^.scheduler.timer"

Timer this buffer is assigned to

toc.vl_100.sendWindowStart int

Beginning of the send window in number of ticks (Changes to this parameter will get active for future scheduled frames only)

toc.vl_100.sendWindowEnd int 0tick

End of the send window in number of ticks

toc.vl_100.period string "period[0]"

Period of Scheduler this buffer is assigned to

toc.vl_101_ctc.hardware_delay double 0s

Hardware delay between incoming and outgoing buffer

toc.vl_101_ctc.bag int 0tick

Bandwidth allocation gap in number of ticks (Changes to this parameter will get active for future frames only)

toc.vl_101_ctc.jitter int 0tick

Maximum jitter for the bandwidth allocation gap in number of ticks

toc.vl_101_ctc.oscillator string "^.scheduler.oscillator"
toc.vl_101_ctc.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

toc.vl_101.destination_gates string ""

Comma seperated list of gates where the frames of the buffer are delivered

toc.vl_101.maxMessageSize int 1522B

The maximum allowed message size for this buffer. Larger Frames are dropped.

toc.vl_101.enabled bool true

Switch to enable and disable the buffer

toc.vl_101.priority int -1

Priority of the buffer (currently only used for rate-constrained traffic)

toc.vl_101.ct_id int

Critical traffic ID of the buffer

toc.vl_101.ct_marker int

Critical traffic marker of the buffer

toc.vl_101.ct_mask int

Critical traffic mask of the buffer

toc.vl_101.oscillator string "^.scheduler.oscillator"

Oscillator this buffer is assigned to

toc.vl_101.timer string "^.scheduler.timer"

Timer this buffer is assigned to

toc.vl_101.max_dispatch_delay int 0tick

Not used

toc.vl_101.bag int 0tick

Bandwidth allocation gap in number of ticks (Changes to this parameter will get active for future frames only)

toc.vl_101.jitter int 0tick

Maximum jitter for the bandwidth allocation gap in number of ticks

toc.vl_101.size int -1

Size of the buffer negative means infinite

toc.vl_101.dropNew bool false

Dropping policy, Should the newest frame instead of the oldest frame be dropped when the buffer is full (see size parameter)

switch1.status.initialStatus string "UP"

TODO @signal, @statistic

switch1.macTable.agingTime double
switch1.macTable.addressTableFile string
switch1.interfaceTable.displayAddresses bool true

whether to display IP addresses on links

switch1.phy.shaper.numRCpriority int 10
switch1.phy.shaper.tt_buffers string ""

Comma seperated list of TTBuffers that send messages to this port

switch1.phy.shaper.safety_margin int 5

Safety margin for TT-Messages in ticks (musst be set according to maximum clock correction!)

switch1.phy.shaper.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

switch1.phy.shaper.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

switch1.phy.inControl.oscillator string "oscillator"

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

switch1.phy.inControl.timer string "timer"

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

switch1.phy.inControl.ct_marker int
switch1.phy.inControl.ct_mask int

Critical traffic mask of the buffer

switch1.phy.inControl.ct_incomings string ""

Comma seperated list of ctc modules the input uses

switch1.phy.mac.interfaceTableModule string

The path to the InterfaceTable module

switch1.phy.mac.address string "auto"

MAC address as hex string (12 hex digits), or "auto". "auto" values will be replaced by a generated MAC address in init stage 0.

switch1.phy.mac.duplexMode bool true

must be set to "true", as EtherMACFullDuplex does not support half-duplex operation (parameter is present to reduce the risk of accidental misconfiguration)

switch1.phy.mac.txQueueLimit int 1000

maximum number of frames queued up for transmission in the internal queue (only used if queueModule==""); additional frames cause a runtime error

switch1.phy.mac.mtu int 1500B
switch1.phy.mac.connectionColoring bool true

colors the connection when transmitting

switch1.checkedBuffer.buffer.destination_gates string

Comma seperated list of gates where the frames of the buffer are delivered

switch1.vl_100_ctc.receive_window_start int

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

switch1.vl_100_ctc.receive_window_end int

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

switch1.vl_100_ctc.permanence_pit int

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

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

Period of Scheduler this ctc is assigned to

switch1.vl_100_ctc.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

switch1.vl_100_ctc.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

switch1.vl_100.destination_gates string ""

Comma seperated list of gates where the frames of the buffer are delivered

switch1.vl_100.maxMessageSize int 1522B

The maximum allowed message size for this buffer. Larger Frames are dropped.

switch1.vl_100.enabled bool true

Switch to enable and disable the buffer

switch1.vl_100.priority int -1

Priority of the buffer (currently only used for rate-constrained traffic)

switch1.vl_100.ct_id int

Critical traffic ID of the buffer

switch1.vl_100.ct_marker int

Critical traffic marker of the buffer

switch1.vl_100.ct_mask int

Critical traffic mask of the buffer

switch1.vl_100.oscillator string "^.scheduler.oscillator"

Oscillator this buffer is assigned to

switch1.vl_100.timer string "^.scheduler.timer"

Timer this buffer is assigned to

switch1.vl_100.sendWindowStart int

Beginning of the send window in number of ticks (Changes to this parameter will get active for future scheduled frames only)

switch1.vl_100.sendWindowEnd int 0tick

End of the send window in number of ticks

switch1.vl_100.period string "period[0]"

Period of Scheduler this buffer is assigned to

switch1.vl_101_ctc.bag int 0tick

Bandwidth allocation gap in number of ticks (Changes to this parameter will get active for future frames only)

switch1.vl_101_ctc.jitter int 0tick

Maximum jitter for the bandwidth allocation gap in number of ticks

switch1.vl_101_ctc.oscillator string "^.scheduler.oscillator"
switch1.vl_101_ctc.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

switch1.vl_101.destination_gates string ""

Comma seperated list of gates where the frames of the buffer are delivered

switch1.vl_101.maxMessageSize int 1522B

The maximum allowed message size for this buffer. Larger Frames are dropped.

switch1.vl_101.enabled bool true

Switch to enable and disable the buffer

switch1.vl_101.priority int -1

Priority of the buffer (currently only used for rate-constrained traffic)

switch1.vl_101.ct_id int

Critical traffic ID of the buffer

switch1.vl_101.ct_marker int

Critical traffic marker of the buffer

switch1.vl_101.ct_mask int

Critical traffic mask of the buffer

switch1.vl_101.oscillator string "^.scheduler.oscillator"

Oscillator this buffer is assigned to

switch1.vl_101.timer string "^.scheduler.timer"

Timer this buffer is assigned to

switch1.vl_101.max_dispatch_delay int 0tick

Not used

switch1.vl_101.bag int 0tick

Bandwidth allocation gap in number of ticks (Changes to this parameter will get active for future frames only)

switch1.vl_101.jitter int 0tick

Maximum jitter for the bandwidth allocation gap in number of ticks

switch1.vl_101.size int -1

Size of the buffer negative means infinite

switch1.vl_101.dropNew bool false

Dropping policy, Should the newest frame instead of the oldest frame be dropped when the buffer is full (see size parameter)

Source code:

//
// Small sample network with two hosts and one switch that shows how to 
// build application models for the simulation. The example uses two different
// applications (TicApp and TocApp) that pass messages to each other
// - Uses 5ms Cycletime
// - 80ns Tick length
//
network rt_tictoc
{
    @display("bgb=,,white");
    submodules:
        //Device hosting the Tic application
        tic: Tic {
            @display("p=39,70");
        }
		//Device hosting the Toc application
        toc: Toc {
            @display("p=247,70");
        }
		//Switch that forwards Tic and Toc messages
        switch1: Switch1 {
            parameters:
                @display("p=147,70");
            gates:
                ethg[2];
        }
    connections:
        //
        // The example uses a simple star topology
        //
        tic.ethg <--> Eth100M {  length = 20m; } <--> switch1.ethg[0];
        toc.ethg <--> Eth100M {  length = 20m; } <--> switch1.ethg[1];
}