update RRH GW tutorial wiki authored by Aikaterini Trilyraki's avatar Aikaterini Trilyraki
...@@ -4,15 +4,17 @@ In this tutorial, we will describe how to connect a commercial off-the-self UE ( ...@@ -4,15 +4,17 @@ In this tutorial, we will describe how to connect a commercial off-the-self UE (
* the OAI eNB functionality is extented so that OAI eNB is able to interface via Ethernet a RRH * the OAI eNB functionality is extented so that OAI eNB is able to interface via Ethernet a RRH
* a new software entity is introduced, namely the OAI RRH GW which acts as an abstraction between radio front end equipment (e.g. USRPB210, BLADERF and LMSSDR) and the OAI eNB * a new software entity is introduced, namely the OAI RRH GW which acts as an abstraction between radio front end equipment (e.g. USRPB210, BLADERF and LMSSDR) and the OAI eNB
The present tutorial describes how to deploy and run OAI EPC, OAI eNB and OAI RRH GW on different hosts. The present tutorial describes how to deploy and run OAI EPC, OAI eNB and OAI RRH GW on different hosts as depicted in the following figure:
![topology.png](HowToConnectCOTSUEwithOAIeNBviaRRHGW/topology.png)
At this point, we have to note that the OAI RRH GW in its simplest form is defaulted to a single RRH which in this tutorial is a USRP-B210-based RRH. At this point, we have to note that the OAI RRH GW in its simplest form is defaulted to a single RRH which in this tutorial is a USRP-B210-based RRH.
The entire procedure is divided into the following stages: The entire procedure is divided into the following stages:
1. Install and configure OAI EPC and HSS on a host. At the end of this stage, EPC should be able to connect to HSS. 1. Install and configure OAI EPC and HSS on a host. At the end of this stage, EPC should be able to connect to HSS.
2. Install and configure OAI RRH GW on a host. At the end of this stage, RRH GW should be an up and running server waiting for incoming eNB connections. 2. Install and configure OAI RRH GW on a host. At the end of this stage, RRH GW should be an up and running server waiting for incoming eNB connections.
3. Install and configure OAI eNB on a host. At the end of this stage, eNB should be able to initially be connected to the EPC+HSS and later on initiate a connection with the RRH GW. 3. Install and configure OAI eNB on a host. At the end of this stage, eNB should be able to firstly be connected to the EPC+HSS and later on initiate a connection with the RRH GW.
4. Configure UE (e.g., smartphone service mode, USIM card) and register the user on HSS database. At the end of this stage, UE should be able to attach and connect to eNB. 4. Configure UE (e.g., smartphone service mode, USIM card) and register the user on HSS database. At the end of this stage, UE should be able to attach and connect to eNB.
5. Configure networking settings between eNB and UE. At the end of this stage, they should be able to ping each other and `iperf` can be run to test the throughput.
Checklist prior to OAI installation: Checklist prior to OAI installation:
...@@ -39,7 +41,7 @@ First, we will download source codes from the link below as an example. See [Get ...@@ -39,7 +41,7 @@ First, we will download source codes from the link below as an example. See [Get
We assume that you have following directory: We assume that you have following directory:
* openair-cn : The location of openair-cn git repository openair-cn : The location of openair-cn git repository
#### Step 2: Specify FQDN for EPC #### Step 2: Specify FQDN for EPC
...@@ -62,58 +64,22 @@ labuser@labuser:$ cat /etc/hosts ...@@ -62,58 +64,22 @@ labuser@labuser:$ cat /etc/hosts
"labuser.111.111" is a sample FQDN, where "labuser" is your hostname, and "111.111" is your realm. You can replace "111.111" with other combination. "labuser.111.111" is a sample FQDN, where "labuser" is your hostname, and "111.111" is your realm. You can replace "111.111" with other combination.
#### Step 3: Run automated script for openair-cn #### Step 3: Run automated scripts for openair-cn
```shell ```shell
./build_epc -i #(Need to run only once to install missing packages) ./build_epc -i #(Need to run only once to install missing packages)
./build_hss -i #(Need to run only once to install missing packages) ./build_hss -i #(Need to run only once to install missing packages)
``` ```
During the building process, you will be asked to set the password for MySQL "root" user. You are recommended to use "linux", since this is the default password used by OAI; otherwise, you will have to edit some configuration file so that HSS is able to access MySQL database.
The detailed instructions for EPC are located in: **YOUR_openair-cn_DIRECTORY/DOCS/EPC_User_Guide.pdf** The detailed instructions for EPC are located in: **YOUR_openair-cn_DIRECTORY/DOCS/EPC_User_Guide.pdf**
Look at [AutoBuild](AutoBuild) for more details. Look at [AutoBuild](AutoBuild) for more details.
### 1.2 Configuration ### 1.2 Configuration and execution
#### 1.2.1 eNB and EPC+HSS on different hosts #### Step 1: Edit the EPC configuration file: `~/openair-cn/BUILD/EPC/epc.conf.in`
Next, we explain the setup for running eNB and EPC+HSS on two different hosts. Assume the IP addresses of eNB and EPC+HSS are 192.168.100.102 and 192.168.100.103. Figure 2 is an example which specifies the network topology. Next, we explain the setup for running eNB and EPC+HSS on two different hosts. Assume the IP addresses of eNB and EPC+HSS are 192.168.100.102 and 192.168.100.103. Figure 2 is an example which specifies the network topology.
![eNB_EPC_different_hosts.png](HowToConnectCOTSUEwithOAIeNB/eNB_EPC_different_hosts.png)
Figure 2. eNB, EPC (MME+S/PGW) and HSS on different hosts.
Then, make sure the networking parameters are properly specified in eNB and EPC configuraiton files. In eNB configuration file (`~/openairinterface5g/targets/PROJECT/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.epc.remote.conf`),
```
tracking_area_code = "1";
mobile_country_code = "208";
mobile_network_code = "93";
////////// MME parameters:
mme_ip_address = ( { ipv4 = "192.168.100.103";
ipv6 = "192:168:30::17";
active = "yes";
preference = "ipv4";
}
);
NETWORK_INTERFACES :
{
ENB_INTERFACE_NAME_FOR_S1_MME = "eth1";
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.100.102/24";
ENB_INTERFACE_NAME_FOR_S1U = "eth1";
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.100.102/24";
ENB_PORT_FOR_S1U = 2152; # Spec 2152
};
```
where mme_ip_address is network interface's IP address of your EPC/HSS, and NETWORK_INTERFACE is your eNB related network interface information.
In EPC configuration file (`~/openair-cn/BUILD/EPC/epc.conf.in`):
``` ```
TAI_LIST = ( TAI_LIST = (
...@@ -161,10 +127,7 @@ P-GW : ...@@ -161,10 +127,7 @@ P-GW :
Note that PGW_IPV4_ADDRESS_FOR_SGI is the address used by EPC to access the (external) Internet. Note that PGW_IPV4_ADDRESS_FOR_SGI is the address used by EPC to access the (external) Internet.
__Acknowledge__: this example was provided by Yeoh Chun-Yeow in one previous email. #### Step 2: Run EPC and HSS
#### 1.3.2 Running EPC and HSS
##### Compile & Run EPC: ##### Compile & Run EPC:
...@@ -184,7 +147,7 @@ cd SCRIPTS ...@@ -184,7 +147,7 @@ cd SCRIPTS
./run_hss ./run_hss
``` ```
After EPC is connected to HSS (you should see both enter STATE_OPEN from the terminal) EPC should be able to connect to HSS and you should see both enter STATE_OPEN in the terminal.
## 2. Installation and Configuration of OAI RRH GW ## 2. Installation and Configuration of OAI RRH GW
...@@ -196,7 +159,7 @@ First, we will download source codes from the link below as an example. See [Get ...@@ -196,7 +159,7 @@ First, we will download source codes from the link below as an example. See [Get
We assume that you have following directory: We assume that you have following directory:
* openairinterface5g: The location of openairinterface5g repository. openairinterface5g: The location of openairinterface5g repository.
#### Step 2: Run automated script for OAI RRH GW #### Step 2: Run automated script for OAI RRH GW
```shell ```shell
...@@ -208,7 +171,9 @@ cd cmake_targets ...@@ -208,7 +171,9 @@ cd cmake_targets
Look at [AutoBuild](AutoBuild) for more details. Look at [AutoBuild](AutoBuild) for more details.
#### 2.3.2 Running RRH GW #### 2.2 Configuration and execution
RRH GW is configured via input arguements.
##### Compile & Run RRH GW: ##### Compile & Run RRH GW:
...@@ -220,6 +185,12 @@ cd cmake_targets/rrh_gw/build ...@@ -220,6 +185,12 @@ cd cmake_targets/rrh_gw/build
sudo -E ./rrh_gw -i ethx -m1 -x sudo -E ./rrh_gw -i ethx -m1 -x
sudo -E ./rrh_gw -h #(to see help options) sudo -E ./rrh_gw -h #(to see help options)
``` ```
You may print out the help message to see other options. A summary of the above options follows.
* -i: name of ethernet interface used
* -m: choose between UDP and RAW version of Ethernet (UDP:0 RAW:1)
* -t: periodically print round trip time measurements
* -x: choose between real time or emulated operation
When OAI RRH GW is successfully connected, you should see something like the following on eNB terminal: When OAI RRH GW is successfully connected, you should see something like the following on eNB terminal:
``` ```
...@@ -235,9 +206,9 @@ TYPE <CTRL-C> TO TERMINATE ...@@ -235,9 +206,9 @@ TYPE <CTRL-C> TO TERMINATE
#### Step 1: Check out the Trunk #### Step 1: Check out the Trunk
First, we will download source codes from the link below as an example. See [GetSources](GetSources). First, we will download source codes from the link below as an example. See [GetSources](GetSources).
We assume that you have following directory:
* openairinterface5g: The location of openairinterface5g repository. We assume that you have following directory:
openairinterface5g: The location of openairinterface5g repository.
#### Step 2: Run automated build script (openairinterface5g) #### Step 2: Run automated build script (openairinterface5g)
...@@ -247,6 +218,8 @@ source oaienv ...@@ -247,6 +218,8 @@ source oaienv
cd cmake_targets cd cmake_targets
./build_oai -I -g --eNB -x --install-system-files -w USRP --install-optional-packages``` ./build_oai -I -g --eNB -x --install-system-files -w USRP --install-optional-packages```
During the building process, you will be asked to set the password for MySQL "root" user. You are recommended to use "linux", since this is the default password used by OAI; otherwise, you will have to edit some configuration file so that HSS is able to access MySQL database.
You can print out the help message to see what these options mean using the command "./build_oai -h". A short summary is as follows. You can print out the help message to see what these options mean using the command "./build_oai -h". A short summary is as follows.
* -I: installs required packages. * -I: installs required packages.
...@@ -262,9 +235,37 @@ __Notes:__ ...@@ -262,9 +235,37 @@ __Notes:__
Look at [AutoBuild](AutoBuild) for more details. Look at [AutoBuild](AutoBuild) for more details.
### 3.2 Configuration ### 3.2 Configuration and execution
#### Step 1: Edit the eNB configuration file (`~/openairinterface5g/targets/PROJECT/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.epc.remote.conf`),
```
tracking_area_code = "1";
mobile_country_code = "208";
mobile_network_code = "93";
////////// MME parameters:
mme_ip_address = ( { ipv4 = "192.168.100.103";
ipv6 = "192:168:30::17";
active = "yes";
preference = "ipv4";
}
);
NETWORK_INTERFACES :
{
ENB_INTERFACE_NAME_FOR_S1_MME = "eth1";
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.100.102/24";
ENB_INTERFACE_NAME_FOR_S1U = "eth1";
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.100.102/24";
ENB_PORT_FOR_S1U = 2152; # Spec 2152
};
```
#### 3.2.2 eNB and EPC+HSS on different hosts where mme_ip_address is network interface's IP address of your EPC/HSS, and NETWORK_INTERFACE is your eNB related network interface information.
#### Step 2: Run eNB
##### Compile & Run eNB: ##### Compile & Run eNB:
...@@ -340,7 +341,7 @@ Save the apn profile and then select it. ...@@ -340,7 +341,7 @@ Save the apn profile and then select it.
For this LTE Dongle you don't have to give at commands in order to configure it but you can do it from the graphical interface that it is on the url 192.168.8.1. You have to go to Profile Management and add a new APN profile (see the picture below) For this LTE Dongle you don't have to give at commands in order to configure it but you can do it from the graphical interface that it is on the url 192.168.8.1. You have to go to Profile Management and add a new APN profile (see the picture below)
![huawei_apn.png](HowToConnectCOTSUEwithOAIeNB/huawei_apn.png) ![huawei_apn.png](HowToConnectCOTSUEwithOAIeNBviaRRHGW/huawei_apn.png)
### 4.3 User Registration on HSS Database ### 4.3 User Registration on HSS Database
...@@ -433,7 +434,6 @@ If you see an error like this, insert `~/trunk/targets/bin/xt_GTPUSP.ko`: ...@@ -433,7 +434,6 @@ If you see an error like this, insert `~/trunk/targets/bin/xt_GTPUSP.ko`:
sudo insmod ~/trunk/targets/bin/xt_GTPUSP.ko sudo insmod ~/trunk/targets/bin/xt_GTPUSP.ko
``` ```
## 5. Networking Configuration for UE and eNB
## References: ## References:
...@@ -442,8 +442,8 @@ sudo insmod ~/trunk/targets/bin/xt_GTPUSP.ko ...@@ -442,8 +442,8 @@ sudo insmod ~/trunk/targets/bin/xt_GTPUSP.ko
## Attachments ## Attachments
* [enb.band7.tm1.usrpb210.epc.local.conf](HowToConnectCOTSUEwithOAIeNB/enb.band7.tm1.usrpb210.epc.local.conf) * [enb.band7.tm1.usrpb210.epc.local.conf](HowToConnectCOTSUEwithOAIeNBviaRRHGW/enb.band7.tm1.usrpb210.epc.local.conf)
* [eNB_EPC_different_hosts.png](HowToConnectCOTSUEwithOAIeNB/eNB_EPC_different_hosts.png) * [eNB_EPC_different_hosts.png](HowToConnectCOTSUEwithOAIeNBviaRRHGW/eNB_EPC_different_hosts.png)
* [eNB_EPCHSS_local_host.png](HowToConnectCOTSUEwithOAIeNB/eNB_EPCHSS_local_host.png) * [eNB_EPCHSS_local_host.png](HowToConnectCOTSUEwithOAIeNB/eNB_EPCHSS_local_host.png)
* [epc_commented.png](HowToConnectCOTSUEwithOAIeNB/epc_commented.png) * [epc_commented.png](HowToConnectCOTSUEwithOAIeNB/epc_commented.png)
* [epc.conf.in](HowToConnectCOTSUEwithOAIeNB/epc.conf.in) * [epc.conf.in](HowToConnectCOTSUEwithOAIeNB/epc.conf.in)
...@@ -451,4 +451,6 @@ sudo insmod ~/trunk/targets/bin/xt_GTPUSP.ko ...@@ -451,4 +451,6 @@ sudo insmod ~/trunk/targets/bin/xt_GTPUSP.ko
* [figure_local_eNB_EPC.png](HowToConnectCOTSUEwithOAIeNB/figure_local_eNB_EPC.png) * [figure_local_eNB_EPC.png](HowToConnectCOTSUEwithOAIeNB/figure_local_eNB_EPC.png)
* [huawei_apn.png](HowToConnectCOTSUEwithOAIeNB/huawei_apn.png) * [huawei_apn.png](HowToConnectCOTSUEwithOAIeNB/huawei_apn.png)
__Acknowledge__: this example was provided by Yeoh Chun-Yeow in one previous email.
-- @Xuhang.Ying, @Virgilios.Passas - 25 Jul 2015 -- @Xuhang.Ying, @Virgilios.Passas - 25 Jul 2015