[[TOC(cLTE*, depth=3)]] === Evolved Packet Core (ePC) === * Mobility Management Entity (MME) * Home Subscriber Server (HSS) * Signaling Gateway Service Node (SGSN) ==== !OpenAirInterface ePC ==== [[Image(OAI-ePC.png, width=300)]] == GENI OAI ePC == The deployment of the BBN GENI ePC was captured to provide an outline of the required installation, configuration and run-time requirements for an ePC/eNobeB setup on a GENI resource. See the [http://groups.geni.net/geni/wiki/GENILTE/LTEDeployment OpenAirInterface ePC GENI Site Deployment] page for a detailed look at steps required to add ePC/eNobeB resources to the GENI LTE multi-point VLAN and enabling the ability to share your site ePC/eNobeB setup with other GENI sites. Notes: * For GENI deployments it is strongly suggested that a dedicate bare metal node be reserved. Testing on VM has consistently shown that VM are not a viable selection for running the OAI ePC software. == Preliminary ePC Installation Guidelines == Instructions below were initially provided as a guide to installing the OAI ePC, for latest verified approach to using GENI ePC see the [http://groups.geni.net/geni/wiki/GENILTE/LTEDeployment OpenAirInterface ePC GENI Site Deployment] page. ==== Machine/VM Configuration ==== The !OpenAirInterface ePC should operate on a bare metal PC, VM, or container. Restrictions are due to kernel support, not timing. [[NewsFlashStart]] {{{ #!html

OAI Reference Pages

}}} This wiki page expands on the following steps from the eurecom wiki: * [https://gitlab.eurecom.fr/oai/openairinterface5g/wikis/OpenAirKernelMainSetup Kernel Requirements for RAN] * [https://gitlab.eurecom.fr/oai/openairinterface5g/wikis/GetSources The OpenAirInterface repository] * [https://gitlab.eurecom.fr/oai/openairinterface5g/wikis/HowToConnectCOTSUEwithOAIeNBNew How to Connect OAI eNB] [[NewsFlashEnd]] ===== Operating system ===== Testing has been done on Ubuntu 14.04 64 bit and Ubuntu 16.04. However, OAI ePC requires the GTP tunnel module which is available from kernel > 4.8. You can obtain this via the ubuntu HWE kernels. {{{ apt-get install linux-image-generic-hwe-16.04 }}} On GENI xen vm depending on the configuration of the hypervisor, the guest OS may not be able to select a different kernel from that used for provisioning. The reference image was built on a bare-metal pc, and then migrated to a VM successfully. ===== Configuration ===== A. hostnames 1. For this tutorial, we use the hostnames nano and hss, and the dommainname orbit-lab.org 1. append the following lines to /etc/hosts: {{{ 127.0.1.1 nano.orbit-lab.org nano 127.0.1.1 hss.orbit-lab.org hss }}} 1. remove /etc/hostname 1. On each boot, you must run {{{hostnamectl set-hostname nano}}} 1. This sets the current short and full hostnames to the correct entry from {{{/etc/hosts}}} 1. logout and back in to use the new hostname 1. to check, you must use {{{getent hosts name}}} 1. getent uses gethostbyname, while host and nslookup query DNS directly 1. Get sources 1. Follow the EPC instructions at https://gitlab.eurecom.fr/oai/openairinterface5g/wikis/GetSources 1. EPC config files 1. Follow the EPC related steps at https://gitlab.eurecom.fr/oai/openairinterface5g/wikis/HowToConnectCOTSUEwithOAIeNBNew 1. On a separate machine/hardware, the eNB steps can be followed to set up an OAI eNB, or a commercial eNB can be pointed to the EPC bind IP 1. Follow the steps until configuration files have been copied to {{{/usr/local/etc/oai}}} 1. The following modifications will need to be made to files in that subdirectory 1. in mme.conf: * set realm to the chosen dommainname, in this case {{{orbit-lab.org}}} * set hss_hostname to the chosen short hss hostname {{{hss}}} * set MCC and MNC in GUMMEI_LIST and TAI_LIST to chosen values {{{001, 01}}} * set network interfaces as appropriate. If mme, hss, and spgw are on the same machine, only S1 interface will not be localhost. 1. in spgw.conf * set s12 interface as needed, it will be the same as the s1 interface above. * set pgw interface for external/ client egress traffic * enable/disable masquerate and tpc clamping as needed * If s1 interface MTU is 1500, a maximum MTU of 1488 must be advertised to clients, and MSS clamping enabled to prevent fragmentation. This is due to 12 byte GTP overhead. * set DNS IP addresses, this will be advertised to clients. 1. in freediameter config files * set identity and realm as appropriate in both hss and mme files. 1. in hss.conf * set mysql username and password * set OP key used for sim cards. This example uses all 1s, as that is the configuration of the ORBIT sim cards. * this is used to generate keys for each sim. SIMs can also be configured with hardcoded keys, once the database is set up. * edit fqdns at bottom of hss.config to enable 001 01 plmn *. fqdn defined in spec, but you can just replace 208 93 with 001 001. #BOTH MUST BE 3 DIGITS 1. generate FD keys 1. in {{{openair-cn/SCRIPTS}}} 1. {{{./check_hss_s6a_certificate /usr/local/etc/oai/freeDiameter/ hss.orbit-lab.org}}} 1. {{{./check_mme_s6a_certificate /usr/local/etc/oai/freeDiameter/ nano.orbit-lab.org}}} 1. Compile and install hss, mme, and spgw {{{ cd YOUR_openair-cn_DIRECTORY cd SCRIPTS ./build_mme -I #Need to run only once to install missing packages ./build_hss -I #Need to run only once to install missing packages ./build_spgw -I #Need to run only once }}} 1. set up DB for hss 1. {{{./run_hss -i ~/openair-cn/SRC/OAI_HSS/db/oai_db.sql #Run only once to install database}}} 1. you can specify a different database dump, to replicate set ups. 1. append info to DB as appropriate, using the file [attachment:fill_sql.rb] 1. Adds mme hostname as entry in table mmeidentity 1. adds user/sim to users table, and pdn to pdn table 1. mmeidentity for user must match index of mme used 1. imsi specified for both user and pdn 1. specify user key with UNHEX function ==== Notes and References ==== 1. GENI 1. EPC URN: {{{urn:publicid:IDN+instageni.rutgers.edu+image+ch-geni-net:OAIEPCOrbit}}} 1. EPC fixed?: {{{urn:publicid:IDN+instageni.rutgers.edu+image+ch-geni-net:oaiepc477}}} 1. newest EPC: {{{urn:publicid:IDN+instageni.rutgers.edu+image+ch-geni-net:epc447scripted}}} 1. URL: {{{https://www.instageni.rutgers.edu/image_metadata.php?uuid=b300f9dc-0611-11e7-a074-000000000000}}} 1. eNB 1. URN: {{{urn:publicid:IDN+instageni.rutgers.edu+image+ch-geni-net:OAIeNBRutgers}}} 1. URL: {{{https://www.instageni.rutgers.edu/image_metadata.php?uuid=6844496a-9d2a-11e6-90f4-000000000000}}} 1. RCC/RRU: 1. EPC needs link on 10.3, for vlan access 1. EPC needs tunnel endpoint on 10.3, or via landing1, for demo sctp 1. RCC needs 10.3 link to mme, as well as link to RRU, in this case tunne, 10.10, or 10.40 1. RRU needs 10.3 to mme, as well as link to RCC (need to work on this, two tunnels? 1. issues: 1. Cannot seem to connect to vlan3701, fia-xia, 10.3.x.x 1. vlan is now named GENI-LTE-Multipoint 1. local connection to vlan 60, grid, 10.10 1. need to create connection to vlan 70, outdoor, 10.30 1. MTU 1. up to 12 octets for GTP-U header, advertise mtu 1460-12 = 1448 1. 12 octets for l2tp + 20 for ip, 8 for udp, 40 total. tunnel mtu 1460. 1. resources 1. https://remote-lab.net/linux-l2tp-ethernet-pseudowires 1. http://groups.geni.net/geni/wiki/GeniNetworkStitchingSites 1. http://groups.geni.net/geni/wiki/ConnectivityHome