BearerManagement

Package: simu5g.stack.rrc

simple module BearerManagement

RRC Bearer Management — creates and tears down PDCP, RLC and MAC entities for data radio bearers.

simu5g.stack.rrc.BearerManagementBearerManagementsimple

Usage diagram

Inheritance diagram

Used in compound modules

Name

Type

Description

Rrc

compound module

RRC (Radio Resource Control) layer for LTE/NR networks.

Parameters

Name

Type

Default value

Description

binderModule

string

“binder”

To reach a peer’s BearerManagement on RLF

connectionControlModule

string

“^.connectionControl”

The node’s control-plane entry point (see Rrc), which a torn-down bearer’s DRB identity goes back through

t311

double

0s

RRC re-establishment cell-selection timer (0 => release-to-IDLE)

t301

double

0.1s

RRC re-establishment (request -> complete) timer

headerCompressedSize

int

-1B

Removed, an error if set: header compression is configured per bearer (the rohc field of BearerConfigurator’s bearer definitions)

pdcpEntityModuleType

string

“simu5g.stack.pdcp.LtePdcpEntity”

PDCP entity types: the full PDCP entity is a compound (PdcpEntityBase, TX+RX sides plus the leg split/join stage of a multi-leg bearer); the instantiable types are its subclasses (LtePdcpEntity, NrPdcpEntity). At a DC secondary a bearer’s PDCP lives at the master, so the secondary installs an PdcpRelayEntity (tunnels PDUs to/from the master) in its place.

pdcpRelayEntityModuleType

string

“simu5g.stack.pdcp.PdcpRelayEntity”

dualConnectivityEnabled

bool

false

Set by the NIC; two-leg (split-capable) bearers

rlcTmEntityModuleType

string

“simu5g.stack.rlc.RlcTmEntity”

RLC entity types (compound modules): lteRlc* = LTE-FI bearers (TS 36.322), nrRlc* = NR bearers (SI/SO wire format, TS 38.322)

lteRlcUmEntityModuleType

string

“simu5g.stack.rlc.LteRlcUmEntity”

lteRlcAmEntityModuleType

string

“simu5g.stack.rlc.LteRlcAmEntity”

nrRlcUmEntityModuleType

string

“simu5g.stack.rlc.NrRlcUmEntity”

nrRlcAmEntityModuleType

string

“simu5g.stack.rlc.NrRlcAmEntity”

registrationModule

string

“^.registration”

Module references for accessing other stack layers

drbTableModule

string

“^.drbTable”

ip2nicModule

string

“^.^.ip2nic”

handoverPacketHolderModule

string

“^.^.handoverPacketHolder”

Attachment-ledger push target (UE only)

pdcpMuxModule

string

“^.^.pdcpMux”

pdcpDcMuxModule

string

“^.^.pdcpDcMux”

d2dModeControllerModule

string

“^.d2dModeController”

rlcMuxModule

string

“^.^.rlcMux”

nrRlcMuxModule

string

“^.^.nrRlcMux”

macModule

string

“^.^.mac”

nrMacModule

string

“^.^.nrMac”

sdapModule

string

“^.^.sdap”

Configuration push target; unresolvable (no SDAP on the NIC) = no pushes

qosFlowClassifierModule

string

“^.^.qosFlowClassifier”

Uplink QFI rule push target; unresolvable (not a UE stack with SDAP) = no pushes

Properties

Name

Value

Description

class

BearerManagement

display

i=block/control

Source code

//
// RRC Bearer Management — creates and tears down PDCP, RLC and MAC
// entities for data radio bearers.
//
simple BearerManagement like IBearerManagement
{
    parameters:
        @display("i=block/control");
        @class(BearerManagement);
        string binderModule = default("binder");   // To reach a peer's BearerManagement on RLF
        string connectionControlModule = default("^.connectionControl");   // The node's control-plane entry point (see ~Rrc), which a torn-down bearer's DRB identity goes back through

        // RRC re-establishment after a radio link failure (TS 38.331 5.3.7). On RLF the peer's
        // link is released (Ip2Nic drops its traffic); t311 = cell-(re)selection timer, and when
        // it expires a suitable cell is assumed selected (single-cell), the RRCReestablishmentRequest
        // is sent and t301 (request -> complete) runs; on its expiry the peer is un-released and its
        // bearer re-establishes on demand. t311 = 0s disables re-establishment (release-to-IDLE).
        // PDU-level RRC signaling is abstracted by these timers, as for handover.
        double t311 @unit(s) = default(0s);     // RRC re-establishment cell-selection timer (0 => release-to-IDLE)
        double t301 @unit(s) = default(0.1s);   // RRC re-establishment (request -> complete) timer

        int headerCompressedSize @unit(B) = default(-1B);  // Removed, an error if set: header compression is configured per bearer (the rohc field of ~BearerConfigurator's bearer definitions)

        // PDCP entity types: the full PDCP entity is a compound (PdcpEntityBase, TX+RX sides plus
        // the leg split/join stage of a multi-leg bearer); the instantiable types are its
        // subclasses (LtePdcpEntity, NrPdcpEntity). At a DC secondary a bearer's PDCP lives at
        // the master, so the secondary installs an PdcpRelayEntity (tunnels PDUs to/from the
        // master) in its place.
        string pdcpEntityModuleType = default("simu5g.stack.pdcp.LtePdcpEntity");
        string pdcpRelayEntityModuleType = default("simu5g.stack.pdcp.PdcpRelayEntity");

        bool dualConnectivityEnabled = default(false);   // Set by the NIC; two-leg (split-capable) bearers

        // RLC entity types (compound modules): lteRlc* = LTE-FI bearers (TS 36.322),
        // nrRlc* = NR bearers (SI/SO wire format, TS 38.322)
        string rlcTmEntityModuleType = default("simu5g.stack.rlc.RlcTmEntity");
        string lteRlcUmEntityModuleType = default("simu5g.stack.rlc.LteRlcUmEntity");
        string lteRlcAmEntityModuleType = default("simu5g.stack.rlc.LteRlcAmEntity");
        string nrRlcUmEntityModuleType = default("simu5g.stack.rlc.NrRlcUmEntity");
        string nrRlcAmEntityModuleType = default("simu5g.stack.rlc.NrRlcAmEntity");
        // An NR-leg bearer uses the nrRlc* compound (NR SI/SO wire format); a config may
        // point these back to the lteRlc* compounds above to keep an NR leg on LTE RLC.
        // TM is transparent and identical for both RATs, so it has no LTE/NR split.

        // Module references for accessing other stack layers
        string registrationModule = default("^.registration");
        string drbTableModule = default("^.drbTable");
        string ip2nicModule = default("^.^.ip2nic");
        string handoverPacketHolderModule = default("^.^.handoverPacketHolder");   // Attachment-ledger push target (UE only)
        string pdcpMuxModule = default("^.^.pdcpMux");
        string pdcpDcMuxModule = default("^.^.pdcpDcMux");
        string d2dModeControllerModule = default("^.d2dModeController");
        string rlcMuxModule = default("^.^.rlcMux");
        string nrRlcMuxModule = default("^.^.nrRlcMux");
        string macModule = default("^.^.mac");
        string nrMacModule = default("^.^.nrMac");
        string sdapModule = default("^.^.sdap");   // Configuration push target; unresolvable (no SDAP on the NIC) = no pushes
        string qosFlowClassifierModule = default("^.^.qosFlowClassifier");   // Uplink QFI rule push target; unresolvable (not a UE stack with SDAP) = no pushes
}

File: src/simu5g/stack/rrc/BearerManagement.ned