wiki:Internal/OAIEPC

Version 21 (modified by msherman, 8 years ago) ( diff )

Steps for setting up OAI EPC on orbit

This wiki page expands on the following steps from the eurecom wiki, to customize the sim card info and hostnames.

  1. Hardware
    1. The EPC should operate on a bare metal PC, VM, or container. Restrictions are due to kernel support, not timing.
  2. Operating system
    1. Testing has been done on Ubuntu 14.04 64 bit. Ubuntu 16.04 may work, but has not been tested.
  3. Kernel
    1. More info at: https://gitlab.eurecom.fr/oai/openairinterface5g/wikis/OpenAirKernelMainSetup
    2. We need the GTP tunnel module, from either kernel 4.8 (untested) or a custom compiled 4.7.x
      1. install kernel 4.7.7
        git clone https://gitlab.eurecom.fr/oai/linux-4.7.x.git
        cd linux-4.7.x
        sudo dpkg -i linux-headers-4.7.7-oaiepc_4.7.7-oaiepc-10.00.Custom_amd64.deb linux-image-4.7.7-oaiepc_4.7.7-oaiepc-10.00.Custom_amd64.deb
        
    3. issues with changing kernels on xen vm
      1. 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 image below was built on a bare-metal pc, and then migrated to a VM successfully.
  4. hostnames
    1. For this tutorial, we use the hostnames nano and hss, and the dommainname orbit-lab.org
    2. 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
      
    3. remove /etc/hostname
    4. 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
    5. logout and back in to use the new hostname
    6. to check, you must use getent hosts name
      1. getent uses gethostbyname, while host and nslookup query DNS directly
  5. Get sources
    1. Follow the EPC instructions at https://gitlab.eurecom.fr/oai/openairinterface5g/wikis/GetSources
  6. 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
      2. Follow the steps until configuration files have been copied to /usr/local/etc/oai
    2. 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.
      2. 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.
      3. in freediameter config files
        • set identity and realm as appropriate in both hss and mme files.
      4. 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
  7. generate FD keys
    1. in openair-cn/SCRIPTS
    2. ./check_hss_s6a_certificate /usr/local/etc/oai/freeDiameter/ hss.orbit-lab.org
    3. ./check_mme_s6a_certificate /usr/local/etc/oai/freeDiameter/ nano.orbit-lab.org
  8. 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
    
  9. set up DB for hss
    1. ./run_hss -i ~/openair-cn/SRC/OAI_HSS/db/oai_db.sql #Run only once to install database
    2. you can specify a different database dump, to replicate set ups.
    3. append info to DB as appropriate
    4. Add mme hostname as entry in table mmeidentity
    5. add user/sim to users table, and pdn to pdn table
      1. mmeidentity for user must match index of mme used
      2. imsi specified for both user and pdn
      3. 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
    2. EPC fixed?: urn:publicid:IDN+instageni.rutgers.edu+image+ch-geni-net:oaiepc477
    3. 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
    4. eNB
      1. URN: urn:publicid:IDN+instageni.rutgers.edu+image+ch-geni-net:OAIeNBRutgers
      2. URL: https://www.instageni.rutgers.edu/image_metadata.php?uuid=6844496a-9d2a-11e6-90f4-000000000000
  2. RCC/RRU:
    1. EPC needs link on 10.3, for vlan access
    2. EPC needs tunnel endpoint on 10.3, or via landing1, for demo sctp
    3. RCC needs 10.3 link to mme, as well as link to RRU, in this case tunne, 10.10, or 10.40
    4. RRU needs 10.3 to mme, as well as link to RCC (need to work on this, two tunnels?
  3. issues:
    1. Cannot seem to connect to vlan3701, fia-xia, 10.3.x.x
      1. vlan is now named GENI-LTE-Multipoint
    2. local connection to vlan 60, grid, 10.10
    3. need to create connection to vlan 70, outdoor, 10.30
  4. MTU
    1. up to 12 octets for GTP-U header, advertise mtu 1460-12 = 1448
    2. 12 octets for l2tp + 20 for ip, 8 for udp, 40 total. tunnel mtu 1460.
  5. resources
    1. https://remote-lab.net/linux-l2tp-ethernet-pseudowires
    2. http://groups.geni.net/geni/wiki/GeniNetworkStitchingSites
    3. http://groups.geni.net/geni/wiki/ConnectivityHome
Note: See TracWiki for help on using the wiki.