Amarisoft

UEsim LTE Handover - LTE to LTE

 

The overall callbox logic and 3GPP related with UEsim Handover is same as in Commercial UE handover. The main focus on this tutorial is to highlight on UEsim side configuration for LTE to LTE handover. Since the configuration on UEsim for handover can be a little bit complicated, I would like you to have some big picture on the call box and UEsim configuration and relationship between them as illustrated below.

What I want to highlight is that you need to configure multiple cells not only in eNB side, but also in UEsim side. In commercial UE, you don't have to care about this since all of those configuration is done internally.

UESim LTE HO LL Overview 01

NOTE : For the Handover with commercial UE, check out following tutorials.

 

 

Table of Contents

 

 

Test Setup

 

Test setup for this tutorial is as shown below.  (NOTE : The image is a little bit misleading. You need to connect antenna at least on two sdr cards on both Callbox and UEsim).

TestSetup Callbox UEsim 1sdr 01

 

 

 

Key Configuration Parameters

 

Followings are important configuration parameters for this tutorial. You may click on the items for the descriptions from Amarisoft documents.

 

 

 

Test 1 : LTE to LTE Interfrequency Handover / Triggered by eNB Power Change

 

This test is to test LTE to LTE handover triggered by cell power change from callbox (eNB).

 

 

Configuration

 

I used the enb-2cell-ho-b7-b3.cfg on gNB which is copied and modified from enb-2cell-ho.cfg

UESim LTE HO LL Test1 Config 01

UESim LTE HO LL Test1 Config 02

 

I used the ue-ho-LL.cfg on gNB which is copied and modified from ue-2cc.cfg

UESim LTE HO LL Test1 Config 03

 

In enb-2cell-ho-b7-b3.cfg , the configuration is done as follows.

UESim LTE HO LL Test1 Config 04

UESim LTE HO LL Test1 Config 05

UESim LTE HO LL Test1 Config 06

UESim LTE HO LL Test1 Config 07

NOTE :  UEsim Rx dynamic range may not be as good as commercial UE. The radio link may get brocken if the cell power gets as low as the cell boundrary in the field. So I increased rsrp threshold for me measurement to trigger measurement report before cell power gets too low.

 

 

In ue-ho-LL.cfg, the configuration is done as follows.

UESim LTE HO LL Test1 Config 08

UESim LTE HO LL Test1 Config 09

UESim LTE HO LL Test1 Config 10

UESim LTE HO LL Test1 Config 11

UESim LTE HO LL Test1 Config 12

 

 

Perform the Test

 

Check if the cell is configured as intended.

UESim LTE HO LL Test1 Run 01

UESim LTE HO LL Test1 Run 02

UESim LTE HO LL Test1 Run 03

UESim LTE HO LL Test1 Run 04

UESim LTE HO LL Test1 Run 05

 

Power on UE on UE sim.

UESim LTE HO LL Test1 Run 06

Check the initial attach and tweak the cell power to trigger measurement report and handover.

UESim LTE HO LL Test1 Run 07

UESim LTE HO LL Test1 Run 08

You can confirm handover on UEsim console (screen window) as well.

UESim LTE HO LL Test1 Run 09

 

 

Log Analysis

Sample Log

UESim LTE HO LL Test1 Log 01

UESim LTE HO LL Test1 Log 02

UESim LTE HO LL Test1 Log 03

UESim LTE HO LL Test1 Log 04

UESim LTE HO LL Test1 Log 05

UESim LTE HO LL Test1 Log 06

UESim LTE HO LL Test1 Log 07

UESim LTE HO LL Test1 Log 08

 

 

 

RRC / NAS Signaling

 

Here I will just list required message from callbox and I haven't put the required messages from UE side. For the messages from UE, refer to the log analysis and check further with the sample log linked above.

This is the RrcReconfiguration sent by gNB  to configure measurement and handover. (NOTE : You would see some IEs that has a specific assigned vale here, but consider it as just an example value. Those values should vary depending on test requirement)

 

RrcConnectionReconfiguration - Measurement Configuration

