IRlcMux

Package: simu5g.stack.rlc

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.

Inheritance diagram

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

Implemented by

Name Type Description
RlcMux simple module

Lower-layer RLC packet dispatcher.

RlcMuxD2D simple module

Device-to-Device (D2D) aware version of RlcMux. It additionally handles D2D mode switch notifications arriving from the MAC layer, dispatching them to the TX or RX UM entity of the affected bearer, and declares the D2D statistics (emitted by the D2D UM entities). Selected by the D2D-capable NICs.

Used in compound modules

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

NrNicUe compound module

Defines a User Equipment (UE) network interface card that supports both LTE and NR (New Radio) technologies. It extends the LteNicUe module by adding additional submodules and parameters to support NR-specific functionalities. D2D support is added by the NrNicUeD2D subtype.

Parameters

Name Type Default value Description
bearerManagementModule string

Properties

Name Value Description
display i=block/dispatch

Source code

//
// 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.
//
moduleinterface IRlcMux
{
    parameters:
        string bearerManagementModule;
        @display("i=block/dispatch");
    gates:
        input macIn;
        output macOut;
        output toRxEntity[];          // Dynamic: dispatches to RX entity in gates
        input fromTxEntity[];         // Dynamic: receives from TX entity out gates
        output macToTxEntity[];       // Dynamic: dispatches MAC SDU requests to TX entity macIn gates
}
File: src/simu5g/stack/rlc/IRlcMux.ned