Hyper Open Edge Cloud

How to configure eNB Handover

How to set up a handover using Amarisfot network
  • Last Update:2021-12-14
  • Version:
  • Language:en

Agenda

  • Setup
  • MME Configuration
  • ENB 1 Configuration
  • ENB 2 Configuration
  • Clock Synchronisation
  • Check connection
  • Trigger Handover
  • Check Handover
  • Other Handover scenarios

This tutorial describes how to set up eNodeB/gNodeB handover scenarios on Amarisoft products. For more details, please refer to Amarisoft Application Note on Intra and Inter eNB/gNB Handover.

Several handover scenarios are available in LTE : 

  • Intra-LTE Handover : communication within the same LTE Network (same MME component)
    • Via X2 Interface : eNBs communicate with each other without EPC involvemnet
    • Via S1 interface : source eNB communicates to MME, which communicates with target eNB
  • Inter-LTE Handover : communication between different LTE nodes (different MME component)
    • Inter-MME Handover : source MME communicates with target MME

Here, we will specifically focus on a scenario in which two nodes in 4G are communicating with one MME component. For that the MME and ENB configurations will be edited. You will be able to check a successful handover operation in the logs. Other scenarios are possible as well, some of them described at the end of this page. 

Setup

Handover scenario with 1 MME and 2 ENB in different frequency bands

Network Architecture example : 

  • MME : IP address 192.168.99.1
  • eNB1 : IP alias address 192.168.99.3 
  • eNB2 : IP address 192.168.99.2

Inter eNB/gNB handover corresponds to a handover communication between two eNodeB/gNodeB running on two different PCs, and controlled by one MME component. 

The two nodes' radio frames must be synchronised. One way to implement this is to use GPS antennas. Precision Time Protocol (PTP) is also an option. Make sure the two ORS have the same or compatible versions of Amarisoft software. 

For the purpose of this tutorial, the setup will consist of two RapidSpace ORSs using two different frequency bands : 

  • ORS 1 : band 38 (2.6GHz)
  • ORS 2 : band 42 (3.5 GHz)

As for LTE, the following composition is assumed : 

  • MME : Running on ORS 1  (IP address 192.168.99.1)
  • eNB1 : Running on ORS 1 (IP address 192.168.99.1), with IP alias 192.168.99.3 
  • eNB2 : Running on ORS 2 (IP address 192.168.99.2)

MME and eNB1/eNB2 are each connected through S1 interface, whereas eNB1 and eNB2 are connected through X2 interface. 

MME configuration

  • ORS 1 : MME configuration in mme/mme.cfg
  • ORS 1 : IMS configuration in mme/ims.cfg
  • ORS 2 : MME configuration in ots/ots.cfg
  • ORS 1 : MME

The MME should only run on one of the ORS.

In  /root/mme/config/mme.cfg from ORS 1, replace the default GTP loopback address (127.0.1.100) with the IP address of the ORS on which the MME is running (here ORS 1). 

gtp_addr: "192.168.99.1", // address of MME

Also, the Rx binding address must be adapted to enable IMS. Change the bind_addr in rx to match the IP address of ORS 1.

rx: {
    qci: {audio: 1, video: 2},
    bind_addr : "192.168.99.1:3868", // 3868 : default port for Rx binding
},
  • ORS 1 : IMS

In /root/mme/config/ims.cfg, change the SCTP address as well as the Cx/Rx connections to match the IP address of ORS 1.

/* MME connection for SMS over SG */
sctp_addr: "192.168.99.1",

/* Cx connection */
cx_server_addr: "192.168.99.1:3868", // 3868 : default port
cx_bind_addr: "192.168.99.1",

/* Rx connection */
rx_server_addr: "192.168.99.1:3868",
  • ORS 2 : MME

If another MME is installed on the ORS where eNB2 is running, this one must be disabled.

To do this, edit  /root/ots/config/ots.cfg. Disable MME and IMS components by setting their path name to an empty string. 

# EPC config
COMPONENTS+=" MME"
MME_TYPE="MME"
MME_WIN="0"
MME_PATH=""
MME_INIT="-6"
MME_CONFIG_FILE="config/mme.cfg"

# IMS config
COMPONENTS+=" IMS"
IMS_TYPE="IMS"
IMS_WIN="3"
IMS_PATH=""
IMS_CONFIG_FILE="config/ims.cfg"

