UalcmpApp.ned

NED File src/simu5g/mec/ualcmp/UalcmpApp.ned

Name Type Description
UalcmpApp simple module

Implements (part of) the Mx2 reference point defined by the ETSI GS MEC 016 V2.2.1 (2020-04) specification. A DeviceApp application module can use this API to request MEC app lifecycle operations (i.e., instantiation, termination, relocation). In particular, it provides the following methods:

Source code

//
//                  Simu5G
//
// Copyright (C) 2019-2021 Giovanni Nardini, Giovanni Stea, Antonio Virdis et al. (University of Pisa)
// Copyright (C) 2022-2026 Giovanni Nardini, Giovanni Stea et al. (University of Pisa)
//
// This file is part of a software released under the license included in file
// "license.pdf". Please read LICENSE and README files before using it.
// The above files and the present reference are part of the software itself,
// and cannot be removed from it.
//

package simu5g.mec.ualcmp;

import inet.applications.contract.IApp;

//
// Implements (part of) the Mx2 reference point defined by the ETSI GS MEC
// 016 V2.2.1 (2020-04) specification. A ~DeviceApp application module can use this API to
// request MEC app lifecycle operations (i.e., instantiation, termination, relocation).
// In particular, it provides the following methods:
//   - GET /app_list: to retrieve information about available applications
//   - POST /app_contexts: to request the creation of a new application context
//   - DELETE /app_contexts/{contextId}: to request the deletion of an existing application context
// The application communicates directly with the MEC orchestrator without going through the
// protocol stack of the ~Ualcmp module.
//
simple UalcmpApp like IApp
{
    parameters:
        @display("i=block/source");
        @class("UalcmpApp");

        string binderModule = default("binder");

        string serviceName = default("Ualcmp");
        int requestQueueSize = default(0);
        int subscriptionQueueSize = default(0);
        string localAddress = default(""); // Local address; may be left empty ("")
        int localPort = default(1000);     // localPort number to listen on

        // Hostname of the reference orchestrator
        string mecOrchestratorHostname;

        double requestServiceTime @unit(s) = default(5us);
        double subscriptionServiceTime @unit(s) = default(10us);

        string serverThreadClass = default("simu5g.mec.platform.services.base.SocketManager");

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

        @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);

    gates:
        output socketOut;
        input socketIn;

        output toMecOrchestrator;
        input fromMecOrchestrator;
}