UnstructuredIo

Package: simu5g.apps.unstructured

simple module UnstructuredIo

Attaches an application to the cellular NIC of a UE whose session is of type Unstructured (the UE’s sessionType parameter, see LteUe): the payload goes down to the NIC and comes up from it as is, with no transport or network layer in between. Packets arriving on trafficIn are sent to the NIC tagged with the “unstructured” protocol; what the NIC delivers up as that protocol leaves on trafficOut. The module registers as the node’s receiver of the protocol, so a UE has at most one of it. It is connected to the UE’s network-layer dispatcher (see the unstructuredApp submodules of LteUe).

simu5g.apps.unstructured.UnstructuredIoUnstructuredIosimple

Usage diagram

Used in compound modules

Name

Type

Description

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.

Parameters

Name

Type

Default value

Description

interfaceTableModule

string

Relative module path of the interface table

interface

string

“cellular”

The name of the cellular NIC’s interface

Properties

Name

Value

Description

display

i=block/socket

Gates

Name

Direction

Size

Description

trafficIn

input

trafficOut

output

socketIn

input

socketOut

output

Signals

Name

Type

Unit

Description

packetReceived

inet::Packet ↗

packetSent

inet::Packet ↗

Statistics

Name

Title

Source

Record

Unit

Interpolation Mode

Description

packetReceived

packets received

packetReceived

count,”sum(packetBytes)”,”vector(packetBytes)”

none

packetSent

packets sent

packetSent

count,”sum(packetBytes)”,”vector(packetBytes)”

none

Source code

//
// Attaches an application to the cellular NIC of a UE whose session is of type
// Unstructured (the UE's sessionType parameter, see ~LteUe): the payload goes down
// to the NIC and comes up from it as is, with no transport or network layer in
// between. Packets arriving on trafficIn are sent to the NIC tagged with the
// "unstructured" protocol; what the NIC delivers up as that protocol leaves on
// trafficOut. The module registers as the node's receiver of the protocol, so a UE
// has at most one of it. It is connected to the UE's network-layer dispatcher (see
// the unstructuredApp submodules of ~LteUe).
//
simple UnstructuredIo
{
    parameters:
        string interfaceTableModule;  // Relative module path of the interface table
        string interface = default("cellular");  // The name of the cellular NIC's interface
        @display("i=block/socket");
        @signal[packetSent](type=inet::Packet);
        @signal[packetReceived](type=inet::Packet);
        @statistic[packetSent](title="packets sent"; source=packetSent; record=count,"sum(packetBytes)","vector(packetBytes)"; interpolationmode=none);
        @statistic[packetReceived](title="packets received"; source=packetReceived; record=count,"sum(packetBytes)","vector(packetBytes)"; interpolationmode=none);
    gates:
        input trafficIn;
        output trafficOut;
        input socketIn;
        output socketOut;
}

File: src/simu5g/apps/unstructured/UnstructuredIo.ned