Compound Module Switch1

Package: core4inet.examples.AS6802.small_network
File: examples/AS6802/small_network/switch1.ned

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

NodeStatus IMACRelayUnit IMACAddressTable InterfaceTable TTEPHYPort ISync ITTEScheduler CheckedBuffer TTIncoming TTDoubleBuffer RCIncoming RCQueueBuffer TTIncoming TTDoubleBuffer

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
TTEEtherSwitch compound module

Module for a TTEthernet Switch with variable number of ports. Contains a configurable best-effort implementation (beswitch like IMACRelayUnit), TTEPHYPort modules for physical ports, sync module (Sync) and a TTEScheduler module.

Networks:

Name Type Description
small_network network

Small sample network with three hosts and one switch that shows how to configure the TTEthernet Model. Configuration in omnetpp.ini

Parameters:

Name Type Default value Description
numBuffer int 0

Optional: Number of Buffers with Incoming Module for TT and RC traffic (When not manually declared in own deriving .ned file)

hardware_delay double 8us

Forwardingdelay of the device hardware

Properties:

Name Value Description
display bgb=351,311
networkNode
labels node

Gates:

Name Direction Size Description
ethg [ ] inout

Physical ports of the switch

Unassigned submodule parameters:

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

TODO @signal, @statistic

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

whether to display IP addresses on links

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

Comma seperated list of TTBuffers that send messages to this port

phy.shaper.safety_margin int 5

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

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

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

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

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

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

Critical traffic mask of the buffer

phy.inControl.ct_incomings string ""

Comma seperated list of ctc modules the input uses

phy.mac.interfaceTableModule string

The path to the InterfaceTable module

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.

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)

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

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

colors the connection when transmitting

checkedBuffer.buffer.destination_gates string

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

vl_100_ctc.receive_window_start int

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

vl_100_ctc.receive_window_end int

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

vl_100_ctc.permanence_pit int

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

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

Period of Scheduler this ctc is assigned to

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

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

vl_100.destination_gates string ""

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

vl_100.maxMessageSize int 1522B

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

vl_100.enabled bool true

Switch to enable and disable the buffer

vl_100.priority int -1

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

vl_100.ct_id int

Critical traffic ID of the buffer

vl_100.ct_marker int

Critical traffic marker of the buffer

vl_100.ct_mask int

Critical traffic mask of the buffer

vl_100.oscillator string "^.scheduler.oscillator"

Oscillator this buffer is assigned to

vl_100.timer string "^.scheduler.timer"

Timer this buffer is assigned to

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)

vl_100.sendWindowEnd int 0tick

End of the send window in number of ticks

vl_100.period string "period[0]"

Period of Scheduler this buffer is assigned to

vl_101_ctc.bag int 0tick

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

vl_101_ctc.jitter int 0tick

Maximum jitter for the bandwidth allocation gap in number of ticks

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

vl_101.destination_gates string ""

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

vl_101.maxMessageSize int 1522B

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

vl_101.enabled bool true

Switch to enable and disable the buffer

vl_101.priority int -1

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

vl_101.ct_id int

Critical traffic ID of the buffer

vl_101.ct_marker int

Critical traffic marker of the buffer

vl_101.ct_mask int

Critical traffic mask of the buffer

vl_101.oscillator string "^.scheduler.oscillator"

Oscillator this buffer is assigned to

vl_101.timer string "^.scheduler.timer"

Timer this buffer is assigned to

vl_101.max_dispatch_delay int 0tick

Not used

vl_101.bag int 0tick

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

vl_101.jitter int 0tick

Maximum jitter for the bandwidth allocation gap in number of ticks

vl_101.size int -1

Size of the buffer negative means infinite

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)

vl_102_ctc.receive_window_start int

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

vl_102_ctc.receive_window_end int

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

vl_102_ctc.permanence_pit int

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

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

Period of Scheduler this ctc is assigned to

vl_102_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

vl_102_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

vl_102.destination_gates string ""

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

vl_102.maxMessageSize int 1522B

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

vl_102.enabled bool true

Switch to enable and disable the buffer

vl_102.priority int -1

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

vl_102.ct_id int

Critical traffic ID of the buffer

vl_102.ct_marker int

Critical traffic marker of the buffer

vl_102.ct_mask int

Critical traffic mask of the buffer

vl_102.oscillator string "^.scheduler.oscillator"

Oscillator this buffer is assigned to

vl_102.timer string "^.scheduler.timer"

Timer this buffer is assigned to

vl_102.sendWindowStart int

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

vl_102.sendWindowEnd int 0tick

End of the send window in number of ticks

vl_102.period string "period[0]"

Period of Scheduler this buffer is assigned to

Source code:

//
// switch1: configuration in switch1.ini
// Forwards time-triggered messages with VL-ID 100 and rate-constrained messages with VL-ID 101
//
module Switch1 extends TTEEtherSwitch
{
    @display("bgb=351,311");
    submodules:
        vl_100_ctc: TTIncoming {
            parameters:
                @display("p=170,130");
        }
        vl_100: TTDoubleBuffer {
            parameters:
                @display("p=240,130");
        }
        vl_101_ctc: RCIncoming {
            parameters:
                @display("p=170,200");
                hardware_delay = hardware_delay;
        }
        vl_101: RCQueueBuffer {
            parameters:
                @display("p=240,200");
        }
        vl_102_ctc: TTIncoming {
            parameters:
                @display("p=170,270");
        }
        vl_102: TTDoubleBuffer {
            parameters:
                @display("p=240,270");
        }
    connections:
        vl_100_ctc.out --> vl_100.in;
        vl_101_ctc.out --> vl_101.in;
        vl_102_ctc.out --> vl_102.in;
}