Multi Cell - L to L Handover                             Home : www.sharetechnote.com

 

 

 

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.

 

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.

 

Step

Direction

Message

Target Cell

Memo

1

UE <---> SS

< Power On and Registration >

Cell 1

 

2

UE <---> SS

< Now UE is in IDLE mode >

Cell 1

 

3

UE <--- SS

Paging

Cell 1

 

4

UE ---> SS

RRC Connection Request

Cell 1

 

5

UE <--- SS

RRC Connection Setup

Cell 1

 

6

UE ---> SS

RRC Connection Setup Complete

Cell 1

 

7

UE <--- SS

Security Mode Command

Cell 1

 

8

UE ---> SS

Security Mode Complete

Cell 1

 

9

UE <--- SS

RRC Connection Reconfiguration

Cell 1

reactivating default EPS Bearer

10

UE ---> SS

RRCConnectionReconfigurationComplete

Cell 1

 

11

UE <--- SS

RRC Connection Reconfiguration

Cell 1

Measurement Control for Target Cell

12

UE ---> SS

RRCConnectionReconfigurationComplete

Cell 1

 

13

UE ---> SS

Measurement Report

Cell 1

 

14

UE <--- SS

RRC Connection Reconfiguration

Cell 1

Handover Command

15

UE ---> SS

PRACH

Cell 2

 

16

UE <--- SS

RACH Response

Cell 2

 

17

UE ---> SS

RRCConnectionReconfigurationComplete

Cell 2

PASS/FAIL

18

UE <--- SS

ueCapabilityEnquiry

Cell 2

 

19

UE ---> SS

ueCapabilityInformation

Cell 2

 

20

UE ---> SS

ulInformationTransfer + Detach Request

Cell 2

 

21

UE <--- SS

RRC Connection Release

Cell 2

 

 

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