[[PageOutline]] '''This page captures the initial evaluation of the LTE EPC conducted at BBN. For more current instructions see the [wiki:GENILTE/LTEDeploymentRutgers GENI LTE EPC at RUTGERS] page ''' ------- = !OpenAirInterface ePC GENI Site Deployment = GENI !OpenAirInterface (OAI) Evolved Packet Core (ePC) software installation, configuration and general deployment details are captured in this page and in the [http://wimax.orbit-lab.org/wiki/cLTE/eSoftware/cEpc#EvolvedPacketCoreePC Rutgers Evolved Packet Core] page. See the [wiki:GENILTE/LTESites GENI LTE EPc Sites] page for details about planned and existing sites where this setup is being deployed. These !OpenAirInterface Project is a Software Alliance (OSA) effort whose EPC software is known as openairCN. Details about the ePC software deployed at the BBN GENI LTE site are captured on this page. These OAI references were used during the installation: * [https://gitlab.eurecom.fr/oai/openairinterface5g/wikis/home OpenAirInterface Project] * [https://gitlab.eurecom.fr/oai/openairinterface5g/wikis/GetSources OAI Repository] * [https://gitlab.eurecom.fr/oai/openairinterface5g/wikis/AutoBuild Building OAI Executables] * [https://gitlab.eurecom.fr/oai/openairinterface5g/wikis/HowToConnectCOTSUEwithOAIeNBNew Connect OAI eNB] The GENI ePC installation uses all three major components in the OAI ePC. Both BBN and Rutgers operate with these three components: - Mobility Management Entity (MME) - Home Subscriber Server (HSS) - Serving and PDN Gateway (SPGW=S+P-GW) Both BBN and Rutgers setups included an [http://www.airspan.com/ AirSpan] Base Station [http://www.airspan.com/airharmony-1000/ AirHarmony 1000] (eNodeB). The rest of the information on this page is specific to the LTE installations at BBN and Rutgers, but is relevant to anyone building the LTE systems in GENI. Note that there are variations in building for InstaGENI, ExoGENI and non-GENI compute environments, so if you build using a GENI rack compute resource, be sure to check the hardware and version information for your site to adjust if necessary. Please share your build information with other LTE sites either by directly editing the GENI wiki, or by sending your information to help@geni.net. == Software Version == The following software versions were installed at BBN: - InstaGENI Aggregate at BBN: 'code_tag': '1c6251f8ed35aac2c3383bdbdc81bccbe7227bfd' - ePC host at BBN: Ubuntu 16.04.2 LTS (OS Kernel 4.8.0-54-generic) - OpenairCN software at BBN: Develop branch commit 67180ca07c3f543fb6efde13bfdd88ec153185c7 - Base Station Firmware (eNodeB) at BBN and Rutgers: Version 14.14.00.137 Full inventory for the BBN and Rutgers base stations used in this effort is shown in the inventory below: [[Image(Inventory-eNodeB.jpeg, 50%)]] = User Equipment (UE) Devices and Versions = Rutgers and BBN User Equipment Devices used included: * LG Nexus 5x Android 7.1.1 (Nougat) * LG Nexus 5 Android 6.0.1 (Marshmallow) UE device SIM information used in this effort can be found at the [http://wimax.orbit-lab.org/wiki/cLTE/cHardware/eUESIM#UEDeviceSIMinfo ORBIT UEs SIM Information] page. == Prerequisites == Following are pre-requisites for the host running the ePC OAI software: 1. The [https://gitlab.eurecom.fr/oai/openairinterface5g/wikis/home OpenAirInterface(OAI)] software '''must''' run on a dedicated Bare Metal compute node for ExoGENI racks or Raw PC compute node for InstaGENI sites. (Do not use a VM compute resource.) 2. The ePC requires that the General Packet Radio Service Tunneling Protocol (GRTP) Linux module is enabled. 3. The dedicated Raw PC must be configured with expanded disk space (instructions below). --------- = Get GENI Resource = Using your GENI credentials, reserve a dedicated GENI Raw PC compute resource running Ubuntu 16.04 to use as the ePC host. (See http://groups.geni.net/geni/wiki/SignMeUp if you don't already have GENI credentials.) Note that the RSpec should include a request for the GENI AL2S LTE Multipoint VLAN. Here is a sample RSpec [https://raw.githubusercontent.com/GENI-NSF/geni-support/master/wireless/lte-raw-pc-default-image.rspec lte-raw-pc-default-image.rspec] for requesting the dedicated raw PC on the LTE Multipoint VLAN. --------- = InstaGENI Site Software Installation = == Installing 4.8 Kernel on InstaGENI ePC Resource == After an Ubuntu 16 Raw PC is reserved in the InstaGENI rack, the following procedure is followed to create the ePC setup: {{{ # Note the Ubuntu 16.04.1l image delivers a GNU/Linux 4.4.0-34-generic sudo apt-get update sudo apt-get -y upgrade # Note the next step requests a conflicting grub change. The procedure kept existing grub sudo apt-get -y dist-upgrade sudo reboot # Note system comes up with Kernel 4.4.0-78-generic sudo apt-get install --install-recommends xserver-xorg-hwe-16.04 sudo reboot }}} After the reboot, the system comes up with Kernel 4.8.0-54-generic, which includes GPRS Tunneling Protocol kernel module enabled. GTP is required by the eNB packages. Verify the kernel version, enable the GPRS Tunneling Protocol (GTP) kernel module and reboot: {{{ $ uname -r 4.8.0-54-generic $ sudo modprobe gtp $ sudo reboot }}} After the reboot, verify that the GTP kernel is enabled: {{{ $ lsmod|grep gtp gtp 28672 0 udp_tunnel 16384 1 gtp }}} Next step, disk partitions are expanded to include unused disk space: {{{ sudo apt-get install gparted -y # Note resize /dev/sda1 from 16G to 19G and create partition /dev/sda2 from from "unallocated" 900G type=ext4 and named extra # Next add new partition to files system files sudo mkdir /extra sudo vi /etc/fstab # Make file system part of persistent definition by inserting the following to /etc/fstab /dev/sda2 /extra ext4 defaults 0 0 # Mount newly added file system and change ownership sudo mount /extra sudo chown -R lnevers:ch--OpenFlowTuto /extra/ }}} ''Note: The owner:group will change for other sites'' == Installing OAI ePC Software == Assuming you have completed the 4.8 Kernel installation and enabled the GPRS module as explained in previous section, proceed to install the !OpenAirInterface software as specified in the [https://gitlab.eurecom.fr/oai/openairinterface5g/wikis/GetSources OAI Repository]. The wiki OAI Repository provides a page that captures [https://gitlab.eurecom.fr/oai/openairinterface5g/wikis/HowToConnectCOTSUEwithOAIeNBNew How to Connect OAI ePC with COTS User Equipment] and a [https://gitlab.eurecom.fr/oai/openairinterface5g/wikis/AutoBuild Building OAI Executables] page. Instructions from these pages are shown below and were followed in the BBN installation: {{{ # Note some prerequisites installation and configured sudo apt-get install i7z cpufrequtils -y sudo vi /etc/default/cpufrequtils # insert the following in the file GOVERNOR="performance" sudo update-rc.d ondemand disable sudo reboot }}} Next, install the OAI packages: {{{ sudo apt-get update sudo apt-get install subversion git git config --global user.name "FirstName LastName" git config --global user.email "your.email@yourdomain.com" echo -n | openssl s_client -showcerts -connect gitlab.eurecom.fr:443 2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | sudo tee -a /etc/ssl/certs/ca-certificates.crt git config --global http.sslverify false }}} Clone the OAI repository and put in place links pointing to the additional disk space location: {{{ cd /extra git clone https://gitlab.eurecom.fr/oai/openair-cn.git ln -s /extra/openair-cn ~/. }}} Build the eNB/ePC packages in the "develop" branch: {{{ cd ~/openair-cn/ git checkout develop cd SCRIPTS ./build_mme -i # In our instance the Database component required a re-installation to complete the build. # sudo apt-get install mysql-server --reinstall -y ./build_hss -i ./build_spgw -i }}} --------- = ePC Configuration = Once software is installed, several configuration steps must take place for the OAI software, and one changes should be made to a common file for a known issue with leading zeros in the IMSI. == ePC Configuration and File Changes == The following '''openair-cn''' configuration files and include file were modified for the BBN Site: {{{ lnevers@gpo-pc:~/openair-cn/ETC$ git status --verbose On branch master Your branch is up-to-date with 'origin/master'. Changes not staged for commit: (use "git add ..." to update what will be committed) (use "git checkout -- ..." to discard changes in working directory) modified: etc/acl.conf modified: etc/hss.conf modified: etc/hss_fd.conf modified: etc/mme.conf modified: etc/mme_fd.conf modified: etc/spgw.conf modified: src/common/common_types.h Untracked files: (use "git add ..." to include in what will be committed) no changes added to commit (use "git add" and/or "git commit -a") lnevers@gpo-pc:~/openair-cn/ETC$ }}} Following are details for each modification implemented in the BBN installation for all configuration files that were modified: {{{ lnevers@gpo-pc:~/openair-cn$ git diff diff --git a/etc/acl.conf b/etc/acl.conf index 953f598..16618d6 100644 --- a/etc/acl.conf +++ b/etc/acl.conf @@ -16,4 +16,4 @@ # It is specified for example as: # ALLOW_IPSEC vpn.example.net vpn2.example.net *.vpn.example.net -ALLOW_OLD_TLS *.openair4G.eur +ALLOW_OLD_TLS *.bbn.com diff --git a/etc/hss.conf b/etc/hss.conf index e385c08..0e2666d 100644 --- a/etc/hss.conf +++ b/etc/hss.conf @@ -22,13 +22,13 @@ HSS : { ## MySQL mandatory options MYSQL_server = "127.0.0.1"; # HSS S6a bind address -MYSQL_user = "@MYSQL_user@"; # Database server login -MYSQL_pass = "@MYSQL_pass@"; # Database server password +MYSQL_user = "XXX"; # Database server login +MYSQL_pass = "XXX"; # Database server password MYSQL_db = "oai_db"; # Your database name ## HSS options -OPERATOR_key = "1006020f0a478bf6b699f15c062e42b3"; # OP key matching your database -#OPERATOR_key = "11111111111111111111111111111111"; # OP key matching your database +#OPERATOR_key = "1006020f0a478bf6b699f15c062e42b3"; # OP key matching your database +OPERATOR_key = "11111111111111111111111111111111"; # OP key matching your database RANDOM = "true"; # True random or only pseudo random (for subscriber vector generation) diff --git a/etc/hss_fd.conf b/etc/hss_fd.conf index 02b2474..dbe7a2e 100644 --- a/etc/hss_fd.conf +++ b/etc/hss_fd.conf @@ -4,11 +4,11 @@ # that the Identity used is a valid FQDN for the peer. This parameter can be # omitted, in that case the framework will attempt to use system default value # (as returned by hostname --fqdn). -Identity = "hss.openair4G.eur"; +Identity = "hss.donotdelete.ch-geni-net.instageni.gpolab.bbn.com"; # In Diameter, all peers also belong to a Realm. If the realm is not specified, # the framework uses the part of the Identity after the first dot. -Realm = "openair4G.eur"; +Realm = "donotdelete.ch-geni-net.instageni.gpolab.bbn.com"; # This parameter is mandatory, even if it is possible to disable TLS for peers diff --git a/etc/mme.conf b/etc/mme.conf index 6564c7a..cbf9daf 100644 --- a/etc/mme.conf +++ b/etc/mme.conf @@ -21,11 +21,11 @@ MME : { - REALM = "openair4G.eur"; # YOUR REALM HERE + REALM = "donotdelete.ch-geni-net.instageni.gpolab.bbn.com"; # YOUR REALM HERE PID_DIRECTORY = "/var/run"; # Define the limits of the system in terms of served eNB and served UE. # When the limits will be reached, overload procedure will take place. - MAXENB = 2; # power of 2 + MAXENB = 4; # power of 2 MAXUE = 16; # power of 2 RELATIVE_CAPACITY = 10; @@ -75,7 +75,7 @@ MME : # MME code DEFAULT size = 8 bits # MME GROUP ID size = 16 bits GUMMEI_LIST = ( - {MCC="208" ; MNC="93"; MME_GID="4" ; MME_CODE="1"; } # YOUR GUMMEI CONFIG HERE + {MCC="001" ; MNC="01"; MME_GID="4" ; MME_CODE="1"; } # YOUR GUMMEI CONFIG HERE ); # ------- MME served TAIs @@ -84,7 +84,7 @@ MME : # maximum of 16 TAIs, comma separated # !!! Actually use only one PLMN TAI_LIST = ( - {MCC="208" ; MNC="93"; TAC = "1"; } # YOUR TAI CONFIG HERE + {MCC="001" ; MNC="01"; TAC = "1"; } # YOUR TAI CONFIG HERE ); @@ -150,8 +150,8 @@ MME : NETWORK_INTERFACES : { # MME binded interface for S1-C or S1-MME communication (S1AP), can be ethernet interface, virtual ethernet interface, we don'tdvise wireless interfaces - MME_INTERFACE_NAME_FOR_S1_MME = "eth0"; # YOUR NETWORK CONFIG HERE - MME_IPV4_ADDRESS_FOR_S1_MME = "192.168.11.17/24"; # YOUR NETWORK CONFIG HERE + MME_INTERFACE_NAME_FOR_S1_MME = "vlan3740"; # YOUR NETWORK CONFIG HERE + MME_IPV4_ADDRESS_FOR_S1_MME = "10.3.2.11/16"; # YOUR NETWORK CONFIG HERE # MME binded interface for S11 communication (GTPV2-C) MME_INTERFACE_NAME_FOR_S11_MME = "lo"; # YOUR NETWORK CONFIG HERE @@ -199,11 +199,13 @@ MME : # file should be copied here from source tree by following command: run_mme --install-mme-files ... SCENARIO_FILE = "/usr/local/share/oai/test/mme/no_regression.xml"; }; +# S-GW_LIST_SELECTION = ( +# {ID="tac-lb01.tac-hb00.tac.epc.mnc001.mcc001.3gppnetwork.org" ; SGW_IPV4_ADDRESS_FOR_S11="127.0.11.2/8";} +# ); }; S-GW : { # S-GW binded interface for S11 communication (GTPV2-C), if none selected the ITTI message interface is used SGW_IPV4_ADDRESS_FOR_S11 = "127.0.11.2/8"; # YOUR NETWORK CONFIG HERE - }; diff --git a/etc/mme_fd.conf b/etc/mme_fd.conf index 0a91619..dc33332 100644 --- a/etc/mme_fd.conf +++ b/etc/mme_fd.conf @@ -1,8 +1,8 @@ # -------- Local --------- # Uncomment if the framework cannot resolv it. -Identity = "yang.openair4G.eur"; -Realm = "openair4G.eur"; +Identity = "gpo-pc.donotdelete.ch-geni-net.instageni.gpolab.bbn.com"; +Identity = "gpo-pc.donotdelete.ch-geni-net.instageni.gpolab.bbn.com"; +Realm = "donotdelete.ch-geni-net.instageni.gpolab.bbn.com"; # TLS configuration (see previous section) TLS_Cred = "/usr/local/etc/oai/freeDiameter/mme.cert.pem", @@ -100,4 +100,4 @@ LoadExtension = "dict_s6a.fdx"; # incoming connections from other peers, see the acl_wl.fdx? extension which # allows exactly this. -ConnectPeer= "hss.openair4G.eur" { ConnectTo = "127.0.0.1"; No_SCTP ; No_IPv6; Prefer_TCP; No_TLS; port = 3868; realm = "openair4G.eur"; +ConnectPeer= "hss.donotdelete.ch-geni-net.instageni.gpolab.bbn.com" { ConnectTo = "127.0.33.1"; No_SCTP ; No_IPv6; Prefer_TCP; No_TLS; pt = 3868; realm = "donotdelete.ch-geni-net.instageni.gpolab.bbn.com";}; diff --git a/etc/spgw.conf b/etc/spgw.conf index 8095ec3..6201548 100644 --- a/etc/spgw.conf +++ b/etc/spgw.conf @@ -27,8 +27,8 @@ S-GW : SGW_IPV4_ADDRESS_FOR_S11 = "127.0.11.2/8"; # STRING, CIDR, YOUR NETWORK CONFIG HERE # S-GW binded interface for S1-U communication (GTPV1-U) can be ethernet interface, virtual ethernet interface, we don't advise reless interfaces - SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP = "eth0"; # STRING, interface name, YOUR NETWORK CONFIG HERE, USE o" if S-GW run on eNB host - SGW_IPV4_ADDRESS_FOR_S1U_S12_S4_UP = "192.168.11.17/24"; # STRING, CIDR, YOUR NETWORK CONFIG HERE + SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP = "vlan3740"; # STRING, interface name, YOUR NETWORK CONFIG HERE, E "lo" if S-GW run on eNB host + SGW_IPV4_ADDRESS_FOR_S1U_S12_S4_UP = "10.3.2.11/16"; # STRING, CIDR, YOUR NETWORK CONFIG HERE SGW_IPV4_PORT_FOR_S1U_S12_S4_UP = 2152; # INTEGER, port number, PREFER NOT CHANGE UNLESS YOU KNOWHAT YOU ARE DOING # S-GW binded interface for S5 or S8 communication, not implemented, so leave it to none @@ -76,9 +76,9 @@ P-GW = PGW_INTERFACE_NAME_FOR_S5_S8 = "none"; # STRING, interface name, DO NOT CHANGE (NOT IMPLEMENTEDET) # P-GW binded interface for SGI (egress/ingress internet traffic) - PGW_INTERFACE_NAME_FOR_SGI = "eth3"; # STRING, YOUR NETWORK CONFIG HERE - PGW_MASQUERADE_SGI = "no"; # STRING, {"yes", "no"}. YOUR NETWORK CONFIG HERE, will NAT for you if you put "yes". - UE_TCP_MSS_CLAMPING = "no"; # STRING, {"yes", "no"}. + PGW_INTERFACE_NAME_FOR_SGI = "enp3s0f0"; # STRING, YOUR NETWORK CONFIG HERE + PGW_MASQUERADE_SGI = "yes"; # STRING, {"yes", "no"}. YOUR NETWORK CONFIG HERE, willo NAT for you if you put "yes". + UE_TCP_MSS_CLAMPING = "yes"; # STRING, {"yes", "no"}. }; # Pool of UE assigned IP addresses @@ -94,11 +94,10 @@ P-GW = # DNS address communicated to UEs DEFAULT_DNS_IPV4_ADDRESS = "8.8.8.8"; # YOUR NETWORK CONFIG HERE - DEFAULT_DNS_SEC_IPV4_ADDRESS = "8.8.4.4"; # YOUR NETWORK CONFIG HERE + DEFAULT_DNS_SEC_IPV4_ADDRESS = "4.4.4.4"; # YOUR NETWORK CONFIG HERE # Non standard feature, normally should be set to "no", but you may need to set to yes for UE that do not explicitly request a PDN aress through NAS signalling FORCE_PUSH_PROTOCOL_CONFIGURATION_OPTIONS = "no"; # STRING, {"yes", "no"}. - UE_MTU = 1500 # INTEGER + UE_MTU = 1488 # INTEGER +# GTPV1U_REALIZATION = "GTP_KERNEL_MODULE"; # STRING {"NO_GTP_KERNEL_AVAILABLE", "GTP_KERNEL_MODULE "GTP_KERNEL"}. In a container you may not be able }; - - }}} In addition to the OAI configuration files, an additional change was made for a known issue [https://gitlab.eurecom.fr/oai/openair-cn/issues/15 Problem of leading zeros at IMSI]. {{{ diff --git a/src/common/common_types.h b/src/common/common_types.h index 24cb0ca..37b69fe 100644 --- a/src/common/common_types.h +++ b/src/common/common_types.h @@ -85,7 +85,7 @@ typedef teid_t s1u_teid_t; // IMSI typedef uint64_t imsi64_t; -#define IMSI_64_FMT "%"SCNu64 +#define IMSI_64_FMT "%015"SCNu64 #define INVALID_IMSI64 (imsi64_t)0 //------------------------------------------------------------------------------ }}} Once the above changes are made to the configuration files, you must copy the ~/openair-cn/etc files to /usr/local/etc/oai area as follows: {{{ $ cd ~/openair-cn/etc $ sudo cp hss.conf mme.conf spgw.conf /usr/local/etc/oai/. $ sudo cp acl.conf hss_fd.conf mme_fd.conf /usr/local/etc/oai/freeDiameter/. }}} == Populating the OAI Database == The OAI ePC software delivers an SQL script to install the database. Run the script only once: {{{ $ ~/openair-cn/scripts/run_hss -i ~/openair-cn/src/oai_hss/db/oai_db.sql }}} The OAI ePC delivers a database with the following tables: apn, mmeidentity, pdn, pgw and users. The database definitions that were initially modified to include the BBN installation can found it this SQL dump file: [https://raw.githubusercontent.com/GENI-NSF/geni-support/master/wireless/oai_db.sql oai_db.sql]. The BBN installation used the existing Access Point Name (APN) "orbitA," which was entered in the Packet Data Network (PDN) table definitions. Modifications were also made to the OAI ePC database to add Rutgers UE devices. A SQL dump of the BBN OAI database including the Rutgers devices can be seen in the [https://raw.githubusercontent.com/GENI-NSF/geni-support/master/wireless/oai_db-rutgers-devices.sql oai_db-rutgers-devices.sql] file. A Ruby script [https://raw.githubusercontent.com/GENI-NSF/geni-support/master/wireless/fill_sql.rb fill_sql.rb ] was provided by Rutgers to make database changes for adding the mmeidentity entry for the user and pdn tables. Modifications were made to set the BBN realm, mme and hss values in the script: {{{ < realm = '.donotdelete.ch-geni-net.instageni.gpolab.bbn.com' < mme = 'gpo-pc.donotdelete.ch-geni-net.instageni.gpolab.bbn.com' < hss = 'hss.donotdelete.ch-geni-net.instageni.gpolab.bbn.com' }}} The [https://raw.githubusercontent.com/GENI-NSF/geni-support/master/wireless/fill_sql-bbn.rb fill_sql-bbn.rb] ruby script was used to initialize the ''mmeidentity'' in the BBN OAI DB. After making site specific changes, install the ''ruby-mysql'' package and run the script as follows: {{{ $ sudo apt-get install ruby-mysql $ fill_sql.rb }}} === OAI Database Notes === In defining the OAI database at BBN, two OAI database rules were discovered that __must__ be met: 1. The "pdn" Table "PGW_id" entry must be a unique "id" that must match the "id" value in the "pgw" table: [[Image(PDNTable.jpeg,50%)]] [[BR]] [[Image(PGWTable.jpeg,50%)]] 2. The User table "mmeidentity_idmmidentity" must match the "idmmeidentity" value in the "mmeidentity" table: [[Image(MMEIdentity.jpeg,50%)]] [[BR]] [[Image(UserTable.jpeg,50%)]] --------- = Base Station Configuration = The BBN Base Station was configured to use an IP address from the range allocated to BBN in the ORBIT Site Operations '''[http://wimax.orbit-lab.org/wiki/aaOperations#IPaddressassignment IP Address Assignment]''' table. The [http://www.airspan.com/airharmony-1000/ AirHarmony 1000] Base Station web interface was used to apply the address: [[Image(BBNBaseStationIP.jpeg, 50%)]] ''Note: A class B subnet mask was applied to allow routing across sites.'' Once the Base Station was configured and reachable, it was added to [http://www.airspan.com/netspan/ NetSpan], an SNMP based Web interface tool by [http://www.airspan.com Airspan], which is used to manage Radio Access Network elements in the RAN (4G & 5G) and Backhaul domains. The Rutgers !NetSpan installation was used in this effort and was accessible from BBN over the LTE Multipoint VLAN at this address location "{{{http://10.3.0.252}}}". This section captures the !NetSpan Configuration for the BBN base station, other sites will have different Node Types, Radio Profiles and Network Profiles. In particular for the Radio profile, the site's assigned frequency must be considered. More details are provided in the Cell Radio Profile section below. == Configure eNodeB Settings == This captures the procedure used for creating the BBN eNodeB node entry in !NetSpan. Other sites can use this configuration as a reference, but must change the Node Type, Radio Profile and Network Profile to be appropriate for their site. Instructions below assume access to !Netspan. === Select an eNodeB to Clone === To access the list of available nodes that can be cloned, select "Nodes" in the lower left corner on the home page. Double click on "nodes" and a list of nodes appears in the main panel: [[Image(NodesToChoose.jpeg)]] On the resulting page, in the main panel, a list of nodes that can be used for duplication appears. Double click on node from this list that will be cloned, and in the resulting page rename the cloned node to a name for your site. For BBN, we used the name "BBN eNodeB." Click "Validate" and then click "OK" to save the new node. [[Image(NodesList.jpeg)]] In the list above, the node "lte-01-bs" was used to clone the "BBN eNodeB" node. === Configure Your eNodeB Node === To access node configuration details, select "Nodes" in the lower left corner of the home page, and then the main panel will display a list of nodes. In our case, we double click on the "BBN eNodeB" entry. In the resulting page, select the "Provision" tab, scroll to the bottom of the page and click "Edit" to modify settings. Following is a capture of the "BBN eNodeB" settings, which use the Rutgers MMS and the BBN Cell Radio Profile: [[Image(BBN-eNodeB.jpeg)]] The "BBN_band-41" Cell Radio Profile was created for the BBN Base Station. Each site must create its own Cell Radio Profile, which thus requires that you know the EUTRA Absolute radio-frequency channel number (EARFCN) assignment for your site. The [http://wimax.orbit-lab.org/wiki/aaOperations#OperationsObjectives Orbit-Lab Site Operation Resources] page provides a table of Sites with '''Lower Frequency (MHz)''' and '''Upper Frequency (MHz)''' allocated for that sites in the GENI LTE effort. The BBN Base Station configured in this example has the Lower Frequency 2573 MHz and the Upper Frequency 2583 MHz with a 10 MHz range, therefore the '''Center Frequency''' to use 2578 MHz. To calculate the EARFCN DL value for the BBN Cell Radio Profile an [http://niviuk.free.fr/lte_band.php LTE Frequency Calculator] was used and the '''Center Frequency''' 2578 MHz was entered in the [http://niviuk.free.fr/lte_band.php LTE Frequency Calculator] to determine the '''Band Value''' and '''EARFCN DL''' values to be used in our Radio Cell Profile: [[Image(EARFCN.jpeg,65%)]] After you have determined the right values for your site, insert the calculated Band and EARFCN DL values in the Cell Radio Profile. Note the EARFCN value is based on '''your site frequency'''. Following is the BBN Cell Radio Profile: [[Image(RadioCellProfile.jpeg)]] The Network Profile for the BBN site as defined to use the BBN MME is captured here: [[Image(BBBNetworkProfile.jpeg)]] For some test runs, the BBN site used the MME at Rutgers, which includes these settings for the BBN site Network Profile using the Rutgers MME: [[Image(AmeriSoftNetworkProfile.jpeg)]] Select the Network profile that includes the MME for your site, in our case the BBN-AmarisoftMME1000 profile above, click "Validate" and then "OK". --------- = Run ePC and Connect Devices = The OAI software SPGW, MME and HSS can now be started in 3 separate windows. Start SPGW: {{{ cd openair-cn/scripts/ ./run_spgw }}} Start MME: {{{ cd openair-cn/scripts/ ./run_mme }}} Start HSS: {{{ cd openair-cn/scripts/ ./run_hss }}} Two scripts were created to start and stop the three processes and create output logs in the ePC host /var/log/oai directory: [https://raw.githubusercontent.com/GENI-NSF/geni-support/master/wireless/start-epc start-epc] and [https://raw.githubusercontent.com/GENI-NSF/geni-support/master/wireless/stop-epc stop-epc]. == Reset eNobeB and Set In Service == For configurations to be properly applied, we found that a forced reset was needed. This reset is available by selecting the "State And Control" tab, then in the "Reprovisioning and Actions" section, selecting "Forced Reset Node" from the Action pull-down and clicking "OK". [[Image(ForceReset.jpeg)]] Once the reset is completed, you are ready to set your base station in service! == Set In Service == After the initial forced reset, the node can be set in service from the "State And Control" tab. In the "Service State" section of that tab, select "Set In Service" from the "Action" pull-down menu: [[Image(SetInService.jpeg)]] ''Note: Subsequent attempts to set eNodeB in service '''do not''' require a "Forced Reset".'' = ePC/eNodeB Scenarios Tested = == BBN ePC with Rutgers Base Station == The BBN eNodeB was modified in !NetSpan to use the Rutgers Base Station for a Network Profile, which required additions to the BBN ePC OAI database to add Rutgers device information. See the SQL dump file [https://raw.githubusercontent.com/GENI-NSF/geni-support/master/wireless/oai_db-rutgers-devices.sql oai_db-rutgers-devices.sql ] for changes made to add the Rutgers devices. Devices discovered network and attached without problems. The UEs were able to browse various sites via the network after connecting to the base station. == BBN ePC with BBN Base Station == The BBN eNodeB was modified in !NetSpan to use the BBN Base Station for a Network Profile. These attempts consistently failed with a tunnel assertion, which is being investigated. == Rutgers ePC with BBN Base Station == TBD