Packages

Packages

ned

Name Type Description
DatarateChannel channel (no description)
DelayChannel channel (no description)
IBidirectionalChannel module interface (no description)
IdealChannel channel (no description)
IUnidirectionalChannel module interface (no description)

simu5g.apps.alert

Name Type Description
AlertReceiver simple module

This module receives alert messages sent by nodes running an AlertSender application. It listens for incoming packets and logs their arrival. It records end-to-end delay statistics. The module also supports multicast by joining local multicast groups.

AlertSender simple module

This module generates periodic alert messages and sends them to a specified multicast group or unicast destination. The packet size, transmission period, start time, and stop time are configurable using the corresponding parameters. The destination address must be a multicast IP address. This module can be used in simulations that require periodic alert generation via device-to-device (D2D) communications, such as vehicular networks.

simu5g.apps.burst

Name Type Description
BurstReceiver simple module

This module models an application that receives bursts of packets from a BurstSender application module. It binds to a specified UDP local port, logs the received packets, and records statistics such as packet delay.

BurstSender simple module

This module models an application that sends bursts of packets to a BurstReceiver application. During each burst, the application sends a configurable number of packets at regular intervals. The time interval between bursts can also be configured.

simu5g.apps.cbr

Name Type Description
CbrReceiver simple module

This module receives Constant Bit Rate (CBR) traffic sent by a CbrSender application module. It binds to a specified local port and records statistics such as packet delay, jitter, packet loss, throughput, and the total amount of bytes received.

CbrSender simple module

Simple module for generating Constant Bit Rate (CBR) traffic. This module periodically sends packets of a specified size to a designated address and port. The intervals between packets and the overall duration of the communication are configurable. The module emits statistics related to the generated throughput and the total amount of bytes sent.

simu5g.apps.d2dMultihop

Name Type Description
MultihopD2D simple module

This module implements an application for disseminating event notifications, using multihop D2D transmissions. New messages are generated upon the reception of external events, signaled by the EventGenerator module. The application sends the message to an IP multicast address, which is then mapped to D2D multicast transmission mode within the LTE/NR protocol stack. When the application receives a message, it can relay it to the same IP multicast address in order to extend the coverage of the D2D transmission. To avoid flooding, two mechanisms can be used:

simu5g.apps.d2dMultihop.eventGenerator

Name Type Description
EventGenerator simple module

This module is only used in conjunction with UEs running a MultihopD2D application instance. It generates periodic "events" (e.g., a collision between vehicles) at random positions within the network (or by randomly selecting a node) and notifies a MultihopD2D application via a direct method call. The MultihopD2D application, in turn, broadcasts the notification message to surrounding UEs.

simu5g.apps.d2dMultihop.statistics

Name Type Description
MultihopD2DStatistics simple module

This module is only used in conjunction with UEs running instances of the MultihopD2D application. It collects statistics related to notification messages broadcast by the MultihopD2D applications by gathering data through method calls from these applications.

simu5g.apps.mec.DeviceApp

Name Type Description
DeviceApp simple module

This module models the Device App entity as defined by the ETSI Multi-access Edge Computing (MEC) specifications. The Device App can be instantiated on a User Equipment (UE) that wants to dynamically instantiate a MEC application within a MEC system. It establishes a TCP connection with the User App Lifecycle Management Proxy (UALCMP) entity (see the UALCMP module) and, upon receiving a MEC application instantiation request from another UE application, it sends a message to the UALCMP including the URI of the MEC application to be instantiated. Once the confirmation of successful instantiation is received, the Device App sends an acknowledgment to the UE application that requested it. Moreover, this module is responsible for requesting the deletion of the MEC application from the MEC system upon explicit request from the UE application.

simu5g.apps.mec.MecApps

Name Type Description
MecAppBase simple module

This is a MEC app that ... TBC

MultiUEMECApp simple module

This is an empty MEC app which is used as a model for MEC apps that should be shared among multiple UEs. Any shared MEC app that should extend this app

simu5g.apps.mec.MecApps.MecRequestBackgroundApp

Name Type Description
MecRequestBackgroundApp simple module

This module implements a generator of requests to be sent to the LocationService. This application can be instantiated as an "independent MEC app" (see MecHost module), which means it does not need to be instantiated via the MEC orchestrator upon request from a User Equipment. In particular, this module produces bulks of GET requests, as generated by a configurable number of MEC applications running on the MEC host. The result of such requests is to delay the service of real requests (i.e., those originating from complete MEC applications)

simu5g.apps.mec.MecApps.MecRequestBackgroundGeneratorApp

Name Type Description
MecRequestBackgroundGeneratorApp simple module

This module implements a generator of requests to be sent to the LocationService. This application can be instantiated as an "independent MEC app" (see MecHost module), meaning it does not need to be instantiated via the MEC orchestrator upon request from a User Equipment. Specifically, this module produces batches of GET requests, as generated by a configurable number of MEC applications running on the MEC host. The effect of such requests is to delay the service of actual requests (i.e., those originating from complete MEC applications)

simu5g.apps.mec.MecApps.MecRequestForegroundApp

Name Type Description
MecRequestForegroundApp simple module

This module implements a MEC application that issues GET requests to the LocationService every 500ms. This application can be utilized as an "independent MEC app" (see MecHost module), hence it does not require instantiation via the MEC orchestrator upon request from a User Equipment. Essentially, this application provides a quick way to generate configurable load to the Location Service and simulate different (and potentially more realistic) response times from the latter.

simu5g.apps.mec.MecRequestResponseApp

Name Type Description
MECResponseApp simple module

This module represents an application that is dynamically instantiated on a MEC host upon request from a UERequestApp, via a DeviceApp. Upon receiving a request from the UE, it queries the LocationService to obtain some information (which is not utilized; it is intended only to "consume" some time), and sends a response message to the UE after a computation time that depends on the current resource utilization at the MEC host.

UERequestApp simple module

This application is to be instantiated on the UE side. It requires that a DeviceApp is also instantiated at the UE. This module requests the DeviceApp to instantiate a MECResponseApp in the MEC system. Once the peer MEC application is up and running, this module sends periodic messages to the MEC application and waits for a response. It collects metrics such as round-trip time.

simu5g.apps.mec.RealTimeVideoStreamingApp

Name Type Description
MecRTVideoStreamingReceiver simple module

