Simple Module MultiCTTrafficSinkApp

Package: core4inet.applications.trafficsink.AS6802
File: src/core4inet/applications/trafficsink/AS6802/MultiCTTrafficSinkApp.ned

C++ definition

Traffic sink application used for statistics collection of multiple different virtual links with critical traffic.

See also: ~ApplicationBase

Author: Till Steinbach

MultiCTTrafficSinkApp

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

Abstract base application used for Ethernet-Application application models.

Parameters:

Name Type Default value Description
displayName string ""

Name shown above the module

buffers string ""

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

buffers_manual bool false

If true, buffer management is not used. Applications use their own methods to locate buffers

Properties:

Name Value Description
class MultiTrafficSinkApp
display i=block/sink

Gates:

Name Direction Size Description
schedulerIn input

Input gate for the incoming Scheduler messages

Signals:

Name Type Unit
rxPk:* inet::EtherFrame

Statistics:

Name Title Source Record Unit Interpolation Mode
rxLatencyInner End-to-end latency inner messageAge(innerMessage(rxPk)) stats, histogram?, vector s none

Source code:

//
// Traffic sink application used for statistics collection of multiple different virtual links with critical traffic.
//
// @see ~ApplicationBase
//
// @author Till Steinbach
//
simple MultiCTTrafficSinkApp extends ApplicationBase
{
    parameters:
        @class(MultiTrafficSinkApp);
        @display("i=block/sink");

        //Signal emitted when a frame is received, contains received EtherFrame
        @signal[rxPk:*](type=inet::EtherFrame);
        //Statistic of the amount of packets that were received by the application
        @statisticTemplate[rxPk](title="Received Packets"; record=count; unit=packets);
        //Statistic of the amount of bytes that were received by the application
        @statisticTemplate[rxBytes](title="Received Bytes"; source=rxPk; unit=B; record="sum(packetBytes)","vector(packetBytes)","histogram(packetBytes)?","floatingIntervalSumVector(packetBytes)?"; interpolationmode=none); //possible parameter e.g.: **.floatingintervalvectorrecorder-measure-interval = 20ms=50ms; for floatingIntervalRecorders
        //End-to-end latency
        @statisticTemplate[rxLatency](title="End-to-end latency"; source="messageAge(rxPk)"; unit=s; record=stats,histogram?,vector; interpolationmode=none);
        //Uses encapsulated packet | Frame when nothing is encapsulated
        @statistic[rxLatencyInner](title="End-to-end latency inner"; source="messageAge(innerMessage(rxPk))"; unit=s; record=stats,histogram?,vector; interpolationmode=none);
}