LTE HO(Handover) - Intra Frequency
This tutorial shows how to test LTE to LTE Handover in Intra Frequency with a commercial phone. This tutorial also shows how to configure Measurement Report and how to trigger measurement report. 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) - Intra Frequency
Introduction
LTE to LTE handover, specifically the Intra Frequency Handover, is a critical procedure within Long Term Evolution (LTE) mobile communication systems that ensures seamless connectivity and quality of service as a user equipment (UE), such as a commercial phone, moves between different eNodeBs (evolved Node Bs) or cells operating on the same frequency. This process is fundamental to maintaining ongoing sessions—such as voice calls or data transfers—without interruption, even as the UE transitions from the coverage area of one cell to another. Handover in LTE is executed while the device remains in a connected mode, leveraging a sophisticated mechanism involving measurement configuration, reporting, and command signaling through the Radio Resource Control (RRC) protocol. The eNodeB orchestrates the handover by instructing the UE to assess radio conditions, report measurements, and, when appropriate, initiates the cell change procedure with all necessary parameters for successful re-establishment in the target cell. The significance of handover operations is underscored by their impact on user experience, network performance, and overall mobility management in the LTE architecture. In practice, handovers are categorized as either measurement-based—relying on real-time signal quality reports from the UE—or blind, where the network commands a cell change without prior measurement feedback. Understanding and testing these handover mechanisms, especially using commercial devices in a controlled environment, is essential for network engineers and testers to validate interoperability, optimize mobility strategies, and ensure robust service delivery in both live and laboratory settings.
-
Context and Background
- LTE (Long Term Evolution) is a 4G wireless broadband technology designed for high-speed data and voice transmission with low latency and robust mobility support.
- Handover procedures are a core element in LTE networks, enabling UEs to move between cells without service disruption, which is vital for user experience and network efficiency.
- Intra Frequency Handover refers to handovers between cells operating on the same carrier frequency, requiring precise coordination to avoid interference and ensure continuity.
- Commercial phones are used in testing to emulate real-world behavior, validating handover processes in scenarios mirroring actual user mobility.
-
Relevance and Importance of the Tutorial Topic
- This tutorial provides hands-on guidance for configuring and testing LTE to LTE Intra Frequency Handover using commercially available devices, mirroring real deployment conditions.
- Mastering handover configuration and measurement reporting is crucial for optimizing radio network performance and troubleshooting mobility issues.
- Understanding both measurement-based and blind handover scenarios broadens expertise in LTE network operations and test methodologies.
-
Learning Outcomes
- Gain practical knowledge of how to configure measurement reports on the UE and trigger handover events in an LTE environment.
- Develop the ability to differentiate between measurement-based and blind handover processes and recognize their applications.
- Acquire insights into the signaling flow and decision-making logic behind LTE handovers, enhancing troubleshooting and optimization skills.
- Understand the role of Amarisoft callbox and similar test equipment in simulating and validating handover scenarios.
-
Prerequisite Knowledge and Skills
- Familiarity with LTE architecture, including the role of eNodeB, UE, and RRC protocol.
- Basic understanding of radio access network (RAN) procedures and mobility management concepts.
- Experience with test environments such as callboxes, and the ability to operate commercial LTE devices for protocol testing.
- General knowledge of wireless communication principles and network troubleshooting.
Summary of the Tutorial
This tutorial describes the procedure to test LTE Intra-cell Handover using a callbox and UE setup. The main focus is on configuring the test environment, setting up the required parameters, and executing the handover procedure by manipulating cell parameters and monitoring system behavior.
-
Test Setup:
- Use the SIM card provided with the system.
- Refer to the Configuration Guide if changes are needed.
- Test setup includes a callbox and two SDRs simulating two eNB cells.
-
Key Configuration Parameters:
- Configure ncell_list for neighbor cell definitions, including rat and cell_id.
- Set measurement criteria via meas_config_desc (e.g., 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).
- Configure meas_gap_config and ho_from_meas as required.
-
Configuration Procedure:
- Use and modify enb-2cell-ho-intra.cfg (based on enb-2cell-ho.cfg).
- Ensure N_CELL is set to more than 1 (set to 2 for this test).
-
For each cell:
- Add the other cell as a neighbor in ncell_list.
- Ensure both cells use the same dl_earfcn for intra-frequency handover.
- Add measurement criteria in meas_config_desc to specify when handover should be triggered.
-
Test Execution Steps:
- Start LTE service and verify basic cell configuration.
-
Cell Power Adjustment:
- Reduce the power of the second cell using cell_gain so that UE initially camps on the first cell.
- Power on the UE and ensure it attaches to the first cell.
-
Trigger Handover:
- Adjust cell powers: decrease the first cell (camping cell) power, and increase the second cell (target cell) power.
- This power adjustment is to ensure that measurement criteria for handover are met, causing the UE to report the required measurement report.
-
Confirmation:
- Check that handover completes successfully. If not, further adjust cell powers until the handover is triggered and completed.
-
Log Analysis:
- Verify the callbox sends the measurement report configuration during the initial attach (check measObjectToAddModList, reportConfigToAddModList, and measIdToAddModList).
- After power conditions are met, confirm the UE sends a measurement report for neighbor cells.
- Once the correct measurement report is received, verify that the callbox triggers handover with the correct target cell ID.
- If the measurement report does not appear, continue to tweak cell power until the report is generated and handover is triggered.
Note: When configuring measurement events in meas_config_desc, actual RRC signaling may vary depending on configuration and implementation. Carefully review documentation on meas_config_desc for LTE and NR as required, especially for complex scenarios such as ENDC.
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-intra.cfg which is copied and modified from enb-2cell-ho.cfg.