This module is an application that is dynamically instantiated on a MEC host upon request from a RTVideoStreamingSender application via a DeviceApp. It receives video frames sent by the UE and simulates a playout buffer. Moreover, it records statistics related to the quality of the received video stream. Note that the statistics are collected by the RTVideoStreamingSender application at the UE side.

RTVideoStreamingSender simple module

This application is to be instantiated on the UE side. It requires that a DeviceApp is also instantiated on the UE. This module requests the DeviceApp to instantiate a MecRTVideoStreamingReceiver in the MEC system. Once the peer MEC application is up and running, this module starts sending packets containing video frames as read from the trace file specified in the configuration.

simu5g.apps.mec.RnisTestApp

Name Type Description
MecRnisTestApp simple module

This module is an application that is dynamically instantiated on a MEC host upon request from a UeRnisTestApp via a DeviceApp. It is used to test and showcase the functionalities of the RNIService API. Upon receiving a request from the UE, it queries the RNIService periodically to obtain L2 measurements related to the UE that sent the request (refer to the sendQuery() function). The results obtained from the RNIS are sent back to the UeRnisTestApp in a response message. Please note that the response time of the RNIS depends on the current load at the RNIS.

UeRnisTestApp simple module

This application is to be instantiated on the UE side. It requires that a DeviceApp is also instantiated on the UE. This module requests the DeviceApp to instantiate a MecRnisTestApp in the MEC system. The application is used to test and showcase the functionalities of the RNIService API. Once the peer MEC application is up and running, this module sends a message to the MEC application, requesting it to start querying the RNIS API periodically. When the response from the MecRnisTestApp is received, the result of the query to the RNIS API is printed to the QtEnv log

simu5g.apps.mec.WarningAlert

Name Type Description
MECWarningAlertApp simple module

This module is an application that is dynamically instantiated on a MEC host upon request from a UEWarningAlertApp via a DeviceApp. It receives requests from the UE to be notified when it enters a circular area defined by its center and radius. This is accomplished by subscribing to the LocationService provided by the MEC Host. This module receives a notification from the Location Service when the UE enters/exits the area and, in turn, sends a message to the UE.

UEWarningAlertApp simple module

This application is to be instantiated on the UE side. It requires that a DeviceApp is also instantiated on the UE. This module requests the DeviceApp to instantiate a MECWarningAlertApp in the MEC system. Once the peer MEC application is up and running, this module sends a message to the MEC application, requesting that it be notified when the UE running this module enters a circular area defined by its (configurable) center and radius.

simu5g.apps.mecRequestResponseApp

Name Type Description
MecRequestApp simple module

This module provides an application model to be run at a User Equipment (UE), which generates periodic requests to be sent to a MecResponseApp module hosted on an (edge) host, located next to a base station. For each request, it expects to receive a response from the MecResponseApp. This module records statistics about the Round-trip Time (RTT). Optionally, the effect of migration can be simulated when the User Equipment (UE) performs a handover to a different base station. In this case, the application can be configured to forward new requests to a different (edge) host, namely, the one located next to the new base station.

MecResponseApp simple module

This module provides a simplified model of an edge application, intended to run on an edge host associated with a base station. It receives requests from a User Equipment (UE) application, such as a MecRequestApp, and sends a response after a processing time. The processing time is calculated based on the size of the request packet and a value representing the computational capabilities of the node hosting this application module. If the UE that sends the request is not served by the base station associated with this application, then an additional delay is applied to the response, which represents the time required to traverse the cellular core network.

simu5g.apps.vod

Name Type Description
VoDUDPClient simple module

This module simulates a video-on-demand (VoD) client application that receives video frames over UDP. It is assumed that the transmitted video is encoded using multiple layers according to the Scalable Video Coding (SVC) technique. Hence, the module collects separate statistics (such as throughput and delay) for each layer.

VoDUDPServer simple module

This module models the transmission of a video-on-demand (VoD) stream over UDP. The input is taken from a specified trace file, representing a video encoded according to the Scalable Video Coding (SVC) standard. Each line of the trace file defines the size and transmission time of a video frame.

simu5g.apps.voip

Name Type Description
VoIPReceiver simple module

This module represents a model for the receiver of Voice-over-IP (VoIP) traffic. It receives packets sent by a VoIPSender application via UDP and records statistics such as packet loss, end-to-end latency, jitter, and throughput. Furthermore, it computes and emits a MOS (Mean Opinion Score) value, which represents the Quality-of-Experience of the end users.

VoIPSender simple module

This module represents a model for the sender of Voice-over-IP (VoIP) traffic. It generates packets by alternating "talk spurts" and "silence" periods, with their respective durations modeled by a Weibull distribution. During talk spurts, fixed-size packets are generated periodically and sent over UDP to a specified destination address and port.

simu5g.common.binder

Name Type Description
Binder simple module

Binder module

simu5g.common.carrierAggregation

Name Type Description
CarrierAggregation compound module

This module implements the Carrier Aggregation (CA) functionality used at the Medium Access Control (MAC) layer of e/gNodeBs and UEs. CA allows multiple frequency bands - referred to as Component Carriers (CCs) - to be aggregated in order to increase the overall available bandwidth of the system. Each CC is implemented as a submodule and can be configured independently from each other. e/gNodeB and UE can be configured to use one or more CCs among those configured in this module. There must be one (and only one) instance of this module in the network.

ComponentCarrier simple module

This module serves as a descriptor for one Component Carrier (CC) of a Carrier Aggregation (CA)-enabled 4G/5G network. The module is assigned a carrier frequency (which also acts as a unique identifier for the CC in the system), a bandwidth, and a numerology index (in the range of 0 to 4). It can be configured with either Frequency Division Duplex (FDD) or Time Division Duplex (TDD) mode. In the latter case, the number of uplink and downlink symbols per slot can be specified (the sum of uplink and downlink symbols must be less than or equal to 14, which is the total number of symbols in one slot).

simu5g.common.cellInfo

Name Type Description
CellInfo simple module

This module includes data structures and functions used to support local operations at the e/gNodeB, such as the cell ID, the set of Component Carriers (CCs) supported by the e/gNodeB, and more.

simu5g.corenetwork.gtp

Name Type Description
GtpUser simple module

This module implements a simplified version of the user plane of the GPRS Tunneling Protocol (GTP). On one hand, this module encapsulates incoming IP datagrams into GTP packets and sends them to the tunnel destination endpoint (GTP operates on top of UDP). The destination endpoint is identified by utilizing information from the TrafficFlowFilter module. On the other hand, when this module receives GTP packets from a tunnel source endpoint, it decapsulates the included IP datagram and sends it to the intended destination according to normal IP forwarding. This module is used by all entities that need to communicate within the cellular core network, such as eNodeB, gNodeB, PgwStandard, Upf, and MECHost modules.

