eNB & MME Configuration Files

This blog post forms the second part of our series on PicoLTE (see Part I here). In this post, we will explore the eNB and MME configuration files and explain some of the important parameters that can be specified for eNB and the MME. As mentioned in the first video in this series, PicoLTE is based on PicoSDR 2x2E, where E represents the embedded computer onboard the PicoSDR. The embedded computer comes pre-installed with Linux Ubuntu 12.04 LTS. For PicoLTE, the Linux OS comes pre-installed with Nutaq’s PicoSDR plugin as well as Amarisoft’s LTE stack. To this end, the eNB configuration files can be found at the following locations:



where x = 1 or 3 (1 = SISO, 3 = MIMO) and (Y = 1.4, 3, 5, 10, 15 or 20). Nutaq provides pre-configured scripts to run the eNB in SISO or MIMO (x) configuration at the desired desired bandwidth (Y).  The MME configuration file can be found at the following location:




We will now explore the eNB configuration files. While there are around a 100 eNB parameters that can be configured, in this blog post, we will only outline the most basic ones. To this end, we start by exploring the parameters shown in Fig. 1. ­­

Fig.1 - eNB configuration file

Fig.1 – eNB configuration file




The first two parameters, i.e., log_options and log_filename, respectively, enable the user to specify the layers that they want to log and the location to store the log files. Amarisofts LTE stack enables logging of various layers, including PHY, MAC, RRC, RLC, NAS, X2, S1AP, etc. Additionally, there is also a GUI to view all the logs. The GUI can be accessed from a web browser and will be shown later in Part III of this series. The com_addr parameter allows the user to specify the address that enables the Web interface (GUI mentioned earlier) to access the eNB log files. The next two parameters, i.e., mme_addr and gtp_addr, enable the eNB and the MME to form S1-MME connections. There are two possible configuration scenarios, eNB and MME on the same unit or eNB and MME on two different units. The loopback addresses starting with 127.X.X.X imply that the eNB and the MME run on the same host computer. Finally, enb_id specifies the eNB id that is broadcasted as part of SIB1.

Fig.2 - eNB configuration - Cell list

Fig.2 – eNB configuration – Cell list


Fig. 2 shows how one can configure a cell list. Amarisoft’s LTE stack with PicoLTE enables the user to specify more than one cell, and each cell can be used to broadcast more than one PLMN id, using the plmn_list parameter shown above. The dl_earfcn parameter is used to specify the downlink frequency, and the corresponding uplink frequency is calculated automatically based on 3GPP LTE specifications. Moving along, one can specify the cell-id using cell_id, which is then combined the eNB ID to form a complete cell-ID, which is broadcasted as part of the secondary synchronization signal (SSS). Finally, the number of uplink and downlink antennas, resource block (bandwidth) and cyclic prefix length can be specified using the parameters shown in Fig. 3, in the same order.

Fig.3 - eNB configuration - Cell default

Fig.3 – eNB configuration – Cell default


As mentioned previously, the MME configuration script is located in the /root folder, as mentioned above. As shown in Fig. 4, the initial few parameters for the MME configuration are similar to those for eNB, with the users having the choice to specify the messages that they want to log. Similarly, the gtp_addr parameter enables the user to assign an address to the core network side of the S1-MME connection. Following this, users can specify the plmn, MME group ID as well as the code for the specific MME. The last two parameters are used to identify a specific MME when a group of MMEs is serving the same area. The parameters network_name and network_short_name allow the users to specify the network name that is sent as part of the EPS mobility management information.

Fig.4 - MME configuration file

Fig.4 – MME configuration file


Next, Fig. 5 shows the parameters that can be used to define different packet data networks (PDNs) that can be connected to the network. Multiple PDNs can be defined, each with it’s own access point name and IP address range. Using pdn_type, users can use either IPv4 or IPv6 addressing or they could use both simultaneously, as shown in the IPv6 sample config shown in Fig. 5. Lastly, it is also possible to assign different EUTRAN – Radio Access Bearers (ERABS) to different PDNs. To this end, it is imperative to mention that the data radio bearer (DRB) configuration for each QCI value is defined in “drb.cfg” file located in the same folder as the eNB configuration script and it has to be included in the eNB configuration file.

Fig.5 - MME configuration file - PDN Definition

Fig.5 – MME configuration file – PDN Definition

Lastly, Fig. 6 shows how one could include a list of subscribers that are allowed to access the services offered by the network. To this end, the “ue_db-ims.cfg”, located in the same folder as the MME configuration script, is used to add subscriber information, including the IMSI number, the IMEI number, the op code and K code values, as well as the authentication algorithm, i.e., xor or milenage. With test sim cards, we mostly use the xor algorithm, since it enables us to use test sim cards with same IMSIs, and users are authenticated based on a combination of their IMSI and device IMEI numbers.

Fig.6 - MME configuration - User Database

Fig.6 – MME configuration – User Database