IMecService

Package: simu5g.mec.platform.services.base

IMecService

module interface

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

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the 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