GtpUserX2 simple module

This module implements a simplified version of the user plane of the GPRS Tunneling Protocol (GTP) used for handover procedures. In particular, it is employed to transfer data packets from the source e/gNodeB to the target e/gNodeB during a handover (i.e., packets destined for a UE that is undergoing a handover). On one hand, this module encapsulates incoming IP datagrams from the local LteX2Manager into GTP packets and sends them over the X2 interface. On the other hand, it receives GTP packets from other e/gNodeBs and decapsulates the included IP datagrams, which are then forwarded to the local LteX2Manager.

simu5g.corenetwork.statsCollector

Name Type Description
BaseStationStatsCollector compound module

This module collects the radio network information of an eNodeB, which can be accessed by the RNIService module of a MECHost. For example, this module provides information such as the utilization of Resource Blocks.

GNodeBStatsCollector compound module

This module collects the radio network information from a 5G gNodeB, which can be accessed by the RNIService module of a MECHost. Currently, it exposes the same information as the BaseStationStatsCollector module.

IStatsCollector module interface

A module implementing this interface is a utility module that is accessed by the RNIService of a MECHost module to retrieve radio network information related to the parent e/gNodeB module. The RNIS accesses this module via direct method calls. For example, see BaseStationStatsCollector or UeStatsCollector.

NRueStatsCollector compound module

This module collects the radio network information of a NR UE, which can be accessed by the RNIService module of a MECHost. Currently, it exposes the same functionalities as the UeStatsCollector.

UeStatsCollector compound module

This module collects the radio network information of a LTE User Equipment (UE), which can be accessed by the RNIService module of a MECHost. For example, this module provides information such as packet delay and discard rate.

simu5g.corenetwork.trafficFlowFilter

Name Type Description
TrafficFlowFilter simple module

This module maps IP 4-Tuples to Traffic Flow Template (TFT) identifiers, which are used by the GtpUser module contained in the same node. It interacts with the Binder(1,2) to determine the destination of the packet. This module resides in any module that also includes a GtpUser module, such as eNodeB, gNodeB, PgwStandard, Upf, and MECHost modules. For instance, in a Upf module acting as the entry point of the 5G network, it identifies the destination endpoint of the GTP tunnel that the packet should traverse, which is the gNodeB serving the destination User Equipment (UE).

simu5g.emulation.extclientserver

Name Type Description
ExtClientServerExample network

ExtClientServerExample

simu5g.emulation.extclientserver_bgTraffic

Name Type Description
ExtClientServer_bgCells network

ExtClientServer_bgCells

simu5g.emulation.extserver

Name Type Description
ExtServerExample network

ExtServerExample

simu5g.emulation.mec.extMecApp

Name Type Description
ExtMecAppExample network (no description)

simu5g.emulation.mec.extUeApp

Name Type Description
ExtUeAppExample network (no description)

simu5g.emulation.mec.extUeAppMecApp

Name Type Description
ExtUeAppMecAppExample network (no description)

simu5g.mobility.trafficLightMobility

Name Type Description
TrafficLight compound module

This module simulates a traffic light in an urban environment. It incorporates a stationary mobility submodule to represent the fixed position of the traffic light, and a TrafficLightController submodule to model the traffic light's states (green, yellow, red) and its interactions with vehicles.

TrafficLightController simple module

This module defines the behavior of traffic light controllers in the simulation. It manages the states of the traffic lights (green, yellow, red) and handles the interactions with vehicles, thus influencing the behavior of a node implementing the TrafficLightMobility mobility model when such a node reaches the position of the traffic light. This module allows for the configuration of the duration of green-yellow-red cycles.

TrafficLightMobility simple module

This module extends INET's Linear Mobility model to simulate the movement of a vehicle navigating roads with intersections regulated by traffic lights. The node implementing this mobility model moves at a constant speed and, if it encounters a TrafficLight module with a "red" color, it stops until the traffic light turns "green". Upon resuming its movement, the node may change its direction if the "enableTurns" parameter is enabled. This module requires the presence of TrafficLight modules in the same network scenario.

simu5g.nodes

Name Type Description
eNodeB compound module

This module models an evolved Node B (eNB) of a 4G LTE network. It is a specialized device equipped with a Network Interface Card (NIC) that enables communication with the Ue devices connected to it. It serves as an access point that routes packets between the UEs and the 4G Core Network. Packets arriving from the UEs are tunneled to the appropriate next hop in the core network (e.g., the PDN Gateway, PGW) using the GPRS Tunneling Protocol (GTP). Conversely, packets received from the core network are detunneled and sent to the appropriate destination UE. In addition to the 4G NIC, this compound module includes a configurable number of wired interfaces to connect with routers of the core network or directly to the PgwStandard module, which serves as the IP module to perform forwarding, and the GtpUser module that handles GTP (de)tunneling. The latter utilizes the TrafficFlowFilter module to classify incoming packets and determine the next hop. Furthermore, it features a configurable number of LteX2App modules to facilitate peer-to-peer communications with other eNodeBs within the same LTE network.

ExtCell simple module

The ExtCell module represents a fictitious cell that is used to model interference from neighboring cells, without actually instantiating them completely (i.e., without having actual UEs producing actual traffic). It can be configured with physical layer parameters (such as transmission power and direction) and the amount of resource occupation. This module can be replaced by BackgroundCell modules, which provide more flexibility.

PgwStandard compound module

This module implements a simplified model of the EPC PDN Gateway (P-GW) of a 4G LTE network. It serves as the entry point to the core network of an LTE network, thus bridging it to the rest of the Internet. Packets arriving from the Internet are tunneled to the appropriate next hop in the core network (e.g., the eNodeB that will transmit the packet to the destination User Equipment through the radio access network) using the GPRS Tunneling Protocol (GTP). Conversely, packets received from the core network are detunneled and sent to the Internet (e.g., towards a remote server). To accomplish this, it utilizes a GtpUser module that handles GTP (de)tunneling, along with the TrafficFlowFilter module, which classifies incoming packets.

Ue compound module

