wiki:GENILTE/LTEDeploymentRutgers

GENI LTE ePC at RUTGERS

This page captures the latest instructions for configuration as used in the GENI LTE EPC at RUTGERS setup.


1 Introduction

The purpose of this document is to outline the procedure needed to congure the GENI Test LTE EPC located at Rutgers Orbit Winlab. The main goal that was accomplished from this procedure was to create a central Evolved Packet Core (EPC) that all GENI sites may connect to using their own base stations (eNBs) and user equipment (UEs) without having to congure individual EPCs.

2 System Requirements

2.1 Hardware

The machine chosen to run as the EPC should have at least 4 GB of RAM, 120 GB or more of disk storage, have a 64-bit Intel processor, and also have a 1G Ethernet interface. As an example, at the Winlab Orbit Facility, the system is currently congured on a server with two 160 GB hard drives. Two VLANS are congured, one for the LTE Multipoint and the other for the WiMAX multi- point.

2.2 Software

This EPC uses the Amarisoft LTE 100 software package, specically their EPC solution(Version 2017-06-02). More details about this can be found at https://www.amarisoft.com/software-enb-epc-ue-simulator/. The software can run on any 64-bit Linux OS, and has been tested with Fedora versions 17-25 and Ubuntu releases 12.x-16.x. The GENI LTE EPC is congured with an Ubuntu Server 16.04 LTS install, running on Linux Kernel 4.4.

3 Installation Procedure

Before installation:

  • Make sure the system is up-to-date:
     sudo apt update && sudo apt upgrade
    
  • Acquire the tarball of the licensed Amarisoft software package.
  • If a /opt/ directory is not already present, create one

Once these preliminary steps are complete, the following procedure can be fol- lowed to make a clean installation:

  • Unzip the tarball in the /opt/ directory:
     tar -C /opt -xf amarisfot-2017-06-02.tar.gz
    
  • To automatically install all components of the Amarisoft software, simplyrun the install script:
    cd /opt/amarisoft-2017-06-02
    sudo ./install.sh
    
  • Right below this change, add the following to set the gtp payload mtu:
    gtp_payload_mtu: 1500,
    
  • Install SCTP tools if they are not present already on the system: sudo apt install lkstcp-tools
  • Next, run the script that sets the NAT forwarding rules. This will enable IP forwarding (where interface-name is the name of the Ethernet interface): sudo ./lte_init interface-name

4 Configuration

The GENI LTE EPC runs on the following IP: 10.3.0.250, ensure that this is set as the static IP for the EPC. Confguration of the Amarisoft LTE software is rather simple, and takes place all in one file, the "mme.cfg" file. First, make a backup of mme.cfg in some convenient location. Then, edit the mme.cfg fille in /opt/ in the following manner:

  • Change GTP address to the current outbound address, which is the IP of the EPC

Before:

 gtp_addr: "127.0.1.100",

After:

 gtp_addr: "10.3.0.250",
  • Next, give the MME a name to be identied by and also a "short" name

Before:

 network_name: "Amarisoft Network",
 network_short_name: "Amarisoft",

After:

 network_name: "GENI LTE Network",
 network_short_name: "GENI",
  • The "pdn-list" structure needs to be modified. These modifications include the access point name, the IP start-end ranges for both IPV4 and the UE specific fields, and the addition of a mtu-ipv4 field that is not present in the default configuration file. Please refer to the bold text,they show the necessary adjustments.

