4G/LTE - Multi Cell |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
LTE to LTE Handover
The simplest way to define the word 'handover' would be "chaging the partner". Who is chaning the partner ? I meant "UE (Mobile Phone)". Who is the parter in this case ? I meant "Cell". Therefore "Handover" is the process in which UE changes the cell. In this note, we will look into the details of LTE to LTE handover procedure.
Procedure of Handover (LTE to LTE handover)
Overall logic is simple and this process are the same (or at least very similar) in every technology. i) A UE is in connection with a cell (let's call this 'Cell A'). ii) Now a situation that requires handover happened. iii) Network send "signal quality measurement" command to UE for the garget cell ('Cell B') to which it will handover to. iv) UE performance the measurement and report the "measurement result" to the network via the current cell (Cell A). v) Network evaluate the measurement result reported by UE. vi) If the evaluation result turns out to be good for handover, Network send 'Change Cell' command to UE. vii) UE perform the cell change process. viii) If cell change process is completed properly, UE send 'cell change completion' message to the network via the target cell (Cell B).
I used very generic term e.g, "signal quality measurement command", "measurement result", "Change Cell Command", "Cell Change Completion Message" etc. These generic commands can be translated to a specific jargon for each technology. For example, if I translate these for UMTS, they would be as follows : "Signal quality measurement command" ==> Measurement Control "Measurement Result" ==> Measurement Report "Change Cell Command" ==> Physical Channel Reconfiguration or ActiveSetUpdate "Cell Change Compeletion Message ==> Physical Channel Reconfiguration Complete or ActiveSetUpdateComplete
If you translate them into LTE jargon, they will be as follows. "Signal quality measurement command" ==> RRC Connection Reconfiguration "Measurement Result" ==> Measurement Report "Change Cell Command" ==> RRC Connection Reconfiguration "Cell Change Compeletion Message ==> RRC Connection Reconfiguration Complete
You may noticed that LTE is using the same message called "RRC Connection Reconfiguration" both for "Signal quality measurement command" and "Change Cell Command". How UE can tell whether it means "Signal quality measurement command" or "Change Cell Command" ?
Good question ! You will see the answer later.
Then you may have whole lots of questions. It is very good. The more questions you have, the more information you will get through this page.. (not now, in the future -: ) Following is a set of my personal questions. i) you talked about "Signal Quality Measurement". What kind of signal quality UE has to measure ? Would it be a certain absolute value ? or a some relative value with reference to some other value ? or is it a special event changes ? ii) How much time I can leave the current cell to perform the measurement for target cell ? (If the leave too long from the current cell to measure target cell, the call would drop. But if this time is too short, UE would not get correct measurement values). iii) What if UE failed to performe the measurement or fail to find the target cell ? iv) you talked about "Change Cell", how UE can change cell ? Just cut the connection with the current cell and reconnect to the target cell ? or is there any specific procedure ? v) Cutting the connection from the current cell will be easy, but how can UE reconnect to target cell ? vi) What if UE failed to reconnect to target cell after he cut off the connection with the current cell ?
This list would get longer and longer.
Now let's jump into detailed technical aspects of LTE handover. Following is the overall and simplest form of LTE-LTE handover procedure. (This sequence is based on 36.523 TC 8.2.4.2 and I modified the sequence a little bit for clear/easy understanding, hopefully -:). It means this is mainly for UE side aspect of Handover process.
Now let's dig into some of the critical steps of this handover process. I will start with radio message for these critical steps and put additional comments as time goes a long.
RRC Connection Reconfiguration for Target Cell Measurement (Step 11)
I will add more comments later, but for now let's just look into the contents of this message. As you see in the parts marked in red, most part of this message about measurement.
Actual message for the measurement would not be as complicated as this one (may be longer due to the long list of cells to be measured), but I enabled almost every information elements for the reference. Especially understanding the Quantity Configuration parameters would take very long for you to understand in details and would be the main source of problems you will have in field test and field troubleshoot.
DL-DCCH-Message ::= SEQUENCE +-message ::= CHOICE [c1] +-c1 ::= CHOICE [rrcConnectionReconfiguration] +-rrcConnectionReconfiguration ::= SEQUENCE +-rrc-TransactionIdentifier ::= INTEGER (0..3) [0] +-criticalExtensions ::= CHOICE [c1] +-c1 ::= CHOICE [rrcConnectionReconfiguration-r8] +-rrcConnectionReconfiguration-r8 ::= SEQUENCE [100000] +-measConfig ::= SEQUENCE [01010111111] OPTIONAL:Exist | +-measObjectToRemoveList ::= SEQUENCE OF OPTIONAL:Omit | +-measObjectToAddModList ::= SEQUENCE OF SIZE(1..maxObjectId[32]) [1] | | +-MeasObjectToAddMod ::= SEQUENCE | | +-measObjectId ::= INTEGER (1..maxObjectId[32]) [1] | | +-measObject ::= CHOICE [measObjectEUTRA] | | +-measObjectEUTRA ::= SEQUENCE [100000] | | +-carrierFreq ::= INTEGER (0..maxEARFCN[65535]) [6300] | | +-allowedMeasBandwidth ::= ENUMERATED [mbw25] | | +-presenceAntennaPort1 ::= BOOLEAN [FALSE] | | +-neighCellConfig ::= BIT STRING SIZE(2) [01] | | +-offsetFreq ::= ENUMERATED [dB0] OPTIONAL:Exist | | +-cellsToRemoveList ::= SEQUENCE OF OPTIONAL:Omit | | +-cellsToAddModList ::= SEQUENCE OF OPTIONAL:Omit | | +-blackCellsToRemoveList ::= SEQUENCE OF OPTIONAL:Omit | | +-blackCellsToAddModList ::= SEQUENCE OF OPTIONAL:Omit | | +-cellForWhichToReportCGI ::= INTEGER OPTIONAL:Omit | +-reportConfigToRemoveList ::= SEQUENCE OF OPTIONAL:Omit | +-reportConfigToAddModList ::= SEQUENCE OF SIZE(1..maxReportConfigId[32]) [1] | | +-ReportConfigToAddMod ::= SEQUENCE | | +-reportConfigId ::= INTEGER (1..maxReportConfigId[32]) [1] | | +-reportConfig ::= CHOICE [reportConfigEUTRA] | | +-reportConfigEUTRA ::= SEQUENCE | | +-triggerType ::= CHOICE [event] | | | +-event ::= SEQUENCE | | | +-eventId ::= CHOICE [eventA3] | | | | +-eventA3 ::= SEQUENCE | | | | +-a3-Offset ::= INTEGER (-30..30) [0] | | | | +-reportOnLeave ::= BOOLEAN [FALSE] | | | +-hysteresis ::= INTEGER (0..30) [0] | | | +-timeToTrigger ::= ENUMERATED [ms640] | | +-triggerQuantity ::= ENUMERATED [rsrp] | | +-reportQuantity ::= ENUMERATED [both] | | +-maxReportCells ::= INTEGER (1..maxCellReport[8]) [1] | | +-reportInterval ::= ENUMERATED [ms1024] | | +-reportAmount ::= ENUMERATED [r1] | +-measIdToRemoveList ::= SEQUENCE OF OPTIONAL:Omit | +-measIdToAddModList ::= SEQUENCE OF SIZE(1..maxMeasId[32]) [1] OPTIONAL:Exist | | +-MeasIdToAddMod ::= SEQUENCE | | +-measId ::= INTEGER (1..maxMeasId[32]) [1] | | +-measObjectId ::= INTEGER (1..maxObjectId[32]) [1] | | +-reportConfigId ::= INTEGER (1..maxReportConfigId[32]) [1] | +-quantityConfig ::= SEQUENCE [1111] OPTIONAL:Exist | | +-quantityConfigEUTRA ::= SEQUENCE [11] OPTIONAL:Exist | | | +-filterCoefficientRSRP ::= ENUMERATED [fc0] OPTIONAL:Exist | | | +-filterCoefficientRSRQ ::= ENUMERATED [fc0] OPTIONAL:Exist | | +-quantityConfigUTRA ::= SEQUENCE [1] OPTIONAL:Exist | | | +-measQuantityUTRA-FDD ::= ENUMERATED [cpich-RSCP] | | | +-measQuantityUTRA-TDD ::= ENUMERATED [pccpch-RSCP] | | | +-filterCoefficient ::= ENUMERATED [fc0] OPTIONAL:Exist | | +-quantityConfigGERAN ::= SEQUENCE [1] OPTIONAL:Exist | | | +-measQuantityGERAN ::= ENUMERATED [rssi] | | | +-filterCoefficient ::= ENUMERATED [fc0] OPTIONAL:Exist | | +-quantityConfigCDMA2000 ::= SEQUENCE OPTIONAL:Exist | | +-measQuantityCDMA2000 ::= ENUMERATED [pilotStrength] | +-measGapConfig ::= CHOICE [release] OPTIONAL:Exist | | +-release ::= NULL | +-s-Measure ::= INTEGER (0..97) [0] OPTIONAL:Exist | +-preRegistrationInfoHRPD ::= SEQUENCE [11] OPTIONAL:Exist | | +-preRegistrationAllowed ::= BOOLEAN [FALSE] | | +-preRegistrationZoneId ::= INTEGER (0..255) [0] OPTIONAL:Exist | | +-secondaryPreRegistrationZoneIdList ::= SEQUENCE OF SIZE(1..2) [1] | | +-PreRegistrationZoneIdHRPD ::= INTEGER (0..255) [0] | +-speedStatePars ::= CHOICE [setup] OPTIONAL:Exist | +-setup ::= SEQUENCE | +-mobilityStateParameters ::= SEQUENCE | | +-t-Evaluation ::= ENUMERATED [s30] | | +-t-HystNormal ::= ENUMERATED [s30] | | +-n-CellChangeMedium ::= INTEGER (1..16) [1] | | +-n-CellChangeHigh ::= INTEGER (1..16) [1] | +-timeToTrigger-SF ::= SEQUENCE | +-sf-Medium ::= ENUMERATED [oDot25] | +-sf-High ::= ENUMERATED [oDot25] +-mobilityControlInfo ::= SEQUENCE OPTIONAL:Omit +-dedicatedInfoNASList ::= SEQUENCE OF OPTIONAL:Omit +-radioResourceConfigDedicated ::= SEQUENCE OPTIONAL:Omit +-securityConfigHO ::= SEQUENCE OPTIONAL:Omit +-nonCriticalExtension ::= SEQUENCE OPTIONAL:Omit
RRC Connection Reconfiguration for Cell Change (Step 14)
I will add more comments later, but for now let's just look into the contents of this message. As you see in the parts marked in red, most part of this message about measurement. As you see in the part marked red, major part of this message is 'mobilityControlInfo' IE and 'securityConfigHO'.
'mobilityControlInfo' tells UE about the frequency of target cell and various physical channel configuration and RACH procedure information about the target cell. In short, this IE (information element) carries the most of SIB2 information of target cell.
+-c1 ::= CHOICE [rrcConnectionReconfiguration-r8] +-rrcConnectionReconfiguration-r8 ::= SEQUENCE [010110] +-measConfig ::= SEQUENCE OPTIONAL:Omit +-mobilityControlInfo ::= SEQUENCE [1000] OPTIONAL:Exist | +-targetPhysCellId ::= INTEGER (0..503) [2] | +-carrierFreq ::= SEQUENCE [1] OPTIONAL:Exist | | +-dl-CarrierFreq ::= INTEGER (0..maxEARFCN[65535]) [6300] | | +-ul-CarrierFreq ::= INTEGER (0..maxEARFCN[65535]) [24300] OPTIONAL:Exist | +-carrierBandwidth ::= SEQUENCE OPTIONAL:Omit | +-additionalSpectrumEmission ::= INTEGER OPTIONAL:Omit | +-t304 ::= ENUMERATED [ms1000] | +-newUE-Identity ::= BIT STRING SIZE(16) [0001000000110100] | +-radioResourceConfigCommon ::= SEQUENCE [100010000] | | +-rach-ConfigCommon ::= SEQUENCE OPTIONAL:Exist | | | +-preambleInfo ::= SEQUENCE [0] | | | | +-numberOfRA-Preambles ::= ENUMERATED [n52] | | | | +-preamblesGroupAConfig ::= SEQUENCE OPTIONAL:Omit | | | +-powerRampingParameters ::= SEQUENCE | | | | +-powerRampingStep ::= ENUMERATED [dB2] | | | | +-preambleInitialReceivedTargetPower ::= ENUMERATED [dBm-104] | | | +-ra-SupervisionInfo ::= SEQUENCE | | | | +-preambleTransMax ::= ENUMERATED [n6] | | | | +-ra-ResponseWindowSize ::= ENUMERATED [sf10] | | | | +-mac-ContentionResolutionTimer ::= ENUMERATED [sf48] | | | +-maxHARQ-Msg3Tx ::= INTEGER (1..8) [4] | | +-prach-Config ::= SEQUENCE [1] | | | +-rootSequenceIndex ::= INTEGER (0..837) [86] | | | +-prach-ConfigInfo ::= SEQUENCE OPTIONAL:Exist | | | +-prach-ConfigIndex ::= INTEGER (0..63) [3] | | | +-highSpeedFlag ::= BOOLEAN [FALSE] | | | +-zeroCorrelationZoneConfig ::= INTEGER (0..15) [5] | | | +-prach-FreqOffset ::= INTEGER (0..94) [2] | | +-pdsch-ConfigCommon ::= SEQUENCE OPTIONAL:Omit | | +-pusch-ConfigCommon ::= SEQUENCE | | | +-pusch-ConfigBasic ::= SEQUENCE | | | | +-n-SB ::= INTEGER (1..4) [1] | | | | +-hoppingMode ::= ENUMERATED [interSubFrame] | | | | +-pusch-HoppingOffset ::= INTEGER (0..98) [4] | | | | +-enable64QAM ::= BOOLEAN [FALSE] | | | +-ul-ReferenceSignalsPUSCH ::= SEQUENCE | | | +-groupHoppingEnabled ::= BOOLEAN [TRUE] | | | +-groupAssignmentPUSCH ::= INTEGER (0..29) [0] | | | +-sequenceHoppingEnabled ::= BOOLEAN [FALSE] | | | +-cyclicShift ::= INTEGER (0..7) [0] | | +-phich-Config ::= SEQUENCE OPTIONAL:Omit | | +-pucch-ConfigCommon ::= SEQUENCE OPTIONAL:Omit | | +-soundingRS-UL-ConfigCommon ::= CHOICE [setup] OPTIONAL:Exist | | | +-setup ::= SEQUENCE [0] | | | +-srs-BandwidthConfig ::= ENUMERATED [bw3] | | | +-srs-SubframeConfig ::= ENUMERATED [sc0] | | | +-ackNackSRS-SimultaneousTransmission ::= BOOLEAN [TRUE] | | | +-srs-MaxUpPts ::= ENUMERATED OPTIONAL:Omit | | +-uplinkPowerControlCommon ::= SEQUENCE OPTIONAL:Omit | | +-antennaInfoCommon ::= SEQUENCE OPTIONAL:Omit | | +-p-Max ::= INTEGER OPTIONAL:Omit | | +-tdd-Config ::= SEQUENCE OPTIONAL:Omit | | +-ul-CyclicPrefixLength ::= ENUMERATED [len1] | +-rach-ConfigDedicated ::= SEQUENCE OPTIONAL:Omit +-dedicatedInfoNASList ::= SEQUENCE OF OPTIONAL:Omit +-radioResourceConfigDedicated ::= SEQUENCE [000001] OPTIONAL:Exist | +-srb-ToAddModList ::= SEQUENCE OF OPTIONAL:Omit | +-drb-ToAddModList ::= SEQUENCE OF OPTIONAL:Omit | +-drb-ToReleaseList ::= SEQUENCE OF OPTIONAL:Omit | +-mac-MainConfig ::= CHOICE OPTIONAL:Omit | +-sps-Config ::= SEQUENCE OPTIONAL:Omit | +-physicalConfigDedicated ::= SEQUENCE [0000111111] OPTIONAL:Exist | +-pdsch-ConfigDedicated ::= SEQUENCE OPTIONAL:Omit | +-pucch-ConfigDedicated ::= SEQUENCE OPTIONAL:Omit | +-pusch-ConfigDedicated ::= SEQUENCE OPTIONAL:Omit | +-uplinkPowerControlDedicated ::= SEQUENCE OPTIONAL:Omit | +-tpc-PDCCH-ConfigPUCCH ::= CHOICE [setup] OPTIONAL:Exist | | +-setup ::= SEQUENCE | | +-tpc-RNTI ::= BIT STRING SIZE(16) [0000001111111111] | | +-tpc-Index ::= CHOICE [indexOfFormat3] | | +-indexOfFormat3 ::= INTEGER (1..15) [1] | +-tpc-PDCCH-ConfigPUSCH ::= CHOICE [setup] OPTIONAL:Exist | | +-setup ::= SEQUENCE | | +-tpc-RNTI ::= BIT STRING SIZE(16) [0000000111111010] | | +-tpc-Index ::= CHOICE [indexOfFormat3] | | +-indexOfFormat3 ::= INTEGER (1..15) [1] | +-cqi-ReportConfig ::= SEQUENCE [11] OPTIONAL:Exist | | +-cqi-ReportModeAperiodic ::= ENUMERATED [rm30] OPTIONAL:Exist | | +-nomPDSCH-RS-EPRE-Offset ::= INTEGER (-1..6) [0] | | +-cqi-ReportPeriodic ::= CHOICE [setup] OPTIONAL:Exist | | +-setup ::= SEQUENCE [1] | | +-cqi-PUCCH-ResourceIndex ::= INTEGER (0..1185) [0] | | +-cqi-pmi-ConfigIndex ::= INTEGER (0..1023) [25] | | +-cqi-FormatIndicatorPeriodic ::= CHOICE [widebandCQI] | | | +-widebandCQI ::= NULL | | +-ri-ConfigIndex ::= INTEGER (0..1023) [483] OPTIONAL:Exist | | +-simultaneousAckNackAndCQI ::= BOOLEAN [FALSE] | +-soundingRS-UL-ConfigDedicated ::= CHOICE [setup] OPTIONAL:Exist | | +-setup ::= SEQUENCE | | +-srs-Bandwidth ::= ENUMERATED [bw0] | | +-srs-HoppingBandwidth ::= ENUMERATED [hbw0] | | +-freqDomainPosition ::= INTEGER (0..23) [0] | | +-duration ::= BOOLEAN [TRUE] | | +-srs-ConfigIndex ::= INTEGER (0..1023) [20] | | +-transmissionComb ::= INTEGER (0..1) [0] | | +-cyclicShift ::= ENUMERATED [cs0] | +-antennaInfo ::= CHOICE [defaultValue] OPTIONAL:Exist | | +-defaultValue ::= NULL | +-schedulingRequestConfig ::= CHOICE [setup] OPTIONAL:Exist | +-setup ::= SEQUENCE | +-sr-PUCCH-ResourceIndex ::= INTEGER (0..2047) [20] | +-sr-ConfigIndex ::= INTEGER (0..155) [30] | +-dsr-TransMax ::= ENUMERATED [n4] +-securityConfigHO ::= SEQUENCE OPTIONAL:Exist | +-handoverType ::= CHOICE [intraLTE] | +-intraLTE ::= SEQUENCE [0] | +-securityAlgorithmConfig ::= SEQUENCE OPTIONAL:Omit | +-keyChangeIndicator ::= BOOLEAN [FALSE] | +-nextHopChainingCount ::= INTEGER (0..7) [0] +-nonCriticalExtension ::= SEQUENCE OPTIONAL:Omit
Common Root Cause for Handover Failure
Handover failure is a common problem in LTE networks that can result in degraded network performance and poor user experience. The root cause of handover failure can be complex and multifaceted, involving issues with UE hardware and software, network configuration, and radio access network (RAN) design. Addressing these issues requires a thorough understanding of the underlying causes and a targeted approach to troubleshooting and resolving the problem. We all know that there would be a lot of handover failure we will encounter in the field, but it is hard (almost impossible) to exactly pin point out exactly when it will happen by what cause. The only thing we can try is to consolidate various cases of the failure from the field and brainstorm on the possible root causes. Followings are some of the root causes (of course not all of them) we can think of.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||