MecAppBase

Package: simu5g.apps.mec.MecApps

simple module MecAppBase

This is a MEC app that … TBC

simu5g.apps.mec.MecApps.MecAppBaseMecAppBasesimple

Inheritance diagram

Known subclasses

Name

Type

Description

MecRequestBackgroundApp

simple module

Generates requests to be sent to the LocationService. This application can be instantiated as an “independent MEC app” (see MecHost module), which means it does not need to be instantiated via the MEC orchestrator upon request from a User Equipment. In particular, this module produces bulks of GET requests, as generated by a configurable number of MEC applications running on the MEC host. The result of such requests is to delay the service of real requests (i.e., those originating from complete MEC applications)

MecRequestBackgroundGeneratorApp

simple module

Generates requests to be sent to the LocationService. This application can be instantiated as an “independent MEC app” (see MecHost module), meaning it does not need to be instantiated via the MEC orchestrator upon request from a User Equipment. Specifically, this module produces batches of GET requests, as generated by a configurable number of MEC applications running on the MEC host. The effect of such requests is to delay the service of actual requests (i.e., those originating from complete MEC applications)

MecRequestForegroundApp

simple module

Implements a MEC application that issues GET requests to the LocationService every 500ms. This application can be utilized as an “independent MEC app” (see MecHost module), hence it does not require instantiation via the MEC orchestrator upon request from a User Equipment. Essentially, this application provides a quick way to generate configurable load to the Location Service and simulate different (and potentially more realistic) response times from the latter.

MecResponseApp

simple module

Represents an application that is dynamically instantiated on a MEC host upon request from a UeRequestApp, via a DeviceApp. Upon receiving a request from the UE, it queries the LocationService to obtain some information (which is not utilized; it is intended only to “consume” some time), and sends a response message to the UE after a computation time that depends on the current resource utilization at the MEC host.

MecRTVideoStreamingReceiver

simple module

Application that is dynamically instantiated on a MEC host upon request from a RtVideoStreamingSender application via a DeviceApp. It receives video frames sent by the UE and simulates a playout buffer. Moreover, it records statistics related to the quality of the received video stream. Note that the statistics are collected by the RtVideoStreamingSender application at the UE side.

MecRnisTestApp

simple module

Application that is dynamically instantiated on a MEC host upon request from a UeRnisTestApp via a DeviceApp. It is used to test and showcase the functionalities of the RniService API. Upon receiving a request from the UE, it queries the RniService periodically to obtain L2 measurements related to the UE that sent the request (refer to the sendQuery() function). The results obtained from the RNIS are sent back to the UeRnisTestApp in a response message. Please note that the response time of the RNIS depends on the current load at the RNIS.

MecWarningAlertApp

simple module

Application that is dynamically instantiated on a MEC host upon request from a UeWarningAlertApp via a DeviceApp. It receives requests from the UE to be notified when it enters a circular area defined by its center and radius. This is accomplished by subscribing to the LocationService provided by the MEC Host. This module receives a notification from the Location Service when the UE enters/exits the area and, in turn, sends a message to the UE.

Parameters

Name

Type

Default value

Description

mecAppId

int

mecAppIndex

int

mp1Address

string

“”

mp1Port

int

10021

vimModule

string

“^.vim”

Module references

mecPlatformModule

string

“^.mecPlatform”

serviceRegistryModule

string

“^.mecPlatform.serviceRegistry”

requiredRam

double

Required resources

requiredDisk

double

requiredCpu

double

timeToLive

int

-1

If not -1, set the TTL (IPv4) or Hop Limit (IPv6) field of sent packets to this value

dscp

int

-1

If not -1, set the DSCP (IPv4/IPv6) field of sent packets to this value

tos

int

-1

If not -1, set the Type of Service (IPv4) / Traffic Class (IPv6) field of sent packets to this value

Properties

Name

Value

Description

display

i=block/app;is=s

Gates

Name

Direction

Size

Description

mePlatformIn

input

mePlatformOut

output

socketIn

input

socketOut

output

Source code

//
//  This is a MEC app that ... TBC
//
simple MecAppBase like IMecApp, IApp
{
    parameters:
        @display("i=block/app;is=s");

        int mecAppId;
        int mecAppIndex;

        string mp1Address = default("");
        int mp1Port = default(10021);

        // Module references
        string vimModule = default("^.vim");
        string mecPlatformModule = default("^.mecPlatform");
        string serviceRegistryModule = default("^.mecPlatform.serviceRegistry");

        // Required resources
        double requiredRam @unit("B");
        double requiredDisk @unit("B");
        double requiredCpu;

        // Socket parameters
        int timeToLive = default(-1); // If not -1, set the TTL (IPv4) or Hop Limit (IPv6) field of sent packets to this value
        int dscp = default(-1); // If not -1, set the DSCP (IPv4/IPv6) field of sent packets to this value
        int tos = default(-1); // If not -1, set the Type of Service (IPv4) / Traffic Class (IPv6) field of sent packets to this value

    gates:
        input mePlatformIn;
        output mePlatformOut;

        input socketIn @labels(TcpCommand/up);
        output socketOut @labels(TcpCommand/down);
}

File: src/simu5g/apps/mec/MecApps/MecAppBase.ned