This module models a User Equipment (UE) in a 4G LTE network. It is a host equipped with an LTE Network Interface Card (NIC), allowing the UE to connect to an eNodeB module via the Radio Access Network (RAN) of the LTE network and communicate with any other host in the system. In addition to a NIC submodule, this compound module includes all the higher layers of the protocol stack, from IP to application modules. It supports a configurable number of UDP and TCP applications. It also features an Ethernet interface, which is utilized in real-time emulation mode to connect the UE to the real network (outside the simulator) via a virtual Ethernet interface.

Upf compound module

Implements a 5G Core User Plane Function (UPF) module.

simu5g.nodes.backgroundCell

Name Type Description
BackgroundCell compound module

This module implements a lightweight model for a 4G eNodeB or 5G gNodeB. It is used to generate configurable inter-cell interference in the simulated network. Compared to the eNodeB and gNodeB modules, this module occupies time-frequency resources in both the uplink and downlink bandwidth without simulating the actual transmission or reception of data packets to or from User Equipments (UEs). Therefore, it is significantly more efficient from a simulation speed perspective. To achieve this, it includes a BackgroundTrafficGenerator to customize the level of background traffic to be simulated, a BackgroundChannelModel to configure channel parameters, and a BackgroundScheduler that manages the allocation of time-frequency resources based on the traffic generator. Note that this module can generate interference on only one Component Carrier, as configured in the BackgroundScheduler module. To produce interference across multiple carriers, it is possible to use multiple instances of this module, each configured with the desired carrier frequency.

BackgroundCellChannelModel simple module

This module configures the channel parameters associated with a BackgroundCell. It is used to compute the channel quality for background UEs (refer to the BackgroundUe module), which in turn is essential for deriving the correct allocation of time-frequency resources via the Adaptive Modulation and Coding mechanism.

BackgroundCellTrafficManager simple module

This module manages the background traffic generated by BackgroundUe in a BackgroundCell.

BackgroundScheduler simple module

This module is responsible for computing the allocation of time-frequency resources for background UEs in a BackgroundCell, taking into account the traffic generated by these UEs and their channel quality.

simu5g.nodes.mec

Name Type Description
MECHost compound module

This module represents a model of a Multi-access Edge Computing (MEC) host belonging to a MEC system, as specified by the ETSI GS MEC 003 specifications. It runs MEC applications within its VirtualisationInfrastructure and can provide a number of MEC services via the MEC platform. MEC applications can be created either dynamically by the MEC orchestrator or statically at the initialization of the simulation. The MEC host possesses a configurable number of computing resources (such as CPU speed, RAM, and storage) and keeps track of the utilization of these resources by the MEC applications via the VirtualisationInfrastructureManager. Moreover, this module includes a User Plane Function (UPF) that allows it to be connected with the 5G core network.

simu5g.nodes.mec.MECOrchestrator

Name Type Description
MecOrchestrator simple module

This module models the functionalities of the MEC orchestrator within a Multi-access Edge Computing (MEC) system. Specifically, it manages the dynamic instantiation and termination of MEC applications on the MEC hosts belonging to the MEC system. Upon receiving a MEC app instantiation request from the UALCMP module, this module is responsible for selecting the MEC host on which the MEC application is to be instantiated, according to a configurable policy.

simu5g.nodes.mec.MECPlatform

Name Type Description
IMECApp module interface

This module interface defines the structure to be implemented by every MEC Application that supports standard lifecycle management via UALCMP and MecOrchestrator (i.e., MEC applications that can be instantiated dynamically by User Equipment). See, for example, the MECResponseApp module.

IMEService module interface

This module interface defines the structure that every MEC Service must implement (see, e.g., LocationService)

MECPlatform compound module

This module represents the MEC Platform entity within a MECHost, as specified in the ETSI MEC architecture (ETSI GS MEC 003). It encompasses the MEC services made available to MEC applications instantiated within the MEC Host, along with the ServiceRegistry. The type and number of available MEC services can be configured.

simu5g.nodes.mec.MECPlatform.MECServices.LocationService

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.

simu5g.nodes.mec.MECPlatform.MECServices.MECServiceBase

Name Type Description
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.

SocketManager simple module

This simple module is responsible for managing the state of TCP connections for MEC services. It is instantiated by MecServiceBase to handle each new connection, utilizing the inet::TcpSocket::CallbackInterface. It processes incoming HTTP packets and manages requests and responses within the system.

simu5g.nodes.mec.MECPlatform.MECServices.RNIService

Name Type Description
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.

simu5g.nodes.mec.MECPlatform.ServiceRegistry

Name Type Description
ServiceRegistry simple module

This module models the functionalities of the Service Registry entity in the MEC architecture (ETSI GS MEC 003). It exposes a REST API compliant with ETSI GS MEC 011, allowing MEC applications to discover MEC services available in the MEC host. In particular, MEC applications can obtain the IP address and port number for each instantiated MEC service, so that they can start sending requests to it

simu5g.nodes.mec.MECPlatformManager

Name Type Description
MecPlatformManager simple module

This module implements the MEC platform manager (MECPM) entity within the MECHost. It serves as an interface between the MEC orchestrator and the MEC host itself. Specifically, it manages interactions with the VirtualisationInfrastructureManager to instantiate and terminate MEC applications upon requests from the MEC orchestrator.

simu5g.nodes.mec.UALCMP

Name Type Description
UALCMP compound module

This module represents a host performing the functions of the User Application Lifecycle Management Proxy (UALCMP) defined by the ETSI Multi-access Edge Computing (MEC) specifications. It includes a complete network protocol stack and a UalcmpApp application module that implements the logic of the UALCMP entity. It is typically connected directly to a MEC orchestrator, and forwards to it the creation and deletion requests from the Device App modules of User Equipment. It can be configured to receive packets from a real, external Device App application via the external Ethernet interface submodule.

UALCMPApp simple module

This 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:

simu5g.nodes.mec.VirtualisationInfrastructure

Name Type Description
VirtualisationInfrastructure compound module

This module represents the Virtualisation Infrastructure in a MEC host. It takes care of forwarding packets coming from the 5G core network to the appropriate MEC applications, applying the processing required by all the necessary network protocol layers. Optionally, it can host "independent" MEC applications, i.e., applications that are statically created at initialization, without going through the normal lifecycle (i.e., through the UALCMP and MEC orchestrator). It provides the external interface to communicate with emulated MEC applications, running outside the simulation environment.

simu5g.nodes.mec.VirtualisationInfrastructureManager

Name Type Description
BackgroundApp compound module

This module can be used to simulate a background application running on the MEC host without simulating all message exchanges and finite-state machines. It can be useful for simulating background tasks that utilize CPU, RAM, and disk resources.

