Introduction
Connected Mode Mobility in 5G is known as a Handover, and opposed to Idle Mode Mobility where the UE decides when to reselect to a neighboring cell based on network provided configurations, Handovers are decided by the Radio Access Network. A UE in Idle Mode uses SIB2 to determine when the UE should measure for particular cells (Intra Frequency, Inter Frequency, or LTE), and SIBs 3, 4, and 5 provide configured neighbors with offsets, biases, and thresholds for defined neighbor cells.
For UE Connected Mode mobility, rather than using System Information, the RAN configures the UE with rules to send the network measurements based on different scenarios or Measurement Events.
- RRC Reconfiguration (Downlink – gNB to UE)
- Measurement Report (Uplink – UE to gNB)
The RRC Reconfiguration message provides the UE with measurement reporting criteria based on measurement events, the UE sends Measurement Reports to the gNB for the gNB to determine when the UE should handover from the source gNB (Current serving cell) to the target gNB (measured neighbor cell). Based on the measurement values provided by the UE, the source gNB will choose to conduct Handover preparation with target gNB, subsequently followed by Handover execution by sending an RRC Handover command to the UE, during the entire process the source and target gNB coordinate with the 5G Core to switch the user plane path incrementally before the target gNB becomes fully responsible for exchanging user plane data with the UE and the 5G Core.
Measurement Events
There are a list of measurement events defined for 5G. These measurement events are configured by the network and sent to the UE in the RRC Reconfiguration message.
- Event A1 (Serving becomes better than threshold)
- Used to cancel a handover that is in progress when the UE moves towards a better coverage area of its current serving cell.
- Event A2 (Serving becomes worse than threshold)
- Used to trigger a blind mobility handover since it does not involve neighbor measurements. It may also be used to trigger neighbor measurements.
- Event A3 (Neighbor becomes offset better than SpCell)
- Used to trigger a handover from the serving cell to a neighbor cell.
- Event A4 (Neighbor becomes better than threshold)
- Used to trigger a handover when the coverage of the serving cell is not the factor causing the handover, and is likely due to capacity issues.
- Event A5 (SpCell becomes worse than threshold1 and neighbor becomes better than threshold2)
- Used to trigger a handover when serving cell becomes worse than the defined threshold 1 and the neighbor cell becomes better than the defined threshold 2.
- Event A6 (Neighbour becomes offset better than SCell)
- Used in carrier aggregation scenarios
Depending on the event, there are certain configured parameters that influence the behavior and effectiveness of the defined event.
- Threshold
- Defines the UE measurement value that will trigger the configured event. The reported value is mapped to an RSRP dBm, RSRQ dB, or SINR dB value. For example, RSRP: 54 = -103 to -102
- Offset
- Defines the offset relative to the serving cells measurement. This signaled value is * .5 and is added to the serving cell measurement.
- Hysterisis
- Defines the value added or subtracted from the serving or neighbor cell depending on the event and whether the event is being triggered or cancelled.
- Time-to-Trigger
- Time that defined event criteria must be met in order for the UE to execute a Measurement Report (event triggered).
- Report Interval
- Time interval between Measurement Reports if the reportAmount exceeds 1.
- Report Amount
- Number of Measurement Reports the UE will generate.
reportConfigId : 1
reportConfig : reportConfigNR
reportConfigNR
reportType : eventTriggered
eventTriggered
eventId : eventA2
a2-Threshold
MeasTriggerQuantity : rsrp
rsrp : 54
reportOnLeave : false
hysteresis : 4
timeToTrigger : ms320
rsType : ssb
reportInterval : ms5120
reportAmount : r1
reportQuantityCell
rsrp : true
rsrq : true
sinr : true
maxReportCells : 1
includeBeamMeasurements : false

reportConfigId : 2
reportConfig : reportConfigNR
reportConfigNR
reportType : eventTriggered
eventTriggered
eventId : eventA3
a3-Offset
MeasTriggerQuantityOffset : rsrp
rsrp : 6
reportOnLeave : false
hysteresis : 2
timeToTrigger : ms640
useAllowedCellList : false
rsType : ssb
reportInterval : ms480
reportAmount : infinity
reportQuantityCell
rsrp : true
rsrq : true
sinr : true
maxReportCells : 1
includeBeamMeasurements : false
reportAddNeighMeas: setup

reportConfigId : 3
reportConfig : reportConfigNR
reportConfigNR
reportType : eventTriggered
eventTriggered
eventId : eventA1
a1-Threshold
MeasTriggerQuantity : rsrp
rsrp : 54
reportOnLeave : false
hysteresis : 4
timeToTrigger : ms320
rsType : ssb
reportInterval : ms5120
reportAmount : r1
reportQuantityCell
rsrp : true
rsrq : true
sinr : true
maxReportCells : 1
includeBeamMeasurements : false

