RlcUmEntityBase

Package: simu5g.stack.rlc

RlcUmEntityBase

compound module

Base type of the RLC UM entity of one data radio bearer: packages the transmitting and the receiving side (TS 36.322 / 38.322 model an entity per bearer). Created dynamically by BearerManagement, one per (peer, DRB) pair; a bearer with traffic in one direction only simply leaves the other side idle.

This base type binds no TX/RX entity types; the concrete subclasses do (LteRlcUmEntity, NrRlcUmEntity), so it is not instantiable on its own.

tx : like IRlcTxEntity

IRlcTxEntity: Module interface for the transmitting side of an RLC entity (TM/UM/AM).

Source:
tx: <> like IRlcTxEntity {
    @display("p=50,50");
} rx : like IRlcRxEntity

IRlcRxEntity: Module interface for the receiving side of an RLC entity (TM/UM/AM).

Source:
rx: <> like IRlcRxEntity {
    @display("p=150,50");
}

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
LteRlcUmEntity compound module

RLC UM entity of an LTE data radio bearer: the RlcUmEntityBase compound with its TX/RX sides bound to the LTE (FI wire format, TS 36.322) entity profiles. Selected by BearerManagement for LTE bearers via its lteRlcUmEntityModuleType parameter, which defaults to this type.

NrRlcUmEntity compound module

RLC UM entity of an NR data radio bearer: the RlcUmEntityBase compound with its TX/RX sides bound to the NR (SI/SO wire format, TS 38.322) entity profiles. Selected by BearerManagement for NR bearers via its nrRlcUmEntityModuleType parameter.

Parameters

Name Type Default value Description
macModule string "^.mac"

This bearer leg's MAC; set per leg by BearerManagement

rlcMuxModule string "^.rlcMux"

This bearer leg's RLC mux

Properties

Name Value Description
dynamic true
display i=block/wheelbarrow

Gates

Name Direction Size Description
upperIn input

SDUs from PDCP

upperOut output

Reassembled SDUs to PDCP

lowerIn input

PDUs from RlcMux

lowerOut output

PDUs and new-data notifications to RlcMux/MAC

macIn input

MAC SDU requests via RlcMux

Source code

//
// Base type of the RLC UM entity of one data radio bearer: packages the
// transmitting and the receiving side (TS 36.322 / 38.322 model an entity per
// bearer). Created dynamically by BearerManagement, one per (peer, DRB) pair;
// a bearer with traffic in one direction only simply leaves the other side idle.
//
// This base type binds no TX/RX entity types; the concrete subclasses do
// (~LteRlcUmEntity, ~NrRlcUmEntity), so it is not instantiable on its own.
//
module RlcUmEntityBase
{
    parameters:
        @dynamic(true);
        @display("i=block/wheelbarrow");
        string macModule = default("^.mac");        // This bearer leg's MAC; set per leg by BearerManagement
        string rlcMuxModule = default("^.rlcMux");   // This bearer leg's RLC mux
        *.macModule = default(absPath(this.macModule));
        *.rlcMuxModule = default(absPath(this.rlcMuxModule));
    gates:
        input upperIn;    // SDUs from PDCP
        output upperOut;  // Reassembled SDUs to PDCP
        input lowerIn;    // PDUs from RlcMux
        output lowerOut;  // PDUs and new-data notifications to RlcMux/MAC
        input macIn;      // MAC SDU requests via RlcMux
    submodules:
        tx: <> like IRlcTxEntity {
            @display("p=50,50");
        }
        rx: <> like IRlcRxEntity {
            @display("p=150,50");
        }
    connections:
        upperIn --> { @display("m=n"); } --> tx.in;
        macIn --> { @display("m=s"); } --> tx.macIn;
        tx.out --> { @display("m=s"); } --> lowerOut;
        lowerIn --> { @display("m=s"); } --> rx.in;
        rx.out --> { @display("m=n"); } --> upperOut;
}
File: src/simu5g/stack/rlc/RlcUmEntityBase.ned