{

  message c1: rrcConnectionReconfiguration: {

    rrc-TransactionIdentifier 0,

    criticalExtensions c1: rrcConnectionReconfiguration-r8: {

      measConfig {

        measObjectToAddModList {

          {

            measObjectId 1,

            measObject measObjectEUTRA: {

              carrierFreq 3100,

              allowedMeasBandwidth mbw100,

              presenceAntennaPort1 TRUE,

              neighCellConfig '01'B

            }

          },

          {

            measObjectId 2,

            measObject measObjectEUTRA: {

              carrierFreq 1575,

              allowedMeasBandwidth mbw100,

              presenceAntennaPort1 TRUE,

              neighCellConfig '01'B

            }

          }

        },

        reportConfigToAddModList {

          {

            reportConfigId 1,

            reportConfig reportConfigEUTRA: {

              triggerType event: {

                eventId eventA1: {

                  a1-Threshold threshold-RSRP: 80

                },

                hysteresis 0,

                timeToTrigger ms640

              },

              triggerQuantity rsrp,

              reportQuantity both,

              maxReportCells 1,

              reportInterval ms120,

              reportAmount r1

            }

          },

          {

            reportConfigId 2,

            reportConfig reportConfigEUTRA: {

              triggerType event: {

                eventId eventA2: {

                  a2-Threshold threshold-RSRP: 80

                },

                hysteresis 0,

                timeToTrigger ms640

              },

              triggerQuantity rsrp,

              reportQuantity both,

              maxReportCells 1,

              reportInterval ms120,

              reportAmount r1

            }

          },

          {

            reportConfigId 3,

            reportConfig reportConfigEUTRA: {

              triggerType event: {

                eventId eventA3: {

                  a3-Offset 6,

                  reportOnLeave FALSE

                },

                hysteresis 0,

                timeToTrigger ms480

              },

              triggerQuantity rsrp,

              reportQuantity both,

              maxReportCells 8,

              reportInterval ms120,

              reportAmount r1

            }

          }

        },

        measIdToAddModList {

          {

            measId 2,

            measObjectId 1,

            reportConfigId 2

          },

          {

            measId 3,

            measObjectId 2,

            reportConfigId 3

          }

        },

        quantityConfig {

          quantityConfigEUTRA {

          }

        },

        measGapConfig release: NULL

      },

      dedicatedInfoNASList {

        '2776859E94010742013E060000F110000100445....'H

      },

      radioResourceConfigDedicated {

        srb-ToAddModList {

          {

            srb-Identity 2,

            rlc-Config explicitValue: am: {

              ul-AM-RLC {

                t-PollRetransmit ms60,

                pollPDU pInfinity,

                pollByte kBinfinity,

                maxRetxThreshold t32

              },

              dl-AM-RLC {

                t-Reordering ms45,

                t-StatusProhibit ms0

              }

            },

            logicalChannelConfig defaultValue: NULL

          }

        },

        drb-ToAddModList {

          {

            eps-BearerIdentity 5,

            drb-Identity 1,

            pdcp-Config {

              discardTimer infinity,

              rlc-AM {

                statusReportRequired TRUE

              },

              headerCompression notUsed: NULL

            },

            rlc-Config am: {

              ul-AM-RLC {

                t-PollRetransmit ms80,

                pollPDU p64,

                pollByte kB125,

                maxRetxThreshold t32

              },

              dl-AM-RLC {

                t-Reordering ms35,

                t-StatusProhibit ms10

              }

            },

            logicalChannelIdentity 3,

            logicalChannelConfig {

              ul-SpecificParameters {

                priority 15,

                prioritisedBitRate kBps8,

                bucketSizeDuration ms100,

                logicalChannelGroup 3

              }

            }

          }

        },

        physicalConfigDedicated {

          antennaInfo-r10 explicitValue-r10: {

            transmissionMode-r10 tm3,

            codebookSubsetRestriction-r10 '11'B,

            ue-TransmitAntennaSelection release: NULL

          },

          cqi-ReportConfig-r10 {

            nomPDSCH-RS-EPRE-Offset 0,

            cqi-ReportPeriodic-r10 setup: {

              cqi-PUCCH-ResourceIndex-r10 0,

              cqi-pmi-ConfigIndex 44,

              cqi-FormatIndicatorPeriodic-r10 widebandCQI-r10: {

              },

              ri-ConfigIndex 483,

              simultaneousAckNackAndCQI TRUE

            }

          },

          cqi-ReportConfigPCell-v1250 {

            altCQI-Table-r12 allSubframes

          }

        }

      }

    }

  }

}

 

 

RrcConnectionReconfiguration - Enabling Measurement Gap

{

  message c1: rrcConnectionReconfiguration: {

    rrc-TransactionIdentifier 0,

    criticalExtensions c1: rrcConnectionReconfiguration-r8: {

      measConfig {

        measIdToRemoveList {

          2

        },

        measIdToAddModList {

          {

            measId 1,

            measObjectId 1,

            reportConfigId 1

          }

        },

        measGapConfig setup: {

          gapOffset gp0: 0

        }

      }

    }

  }

}

 

 

RrcConnectionReconfiguration - Handover