"pdn_list" before:

 pdn_list: [
     {
       pdn_type: "ipv4",
       access_point_name: "test123",
       first_ip_addr: "192.168.3.2",
       last_ip_addr: "192.168.3.254",
       ip_addr_shift: 2, /* difference between allocated IP addresses is 4 */
       dns_addr: "8.8.8.8", /* Google DNS address */

       /* IPv6 sample config
       pdn_type: "ipv4v6",
       first_ipv6_prefix: "2001:468:3000:1::",
       last_ipv6_prefix: "2001:468:3000:ffff::",
       dns_addr: ["8.8.8.8", "2001:4860:4860::8888"], // Google IPv6 DNS address
       */

       erabs: [
         {
           qci: 9,
           priority_level: 15,
           pre_emption_capability: "shall_not_trigger_pre_emption",
           pre_emption_vulnerability: "not_pre_emptable",
         },
       ],
     },
     {
       /* Some UE requires a specific PDN for data access */
       pdn_type: "ipv4",
       access_point_name: "internet",
       first_ip_addr: "192.168.4.2",
       last_ip_addr: "192.168.4.254",
       ip_addr_shift: 2,
       dns_addr: "8.8.8.8", /* Google DNS address */
       erabs: [
         {
           qci: 9,
           priority_level: 15,
           pre_emption_capability: "shall_not_trigger_pre_emption",
           pre_emption_vulnerability: "not_pre_emptable",
         },
       ],
     },
   ],

"pdn_list after:

 pdn_list: [
     {
       pdn_type: "ipv4",
       \textbf{access_point_name: "orbitA",
       first_ip_addr: "192.168.3.20",
       last_ip_addr: "192.168.3.200",}
       ip_addr_shift: 2, /* difference between allocated IP addresses is 4 */
       dns_addr: "8.8.8.8", /* Google DNS address */
       \textbf{mtu_ipv4: 1436,}

       /* IPv6 sample config
       pdn_type: "ipv4v6",
       first_ipv6_prefix: "2001:468:3000:1::",
       last_ipv6_prefix: "2001:468:3000:ffff::",
       dns_addr: ["8.8.8.8", "2001:4860:4860::8888"], // Google IPv6 DNS address
       */

       erabs: [
         {
           qci: 9,
           priority_level: 15,
           pre_emption_capability: "shall_not_trigger_pre_emption",
           pre_emption_vulnerability: "not_pre_emptable",
         },
       ],
     },
     {
       /* Some UE requires a specific PDN for data access */
       pdn_type: "ipv4",
       access_point_name: "internet",
       \textbf{first_ip_addr: "192.168.4.20",
       last_ip_addr: "192.168.4.200",}
       ip_addr_shift: 2,
       dns_addr: "8.8.8.8", /* Google DNS address */
       \textbf{mtu_ipv4: 1436,}
       erabs: [
         {
           qci: 9,
           priority_level: 15,
           pre_emption_capability: "shall_not_trigger_pre_emption",
           pre_emption_vulnerability: "not_pre_emptable",
         },
       ],
     },
   ],

  • Next, the UE "database" needs to be configured. Amarisoft allows users to either set up a persistent database, or simply use a dictionary like-structure within mme.cfg to specify allowable UEs. The GENI LTE EPC will use the

standard structure, wherein a UE entry contains the following fields, all located in the mme.cfg file:

 {
 sim_algo: XXX,
 imsi: XXX,
 amf: XXX,
 sqn: XXX,
 k: XXX,
 opc: XXX
 }

The default configuration file will obviously have no UEs configured in this structure. Any time a new SIM card is created, or a new UE needs to be added it must be appended to this list:

Before (default config file):

 /* user data base */
 ue_db: [
 {
 sim_algo: "xor", /* USIM authentication algorithm: xor, milenage or tuak */
 imsi: "001010123456789", /* Anritsu Test USIM */
 // imsi: "001012345678901", /* Agilent or R&S Test USIM */
 amf: 0x9001, /* Authentication Management Field */
 sqn: "000000000000", /* Sequence Number */
 K: "00112233445566778899aabbccddeeff", /* Anritsu Test USIM */
 // K: "4147494C454E5420544543484E4F0000", /* Agilent Test USIM */
 // K: "000102030405060708090A0B0C0D0E0F", /* R&S Test USIM */
 /* if true, allow several UEs to have the same IMSI (useful
 with test SIM cards). They are distinguished with their
 IMEI. default = false. */
 multi_sim: true,
 },
 /* Add new entries for each IMSI/K */
 ],