I also used mme-ims.cfg as it is.

Configure enb-2cell-ho-intra.cfg as below.
In this test, N_CELL should be set to a value greater than 1 because handover requires more than one cell. In this example, N_CELL is set to 2, so the callbox creates two LTE cells: one serving cell and one target cell.
The TDD value is set to 0, which means this test is configured for FDD operation. N_RB_DL is set to 25, so the LTE channel bandwidth is 5 MHz. Both downlink and uplink antenna numbers are set to 1, so this is a SISO configuration.
CHANNEL_SIM is set to 0, which means the internal channel simulator is disabled. NG_ENB is also set to 0, so this configuration is for normal LTE eNB operation, not ng-eNB operation.

I added ncell_list to the configuration of the first cell. This list defines the neighbour cells that can be used for handover.
In this example, the first cell is configured with n_id_cell: 1. This is the serving cell where the UE initially camps and connects. Inside ncell_list, the second cell is added as the neighbour cell by setting n_id_cell: 2. This means the first cell knows the second cell as a possible handover target. For this test, both the serving cell and the target cell use the same downlink EARFCN. In the FDD case, both cells are configured with dl_earfcn: 3350. Because the source cell and target cell use the same frequency, this test is an intra-frequency handover test. The neighbour cell entry also includes cell_id and tac information for the target cell. These values are used by the network to identify the target cell during the handover procedure.

I also added ncell_list to the configuration of the second cell. This is needed when the UE may hand over back from the second cell to the first cell.
In this example, the second cell is configured with n_id_cell: 2. This can become the serving cell after the first handover. Inside ncell_list of the second cell, the first cell is added as the neighbour cell by setting n_id_cell: 1. This means the second cell knows the first cell as a possible handover target. For this intra-frequency handover test, the second cell and its neighbour cell use the same downlink EARFCN. In the FDD case, both are configured with dl_earfcn: 3350. This means the UE does not need to change frequency when moving between the two cells. The neighbour cell entry also includes cell_id and tac information for the first cell. These values identify the target cell when the handover is performed from cell 2 back to cell 1.

Then I added the measurement criteria using meas_config_desc. This configuration tells the eNB what kind of measurement report should be requested from the UE. Once this is configured, the UE can send a Measurement Report when the configured measurement condition is satisfied, and the eNB can use that report as a trigger for handover.
Since handover is performed in connected mode, I increased inactivity_timer to 600000. This prevents the eNB from releasing the RRC connection too early while I am adjusting the cell power level and waiting for the UE to trigger a measurement report.
In meas_config_desc, several measurement event conditions are configured. In this example, A1, A2, and A3 related parameters are defined. A1 and A2 are based on serving cell signal quality, while A3 is based on the comparison between the neighbour cell and the serving cell. For handover, A3 is commonly used because it can trigger a report when the neighbour cell becomes better than the serving cell by the configured offset.
The report type is set to rsrp, so the measurement condition is evaluated based on RSRP. The time_to_trigger value defines how long the condition should remain true before the UE sends the measurement report. This helps avoid unnecessary reports caused by short and temporary signal fluctuation.
meas_gap_config is also included in the configuration. However, even if this parameter is configured in the file, the measurement gap may not appear in the actual RRC message if it is not needed. For example, in an intra-frequency handover case, the UE can usually measure the neighbour cell on the same frequency without requiring a measurement gap.
Finally, ho_from_meas is set to true. This means the eNB is allowed to initiate handover when it receives a suitable Measurement Report from the UE. In other words, this enables measurement-based handover instead of forcing handover blindly.

