Module Interfaces

Name

Type

Description

IBackgroundTrafficManager

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.

IBearerManagement

module interface

Interface for the bearer management component of the IRrc layer: creates and tears down the PDCP, RLC and MAC entities of data radio bearers.

ICellularNic

module interface

Interface for the 3GPP Stack.

IChannelModel

module interface

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.

IConnectionControl

module interface

Interface for the connection control of the IRrc layer: the node’s control-plane entry point, the one module of the node that the control plane of other nodes talks to: ConnectionControlEnb at a base station, ConnectionControlUe at a UE (one per leg).

ID2DModeController

module interface

Interface for the D2D mode controller of the IRrc layer: performs the D2D mode switch of a peering, draining and re-routing the affected RLC transmission buffers.

ID2DModeSelection

module interface

Interface for the D2D Mode Selection module

IDcX2Forwarder

module interface

Interface for the DC X2 Forwarder. This module extends the IX2User module interface to define the basic contract that any DC X2 Forwarder must adhere to.

IDrbTable

module interface

Interface for the data radio bearer configuration table of the RRC layer.

IHandoverPacketHolder

module interface

Manages packet buffering/tunnelling during handover

IHandoverX2Forwarder

module interface

Interface for the Handover X2 Forwarder. This module extends the IX2User module interface to define the basic contract that any Handover X2 Forwarder must adhere to.

ILteAmc

module interface

Module interface for the Adaptive Modulation and Coding (AMC) module.

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.

ILteMac

module interface

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

ILteSchedulerEnbDl

module interface

Module interface for the eNB/gNB downlink scheduler.

ILteSchedulerEnbUl

module interface

Module interface for the eNB/gNB uplink scheduler.

IMecApp

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.

IMecService

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.

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.

INrSdap

module interface

Interface for SDAP protocol implementations.

IPacketFlowObserver

module interface

(no description)

IPdcpLegJoiner

module interface

Module interface for the RX-side leg merger of a multi-leg PDCP entity (see PdcpEntityBase): implementations merge the PDU streams of all legs into the single RX entity, whose reorder window restores SN order across legs. Instantiated by the PdcpEntityBase compound via a typename parameter when the bearer has more than one leg.

IPdcpLegSplitter

module interface

Module interface for the TX-side leg dispatcher of a PDCP entity (see PdcpEntityBase): implementations pick the RLC leg for each PDCP PDU and apply that leg’s id mapping. Instantiated by the PdcpEntityBase compound via a typename parameter when a leg needs it: on a multi-leg bearer, and on a single-leg bearer whose leg is not the anchor’s (an SCG bearer).

IPdcpMux

module interface

Module interface for the upper-layer PDCP packet dispatcher of a cellular NIC (see PdcpMux for the default implementation). Implementations dispatch SDUs coming from Ip2Nic/SDAP to the PDCP TX entity serving their DRB, and pass the output of the RX entities back up. The per-bearer gates are created and wired at runtime by BearerManagement, which also registers the TX routing table; implementations must therefore subclass the PdcpMux C++ class.

IPdcpRxEntity

module interface

Module interface for the receiving side of a PDCP entity. Concrete types (LtePdcpRxEntity, NrPdcpRxEntity) implement it so the PdcpEntityBase compound can instantiate them via a typename parameter. The RX entity is leg-agnostic; on a multi-leg bearer the compound’s joiner merges all legs into its single input, and its reorder window restores SN order (see PdcpEntityBase).

IPdcpTxEntity

module interface

Module interface for the transmitting side of a PDCP entity. Concrete types (LtePdcpTxEntity, NrPdcpTxEntity) implement it so the PdcpEntityBase compound can instantiate them via a typename parameter. The TX entity is leg-agnostic (SN assignment, header compression); leg dispatch is the enclosing compound’s concern (see PdcpEntityBase).

IPhy

module interface

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

IQosFlowClassifier

module interface

Interface for the UE’s uplink QoS-flow classifier (see QosFlowClassifier).

IReflectiveQosTable

module interface

Interface for Reflective QoS Table modules.

IRegistration

module interface

Interface for the registration component of the IRrc layer: registers the node (and its stack legs) with the Binder, sets up the network interface, and joins multicast groups.

IRlcAmRxEntity

module interface

Receiving side of an RLC AM entity: extends the generic RX interface with the gates over which it hands control PDUs to the co-located transmitting side (see RlcAmEntityBase).

IRlcAmTxEntity

module interface

Transmitting side of an RLC AM entity: extends the generic TX interface with the gates over which the co-located receiving side hands it control PDUs (see RlcAmEntityBase).

IRlcMux

module interface

Module interface for the lower-layer RLC packet dispatcher of a cellular NIC (see RlcMux for the default implementation). Implementations dispatch packets coming from the MAC layer to the RLC RX entity serving their DRB (or, for MAC SDU requests, to its TX entity), and pass the output of the TX entities down to MAC. The per-bearer gates are created and wired at runtime by BearerManagement, which also registers the RX routing table; implementations must therefore subclass the RlcMux C++ class.

IRlcRxEntity

module interface

Module interface for the receiving side of an RLC entity (TM/UM/AM). Concrete entity types (e.g. RlcTmRxEntity, RlcUmRxEntity, RlcAmRxEntity) implement this interface so that RlcTmEntity/RlcUmEntityBase/RlcAmEntityBase compound modules can instantiate them via a typename parameter. Implementations may declare additional gates (e.g. the AM control gates).

IRlcTxEntity

module interface

Module interface for the transmitting side of an RLC entity (TM/UM/AM). Concrete entity types (e.g. RlcTmTxEntity, RlcUmTxEntity, RlcAmTxEntity) implement this interface so that RlcTmEntity/RlcUmEntityBase/RlcAmEntityBase compound modules can instantiate them via a typename parameter. Implementations may declare additional gates (e.g. the AM control gates).

IRrc

module interface

Interface for the RRC (Radio Resource Control) layer of the LTE/NR Stack.

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.

ITrafficGenerator

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.

IUeCellularNic

module interface

Interface for the 3GPP stack of a UE: the parts of the contract that only a UE’s NIC has.

IX2User

module interface

Interface for modules that need to interact with the LteX2Manager to utilize X2 communication to perform tasks such as handover, dual connectivity, and Coordinated Multi-Point.