LTE HO(Handover) - Inter Frequency
This tutorial shows how to test LTE to LTE Handover in Inter Frequency with a commercial phone. This tutorial also shows how to configure Measurement Report and how to trigger measurement report. Triggering measurement report for inter frequency on Amari callbox is a little bit trickier than intra frequency case because of triggering measurement gap. Handover is a procedure of cell change during the connected mode and usually occurs as described below.
Step 1 : Network (eNB) configures measurement request to direct UE to perform the measurement of current cell and neighbouring cells
Step 2 : UE perform the measurement and send the report to the network if the measurement result matches the condition set by the measurement request configuration specified at step 1
Step 3 : Network sends RRC message to force UE to change cell (Handover) to the target cell. In this RRC message, network sends all the necessary low layer information about the target cell (e.g, cell frequency, rach info and other channel information)
In terms of frequencies of current cell and target/destination cell, the handover can be categorized into two types as below
- Intra Frequency Handover : Current Cell and Target Cell frequency is same
- Inter Frequency Handover : Current Cell and Target Cell frequency is different
Table of Contents
- LTE HO(Handover) - Inter Frequency
Test Setup
Test setup for this tutorial is as shown below.
- SIM Card used in this tutorial is the one delivered with the system as it is.
- If you want to change the configuration, The tutorial Configuration Guide would help
Key Configuration Parameters
Followings are important configuration parameters for this tutorial. You may click on the items for the descriptions from Amarisoft documents.
- ncell_list : In this link, you would get the descriptions for all the items listed below
- rat
- cell_id
- meas_config_desc : In this link, you would get the descriptions for all the items listed below
- a1_report_type
- a1_rsrp
- a1_hysteresis
- a1_time_to_trigger
- a2_report_type
- a2_hysteresis
- a2_time_to_trigger
- a3_report_type
- a3_offset
- a3_hysteresis
- a3_time_to_trigger
- meas_gap_config
- ho_from_meas
Configuration
I used the enb-2cell-ho-inter.cfg which is copied and modified from enb-2cell-ho.cfg.
I also used mme-ims.cfg as it is.
Configure enb-2cell-ho-inter.cfg as below. In this test, it is important to set N_CELL to greater than 1 because handover involves mutliple cells. In this specific test, I set it to 2.
I added neighbour cell list(ncell_list) to the configuration of the first cell and add the second cell(n_id_cell:2) as the neighbour cell. As you see, the camping cell (the first cell in this case) and the target cell(the second cell in this case) has different frequency(different dl_earfcn) because this test is for Inter cell Handover.
I added neighbour cell list(ncell_list) to the configuration of the second cell and add the first cell(n_id_cell:1) as the neighbour cell. As you see, the camping cell (the second cell in this case) and the target cell(the first cell in this case) has different frequency(different dl_earfcn) because this test is for Inter cell Handover.
Then added measurement criterial before triggering Handover via the parameter meas_config_desc. Once this is configured, UE should report appropriate meausrement report for eNB to trigger handover.
Perform the test
Start LTE service and check basic cell configuration. Any cell configuration is OK as long as it is LTE cell.
Adjust cell power. (at this step, I lowed the power of the second cell to make it sure that UE camp onto the first cell first using cell_gain command). I used cell_gain command here instead of tx_gain because tx_gain changes broadcasting reference cell power in SIB message and UE may behave unexpectedly due to the SIB changes.
Power on UE and let UE attach to the cell
Adjust Cell Power to trigger measurement report. I decreased the first cell power(camping cell power) and increased the target cell(the second cell in this case) so that the target cell power is higher than the camping cell. This is to trigger the required measurement procedure as set in the configuration file.
Confirm that Handover has completed properly. If you don't see the handover, tweak the cell power until the handover is performed.
Log Analysis
During the initial attach, Callbox send Measurement Report configuration as below. Check out measObjectToAddModList, reportConfigToAddModList, measIdToAddModList and confirm that all of them are configured as intended.
When the cell power condition is met with measurement gap enable criteria, gNB enables measurement gap as shown below. (i.e, measGapConfig is set to setup and it specify a specific gap configuration)
Once cell power condition is met for triggering measurement report, UE send the measurement report as follows. (
When the proper measurement report is reciever, Callbox triggers Handover as shown below. mobilityControlInfo IE is what perform the handover. Check out targetPhysCellId and see if it is set as intended.
RRC / NAS Signaling
RrcConnectionReconfiguration
: This is the RrcConnectionReconfiguration message sent by eNB to configure 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 -18,
p-b 0
},
pusch-ConfigCommon {
pusch-ConfigBasic {
n-SB 1,
hoppingMode interSubFrame,
pusch-HoppingOffset 4,
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: {
...
},
physicalConfigDedicated {
...
}
},
securityConfigHO {
handoverType intraLTE: {
keyChangeIndicator FALSE,
nextHopChainingCount 0
}
},