Rrc

Package: simu5g.stack.rrc

Rrc

compound module

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
  • handoverController: manages handover decisions and procedures (UE only)

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

registration : like IRegistration

Registration: RRC Registration — registers the node with the Binder, sets up the network interface, and joins...

IRegistration: Interface for the registration component of the ~IRrc layer: registers the node (and its stack...

Source:
registration: <default("Registration")> like IRegistration {
    @display("p=100,80");
} 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");
} 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");
} handoverController : like IHandoverController

HandoverController: UE-side component that manages handover decisions and procedures.

IHandoverController: Interface for the handover controller of the ~IRrc layer: the UE-side component that tracks the...

Source:
handoverController: <default("HandoverController")> like IHandoverController if hasHandoverController {
    @display("p=550,80");
} nrHandoverController : like IHandoverController

HandoverController: UE-side component that manages handover decisions and procedures.

IHandoverController: Interface for the handover controller of the ~IRrc layer: the UE-side component that tracks the...

Source:
nrHandoverController: <default("HandoverController")> like IHandoverController if hasNrHandoverController {
    @display("p=700,80");
}

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
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
hasHandoverController bool false
hasNrHandoverController bool false

Properties

Name Value Description
display i=block/control

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
//   - handoverController: manages handover decisions and procedures (UE only)
//
// 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 hasHandoverController = default(false);
        bool hasNrHandoverController = 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");
        }
        handoverController: <default("HandoverController")> like IHandoverController if hasHandoverController {
            @display("p=550,80");
        }
        nrHandoverController: <default("HandoverController")> like IHandoverController if hasNrHandoverController {
            @display("p=700,80");
        }
}
File: src/simu5g/stack/rrc/Rrc.ned