reportConfigId : 5
reportConfig : reportConfigNR
reportConfigNR
reportType : eventTriggered
eventTriggered
eventId : eventA5
a5-Threshold1
MeasTriggerQuantity : rsrp
rsrp : 41
a5-Threshold2
MeasTriggerQuantity : rsrp
rsrp : 51
reportOnLeave : false
hysteresis : 2
timeToTrigger : ms320
useAllowedCellList : false
rsType : ssb
reportInterval : ms480
reportAmount : infinity
reportQuantityCell
rsrp : true
rsrq : true
sinr : true
maxReportCells : 1
includeBeamMeasurements : false
reportAddNeighMeas: setup

Report Configurations can be added (reportConfigToAddModList
) or removed (reportConfigToRemoveList) with additional RRC Reconfiguration messages.
Measurement Objects
Measurement objects are used to notify the UE of the time and frequency locations of SSB to measure.
measConfig identifies a list of measObjects, where measObjectNR are 5G SSBs. The following two examples are sent in different RRC Reconfiguration messages where measObjects can be added (measObjectToAddModList) or removed (measObjectToRemoveList).
measConfig
measObjectToAddModList
MeasObjectToAddModList :
[0 ] :
measObjectId : 1
measObject : measObjectNR
measObjectNR
ssbFrequency : 126510
ssbSubcarrierSpacing : kHz15
smtc1
periodicityAndOffset : sf20
sf20 : 0
duration : sf1
referenceSignalConfig
ssb-ConfigMobility
deriveSSB-IndexFromCell : true
quantityConfigIndex : 1
offsetMO
freqBandIndicatorNR : 71
measConfig
measObjectToAddModList
MeasObjectToAddModList :
[0 ] :
measObjectId : 2
measObject : measObjectNR
measObjectNR
ssbFrequency : 126490
ssbSubcarrierSpacing : kHz15
smtc1
periodicityAndOffset : sf20
sf20 : 0
duration : sf1
referenceSignalConfig
ssb-ConfigMobility
deriveSSB-IndexFromCell : true
quantityConfigIndex : 1
offsetMO
freqBandIndicatorNR : 71
Measurement Identifiers
Measurement Identifiers correlate a Measurement Event with a Measurement Object. The UE sends a Measurement Report to the gNB with the defined measId. Measurement Identifiers can be sent in multiple RRC Reconfiguration messages and can be added (measIdToAddModList) or removed (measIdToRemoveList).
measIdToAddModList
MeasIdToAddModList :
[0 ] :
measId : 1
measObjectId : 1
reportConfigId : 1
[1 ] :
measId : 2
measObjectId : 1
reportConfigId : 2
measIdToAddModList
MeasIdToAddModList :
[0 ] :
measId : 3
measObjectId : 1
reportConfigId : 3
[1 ] :
measId : 4
measObjectId : 1
reportConfigId : 4
[2 ] :
measId : 5
measObjectId : 2
reportConfigId : 5
The following diagram shows the relationship between measId, measObject, and reportConfig for the given configurations.

Measurement Reports
Measurement Reports are triggered when the UE meets the Measurement Event trigger.
In this example, the UE begins being served on SSB NR-ARFCN 126510, PCI 268.
The first Measurement Report sent by the UE in this scenario is for EventA2. The UE references measId: 1 in this Measurement Report which correlates to measObjectId: 1 for SSB NR-ARFCN 126510 and reportConfigId: 1 for eventA2.
The Measurements for the serving cell are
- RSRP -107
- RSRQ -15
- SINR -2
The eventA2 threshold is -103, so the event is triggered since the UE measures the serving cell at -107 dBm RSRP. Consequently, the UE may be triggered to conduct a blind handover, or more likely in this case, measure neighbors for potential handover.
measurementReport
measResults
measId : 1
measResultServingMOList
MeasResultServMOList :
[0 ] :
servCellId : 0
measResultServingCell
physCellId : 268
measResult
cellResults
resultsSSB-Cell
rsrp : 50
rsrq : 57
sinr : 42
NR RRC A2 Event Serving becomes worse than threshold.
Serving.
RSRP: (50) -107 dBm
RSRQ: (57) -15.0 dBm
SINR: (42) -2.0 dB.
Threshold.
RSRP: (54) -103 dBm.