An example of an addition to the UE list::

 ue_db: [
 {
 sim_algo: "xor", /* USIM authentication algorithm: xor, milenage or tuak */
 imsi: "001010123456789", /* Anritsu Test USIM */
 // imsi: "001012345678901", /* Agilent or R&S Test USIM */
 amf: 0x9001, /* Authentication Management Field */
 sqn: "000000000000", /* Sequence Number */
 K: "00112233445566778899aabbccddeeff", /* Anritsu Test USIM */
 // K: "4147494C454E5420544543484E4F0000", /* Agilent Test USIM */
 // K: "000102030405060708090A0B0C0D0E0F", /* R&S Test USIM */
 /* if true, allow several UEs to have the same IMSI (useful
 with test SIM cards). They are distinguished with their
 IMEI. default = false. */
 multi_sim: true,
 },
 {
 sim_algo: "milenage", /* OAI uses milenage */
 imsi: "0000000000000", /* OAI card 1 */
 amf: 0x000, /* Authentication Management Field */
 sqn: "000000000000", /* Sequence Number */
 K: "h3iu24kj34bkj234k34", /* OAI K key */
 opc: "2b4kh2b42hb34jh234", /* OAI opc */
 },

Important note: Since UEs need to be added to the mme.cfg file that runs on the EPC at Rutgers, GENI sites that wish to tap into this EPC will need to request a SIM card to be sent out from Rutgers Winlab. Test SIM cards from Anritsu will work without further configuration and multiple clients can use identical SIMs. For a documentation on how to configure "factory-new" SIM cards, please refer to Orbit's wiki page on how to do so: http://www.orbit-lab.org/wiki/Documentation/gWide/bLTESIM The last change that needs to be made is uncommenting the "persistent user database" eld at the very end of mme.cfg:

Before:

  /* persistent user database */
  //ue_db_filename: "lte_ue.db",
  }

After:

 /* persistent user database */
 ue_db_filename: "lte_ue.db",
 }

5 Licensing the EPC

In order to license the Amarisoft EPC, one must use the provided USB-key. It must be plugged in directly to the GENI LTE EPC. First, mount the USB drive. Then, copy over the key les to the home folder of the root user. For convenience, it is worthwhile to edit /etc/fstab to have this drive auto mount in case it is ever unplugged:

UUID="device_block_id" /opt/license ext4 ro 0 0

Important Note: This will work for the current configuration, however, if the Amarisoft system ever gets re-licensed it will simply be a key file, with no USB drive. The same procedure (copying over to root's home folder) will still apply.

6 GENI-site Base Station Conguration

GENI LTE EPC. It is important to note that all GENI sites should use the same network profile to connect to the EPC, unless if they need a local VLAN configured a new profile will need to be configured. This newly configured profile should be almost identical other than the newly updated VLAN tags. Within Netspan:

  • Make a profile named AmarisoftMME1000 if one is not already there
  • Set the following parameters:
     MCC: 001
     MNC: 01
     MME IP: 10.3.0.250
     SCTP Port: 36412
    
  • Once the necessary changes have been made, restart your base station using the forced reset node option

For convenience, the following image is included to help show how Netspan should be configured:

Figure 1: Netspan Profile Configuration Page

7 Running the EPC

Once all of the configuration is complete, the EPC can be started by running the following command. Please note it must be done from the root user, as it relies on the root user's environment variables.

./ltemme .config/mme.cfg


Upon server reboots, the MME system will automatically start via Orbit's inter- nal bscontrol service module. To insure it is running, simply run the following:

ps aux | grep mme


The Amarisfot MME system has several logging levels. By default, it will cap- ture all connect and disconnect messages, as well as any eNodeB heartbeats. If desired, one can turn on verbose logging which will capture much more data, such as any and all GTP packets coming/going, as well as the standard mes- sages. Be cautious when using verbose logging, as it generates log files that are quite large in size, and can easily fill up the rotating log files very quickly. Syslog will be set up to allow users who are not currently logged into the physical EPC to view/parse log files themselves. Amarisoft places log files into

/var/log/mme.log



The information on this page was based on the attached documents.

Last modified 17 months ago Last modified on 09/19/17 13:20:15

Attachments (3)

Download all attachments as: .zip