VirtualisationInfrastructureManager simple module

This module is responsible for managing the computing resources currently allocated to MEC applications hosted by a MEC host. It is also used by MEC applications in case they want to compute a processing delay based on such resource usage.

simu5g.nodes.NR

Name Type Description
gNodeB compound module

This module implements a gNodeB for a 5G LTE network. It extends the eNodeB module by providing 5G connectivity to NRUe modules. It can be used in either StandAlone (SA) or Non-StandAlone (NSA) 5G deployments. In the former case, it is directly connected to a Upf module. In the latter case, this module can be configured as a secondary node of a eNodeB module, thus enabling E-UTRA Dual Connectivity (EN-DC).

NRUe compound module

This module implements a User Equipment (UE) for a 5G LTE network. It extends the Ue module by implementing a NRNicUe as a Network Interface Card (NIC) module. This module can be used to model a device that can connect to either a 4G eNodeB or a 5G gNodeB, or both.

simu5g.stack

Name Type Description
ICellularNic module interface

Interface for the 3GPP Stack.

LteNicBase compound module

The LteNicBase module serves as the foundational building block for LTE networking in Simu5G. It integrates protocols for LTE communication, including PDCP, RLC, MAC, and PHY layers. This base module allows higher-level modules, such as User Equipment (UE) and eNodeB (evolved Node B), to configure and utilize these layers according to their specific requirements.

LteNicEnb compound module

The LteNicEnb module is a network interface that provides LTE connectivity within an eNodeB. It implements the data and signaling planes of the LTE stack, which includes the PDCP, RLC, MAC, and PHY layers. The parameters and submodules allow customization of the eNodeB's behavior, including whether it supports D2D communication, CoMP (Coordinated MultiPoint), or dual connectivity.

LteNicEnbD2D compound module

The LteNicEnbD2D module represents an LTE eNodeB network interface with support for D2D (Device-to-Device) communications. It extends the basic LteNicEnb module to manage D2D-capable UEs (User Equipments). A D2D mode selection algorithm can be specified using the 'd2dModeSelectionType' parameter.

LteNicUe compound module

The LteNicUe module is a network interface that provides LTE connectivity within a UE (User Equipment). It implements the data and signaling planes of the LTE stack, which includes PDCP, RLC, MAC, and PHY layers. The parameters and submodules allow customization of the UE's behavior.

LteNicUeD2D compound module

This module represents a Device-to-Device (D2D) capable User Equipment (UE) network interface. It extends the basic LTE UE functionality by adding D2D communication capabilities, allowing direct communication between UEs without the need to route traffic through the base station.

NRNicEnb compound module

The NRNicEnb module serves as a network interface that provides 5G connectivity within a gNodeB. It implements the data and signaling plane of the NR (New Radio) stack, which encompasses the PDCP, RLC, MAC, and PHY layers. The parameters and submodules facilitate the customization of the gNodeB's behavior, including its support for D2D communication, CoMP (Coordinated MultiPoint), or dual connectivity.

NRNicUe compound module

This module defines a User Equipment (UE) network interface card that supports both LTE and NR (New Radio) technologies. It extends the LteNicUeD2D module by adding additional submodules and parameters to support NR-specific functionalities.

simu5g.stack.backgroundTrafficGenerator

Name Type Description
BackgroundTrafficGenerator compound module

This module is part of a BackgroundCell module and is responsible for instantiating a configurable number of background UEs (see BackgroundUe module) and setting up their method for computing the channel status information required by the BackgroundScheduler module.

BackgroundTrafficManager simple module

This module manages the background traffic generated by BackgroundUe in a eNodeB or gNodeB.

BackgroundTrafficManagerBase simple module

BackgroundTrafficManagerBase

BackgroundUe compound module

This module implements a lightweight model for 4G or 5G User Equipment (UE). It is used to simulate the generation of background traffic in both uplink and downlink bandwidths, according to the logic specified by its ITrafficGenerator submodule. The generated traffic is not actually transmitted or received by this module, making it more efficient from a simulation complexity perspective. Instead, such traffic modifies the buffer status information that is used by the BackgroundScheduler to allocate resources. Each background UE has a mobility submodule to configure its position in the simulation floor plan. This allows for realistic channel status information to be computed for the background UE and used by the BackgroundScheduler. Since this module does not send or receive actual traffic, application-level statistics are not produced.

IBackgroundTrafficManager module interface

This module interface defines the contract for a traffic generator manager within the BackgroundTrafficGenerator module of a eNodeB or gNodeB. This interface can be implemented by other modules to create a custom traffic generator manager; see BackgroundTrafficManager.

simu5g.stack.backgroundTrafficGenerator.generators

Name Type Description
ITrafficGenerator module interface

This module interface defines the contract for traffic generator modules within the BackgroundTrafficGenerator module. This interface can be implemented by other modules to create a custom traffic generator; see TrafficGeneratorCbr as an example.

TrafficGeneratorBase simple module

This module provides the basic functions and parameters that a traffic generator submodule (implementing the ITrafficGenerator interface) can utilize. It enables the configuration of parameters such as the starting time of the traffic, the size and inter-generation timing of packets, the rate of retransmissions, and so on. Custom background traffic generators can be implemented by extending this module.

TrafficGeneratorCbr simple module

This module specializes the TrafficGeneratorBase module to provide a Constant Bit Rate (CBR) background traffic generator. This generator produces fixed-size packets at regular intervals in either downlink or uplink bands, or both.

simu5g.stack.compManager

Name Type Description
ILteCompManager module interface

The LteCompManager interface defines the structure for the CoMP Manager. It extends the X2User interface and provides the necessary parameters and configurations for managing Coordinated Multi-Point (CoMP) communications in LTE networks.

LteCompManagerBase simple module

ALTERNATIVE:

simu5g.stack.compManager.compManagerProportional

Name Type Description
LteCompManagerProportional simple module

This module implements a simple CoMP (Coordinated Multi-Point) coordinated scheduling algorithm. A CompManager module within an eNodeB can be either a master or a slave. Slave nodes send the master node the number of RBs required to satisfy their users' load. The master node partitions the bandwidth based on these requests and sends back an indication of which RBs are available for transmission and which are not.

simu5g.stack.d2dModeSelection

Name Type Description
D2DModeSelectionBase simple module

Base module for D2D Mode Selection modules.

D2DModeSelectionBestCqi simple module

D2DModeSelectionBestCqi module

ID2DModeSelection module interface

