Amarisoft

Running Multiple MME

 

The purpose of this tutorial is to show you how to run multiple MME and let multiple cells get connected to different MME. You can run multiple instances of mme in a callbox without any extra license requirement. The main use case for this is to test roaming scenario.

In live network, multiple RAN belongs to different carriers and multiple separate core network are involved in roaming scenario. In Amarisoft callbox, running multiple instances of RAN(eNB, gNB) requires additional license and further tricky setup. As an alternative, it is recommend to use single instance of eNB/gNB with multiple cells that has different PLMN and then run the multiple instances of Core Network (MME) as roaming test environment.

 

Table of Contents

 

Test Setup

In this setup, two instances of MME/IMS are running in the callbox. All the components will launch automatically by lte service and all the components will be automatically added to 'screen' window as well. ( NOTE : All the components shown here are running in the same callbox PC (i,e. running in single callbox PC).

TestSetup MultipleMME 02

NOTE : In this tutorial, one (same) ue_db configuration is used for both MME. So you may get an error if you change the contents of the ue_db in such a way that it matches only one of the MME (not both).  If you want to avoid this kind of situation, you may create two separate ue_db configuration files and configure them accordingly for each MME.

 

 

Configuration

The configuration for this use case is pretty complicated comparing to regular use case because you need to add additional components (MME1 and IMS1 in this case) and associate separate configuration files for them. In addition, you need to modify OTS configuration as well to incoporate the newly added components.

 

Configuration File Setup

I used enb-2cell-2plmn.cfg which is copied and modified from enb-2cell-ho.cfg (These configuration files are located in /root/enb/config).

MultipleMME 2 Configuration 01

I used two separate mme configuration files : mme-ims-0.cfg and mme-ims-1.cfg which are copied and modified from mme-ims.cfg. Note that mme0.cfg  and mme1.cfg are symbolically linked to mme-ims-0.cfg and mme-ims-1.cfg respectively. (These configuration files are located in /root/mme/config).

MultipleMME 2 Configuration 02 a

I used two separate ims configuration files : mme.default.0.cfg and mme.default1.cfg which are copied and modified from ims.default.cfg. Note that ims0.cfg  and ims1.cfg are symbolically linked to ims.default0.cfg and ims.default1.cfg respectively. (These configuration files are located in /root/mme/config).

MultipleMME 2 Configuration 02 b

I used ots-multi-mme.cfg which is copied and modiefied from ots.default.cfg (These configuration files are located in /root/ots/config).

MultipleMME 1 Configuration ots 01

 

Configuration for eNB

In enb-2cell-2plmn.cfg , I made modifications as follows. Note that one more mme_addr is added. 127.0.1.100 is gtp_addr of MME 0 and 127.0.1.101 is gtp_addr of MME 1.

MultipleMME Configuration 03

Since all the mmes are running on the same PC as ENB in test setup, you can keep gtp_addr as it is without any change.

MultipleMME Configuration 04

Now we are going to two cells with different PLMNs and get each of them mapped to different rf port.

The first cell is mapped to rf_port 0 and PLMN 00101 is set the cell.

MultipleMME 3 Configuration 05

The second cell is mapped to rf_port 1 and PLMN 00102 is set the cell.

MultipleMME 3 Configuration 06

Comment out plmn_list[] in cell_default. We do this because we want to specify different PLMN for each of the cells. If you specify PLMN in cell_default, that same PLMN applies to every cells which is not intended for this use case.

MultipleMME Configuration 07

 

Configuration for MME 0

Followings are the configuration in mme-ims-0.cfg. This MME will be associated with the first cell of ENB. We will use the contents of the default mme configuration to MME 0.

Keep gtp_addr, plmn and ims_list same as in the default configuration.

MultipleMME 2 Configuration MME 1 01

Keep the "default" PDN/APN as in the default configuration file. ptn_type is "ipv4", the range of ip address is 192.168.2.2~192.168.2.254

MultipleMME 2 Configuration MME 1 02

Keep the "internet" PDN/APN as in the default configuration file. ptn_type is "ipv4" and "ipv4v6", the range of ip address is 192.168.3.2~192.168.3.254 and 2001:468:2000:1::~2001:468:2000:ffff:: respectively.

MultipleMME 2 Configuration MME 1 03

Keep the "ims" PDN/APN as in the default configuration file. ptn_type is  "ipv4v6", the range of ip address is 192.168.4.2~192.168.4.254 and 2001:468:3000:1::~2001:468:3000:ffff:: respectively.

MultipleMME 2 Configuration MME 1 04

Keep the "ims" PDN/APN as in the default configuration file. ptn_type is  "ipv4v6", the range of ip address is 192.168.5.2~192.168.5.254 and 2001:468:4000:1::~2001:468:4000:ffff:: respectively.

MultipleMME 2 Configuration MME 1 05

 

Configuration for MME 1

Followings are the configuration in mme-ims-1.cfg. NOTE that this MME has configured for the PLMN 310260 and use the gtp_addr which is different from MME 0. Also mis_addr and bind_addr in ims_list are set differently from MME 0.

MultipleMME 2 Configuration MME 2 01

Set "default" PDN/APN differently from MM0 configuration. ptn_type is "ipv4", the range of ip address is 192.168.12.2~192.168.12.254

MultipleMME 2 Configuration MME 2 02

Set "internet" PDN/APN differently from MM0 configuration. ptn_type is "ipv4" and "ipv4v6", the range of ip address is 192.168.13.2~192.168.13.254 and 2001:468:1200:1::~2001:468:1200:ffff:: respectively.

MultipleMME 2 Configuration MME 2 03

Set "ims" PDN/APN differently from MM0 configuration. ptn_type is  "ipv4v6", the range of ip address is 192.168.14.2~192.168.14.254 and 2001:468:1300:1::~2001:468:1300:ffff:: respectively.

MultipleMME 2 Configuration MME 2 04

Set "sos" PDN/APN differently from MM0 configuration. ptn_type is  "ipv4v6", the range of ip address is 192.168.15.2~192.168.15.254 and 2001:468:1400:1::~2001:468:1400:ffff:: respectively.

MultipleMME 2 Configuration MME 2 05

 

Configuration for IMS 0

Followings are the configuration in ims.default0.cfg.

The addr and bind_addr of sip_addr and all other parameters (sctp_addr, cx_server_addr, cx_bind_addr, rx_server_addr) are same as in the default ims configuration.

MultipleMME 2 Configuration IMS 0 01

 

Configuration for IMS 1

Followings are the configuration in ims.default1.cfg. You should configure the parameters differently from the IMS 0 configuration.

The addr and bind_addr of sip_addr and all other parameters (sctp_addr, cx_server_addr, cx_bind_addr, rx_server_addr) are set differently from the configuration of IMS 0.

MultipleMME 2 Configuration IMS 1 01

 

Configuration for OTS

Followings are the configuration in ots-multi-mme.cfg  The purpose of this step is to integrate the new components into the screen UI(User Interface).  

First set the MME_CONFIG_FILE (the configuration file pointer for the first MME) to "config/mme0.cfg". And then create a new Components named " MME1" and map MME1_CONFIG)FILE to "config/mme1.cfg"

