Rrc

Package: simu5g.stack.rrc

compound module Rrc

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

Contains functional submodules corresponding to RRC procedures:

  • registration: registers the node with the Binder, sets up the interface

  • drbTable: the configuration of the node’s data radio bearers

  • bearerManagement: sets up and tears down data radio bearers

  • connectionControl: the node’s control-plane entry point, which the control plane of other nodes and the node’s own data path talk to: ConnectionControlEnb at a base station, ConnectionControlUe at a UE (the LTE leg’s; its handover decisions are the serving base station’s, its execution the UE’s)

  • nrConnectionControl: the NR leg’s ConnectionControlUe at a dual-stack UE

The D2D-specific submodules (d2dModeController, d2dModeSelection) are added by the RrcD2D subtype.

Rrcregistration: simu5g.stack.rrc.Registration (like IRegistration) Registration: RRC Registration — registers the node with the Binder, sets up the network interface, and joins m... IRegistration: Interface for the registration component of the ~IRrc layer: registers the node (and its stack le... Source: registration: <default("Registration")> like IRegistration { @display("p=100,80"); }registrationdrbTable: simu5g.stack.rrc.DrbTable (like IDrbTable) DrbTable: The node's data radio bearer configuration: one descriptor per bearer, holding the bearer's SDAP... IDrbTable: Interface for the data radio bearer configuration table of the RRC layer. Source: drbTable: <default("DrbTable")> like IDrbTable { @display("p=250,80"); }drbTablebearerManagement: simu5g.stack.rrc.BearerManagement (like IBearerManagement) BearerManagement: RRC Bearer Management — creates and tears down PDCP, RLC and MAC entities for data radio bearers. IBearerManagement: Interface for the bearer management component of the ~IRrc layer: creates and tears down the PDCP... Source: bearerManagement: <default("BearerManagement")> like IBearerManagement { @display("p=400,80"); }bearerManagementconnectionControl: simu5g.stack.rrc.ConnectionControlEnb (like IConnectionControl) ConnectionControlEnb: The control-plane entry point of a base station: the one module of the node that the control plan... IConnectionControl: Interface for the connection control of the ~IRrc layer: the node's control-plane entry point, th... Source: connectionControl: <default("ConnectionControlEnb")> like IConnectionControl if hasConnectionControl { @display("p=550,80"); }connectionControlnrConnectionControl: simu5g.stack.rrc.ConnectionControlUe (like IConnectionControl) ConnectionControlUe: UE-side component that manages handover decisions and procedures. IConnectionControl: Interface for the connection control of the ~IRrc layer: the node's control-plane entry point, th... Source: nrConnectionControl: <default("ConnectionControlUe")> like IConnectionControl if hasNrConnectionControl { @display("p=700,80"); }nrConnectionControl

Usage diagram

Inheritance diagram

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.

Known subclasses

Name

Type

Description

RrcD2D

compound module

D2D-capable variant of the Rrc layer. It adds the D2D mode controller (which coordinates RLC TX-queue draining across a mode switch) and, on the eNB/gNB side (hasD2DModeSelection==true), the periodic D2D mode selection module. Selected via ‘rrc.typename’ by the D2D-capable NICs.

Parameters

Name

Type

Default value

Description

interfaceTableModule

string

routingTableModule

string

hasConnectionControl

bool

false

hasNrConnectionControl

bool

false

Properties

Name

Value

Description

display

i=block/control

Unassigned submodule parameters

Name

Type

Default value

Description

registration.interfaceTableModule

string

registration.interfaceName

string

“cellular”

registration.routingTableModule

string

registration.binderModule

string

“binder”

registration.connectionControlModule

string

“^.connectionControl”

The node’s control-plane entry point (see Rrc), told about a multicast group join

registration.sessionType

string

“”

UE only: the type of the UE’s session (see LteUe): a UE created during the run gets an IPv4 default route through the NIC only on an IP session, and the NIC of an Ethernet session is an Ethernet port; set by the NIC

bearerManagement.binderModule

string

“binder”

To reach a peer’s BearerManagement on RLF

bearerManagement.connectionControlModule

string

“^.connectionControl”

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

bearerManagement.t311

double

0s

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

bearerManagement.t301

double

0.1s

RRC re-establishment (request -> complete) timer

bearerManagement.headerCompressedSize

int

-1B

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

bearerManagement.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.

bearerManagement.pdcpRelayEntityModuleType

string

“simu5g.stack.pdcp.PdcpRelayEntity”

bearerManagement.dualConnectivityEnabled

bool

false

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

bearerManagement.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)

bearerManagement.lteRlcUmEntityModuleType

string

“simu5g.stack.rlc.LteRlcUmEntity”

bearerManagement.lteRlcAmEntityModuleType

string

“simu5g.stack.rlc.LteRlcAmEntity”

bearerManagement.nrRlcUmEntityModuleType

string

“simu5g.stack.rlc.NrRlcUmEntity”

bearerManagement.nrRlcAmEntityModuleType

string

“simu5g.stack.rlc.NrRlcAmEntity”

bearerManagement.registrationModule

string

“^.registration”

Module references for accessing other stack layers

bearerManagement.drbTableModule

string

“^.drbTable”

bearerManagement.ip2nicModule