Interface for the D2D Mode Selection module

simu5g.stack.dualConnectivityManager

Name Type Description
DualConnectivityManager simple module

This module is responsible for bridging data-plane packets between PDCP entities of two eNodeBs or gNodeBs when Dual Connectivity is employed. The module directly interfaces with the LteX2Manager to transfer such packets over the X2 interface.

IDualConnectivityManager module interface

Interface for the Dual Connectivity Manager. This module extends the X2User module interface to define the basic contract that any Dual Connectivity Manager must adhere to.

simu5g.stack.handoverManager

Name Type Description
ILteHandoverManager module interface

Interface for the Handover Manager. This module extends the X2User module interface to define the basic contract that any handover manager must adhere to.

LteHandoverManager simple module

This module is responsible for managing the exchange of messages during the handover process. It handles the signaling and coordination required to transfer both control and data-plane information from the source eNodeB to the target eNodeB. The module directly interfaces with the LteX2Manager to facilitate this inter-eNodeB communication.

simu5g.stack.ip2nic

Name Type Description
INetworkLayer2CellularNic module interface

The INetworkLayer2CellularNic module interface serves as an intermediary between the network layer and the cellular (LTE/NR) protocol stack. It facilitates interactions between the cellular stack and the network layer, enabling the transmission of IP packets through the protocol layers of LTE and NR technologies.

IP2Nic simple module

The IP2Nic module acts as a bridge between the IP network layer and the cellular (LTE/NR) protocol stack. It exhibits slightly different behavior when operating in the UE compared to the BS. Its main functionalities include:

simu5g.stack.mac

Name Type Description
ILteMac module interface

Interface for the Medium Access Control (MAC) layer of the LTE Stack.

LteMacBase simple module

Base module for the Medium Access Control (MAC) layer of the LTE protocol stack.

LteMacEnb simple module

This module extends the LteMacBase(1,2) module by providing specific MAC functions on the eNodeB side. Specifically, it initializes and manages the scheduling classes responsible for resource allocation operations in both uplink and downlink directions, while also supporting Carrier Aggregation (CA). It manages the Random Access procedure (RAC) and the reception of Buffer Status Reports (BSRs) from UEs, as well as the transmission of scheduling grants to UEs allocated within the uplink bandwidth. For downlink connections, it notifies the Radio Link Control (RLC) layer when it is ready to receive MAC Service Data Units (SDUs) to build MAC Protocol Data Units (PDUs) and transmit them to the physical layer.

LteMacEnbD2D simple module

This module extends LTE MAC functionalities at the eNodeB side to support device-to-device (D2D) communications. Specifically, it enhances resource allocation procedures to enable direct communication between User Equipments (UEs), i.e., it allocates resources for D2D transmissions. Network-assisted D2D is only implemented (out-of-coverage D2D is not supported).

LteMacUe simple module

This module extends the LteMacBase(1,2) module by providing specific MAC functions at the User Equipment (UE) side. For uplink connections, this module manages the initiation of the Random Access procedure (RAC) and the sending of Buffer Status Reports (BSRs) to the eNodeBs. Once it receives an uplink scheduling grant from the eNodeB, it is responsible for managing the local connections' scheduler and constructing MAC Protocol Data Units (PDUs) to be transmitted to the physical layer.

LteMacUeD2D simple module

This module extends LTE MAC functionalities at the User Equipment side to support device-to-device (D2D) communications. Specifically, it customizes LteMacUe functionalities to support the transmission and reception of MAC Protocol Data Units (PDUs), Channel Status Information (CSI), and Buffer Status Reports (BSRs) over a D2D link. It supports D2D multicast transmission to nearby UEs belonging to a given multicast group.

NRMacGnb simple module

This module provides functionalities for the Medium Access Control (MAC) of the New Radio (NR) protocol stack at the gNodeB (gNB) side. In particular, it extends the LteMacEnbD2D module by initializing the NR version of the uplink scheduler and using, by default, the NR version of the Adaptive Modulation and Coding (AMC) module.

NRMacUe simple module

This module provides functionalities for the Medium Access Control (MAC) of the New Radio (NR) protocol stack at the User Equipment (UE) side. In particular, it extends the LteMacUeD2D module by redefining functions to support different numerology parameterizations.

simu5g.stack.packetFlowManager

Name Type Description
IPacketFlowManager module interface (no description)
NRPacketFlowManagerGnb simple module

NRPacketFlowManagerGnb is designed to handle packet flow management operations specifically for NR (New Radio) e/gNodeB in 5G simulations. It ensures that data packets are managed efficiently in a 5G network scenario, providing an accurate model of packet handling mechanisms.

NRPacketFlowManagerUe simple module

This simple module represents the Packet Flow Manager for User Equipment (UE) in an NR (New Radio) network. It manages the flow of packets for various services within the UE, ensuring that data traffic is efficiently handled in accordance with NR specifications.

PacketFlowManagerEnb simple module (no description)
PacketFlowManagerUe simple module

This module implements a Packet Flow Manager for User Equipment (UE) within an LTE/NR network. It handles the mapping and management of data packets across different protocol layers, such as PDCP, RLC, MAC, and PHY. The PacketFlowManagerUe ensures that packets are tracked, queued, and processed correctly for transmission and reception, thereby enabling effective communication within the cellular network.

simu5g.stack.pdcp_rrc

Name Type Description
ILtePdcpRrc module interface

Interface for the PDCP/RRC layer of the LTE Stack.

LtePdcpRrcBase simple module

The LtePdcpRrcBase module implements the functionalities of the Packet Data Convergence Protocol (PDCP). It enables header compression and maps incoming IP packets to different Radio Link Control (RLC) modes. This module dynamically creates LteTxPdcpEntity and LteRxPdcpEntity submodules to handle individual transmission/reception connections

LtePdcpRrcEnb simple module

The LtePdcpRrcEnb module implements the PDCP/RRC layer for an LTE NIC employed at eNodeBs. It performs header compression and maps incoming IP datagrams to different Radio Link Control (RLC) modes. Additionally, it supports Dual Connectivity and Split Bearer functionalities.

LtePdcpRrcEnbD2D simple module

The LtePdcpRrcEnbD2D module implements the PDCP/RRC layer for a LTE NIC employed at eNodeBs, providing support for D2D (Device-to-Device) communications. This module extends the basic LtePdcpRrcEnb by adding functionality for managing D2D-capable user equipment, specifically for buffering packets during D2D mode switching operations.

