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.
Usage diagram¶
Inheritance diagram¶
Extends¶
Name |
Type |
Description |
|---|---|---|
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");
}
}