ConnectionControlUe

Package: simu5g.stack.rrc

ConnectionControlUe

simple module

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.

Inheritance diagram

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.

Known subclasses

Name Type Description
ConnectionControlUeD2D 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
display i=block/control
class ConnectionControlUe

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);

}
File: src/simu5g/stack/rrc/ConnectionControlUe.ned