RlcUmEntityBase

Package: simu5g.stack.rlc

compound module RlcUmEntityBase

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.

Usage diagram

Inheritance 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

display

i=block/wheelbarrow

dynamic

true

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