LtePdcpRrcUe simple module

The LtePdcpRrcUe module implements the PDCP/RRC layer for an LTE NIC employed at a User Equipment. It performs header compression on incoming IP datagrams

LtePdcpRrcUeD2D simple module

The LtePdcpRrcUeD2D module implements the PDCP/RRC layer for an LTE NIC employed at a User Equipment with support for Device-to-Device (D2D) communications. It extends the basic PDCP/RRC functionality with D2D communication capabilities.

LteRxPdcpEntity simple module

This module handles the operations related to the LTE PDCP (Packet Data Convergence Protocol) layer at the receiving side of a specific connection. It processes incoming PDCP PDUs from the RLC layer, performing header decompression before forwarding them to the upper layer protocols.

LteTxPdcpEntity simple module

This module handles operations related to the LTE PDCP (Packet Data Convergence Protocol) layer on the transmitting side of a specific connection. This module manages the creation, sequencing, header compression, and metadata association for PDCP PDUs before they are passed down to the RLC layer.

NRPdcpRrcEnb simple module

The NRPdcpRrcEnb module implements the PDCP/RRC layer for a NR NIC utilized at a Base Station. It extends the LtePdcpRrcEnbD2D module to enable Dual Connectivity and Split Bearer functionalities at the eNodeB module.

NRPdcpRrcUe simple module

The NRPdcpRrcUe module implements the PDCP/RRC layer for an NR NIC employed at a User Equipment. It extends the LtePdcpRrcUeD2D module to enable Dual Connectivity and Split Bearer functionalities at the UE.

NRRxPdcpEntity simple module

This module handles the operations related to the NR PDCP (Packet Data Convergence Protocol) layer on the receiving side of a specific connection. It extends the LteRxPdcpEntity module. This module facilitates the creation of support for Dual Connectivity functionality. In particular, it manages the reordering of out-of-sequence PDCP PDUs in Dual Connectivity deployments.

NRTxPdcpEntity simple module

This module handles the operations related to the NR PDCP (Packet Data Convergence Protocol) layer at the transmitting side of a specific connection. It extends the LteTxPdcpEntity module. Additionally, this module manages the creation process by adding support for Dual Connectivity functionality.

simu5g.stack.phy

Name Type Description
ILtePhy module interface

Interface for the Physical (PHY) layer of the LTE stack.

LtePhyBase simple module

Base module for the Physical (PHY) layer of the LTE protocol stack.

LtePhyEnb simple module

This module extends the LtePhyBase(1,2) module by providing the specific PHY functions on the eNodeB side. It is responsible for checking if a frame received on the air interface originates from a User Equipment (UE) connected to the eNB itself, and it provides the functions necessary to compute the Channel Status Information (CSI) for the UEs connected to it.

LtePhyEnbD2D simple module

This module extends the LTE PHY functionalities on the eNodeB side to support device-to-device (D2D) communications. Specifically, it enables the computation of Channel Status Information (CSI) related to the D2D link between two UEs, which still needs to be stored at the eNodeB for scheduling purposes.

LtePhyUe simple module

This module extends the LtePhyBase(1,2) module by providing specific PHY functions on the User Equipment (UE) side. It ensures that frames received on the air interface are sourced from the serving eNodeB (eNB) and provides functions to manage the handover procedure, including periodic measurement of channel conditions to determine when a handover should occur. If enabled, the selection of the serving eNB at initialization is done dynamically based on radio conditions.

LtePhyUeD2D simple module

This module extends LTE PHY functionalities at the User Equipment side to support device-to-device (D2D) communications. Specifically, it customizes the LtePhyUe functionalities to support the transmission and reception of frames to another UE directly, without going through the serving eNodeB. It also supports one-to-many D2D transmission to UEs belonging to a multicast group. It is assumed that one-to-one D2D communication is only possible when both endpoints are served by the same eNodeB. When a handover is triggered, this module is responsible for initiating a mode switch from direct (D2D) mode to infrastructure mode.

NRPhyUe simple module

This module provides the functionalities for the Physical (PHY) layer of the New Radio (NR) protocol stack at the User Equipment (UE) side. In particular, it is responsible for handling the transmission and reception of frames over the radio, as well as the handover procedures when utilizing the NR technology.

simu5g.stack.phy.ChannelModel

Name Type Description
ILteChannelModel module interface

This module provides the interface for modules implementing the model of the radio channel. Such modules are responsible for providing functions to compute the Signal to Interference-plus-Noise Ratio (SINR) of received frames, taking into account channel effects such as propagation loss, fading/shadowing, and inter-cell interference.

LteChannelModel simple module

This is the base module for developing more realistic models of the radio channel. It primarily provides the initialization of parameters such as the reference to the Component Carrier (CC) and its associated parameters related to the channel model itself.

LteRealisticChannelModel simple module

This module implements the functions for a model representing the 2D channel in the LTE specification 3GPP TR 36.803. It includes the computation of:

NRChannelModel simple module

This channel model implements path loss, LOS probability, and shadowing according to the following specifications: 3GPP TR 36.873, "Study on 3D channel model for LTE", v12.7.0, December 2017

NRChannelModel_3GPP38_901 simple module

NRChannelModel_3GPP38_901

simu5g.stack.phy.feedback

Name Type Description
LteDlFeedbackGenerator simple module

This is the Lte Downlink Feedback Generator. It manages periodic and aperiodic channel sensing and feedback transmission.

LteUlFeedbackGenerator simple module

This is the LTE Uplink Feedback Generator.

simu5g.stack.phy.feedback.testFeedback

Name Type Description
FeedbackTester simple module (no description)
TestFeedback network (no description)

simu5g.stack.rlc

Name Type Description
LteRlc compound module

The LteRlc module implements the functionalities of the Radio Link Control (RLC) layer. It provides mechanisms for end-to-end connectivity over the radio interface. It sends and receives RLC Service Data Units (SDUs) to and from the Packet Data Convergence Protocol (PDCP) layer, and sends and receives RLC Protocol Data Units (PDUs) to and from the Medium Access Control (MAC) layer. Depending on the mode, this layer can provide segmentation, concatenation, in-sequence delivery, and retransmission of PDUs. Currently, only the Unacknowledged Mode (UM) has been implemented.

LteRlcMux simple module

This module functions as a (de)multiplexer between the submodules of the LteRlc module (representing the available RLC modes) and the underlying Medium Access Control (MAC) module

simu5g.stack.rlc.am

Name Type Description
AmRxEntity simple module

