UnstructuredApp

Package: simu5g.apps.unstructured

UnstructuredApp

compound module

An application of a UE whose session is of type Unstructured (the UE's sessionType parameter, see LteUe): it sends and receives opaque payload through the UE's cellular NIC, which carries it over the session to the data network (see UserPlaneNodeControl for the N6 end of the session). The traffic source and sink are built from queueing model elements, as INET's EthernetApp's; UnstructuredIo attaches them to the NIC. UnstructuredSourceApp and UnstructuredSinkApp only send and only receive. A UE has at most one such application, in its unstructuredApp submodule vector.

source : like IActivePacketSource

ActivePacketSource [from inet] ↗: An active packet source which pushes packets into the connected module.

IActivePacketSource [from inet] ↗: Interface for active packet source modules.

Source:
source: <default("ActivePacketSource")> like IActivePacketSource if typename != "" {
    parameters:
        @display("p=200,150");
} measurementStarter : like IPacketFlow

IPacketFlow [from inet] ↗: Interface for packet flows.

Source:
measurementStarter: <default("")> like IPacketFlow {
    parameters:
        @display("p=200,300");
} sink : like IPassivePacketSink

PassivePacketSink [from inet] ↗: A passive packet sink which is pushed with packets by the connected packet producer.

IPassivePacketSink [from inet] ↗: Interface for passive packet sink modules.

Source:
sink: <default("PassivePacketSink")> like IPassivePacketSink if typename != "" {
    parameters:
        @display("p=500,150");
} measurementRecorder : like IPacketFlow

IPacketFlow [from inet] ↗: Interface for packet flows.

Source:
measurementRecorder: <default("")> like IPacketFlow {
    parameters:
        @display("p=500,300");
} io : UnstructuredIo

Attaches an application to the cellular NIC of a UE whose session is of type Unstructured (the UE's...

Source:
io: UnstructuredIo {
    parameters:
        @display("p=350,450");
}

Usage diagram

The following diagram shows usage relationships between types. Unresolved types are missing from the diagram.

Inheritance diagram

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.

Known subclasses

Name Type Description
UnstructuredSinkApp compound module

An UnstructuredApp that only receives

UnstructuredSourceApp compound module

An UnstructuredApp that only sends

Parameters

Name Type Default value Description
interfaceTableModule string

Relative module path of the interface table

Properties

Name Value Description
application
display i=block/app

Gates

Name Direction Size Description
socketIn input
socketOut output

Unassigned submodule parameters

Name Type Default value Description
io.interfaceTableModule string

Relative module path of the interface table

io.interface string "cellular"

The name of the cellular NIC's interface

Source code

//
// An application of a UE whose session is of type Unstructured (the UE's
// sessionType parameter, see ~LteUe): it sends and receives opaque payload through
// the UE's cellular NIC, which carries it over the session to the data network (see
// ~UserPlaneNodeControl for the N6 end of the session). The traffic source and sink
// are built from queueing model elements, as INET's EthernetApp's; ~UnstructuredIo
// attaches them to the NIC. ~UnstructuredSourceApp and ~UnstructuredSinkApp only send
// and only receive. A UE has at most one such application, in its unstructuredApp
// submodule vector.
//
module UnstructuredApp like IApp
{
    parameters:
        string interfaceTableModule;  // Relative module path of the interface table
        *.interfaceTableModule = default(absPath(this.interfaceTableModule));
        @application;
        @display("i=block/app");
    gates:
        input socketIn;
        output socketOut;
    submodules:
        source: <default("ActivePacketSource")> like IActivePacketSource if typename != "" {
            parameters:
                @display("p=200,150");
        }
        measurementStarter: <default("")> like IPacketFlow {
            parameters:
                @display("p=200,300");
        }
        sink: <default("PassivePacketSink")> like IPassivePacketSink if typename != "" {
            parameters:
                @display("p=500,150");
        }
        measurementRecorder: <default("")> like IPacketFlow {
            parameters:
                @display("p=500,300");
        }
        io: UnstructuredIo {
            parameters:
                @display("p=350,450");
        }
    connections allowunconnected:
        source.out --> measurementStarter.in if exists(source);
        measurementStarter.out --> io.trafficIn;
        io.socketOut --> socketOut;

        socketIn --> io.socketIn;
        io.trafficOut --> measurementRecorder.in;
        measurementRecorder.out --> sink.in if exists(sink);
}
File: src/simu5g/apps/unstructured/UnstructuredApp.ned