Following eventA2, the UE sends another Measurement Report referencing measId: 2 which correlates to measObject: 1 serving cell SSB NR-ARFCN 126510 PCI 268, and reportConfigId: 2 for eventA3.
The UE measures the serving cell at
- RSRP -116
- RSRQ -21
- SINR -9
And the UE measures the neighbor PCI 114 at
- RSRP -107
- RSRQ -14
- SINR -.5
measurementReport
measResults
measId : 2
measResultServingMOList
MeasResultServMOList :
[0 ] :
servCellId : 0
measResultServingCell
physCellId : 268
measResult
cellResults
resultsSSB-Cell
rsrp : 41
rsrq : 45
sinr : 28
measResultNeighCells
measResultNeighCells : measResultListNR
measResultListNR
MeasResultListNR :
[0 ] :
physCellId : 114
measResult
cellResults
resultsSSB-Cell
rsrp : 50
rsrq : 59
sinr : 45
NR RRC A3 Event Neighbor becomes offset better than SpCell. Serving.
RSRP: (41) -116 dBm
RSRQ: (45) -21.0 dBm
SINR: (28) -9.0 dB.
Neighbor.
NR-ARFCN: 126510,
PCI: 114
RSRP: (50) -107 dBm
RSRQ: (59) -14.0 dBm
SINR: (45) -0.5 dB.


Handover Preparation

The gNB receives the Measurement Report and makes the decision to conduct an Intra Frequency Handover from PCI 268 to PCI 114. This type of handover is known as an Xn based handover, where the UE changes serving cells from source gNB to target gNB via the Xn interface that connects multiple gNB. The Xn Control Plane uses the Xn Application Protocol (XnAP) and the Xn User Plane uses GTP-U.

XnAP Handover Request (Source gNB to Target gNB)
Unfortunately I do not have any XnAP logs to show the messaging between the source gNB and the target gNB.

XnAP Handover Request Acknowledge (Target gNB to Source gNB)
The target gNB receives the Handover Request message and conducts Admission Control to ensure that the gNB can provide resources to the UE upon handover. The target gNB then sends the Handover Request Acknowledge message to the source gNB over the Xn interface, completing the Handover Preparation phase.
The Handover Request Acknowledge message gives the source gNB information for forwarding user plane data to the target gNB by providing GTP-U TEID and IP Addresses. The message also carries the “Target NG-RAN Node to Source NG-RAN Node Transparent Container” which includes the HandoverCommand message. The HandoverCommand message encapsulates the RRC Reconfiguration message that will be sent from the source gNB to the UE.
Handover Execution