This module implements the receiving functionalities of the Acknowledged Mode (AM) of the Radio Link Control (RLC) layer for a specific connection. It stores RLC Protocol Data Units (PDUs) that arrive from the Medium Access Control (MAC) layer and, when possible, performs reassembly and in-sequence delivery of packets to the Packet Data Convergence Protocol (PDCP) layer. It also acknowledges the (un)successful reception of PDUs to the peering AmTxEntity to trigger retransmissions of missing packets and provide guaranteed delivery of packets to the PDCP layer

AmTxEntity simple module

This module implements the transmitting functionalities of the Acknowledged Mode (AM) of the Radio Link Control (RLC) layer for a specific connection. It stores packets coming from the Packet Data Convergence Protocol (PDCP) layer into a transmission buffer and, upon notification of a transmission opportunity from the Medium Access Control (MAC) layer, sends down a RLC Protocol Data Unit (PDU) of the appropriate size (possibly performing segmentation and/or concatenation). It implements an Automatic Repeat reQuest (ARQ) mechanism to enable the retransmission of unacknowledged RLC PDUs

LteRlcAm simple module

This module implements the functionalities of the Acknowledged Mode (AM) of the Radio Link Control (RLC) layer. At the transmitting side, it stores packets coming from the Packet Data Convergence Protocol (PDCP) layer into a transmission buffer and, upon notification of a transmission opportunity from the Medium Access Control (MAC) layer, sends down a RLC Protocol Data Unit (PDU) of the appropriate size (via segmentation and/or concatenation). At the receiving side, it stores RLC PDUs arriving from the MAC layer in order to perform reassembly and in-sequence delivery of packets to the PDCP layer. It implements an Automatic Repeat reQuest (ARQ) mechanism to retransmit unacknowledged RLC PDUs at the transmitting side and provide guaranteed delivery at the receiving side.

simu5g.stack.rlc.am.buffer

Name Type Description
AmRxQueue simple module

Receive Buffer of RLC AM

AmTxQueue simple module

Transmit Buffer of RLC AM

simu5g.stack.rlc.tm

Name Type Description
LteRlcTm simple module

This module implements the functionalities of the Transparent Mode (TM) of the Radio Link Control (RLC) layer.

simu5g.stack.rlc.um

Name Type Description
ILteRlcUm module interface

Interface module for the Unacknowledged Mode (UM) of the Radio Link Control (RLC) layer. It defines gates to the Packet Data Convergence Protocol (PDCP) module and the LteRlcMux module. UM enables segmentation and/or concatenation of RLC Service Data Units (SDUs) before transmission, according to the size of the RLC Protocol Data Unit (PDU) decided by the Medium Access Control (MAC) layer. On the receiving side, RLC SDUs are reassembled before being forwarded to the Packet Data Convergence Protocol (PDCP) layer. In-sequence delivery of RLC SDUs is also guaranteed.

LteRlcUm simple module

This module implements the functionalities of the Unacknowledged Mode (UM) of the Radio Link Control (RLC) layer. Transmitting- and receiving-side functionalities are provided by the UmTxEntity and UmRxEntity submodules, respectively. The latter are created dynamically whenever a new connection is detected. This module is responsible for identifying the flow to which a RLC Service Data Unit (SDU) or Protocol Data Unit (PDU) belongs and routing it to the corresponding transmitting or receiving entity for further processing.

LteRlcUmD2D simple module

This module implements the functionalities of the Unacknowledged Mode (UM) of the Radio Link Control (RLC) layer for User Equipments supporting Device-to-Device (D2D) communications. It extends the basic RLC functionalities with specific management functions necessary when a connection is switched from infrastructure mode to D2D mode, and vice versa.

UmRxEntity simple module

This module implements the receiving-side functionalities of the Unacknowledged Mode (UM) of the Radio Link Control (RLC) layer for a specific connection. It stores RLC Protocol Data Units (PDUs) arriving from the Medium Access Control (MAC) layer and, when possible, performs reassembly and in-sequence delivery of packets to the Packet Data Convergence Protocol (PDCP) layer.

UmTxEntity simple module

This module implements the transmission side functionalities of the Unacknowledged Mode (UM) of the Radio Link Control (RLC) layer for a specific connection. It stores packets coming from the Packet Data Convergence Protocol (PDCP) layer in a transmission buffer and, upon receiving a notification of a transmission opportunity from the Medium Access Control (MAC) layer, it sends down an RLC Protocol Data Unit (PDU) of the appropriate size (which may involve segmentation and/or concatenation).

simu5g.world.radio

Name Type Description
ChannelControl simple module

Utility module that records the position of each radio module in the network. Exactly one instance of this module (or its derived extensions) must be present in the network. Note that channel parameters in this module are obsolete and are not utilized.

LteChannelControl simple module

Utility module that records the position of each LTE radio module in the network. Exactly one instance of this module must be present in the network. Note that channel parameters in this module are obsolete and not utilized.

simu5g.x2

Name Type Description
IX2User module interface

This module interface provides the fundamental structure for submodules of the LTE/NR protocol stack that need to interact with the LteX2Manager to utilize X2 communication to accomplish their tasks, such as handover, dual connectivity, and Coordinated Multi-Point.

LteX2App compound module

This module represents the container for all X2 applications that an e/gNodeB instantiates to enable X2 communications with its peer e/gNodeBs. Specifically, for each peer, this module contains two submodules:

LteX2Manager simple module

This module serves as a pluggable interface for submodules of the e/gNodeB's LTE/NR protocol stack that implement functionalities requiring the use of the X2 interface for communication with peer e/gNodeBs, such as handover, dual connectivity, and Coordinated MultiPoint (CoMP). This module simplifies the interaction for such submodules by abstracting the details of X2Apps, which are the modules responsible for the actual communication through the X2 interface.

X2AppClient simple module

This module extends INET's SctpClient application by adding an output gate to send messages to the LteX2Manager and manages the connection initiation towards the peer's server module based on the configuration specified in the .ini file. Once the connection has been established, it receives messages from the peer's server module and forwards them to the LteX2Manager module for further processing and redirection to the intended submodule of the LTE/NR protocol stack.

X2AppServer simple module

This module extends the INET's SctpServer application by adding an input gate to receive messages from the X2 Manager module. The X2AppServer module is responsible for handling messages from the X2 Manager and forwarding them to the peer's client X2App via the SCTP layer. It ensures that the messages are properly encapsulated in SCTP packets before being sent.