ENB1 Configuration

  • MME address
  • GTP address
  • X2 interface
  • eNB 1 ID
  • Neighbour cell
  • Measurement configuration
  • MME address

Replace the default loopback MME address (127.0.0.1) with the IP address of ORS 1. 

mme_list: [
  {
    /* address of MME for S1AP connection. Must be modified if the MME runs on a different host. */
    mme_addr: "192.168.99.1",
  },
],
  • GTP address

Replace the default loopback GTP address for eNB1 with the IP address of ORS 1. However, the IP address of ORS 1 is already being used by MME running on the same ORS, and thus cannot be used. To work around this, create an IP alias as the GTP address of eNB1 by running the following commands : 

ifconfig // get network interface name. e.g.enp2s0
ifconfig enp2s0:1 192.168.99.3/24 // create a different name (alias) for the ORS 1 IP address
ifconfig // check alias has been created

Then the GTP address in enb.cfg can be replaced with the new alias value.

/* GTP bind address (=address of the ethernet interface connected to the MME). Must be modified if the MME runs on a different host. */
gtp_addr: "192.168.99.3",
  • X2 interface

The two eNodeBs are communicating through X2 interface. Thus the X2 peer address is the IP address of the neighbour eNB, which is ORS 2.

/* X2 address : IP address of the other eNB */
x2_peers:["192.168.99.2"],
  • eNB1 ID

Each eNB must have a unique ID so that MME can differentiate them. Here you can leave the default value, which is : 

/* high 20 bits of SIB1.cellIdentifier */
enb_id: 0x1A2D0,
  • Neighbour cell 

eNB2 must be described in the eNB1's neighbour cell list. 

/* list of cells */
cell_list: [
{
  plmn_list: ["00101",],
  dl_earfcn: 38350, /* 1890 MHz (band 39) */
  n_id_cell: 1,
  cell_id: 0x01,
  tac: 0x0001,
  root_sequence_index: 204, /* PRACH root sequence index */

  /* Neighbour cell list (used for handover) */
  ncell_list: [
    { n_id_cell: 2, dl_earfcn: 42590, cell_id: 0x1a2d102, tac: 0x0001 },
  ],
},], /* cell_list */

In ncell_listn_id_cell is n_id_cell of eNB2 and cell_id is a concatenation of enb_id and cell_id of eNB2.

  • Measurement configuration

You can make the UEs send measurement reports when the connection state fluctuates, so that the ORSs know when to trigger handover. For example, you can enter the following parameters : 

/* Measurement configuration for handover */
meas_config_desc: {
  a1_report_type: "rsrp",
  a1_rsrp: -70,
  a1_hysteresis: 0,
  a1_time_to_trigger: 640,
  a2_report_type: "rsrp",
  a2_rsrp: -80,
  a2_hysteresis: 0,
  a2_time_to_trigger: 640,
  a3_report_type: "rsrp",
  a3_offset: 6,
  a3_hysteresis: 0,
  a3_time_to_trigger: 480,
},

/* measurement gap configuration */
meas_gap_config: "gp0",
                    
/* if true, initiate a handover when a suitable measurement report is received */
ho_from_meas: true,

ENB2 Configuration

  • MME address
  • GTP address
  • X2 interface
  • eNB 2 ID
  • Neighbour cell
  • Measurement configuration
  • MME address

Replace the default loopback MME address (127.0.0.1) with the IP address of the ORS where the MME is run, i.e. ORS 1. 

mme_list: [
  {
    /* address of MME for S1AP connection. Must be modified if the MME runs on a different host. */
    mme_addr: "192.168.99.1",
  },
],
  • GTP address

Replace the default loopback GTP address for eNB2 with the IP address of ORS 2. Here, there is no need to create any IP alias since there is no MME component on this ORS. 

gtp_addr: "192.168.99.2",
  • X2 interface

The X2 peer address for eNB2 is the IP address of ORS 1.

x2_peers:["192.168.99.1"],
  • eNB2 ID

Each eNB must have a unique ID so that the MME can differentiate them. Choose a different ID than the one for eNB1.

enb_id: 0x1A2D1,
  • Neighbour cell 