Perform the test
Start the LTE service and check the basic cell configuration. Any cell configuration is OK as long as both cells are LTE cells and the required handover-related configuration is applied.
In this example, the callbox is running two LTE cells.
From the cell phy result, both cells are configured as LTE Band 7 cells with 5 MHz bandwidth. The downlink EARFCN is 3350 for both cells, and the uplink EARFCN is 21350 for both cells. Since both cells use the same downlink frequency, this confirms that the test is configured as an intra-frequency handover case.
Cell 0x001 is configured with PCI 1, and Cell 0x002 is configured with PCI 2. These different PCI values allow the UE to distinguish the two cells even though they are on the same frequency.
From the cell result, both cells also show the same TAC value, 0x0001, and the same PLMN, 00101. The PRACH root sequence index is different for each cell. Cell 0x001 uses root sequence index 204, and Cell 0x002 uses root sequence index 28. This matches the two-cell configuration prepared earlier.
At this point, the LTE service is running correctly with two intra-frequency cells, so the UE can attach to one cell and later hand over to the other cell based on the configured measurement condition.


Adjust the cell power before attaching the UE. In this step, I lowered the power of the second cell so that the UE camps on and attaches to the first cell first.
This was done using the cell_gain command.
In this example, I set the gain of cell 2 to -90 dB using the following command.
cell_gain 2 -90
After applying this command, the cell command shows that cell 0x001 still has dl_gain 0.0, while cell 0x002 has dl_gain -90.0. This means the second cell is transmitted with much lower power than the first cell.
Because of this power difference, the UE is expected to detect the first cell as the stronger cell and attach to cell 0x001 first.
I used cell_gain instead of tx_gain for this test. The reason is that tx_gain changes the transmit gain at the RF port level and can also affect the broadcasted reference signal power information in SIB. If the SIB information changes, the UE may behave unexpectedly during cell selection or measurement. By using cell_gain, I can adjust the relative cell power for the test without changing the general RF transmit gain setting.
The tx_gain command shows that both TX0 and TX1 remain at the default gain value of 89.8 dB. So in this test, only the cell-level gain was changed, and the RF port transmit gain was kept unchanged.


Power on the UE and let it attach to the expected cell. In this test, the expected initial serving cell is the first cell because the second cell power was lowered in the previous step.
Start the trace with the t command and then power on the UE. In the trace output, check the CL column. In this example, the CL value is 001, which means the UE is connected to cell 1.
The PRACH log also shows cell=01, which confirms that the UE performed random access on the first cell. After the UE becomes connected, the trace continues to show uplink and downlink activity for the UE on cell 001.
At this point, the UE is attached to the intended source cell. This is the correct starting condition before increasing the second cell power and triggering the measurement-based handover to cell 2.

Adjust the cell power to trigger the Measurement Report.
After confirming that the UE is connected to cell 1, change the relative power between the two cells. The purpose of this step is to make the target cell stronger than the current serving cell so that the UE satisfies the configured measurement condition.
First, I lowered the power of the current serving cell, cell 1, using the following command.
cell_gain 1 -20
After this command, the cell command shows that cell 0x001 has dl_gain -20.0, while cell 0x002 still has dl_gain -90.0. At this moment, cell 1 is still stronger than cell 2, so handover is not expected yet.
Next, I increased the power of the target cell, cell 2, using the following command.
cell_gain 2 -10
After this command, cell 0x001 has dl_gain -20.0 and cell 0x002 has dl_gain -10.0. This means cell 2 is now transmitted 10 dB stronger than cell 1.
Since cell 2 becomes stronger than the current serving cell, the UE should detect that the neighbour cell satisfies the configured measurement condition. If the condition remains true for the configured time_to_trigger duration, the UE should send a Measurement Report to the eNB.
This Measurement Report is then used by the eNB as the trigger to perform measurement-based handover from cell 1 to cell 2.


