Simple Module TT_AVBClassA_AVBClassB_PCF_RC_8021Q_Shaper

Package: core4inet.linklayer.shaper
File: src/core4inet/linklayer/shaper/TT_AVBClassA_AVBClassB_PCF_RC_8021Q_Shaper.ned

A Shaper that handles TT, AVB, PCF, RC and IEEE 802.1Q traffic This shaper handles traffic in the following order (highest to lowest priority):

TT_AVBClassA_AVBClassB_PCF_RC_8021Q_Shaper

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
TT_AVBClassA_AVBClassB_PCF_RC_BE_Shaper simple module

A Shaper that handles TT, AVB, PCF, RC and BE traffic This shaper handles traffic in the following order (highest to lowest priority):

Used in compound modules:

Name Type Description
TTEAVB8021QEtherNic compound module

Module for a TTE AVB BE Ethernet NIC Contains handler for TT, AVB, RC and BE Messages using IEEE 802.1Q.

TTEAVBPHYPort compound module

The TTEAVBPHYPort is a compund module that contains the input Shaper, output Shaper and MAC (EtherMACFullDuplex) It represents a physical port for a real-time Ethernet device (Switch or Host)

Parameters:

Name Type Default value Description
numRCpriority int 10
tt_buffers string ""

Comma seperated list of TTBuffers that send messages to this port

safety_margin int 5

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

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

AVBHigherPriorityBandwidth int 0bps

Bandwidth of the TT bandwith on this port

Properties:

Name Value Description
class TT_AVBClassA_AVBClassB_PCF_RC_BE_Shaper
display i=block/classifier

Gates:

Name Direction Size Description
in input

Input for best-effort frames from the upper layer (EtherLLC or IMacRelayUnit)

out output

Output to the lower layer (MAC layer)

RCin input

Input for rate-constrained frames from the buffers

PCFin input

Input for protocol control frames from the buffers

TTin input

Input for time-triggered frames from the buffers

AVBAin input

Input for AVB class A frames from the buffers

AVBBin input

Input for AVB class B frames from the buffers

Signals:

Name Type Unit
q*QueueLength unsigned long

Statistics:

Name Title Source Record Unit Interpolation Mode
avbBQueueLength AVBB-Queue Length vector packets sample-hold

Source code:

//A Shaper that handles TT, AVB, PCF, RC and IEEE 802.1Q traffic
// This shaper handles traffic in the following order (highest to lowest priority):
// - time-triggered
// - AVB Class A
// - AVB Class B
// - PCF
// - rate-constrained
// - IEEE 802.1Q
simple TT_AVBClassA_AVBClassB_PCF_RC_8021Q_Shaper extends TT_AVBClassA_AVBClassB_PCF_RC_BE_Shaper
{
    parameters:
        @display("i=block/classifier");
        //Signal emitted when queue length of the rc queue changes, contains new queue length
        @signal[q*QueueLength](type=unsigned long);
        //Statistic of the queue length of rate-constrained frames
        @statisticTemplate[qQueueLength](title="Q-Queue Length ($name)"; record=vector; interpolationmode=sample-hold);

    gates:
}