string

“^.^.ip2nic”

bearerManagement.handoverPacketHolderModule

string

“^.^.handoverPacketHolder”

Attachment-ledger push target (UE only)

bearerManagement.pdcpMuxModule

string

“^.^.pdcpMux”

bearerManagement.pdcpDcMuxModule

string

“^.^.pdcpDcMux”

bearerManagement.d2dModeControllerModule

string

“^.d2dModeController”

bearerManagement.rlcMuxModule

string

“^.^.rlcMux”

bearerManagement.nrRlcMuxModule

string

“^.^.nrRlcMux”

bearerManagement.macModule

string

“^.^.mac”

bearerManagement.nrMacModule

string

“^.^.nrMac”

bearerManagement.sdapModule

string

“^.^.sdap”

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

bearerManagement.qosFlowClassifierModule

string

“^.^.qosFlowClassifier”

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

connectionControl.binderModule

string

“binder”

connectionControl.bearerConfiguratorModule

string

“bearerConfigurator”

connectionControl.coreControlModule

string

“coreControl”

connectionControl.bearerManagementModule

string

“^.bearerManagement”

connectionControl.macModule

string

“^.^.mac”

connectionControl.handoverPacketHolderModule

string

“^.^.handoverPacketHolder”

connectionControl.gtpUserModule

string

“^.^.^.relay.gtpUser”

connectionControl.gtpUserX2Module

string

“^.^.^.gtpUserX2”

connectionControl.macNodeId

int

The base station’s node id; the NIC sets it from the node’s

connectionControl.gateway

string

“”

The node’s core network gateway, as its gateway parameter names it; ignored at a node not connected to a core network (a secondary node)

nrConnectionControl.dynamicCellAssociation

bool

false

nrConnectionControl.enableHandover

bool

false

Allows handovers in the UE

nrConnectionControl.isNr

bool

Whether this instance is associated with the NR or the LTE stack

nrConnectionControl.macNodeId

int

MacNodeId of the stack leg this controller belongs to (set by the NIC)

nrConnectionControl.sessionType

string

The type of the session the UE requests at connection setup (see LteUe), set by the NIC

nrConnectionControl.handoverLatency

double

50ms

Handover duration

nrConnectionControl.handoverDetachmentTime

double

handoverLatency > 0s ? handoverLatency/2 : 25ms

nrConnectionControl.handoverAttachmentTime

double

handoverLatency > 0s ? handoverLatency-handoverDetachmentTime : handoverDetachmentTime

nrConnectionControl.minRssiDefault

bool

true

Whether minRssi is taken from PhyPisaData instead of the minRssi parameter

nrConnectionControl.minRssi

double

-99.0dB

Configurable minimum threshold RSSI for attaching to an eNB (meaningful only if minRssiDefault==false)

nrConnectionControl.hysteresisFactor

double

10

nrConnectionControl.binderModule

string

“binder”

nrConnectionControl.macModule

string

“^.^.mac”

nrConnectionControl.bearerManagementModule

string

“^.bearerManagement”

nrConnectionControl.handoverPacketHolderModule

string

“^.^.handoverPacketHolder”

nrConnectionControl.feedbackGeneratorModule

string

“^.^.dlFbGen”

TODO or “^.^.nrDlFbGen”

nrConnectionControl.otherConnectionControlModule

string

“”

nrConnectionControl.hasCollector

bool

false

True when node has a collector module (ueCollector/nrUeCollector) for this PHY module

Source code

//
// RRC (Radio Resource Control) layer for LTE/NR networks.
//
// Contains functional submodules corresponding to RRC procedures:
//   - registration: registers the node with the Binder, sets up the interface
//   - drbTable: the configuration of the node's data radio bearers
//   - bearerManagement: sets up and tears down data radio bearers
//   - connectionControl: the node's control-plane entry point, which the control
//     plane of other nodes and the node's own data path talk to: ~ConnectionControlEnb
//     at a base station, ~ConnectionControlUe at a UE (the LTE leg's; its handover
//     decisions are the serving base station's, its execution the UE's)
//   - nrConnectionControl: the NR leg's ~ConnectionControlUe at a dual-stack UE
//
// The D2D-specific submodules (d2dModeController, d2dModeSelection) are added by
// the ~RrcD2D subtype.
//
module Rrc like IRrc
{
    parameters:
        @display("i=block/control");

        string interfaceTableModule;
        string routingTableModule;

        bool hasConnectionControl = default(false);
        bool hasNrConnectionControl = default(false);

        *.interfaceTableModule = default(absPath(this.interfaceTableModule));
        *.routingTableModule = default(absPath(this.routingTableModule));

    submodules:
        registration: <default("Registration")> like IRegistration {
            @display("p=100,80");
        }
        drbTable: <default("DrbTable")> like IDrbTable {
            @display("p=250,80");
        }
        bearerManagement: <default("BearerManagement")> like IBearerManagement {
            @display("p=400,80");
        }
        connectionControl: <default("ConnectionControlEnb")> like IConnectionControl if hasConnectionControl {
            @display("p=550,80");
        }
        nrConnectionControl: <default("ConnectionControlUe")> like IConnectionControl if hasNrConnectionControl {
            @display("p=700,80");
        }
}

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