Confirm that the handover has completed properly.
After changing the cell power, check the trace output again with the t command. In this example, the CL column shows 002. This means the UE is now connected through cell 2.
This confirms that the UE has moved from cell 1 to cell 2. Since cell 2 was configured as the neighbour and target cell, this indicates that the intra-frequency handover was completed successfully.
You can also confirm it by checking that the throughput and uplink/downlink activity are now shown under cell 002. This means the user traffic is now going through the target cell after handover.
If the handover does not happen, adjust the cell power difference again. Usually, the target cell should be made strong enough compared to the serving cell so that the configured measurement condition is satisfied and maintained long enough for the UE to send the Measurement Report.

Log Analysis
During the initial attach, the callbox sends the Measurement Report configuration to the UE in the RRC Connection Reconfiguration message.
In this message, check measObjectToAddModList, reportConfigToAddModList, and measIdToAddModList. These three parts define what the UE should measure, when the UE should report it, and how the measurement object and report condition are linked together.
In measObjectToAddModList, the measurement object is configured with carrierFreq 3350. This matches the intra-frequency handover test because both the serving cell and neighbour cell are using the same EARFCN. The neighbour cell information is also included so that the UE knows which cell should be measured as a handover candidate.
In reportConfigToAddModList, the report condition is configured. In this example, event A3 is used. Event A3 means the neighbour cell becomes better than the serving cell by the configured offset. This is the main condition used to trigger the Measurement Report for handover. The report quantity is set to RSRP, so the UE evaluates the condition based on RSRP measurement.
In measIdToAddModList, the measObjectId and reportConfigId are linked together. This tells the UE which measurement object should use which report configuration. In this example, measId 1 links measObjectId 1 and reportConfigId 1.
Once this RRC Connection Reconfiguration is completed, the UE has the required measurement configuration. After that, when the target cell becomes stronger than the serving cell and satisfies the A3 condition for the configured time-to-trigger, the UE should send a Measurement Report to the eNB.

Once the cell power condition satisfies the configured measurement trigger, the UE sends a Measurement Report to the eNB.
In this example, the Measurement Report is shown in the RRC log. This confirms that the UE detected the neighbour cell according to the measurement configuration sent earlier.
In the Measurement Report message, check measResults. The serving cell measurement is shown under measResultPCell. In this example, the serving cell has rsrpResult and rsrqResult values.
More importantly, check measResultNeighCells. This field shows the measured neighbour cell result. In this example, measResultListEUTRA includes physCellId 2. This means the UE measured cell 2 as the neighbour cell and reported it to the eNB.
The neighbour cell measurement result also includes rsrpResult and rsrqResult. This is the information used by the eNB to decide whether the neighbour cell is suitable as the handover target.
If you do not see a Measurement Report containing measResultNeighCells, the handover may not be triggered. In that case, adjust the relative cell power again until the UE reports the neighbour cell. Usually this means making the target cell stronger than the serving cell by enough margin and keeping that condition long enough to satisfy the configured time-to-trigger.
Based on the configuration used in this test, the eNB will not trigger measurement-based handover unless it receives a proper Measurement Report from the UE.

When the eNB receives the proper Measurement Report from the UE, the callbox triggers the handover.
The handover command is sent in an RRC Connection Reconfiguration message. In this message, the important field to check is mobilityControlInfo. This IE contains the information required for the UE to move from the current serving cell to the target cell.
In this example, mobilityControlInfo includes targetPhysCellId 2. This means the eNB is commanding the UE to hand over to the cell with PCI 2. This matches the intended target cell in this test.
The message also includes newUE-Identity and radioResourceConfigCommon. These parameters provide the UE with the required configuration for accessing the target cell, including PRACH configuration and other common radio resource information.
After receiving this RRC Connection Reconfiguration with mobilityControlInfo, the UE performs the handover procedure toward the target cell. Then the UE should access the target cell and send RRC Connection Reconfiguration Complete after the handover is completed.
So, in this step, the key point is to confirm that mobilityControlInfo is present and that targetPhysCellId is set to the expected target cell. In this example, targetPhysCellId is 2, so the handover command is correctly pointing to cell 2.

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: {
measConfig {
,,,
},
mobilityControlInfo {
targetPhysCellId 2,
t304 ms1000,
newUE-Identity '003E'H,
radioResourceConfigCommon {
prach-Config {
rootSequenceIndex 28
},
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
}
},