ConnectionControlUe¶
Package: simu5g.stack.rrc
simple module ConnectionControlUe
UE-side component that manages handover decisions and procedures. Receives RSSI measurements from the PHY layer based on broadcast frames, and triggers handover when a better serving cell is detected.
Usage diagram¶
Inheritance diagram¶
Used in compound modules¶
Name |
Type |
Description |
|---|---|---|
compound module |
RRC (Radio Resource Control) layer for LTE/NR networks. |
Known subclasses¶
Name |
Type |
Description |
|---|---|---|
simple module |
D2D-capable variant of the ConnectionControlUe: the leg reports itself D2D-capable when it connects to a base station (if its PHY is), which is where the D2D side of its handovers is handled (ConnectionControlEnbD2D), and a torn-down sidelink bearer’s DRB identity returns to the network-wide sidelink pool (D2dBinder). Selected via ‘connectionControl.typename’ / ‘nrConnectionControl.typename’ by the D2D-capable UE NICs. |
Parameters¶
Name |
Type |
Default value |
Description |
|---|---|---|---|
dynamicCellAssociation |
bool |
false |
|
enableHandover |
bool |
false |
Allows handovers in the UE |
isNr |
bool |
Whether this instance is associated with the NR or the LTE stack |
|
macNodeId |
int |
MacNodeId of the stack leg this controller belongs to (set by the NIC) |
|
sessionType |
string |
The type of the session the UE requests at connection setup (see LteUe), set by the NIC |
|
handoverLatency |
double |
50ms |
Handover duration |
handoverDetachmentTime |
double |
handoverLatency > 0s ? handoverLatency/2 : 25ms |
|
handoverAttachmentTime |
double |
handoverLatency > 0s ? handoverLatency-handoverDetachmentTime : handoverDetachmentTime |
|
minRssiDefault |
bool |
true |
Whether minRssi is taken from PhyPisaData instead of the minRssi parameter |
minRssi |
double |
-99.0dB |
Configurable minimum threshold RSSI for attaching to an eNB (meaningful only if minRssiDefault==false) |
hysteresisFactor |
double |
10 |
|
binderModule |
string |
“binder” |
|
macModule |
string |
“^.^.mac” |
|
bearerManagementModule |
string |
“^.bearerManagement” |
|
handoverPacketHolderModule |
string |
“^.^.handoverPacketHolder” |
|
feedbackGeneratorModule |
string |
“^.^.dlFbGen” |
TODO or “^.^.nrDlFbGen” |
otherConnectionControlModule |
string |
“” |
|
hasCollector |
bool |
false |
True when node has a collector module (ueCollector/nrUeCollector) for this PHY module |
Properties¶
Name |
Value |
Description |
|---|---|---|
class |
ConnectionControlUe |
|
display |
i=block/control |
Signals¶
Name |
Type |
Unit |
Description |
|---|---|---|---|
servingCell |
Statistics¶
Name |
Title |
Source |
Record |
Unit |
Interpolation Mode |
Description |
|---|---|---|---|---|---|---|
servingCell |
ID of the serving cell for the UE |
servingCell |
vector |
Source code¶
//
// UE-side component that manages handover decisions and procedures.
// Receives RSSI measurements from the PHY layer based on broadcast frames,
// and triggers handover when a better serving cell is detected.
//
simple ConnectionControlUe like IConnectionControl
{
parameters:
@display("i=block/control");
@class(ConnectionControlUe);
bool dynamicCellAssociation = default(false);
// Allows handovers in the UE
bool enableHandover = default(false);
// Whether this instance is associated with the NR or the LTE stack
bool isNr;
// MacNodeId of the stack leg this controller belongs to (set by the NIC)
int macNodeId;
string sessionType; // The type of the session the UE requests at connection setup (see ~LteUe), set by the NIC
// Handover duration
double handoverLatency @unit(s) = default(50ms);
double handoverDetachmentTime @unit(s) = default(handoverLatency > 0s ? handoverLatency/2 : 25ms);
double handoverAttachmentTime @unit(s) = default(handoverLatency > 0s ? handoverLatency-handoverDetachmentTime : handoverDetachmentTime);
// Whether minRssi is taken from PhyPisaData instead of the minRssi parameter
bool minRssiDefault = default(true);
// Configurable minimum threshold RSSI for attaching to an eNB (meaningful only if minRssiDefault==false)
double minRssi @unit("dB") = default(-99.0dB);
double hysteresisFactor = default(10);
string binderModule = default("binder");
string macModule = default("^.^.mac");
string bearerManagementModule = default("^.bearerManagement");
string handoverPacketHolderModule = default("^.^.handoverPacketHolder");
string feedbackGeneratorModule = default("^.^.dlFbGen"); // TODO or "^.^.nrDlFbGen"
string otherConnectionControlModule = default("");
bool hasCollector = default(false); // True when node has a collector module (ueCollector/nrUeCollector) for this PHY module
@signal[servingCell];
@statistic[servingCell](title="ID of the serving cell for the UE"; unit=""; source="servingCell"; record=vector);
}