IMECService

Package: simu5g.nodes.mec.MECPlatform.MECServices.MECServiceBase

IMECService

module interface

This 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

This 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

This 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
responseTime
requestQueueSize

Statistics

Name Title Source Record Unit Interpolation Mode Description
requestQueueSizeStat Request queue size requestQueueSize mean, vector
responseTimeStat Response time of foreground requests responseTime mean, vector

Source code

//
// This 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.
//
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[requestQueueSize];
        @statistic[requestQueueSizeStat](title="Request queue size"; source="requestQueueSize"; record=mean,vector);
        @signal[responseTime];
        @statistic[responseTimeStat](title="Response time of foreground requests"; source="responseTime"; record=mean,vector);
}


File: src/nodes/mec/MECPlatform/MECServices/MECServiceBase/IMECService.ned