IMecService

Package: simu5g.mec.platform.services.base

module interface IMecService

Defines the structure that must be implemented by every MEC Service (see, e.g., LocationService). Common MEC service functionalities are provided by the MecServiceBase class, which includes support for both request-response and subscribe-notification paradigms over the TCP protocol. Furthermore, the MecServiceBase class includes mechanisms to enqueue MEC applications’ requests to a MEC service in a FIFO queue, allowing the MEC service to serve them one at a time. This class also calculates the computation time of each request according to an exponential distribution.

Inheritance diagram

Implemented by

Name

Type

Description

LocationService

simple module

Implements the Location Service API as defined by the ETSI GS MEC 013 specification. It exposes a REST API that allows MEC applications to retrieve location-related information about User Equipment (UE) or a group of UEs. It supports both request-response and subscribe-notification patterns (in the latter case, the MEC application will be notified when a target UE enters a specific circular area.

RniService

simple module

Implements a subset of the Radio Network Information Service API defined by the ETSI GS MEC 012 specification. It exposes a REST API that allows MEC applications to retrieve layer-2 measurements related to a User Equipment (UE) or base station.

Parameters

Name

Type

Default value

Description

requestQueueSize

int

subscriptionQueueSize

int

serviceName

string

serviceVersion

string

serviceSerialize

string

transportId

string

transportName

string

transportType

string

transportProtocol

string

catId

string

catName

string

catUri

string

catVersion

string

scopeOfLocality

string

consumedLocalOnly

bool

loadGenerator

bool

betaa

double

numBgApps

int

localAddress

string

Local address; may be left empty (“”)

localPort

int

localPort number to listen on

requestServiceTime

double

subscriptionServiceTime

double

serverThreadClass

string

Properties

Name

Value

Description

display

i=block/app

Signals

Name

Type

Unit

Description

loadGeneratorNumBackgroundRequests

responseTime

Statistics

Name

Title

Source

Record

Unit

Interpolation Mode

Description

loadGeneratorNumBackgroundRequests

Load Generator Background Requests Count

mean,vector

responseTime

Response time of foreground requests

mean,vector

Source code

//
// Defines the structure that must be implemented by every
// MEC Service (see, e.g., ~LocationService). Common MEC service functionalities are provided
// by the MecServiceBase class, which includes support for both request-response and
// subscribe-notification paradigms over the TCP protocol.
// Furthermore, the MecServiceBase class includes mechanisms to enqueue MEC applications' requests
// to a MEC service in a FIFO queue, allowing the MEC service to serve them one at a time. This
// class also calculates the computation time of each request according to an exponential
// distribution.
//
moduleinterface IMecService
{
    parameters:
        @display("i=block/app");
        int requestQueueSize;
        int subscriptionQueueSize;

        string serviceName;
        string serviceVersion;
        string serviceSerialize;

        string transportId;
        string transportName;
        string transportType;
        string transportProtocol;

        string catId;
        string catName;
        string catUri;
        string catVersion;

        string scopeOfLocality;
        bool consumedLocalOnly;

        bool loadGenerator;
        double betaa;
        int numBgApps;


        string localAddress; // Local address; may be left empty ("")
        int localPort;     // localPort number to listen on

        double requestServiceTime;
        double subscriptionServiceTime @unit(s);
        string serverThreadClass;

        @signal[loadGeneratorNumBackgroundRequests];
        @statistic[loadGeneratorNumBackgroundRequests](title="Load Generator Background Requests Count"; record=mean,vector);
        @signal[responseTime];
        @statistic[responseTime](title="Response time of foreground requests"; record=mean,vector);
}

File: src/simu5g/mec/platform/services/base/IMecService.ned