/* list of cells */
cell_list: [
{
  plmn_list: ["00101",],
  dl_earfcn: 42590, /* 3500 MHz (band 42) */
  n_id_cell: 2,
  cell_id: 0x02,
  tac: 0x0001,
  root_sequence_index: 204, /* PRACH root sequence index */

  /* Neighbour cell list (used for handover) */
  ncell_list: [
    { n_id_cell: 1, dl_earfcn: 38350, cell_id: 0x1a2d001, tac: 0x0001 },
  ],
},], /* cell_list */
  • Measurement configuration

An example of measurement report configuration is : 

/* Measurement configuration */
meas_config_desc: {
  a1_report_type: "rsrp",
  a1_rsrp: -70,
  a1_hysteresis: 0,
  a1_time_to_trigger: 640,
  a2_report_type: "rsrp",
  a2_rsrp: -80,
  a2_hysteresis: 0,
  a2_time_to_trigger: 640,
  a3_report_type: "rsrp",
  a3_offset: 6,
  a3_hysteresis: 0,
  a3_time_to_trigger: 480,
},

/* measurement gap configuration */
meas_gap_config: "gp0",
                    
/* if true, initiate a handover when a suitable measurement report is received */
ho_from_meas: true,

Clock Synchronisation

Configure GPS synchronisation in the RF driver file

Both eNB must be synchronised. Here we are using GPS clock antennas to do this. 

For more details on how to synchronise two ORSs, you may refer to How To Synchronise ORS.

If you are using a GPS clock antenna, then in the driver configuration file used in enb.cfg (usually /root/enb/config/rf_driver/config.cfg), the sync parameter should be gps

/* synchronisation source: internal, gps, external (default = internal) */
sync: "gps",

Check connection

Check LTE network interface connections

  • S1 interface
  • X2 interface

Once all of the components have been configured, you can launch the LTE service to check the connections. Enter the following commands in the LTE screen on the corresponding windows : 

  • MME (ORS 1) enb : Both eNB should be listed.
  • ENB (ORS 1/2) s1 : The connection state should be "setup_done" .
  • ENB (ORS 1/2) x2 :  X2 peer connection state should be "setup_done". If it is "disconnected", enter x2connect command and check again with x2 command. 

For the following steps, make sure you are performing a handover and not a simple reselection by keeping UE in RRC connected state ; to do this you can for example run uplink or downlink transfer with iperf, play a video on the Internet, make a call between two phones, etc ... 

Trigger Handover

Trigger handover by : 

  • Measurement report
  • ENB command
  • Handover triggered by UE measurement report

To trigger a handover by UE measurement report, you can for example move the UE (e.g. a phone) from one location to another as to get closer to the other ORS. 

Another method is to decrease the cell gain at eNB side with the cell_gain command. Enter the command followed by the cell_id and by how much you want to decrease the gain, e.g : 

cell_gain 1 -20
  • Handover triggered by eNB

To initiate handover on the eNB screen, use the handover command with the corresponding UE_IDpcidl_earfcn and type (S1 or X2 handover) parameters.

ue // get RAN_UE_ID e.g. 1
x2 // get pci, dl_earfcn of the neighbour eNB e.g. 1 and 38350
handover 1 1 38350 x2 // RAN_UE_ID pci dl_earfcn type

Check handover

To follow the handover procedure, the following logs can be relevant : 

  • X2AP : Handover Request, Handover Acknowledge
  • S1AP : Handover required, Handover command, UE context release
  • RRC : Connection Reconfiguration, Measurement Report

Other handover scenarios

Here, we focused on a case where one MME communicates with two eNB on two different frequency bands. For other cases, each eNB/MME/IMS/OTS component must be configured accordingly, with the correct addresses. Below are some indications on how to configure some of the other scenarios.   

  • Inter-LTE Handover : 2 eNB 2 MME

Change addresses in ORS 2 configuration files, similarly to the case explained above for ORS1. Moreover,

  • Add the second MME component in mme_list in enb.cfg if you want one eNB to communicate with two MME.
  • Create an IP alias for the second eNB as well, and put the new IP alias as the x2_peers address.

 

  • Intra-LTE Handover : same frequency band

The two nodes can have the same centre frequency as long as their clocks are synchronised.
To convert from Hertz frequency to EARFCN, refer to LTE Frequency Bands

TO DO : HANDOVER SAME F WORKS WITH GPS SYNC BUT NOT WITH PTP SYNC