MultipleMME 2 Configuration OTS 02

Then set the IMS_CONFIG_FILE (the configuration file pointer for the first IMS) to "config/ims0.cfg". And then create a new Components named " IMS1" and map IMS1_CONFIG)FILE to "config/ims1.cfg"

MultipleMME 2 Configuration OTS 03

 

Perform the test

In this test, I would just run a lte service with additional MME. I would not try any UE attach.  In this test, all the eNB and mme is run automtically by lte service.

If you run lte service and get into screen mode, you will see a new component (mme1) is added as below. This addition is done by the configuration in ots.cfg as indicated below.

MultipleMME 2 Run 01 a

MultipleMME 2 Run 01 b

Now check out the network interface while the service is running and you will see many tun interfaces are created as shown below.

these are the tun interface created by mme-ims-0.cfg

MultipleMME 2 Run 02

these are the tun interface created by mme-ims-1.cfg

MultipleMME 2 Run 03

Followings are the ipv4 routing table created by the operating system and lte service.

MultipleMME 2 Run 04 a

Followings are the ipv6 routing table created by the operating system and lte service.

MultipleMME 2 Run 04 b

MultipleMME 2 Run 04 c

Now go back to lte service screen and check follows.

Check the mmes that the eNB is connected as shown below. (NOTE : It may take some time to get both of s1 to be printed as "setup_done'. Sometimes you may need to try s1 command several times until you see both of S1 are printed as 'setup_done'.

MultipleMME 3 Run 05

Go to MME (mme0) and check out the connected enb.

MultipleMME 3 Run 06

Go to MME1(mme1) and check out the connected enb.

MultipleMME 3 Run 07

Go to IMS (ims0) and check out the connected mme.

MultipleMME 3 Run 08

Go to IMS1 (ims1) and check out the connected mme.

MultipleMME 3 Run 09

 

Log Analysis

Sample Log

The screenshots below shows only the initial connection of each network components and SIB1 message from each cell.  I have tried this with real UE and captured the full log from attach to IMS registration for both cells. Check out the Sample Logs.

If you run WebGUI, you would notice that a new component (MME1) is added as shown below.

MultipleMME 3 Log 01

Followings are some of highlighted steps you may want to check.

This shows sctp socket is established with mme0(127.0.1.100).

MultipleMME 3 Log 02

This shows sctp socket is established with mme1(127.0.1.101).

MultipleMME 3 Log 03

eNB send S1 setup request to mme0(127.0.1.100).

MultipleMME 3 Log 04

mme0 send S1 setup response to eNB. This indicates that S1AP between eNB and mm0 is established.

MultipleMME 3 Log 05

eNB send S1 setup request to mme1 (127.0.1.101).

MultipleMME 3 Log 06

mme1 send S1 setup response to eNB. This indicates that S1AP between eNB and mm1 is established.

MultipleMME 3 Log 07

Now the Cell 1 is transmitting SIB1 with PLMN 001-01  as set in the configuration file..

MultipleMME 3 Log 08

Then Cell 2 is transmitting SIB1 with PLMN 001-02 as set in the configuration file.

MultipleMME 3 Log 09