{

  message c1: rrcConnectionReconfiguration: {

    rrc-TransactionIdentifier 0,

    criticalExtensions c1: rrcConnectionReconfiguration-r8: {

      ......

      mobilityControlInfo {

        targetPhysCellId 2,

        carrierFreq {

          dl-CarrierFreq 1575

        },

        t304 ms1000,

        newUE-Identity '003E'H,

        radioResourceConfigCommon {

          prach-Config {

            rootSequenceIndex 28

          },

          pdsch-ConfigCommon {

            referenceSignalPower -31,

            p-b 1

          },

          pusch-ConfigCommon {

            pusch-ConfigBasic {

              n-SB 1,

              hoppingMode interSubFrame,

              pusch-HoppingOffset 8,

              enable64QAM TRUE

            },

            ul-ReferenceSignalsPUSCH {

              groupHoppingEnabled FALSE,

              groupAssignmentPUSCH 0,

              sequenceHoppingEnabled FALSE,

              cyclicShift 0

            }

          },

          p-Max 10,

          ul-CyclicPrefixLength len1,

          pusch-ConfigCommon-v1270 {

            enable64QAM-v1270 true

          }

        },

        sameSFN-Indication-r14 true

      },

      radioResourceConfigDedicated {

        mac-MainConfig explicitValue: {

          ul-SCH-Config {

            maxHARQ-Tx n5,

            periodicBSR-Timer sf20,

            retxBSR-Timer sf320,

            ttiBundling FALSE

          },

          drx-Config release: NULL,

          timeAlignmentTimerDedicated infinity,

          phr-Config setup: {

            periodicPHR-Timer sf500,

            prohibitPHR-Timer sf200,

            dl-PathlossChange dB3

          }

        },

        physicalConfigDedicated {

          pdsch-ConfigDedicated {

            p-a dB-3

          },

          pucch-ConfigDedicated {

            ackNackRepetition release: NULL

          },

          pusch-ConfigDedicated {

            betaOffset-ACK-Index 9,

            betaOffset-RI-Index 6,

            betaOffset-CQI-Index 6

          },

          uplinkPowerControlDedicated {

            p0-UE-PUSCH 0,

            deltaMCS-Enabled en0,

            accumulationEnabled TRUE,

            p0-UE-PUCCH 0,

            pSRS-Offset 3

          },

          soundingRS-UL-ConfigDedicated setup: {

            srs-Bandwidth bw3,

            srs-HoppingBandwidth hbw0,

            freqDomainPosition 0,

            duration TRUE,

            srs-ConfigIndex 47,

            transmissionComb 0,

            cyclicShift cs4

          },

          schedulingRequestConfig setup: {

            sr-PUCCH-ResourceIndex 0,

            sr-ConfigIndex 15,

            dsr-TransMax n64

          },

          antennaInfo-r10 explicitValue-r10: {

            transmissionMode-r10 tm3,

            codebookSubsetRestriction-r10 '11'B,

            ue-TransmitAntennaSelection release: NULL

          },

          cqi-ReportConfig-r10 {

            nomPDSCH-RS-EPRE-Offset 0,

            cqi-ReportPeriodic-r10 setup: {

              cqi-PUCCH-ResourceIndex-r10 0,

              cqi-pmi-ConfigIndex 44,

              cqi-FormatIndicatorPeriodic-r10 widebandCQI-r10: {

              },

              ri-ConfigIndex 483,

              simultaneousAckNackAndCQI TRUE

            }

          },

          cqi-ReportConfigPCell-v1250 {

            altCQI-Table-r12 allSubframes

          }

        }

      },

      securityConfigHO {

        handoverType intraLTE: {

          keyChangeIndicator FALSE,

          nextHopChainingCount 0

        }

      },

      nonCriticalExtension {

        nonCriticalExtension {

          otherConfig-r9 {

            powerPrefIndicationConfig-r11 release: NULL

          }

        }

      }

    }

  }

}

 

 

 

Tips

 

Triggering Handover from Screen Command

 

You can trigger the handover regardless of measurement configuration / report or cell power. You can force eNB to triggger handover by screen command "handover" as shown below.

 

UESim LTE HO LL Tip TriggerInConsole 01

 

UESim LTE HO LL Tip TriggerInConsole 02

 

UESim LTE HO LL Tip TriggerInConsole 03

 

UESim LTE HO LL Tip TriggerInConsole 04

 

NOTE :  I would suggest you to double check on UE ID for the current connection. If there was not any issues, it is likely for the UE to be the RAN_UE_ID of 1 but it may have been changed if the call dropped and reconnected before you try out this command. If you run the command 'ue', it will return the current RAN UE ID.