RRC Reconfiguration (Source gNB to UE)
The RRC Reconfiguration message is sent to the UE from the source gNB, where the spCellConfig specifies “reconfigurationWithSync” for the handover procedure to the target gNB. This message also includes Random Access parameters to be used during the handover with the target gNB.
rrcReconfiguration
spCellConfig
reconfigurationWithSync
spCellConfigCommon
physCellId : 114
downlinkConfigCommon
frequencyInfoDL
absoluteFrequencySSB : 126510
frequencyBandList
MultiFrequencyBandListNR :
[0 ] : 71
absoluteFrequencyPointA : 125478
scs-SpecificCarrierList :
[0 ] :
offsetToCarrier : 0
subcarrierSpacing : kHz15
carrierBandwidth : 79
initialDownlinkBWP
genericParameters
locationAndBandwidth : 21450
subcarrierSpacing : kHz15
pdcch-ConfigCommon
SetupRelease : setup
Setup
controlResourceSetZero : 7
searchSpaceZero : 8
NR 5G ML1 Search HO Acquisition Request
Target ARFCN : 126510
Target PCI : 114
Band : n71
SSB Bitmask : 0x4000000000000000
HO Type : Nr2nr Non Blind Ho Skip Acq
Sub-carrier Spacing : 15 kHz
Duplex Mode : FDD
SSB period : 20 ms
Max SSB Number : 4
XnAP SN Status Transfer (Source gNB to Target gNB)
Immediately following the transmission of the RRC Reconfiguration to the UE, the source gNB sends the SN Status Transfer message to the target gNB. This message provides PDCP sequence number information. Now the source gNB can forward downlink data to the target gNB to be buffered.
Random Access & RRC Reconfiguration Complete (UE to Target gNB)
The UE will conduct Random Access using the Contention Free Random Access method, which is a 2-step RACH. Once the procedure is successful, the UE will send the RRC Reconfiguration Complete message. The UE is now connected to the target gNB, though the target gNB still receives forwarded downlink data from the source gNB, but sends uplink data from the UE to the UPF. This concludes the Handover Execution phase.
NR 5G MAC RACH Trigger
RachTrigger :
[0 ] :
Frame : 259
Sub-Frame : 3
Slot : 0
SCS : 0
CRNTI : 26130
RACH Reason : HANDOVER
Carrier ID : 0
First Active UL BWP : 1
Active DL BWP : 1
UL RACH Rsrc. Present : 1
DL RACH Rsrc. Present : 1
Duplex Mode : FDD
Connection Type : SA
RACH Contention : MIXED_MODE
Msg1 SCS : 1.25 kHz
Msg1 FDM : 1
Msg1 Freq Start : 3
PRACH Config Index : 44
NR 5G MAC RACH Attempt
Num Attempt : 1
Power Ramping Count : 1
SSB ID : 1
CSI RS ID : 0
Carrier ID : 0
RACH Result : Success
Contention Type : Contention Free
RACH Msg Bitmask : 0x03
Msg1 SCS : 1.25 kHz
Msg2Scs : 15 kHz
UL BWP SCS : 15 kHz
Power Limited : 0
RACH Msg1
System Time
Frame : 260
SubFrame : 1
Slot : 0
SCS : 30 KHz
Symbol Start : 0
Preamble Format : Format1
PRACH Config : 44
Uroot : 553
RA ID : 16
FDM : 0
Cyclic Shift V : 167
N_Cs : 167
RA RNTI : 15
Regular path loss : 130
RAR Window Start SFN
Frame : 260
SubFrame : 4
Slot : 0
SCS : 15 KHz
RAR Window End SFN
Frame : 261
SubFrame : 4
Slot : 0
SCS : 15 KHz
Backoff Duration : 0
RACH Msg2
SFN
Frame : 260
SubFrame : 6
Slot : 0
SCS : 15 KHz
Max Backoff Duration : 0
T-RNTI : 26130
TA Value : 15
Result : (1) RAPID_MATCH
SCS : (0) 15 KHz
RAID Received : 16
NR 5G RRC Configuration Info
RRC Controller State : Connected
Connectivity Mode : SA
Num Active SRBs : 2
Num Active DRBs : 2
MN MCG DRB IDs :
2
1
NR 5G Serving Cell Info :
[0 ] :
CC ID : 0
Cell ID : 114
DL ARFCN : 126900
UL ARFCN : 136100
SsbArfcn : 126510
Band : 71
Band Type : Sub6
DL Carrier Bandwidth : BW 15 MHz
UL Carrier Bandwidth : BW 15 MHz
SCS : 15Khz
DL Max MIMO : 2
UL Max MIMO : 1
Radio Bearer Info :
[0 ] :
RB ID : 1
Termination Point : MN
DL RB Type : SRB
DL RB Path : NR
DL ROCH Enabled : False
DL Cipher Algorithm : AES (NEA2)
DL Integrity Algorithm : AES (NEA2)
UL RB Type : SRB
UL RB Path : NR
UL Primary Path : None
UL ROCH Enabled : False
UL Cipher Algorithm : AES (NEA2)
UL Integrity Algorithm : AES (NEA2)
UL PDCP Dup Activated : False
[1 ] :
RB ID : 2
Termination Point : MN
DL RB Type : SRB
DL RB Path : NR
DL ROCH Enabled : False
DL Cipher Algorithm : AES (NEA2)
DL Integrity Algorithm : AES (NEA2)
UL RB Type : SRB
UL RB Path : NR
UL Primary Path : None
UL ROCH Enabled : False
UL Cipher Algorithm : AES (NEA2)
UL Integrity Algorithm : AES (NEA2)
UL PDCP Dup Activated : False
[2 ] :
RB ID : 1
Termination Point : MN
DL RB Type : DRB
DL RB Path : NR
DL ROCH Enabled : False
DL Cipher Algorithm : AES (NEA2)
DL Integrity Algorithm : AES (NEA2)
UL RB Type : DRB
UL RB Path : NR
UL Primary Path : None
UL ROCH Enabled : False
UL Cipher Algorithm : AES (NEA2)
UL Integrity Algorithm : AES (NEA2)
UL PDCP Dup Activated : False
[3 ] :
RB ID : 2
Termination Point : MN
DL RB Type : DRB
DL RB Path : NR
DL ROCH Enabled : False
DL Cipher Algorithm : AES (NEA2)
DL Integrity Algorithm : AES (NEA2)
UL RB Type : DRB
UL RB Path : NR
UL Primary Path : None
UL ROCH Enabled : False
UL Cipher Algorithm : AES (NEA2)
UL Integrity Algorithm : AES (NEA2)
UL PDCP Dup Activated : False
Handover Completion

The Handover Completion phase is a backend procedure so that the target gNB (now the serving cell) can exchange uplink and downlink data with the UPF without the need for downlink data being forwarded from the previous serving cell.
Once the connection between the target gNB and the UPF are setup, the target gNB sends the source gNB the UE Context Release message, which will allow the source gNB to free the resources that had been allocated to the UE.


Leave a Reply