RrcD2D

Package: simu5g.stack.d2d.rrc

compound module RrcD2D

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.

RrcD2Dregistration: simu5g.stack.rrc.Registration (like IRegistration) inherited from Rrc 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) inherited from Rrc 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) inherited from Rrc 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) inherited from Rrc 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) inherited from Rrc 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"); }nrConnectionControld2dModeController: simu5g.stack.d2d.rrc.D2DModeController (like ID2DModeController) D2DModeController: Controls D2D mode switching flow control. ID2DModeController: Interface for the D2D mode controller of the ~IRrc layer: performs the D2D mode switch of a peeri... Source: d2dModeController: <default("D2DModeController")> like ID2DModeController { @display("p=850,80"); }d2dModeControllerd2dModeSelection: simu5g.stack.d2d.rrc.D2dModeSelectionBase (like ID2DModeSelection) D2dModeSelectionBase: Base module for D2D Mode Selection modules. ID2DModeSelection: Interface for the D2D Mode Selection module Source: d2dModeSelection: <default("D2dModeSelectionBase")> like ID2DModeSelection if hasD2DModeSelection { @display("p=850,160"); }d2dModeSelection

Usage diagram

Inheritance diagram

Extends

Name

Type

Description

Rrc

compound module

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

Parameters

Name

Type

Default value

Description

interfaceTableModule

string

routingTableModule

string

hasConnectionControl

bool

false

hasNrConnectionControl

bool

false

hasD2DModeSelection

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

d2dModeSelection.modeSelectionPeriod

double

1s

d2dModeSelection.binderModule

string

“binder”

d2dModeSelection.d2dBinderModule

string

“d2dBinder”

The network’s D2dBinder, which holds the D2D state

d2dModeSelection.macModule

string

“^.^.mac”

d2dModeSelection.connectionControlModule

string

“^.connectionControl”

The node’s control-plane entry point, which knows the UEs handing over

Source code

//
// 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.
//
module RrcD2D extends Rrc
{
    parameters:
        bool hasD2DModeSelection = default(false);

    submodules:
        d2dModeController: <default("D2DModeController")> like ID2DModeController {
            @display("p=850,80");
        }
        d2dModeSelection: <default("D2dModeSelectionBase")> like ID2DModeSelection if hasD2DModeSelection {
            @display("p=850,160");
        }
}

File: src/simu5g/stack/d2d/rrc/RrcD2D.ned