|
# How to Connect OAI eNB with COTS UE via the NGFI RRU
|
|
# How to Connect OAI eNB with COTS UE via the NGFI RRU
|
|
|
|
|
|
In this tutorial, we will describe how to connect a commercial off-the-self UE (i.e. smartphone and LTE dongle) with the C-RAN version of the OAI eNB. As it is dictated by the C-RAN concept the radio front end hardware is detached from the eNB and is incorporated to a remote radio head (RRH) instead which is connected to the eNB. Within the framework of OAI this concept is realized as follows:
|
|
In this tutorial, we will describe how to connect a commercial off-the-self UE (i.e. smartphone and LTE dongle) with the C-RAN version of the OAI eNB. The OAI C-RAN architecture is described in detailed in the whitepaper.
|
|
* the OAI eNB functionality is extended 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
|
|
|
|
|
|
|
|
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:
|
|
|
|
|
|
|
|
|
|
This tutorial describes how to deploy and run OAI as RCC and RRU on different hosts as depicted in the following figure:
|
|
|
|
|
|
![topology_wiki.png](HowToConnectCOTSUEwithOAIeNBviaRRHGW/topology_wiki.png)
|
|
![topology_wiki.png](HowToConnectCOTSUEwithOAIeNBviaRRHGW/topology_wiki.png)
|
|
|
|
|
|
Figure 1.: OAI RRH GW, OAI eNB and OAI EPC+HSS on different hosts
|
|
Figure 1.: NGFI based OAI C-RAN architecture
|
|
|
|
|
|
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:
|
|
We assume that OAI EPC and HSS are setup to be used with the RCC. For instructions for the same, you are referred to (OAI CN tutorial link)
|
|
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.
|
|
|
|
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.
|
|
|
|
|
|
|
|
Checklist prior to OAI installation:
|
|
|
|
|
|
|
|
* Ubuntu 14.04 LTS (32-bit or 64-bit)
|
|
Please also ensure that you meet the requirements for OAI installation.
|
|
* [Kernel setup](OpenAirKernelMainSetup)
|
|
|
|
* disable C-states from BIOS (or from GRUB)
|
|
|
|
* disable CPU frequency scaling
|
|
|
|
* install low-latency kernel
|
|
|
|
* Install _git_ with the command `sudo apt-get install git` (we will be downloading source codes from the trunk at this moment).
|
|
|
|
|
|
|
|
__Note__: If GNURadio has already been installed, check the version of UHD. In most cases,
|
|
|
|
GNURadio downloaded from Ubuntu repository is likely to be 3.7.2, which is outdated and does
|
|
|
|
not contain the latest UHD. The OAI build script will try to download the latest UHD during
|
|
|
|
automated installation and compilation may fail due to the conflict or missing libraries. So
|
|
|
|
the simplest way is to uninstall GNURadio and outdated UHD libraries.
|
|
|
|
|
|
|
|
The tutorial set up is depicted once more in the following figure, this time containing interconnection information (i.e. IP addresses and Ethernet interface names) that will be used in certain configuration files.
|
|
The tutorial set up is depicted once more in the following figure, this time containing interconnection information (i.e. IP addresses and Ethernet interface names) that will be used in certain configuration files.
|
|
|
|
|
... | @@ -40,130 +18,10 @@ The tutorial set up is depicted once more in the following figure, this time con |
... | @@ -40,130 +18,10 @@ The tutorial set up is depicted once more in the following figure, this time con |
|
|
|
|
|
Figure 2.: OAI RRH GW, OAI eNB and OAI EPC+HSS on different hosts (interface information included)
|
|
Figure 2.: OAI RRH GW, OAI eNB and OAI EPC+HSS on different hosts (interface information included)
|
|
|
|
|
|
## 1. Installation and Configuration of OAI EPC + HSS
|
|
## 1. Installation, Configuration and Execution of OAI EPC + HSS
|
|
|
|
|
|
### 1.1 Installation
|
|
|
|
|
|
|
|
#### Step 1: Check out the Trunk
|
|
|
|
|
|
|
|
Download the source code from the appropriate Git repository (see [GetSources](GetSources)). We assume that you have following directory:
|
|
|
|
|
|
|
|
openair-cn : The location of openair-cn git repository
|
|
|
|
|
|
|
|
#### Step 2: Specify FQDN for EPC
|
|
|
|
|
|
|
|
A fully qualified domain name (FQDN) needs to be set for the EPC (MME_GW) [\[1\]][1], before we use
|
|
|
|
the automated script to build eNB, EPC and HSS all at once. An example is as follows. Assume the
|
|
|
|
hostname is "labuser". You may check it in `/etc/hostname`.
|
|
|
|
|
|
|
|
```shell
|
|
|
|
labuser@labuser:$ cat /etc/hostname
|
|
|
|
labuser
|
|
|
|
```
|
|
|
|
|
|
|
|
Then fill the FQDN in /etc/hosts as follows:
|
|
|
|
|
|
|
|
```shell
|
|
|
|
labuser@labuser:$ cat /etc/hosts
|
|
|
|
127.0.0.1 localhost
|
|
|
|
127.0.1.1 labuser.111.111 labuser
|
|
|
|
```
|
|
|
|
|
|
|
|
"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 scripts for openair-cn
|
|
|
|
|
|
|
|
```shell
|
|
|
|
git checkout v0.3.2
|
|
|
|
./build_epc -i #(Need to run only once to install missing packages)
|
|
|
|
./build_hss -i #(Need to run only once to install missing packages)
|
|
|
|
```
|
|
|
|
The detailed instructions for EPC are located in: **YOUR_openair-cn_DIRECTORY/DOCS/EPC_User_Guide.pdf**
|
|
|
|
|
|
|
|
Look at [AutoBuild](AutoBuild) for more details.
|
|
|
|
|
|
|
|
### 1.2 Configuration and execution
|
|
|
|
|
|
|
|
#### Step 1: Edit the EPC configuration file: `~/openair-cn/BUILD/EPC/epc.conf.in`
|
|
|
|
|
|
|
|
As depicted in Figure 2 the IP address of EPC+HSS is `192.168.12.4` and the Ethernet interface name is `eth0`. Also we assume that the UE that will be used will be configured with the following information ([SIMInfo](SIMInfo)):
|
|
|
|
* MCC (Mobile Country Code): `208`
|
|
|
|
* MNC (Mobile Network Code): `93`
|
|
|
|
* TAC (Tracking Area Code): `123`
|
|
|
|
* IMSI: 208930000000001
|
|
|
|
* Ki: 8BAF473F2F8FD09487CCCBD7097C6862 (32 digits)
|
|
|
|
* OP (Operator Key): 11111111111111111111111111111111 (32 digits)
|
|
|
|
|
|
|
|
Using this information the configuration file of EPC is edited as follows:
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
TAI_LIST = (
|
|
|
|
{MCC="208" ; MNC="93"; TAC = "1"; } # YOUR PLMN CONFIG HERE</div>
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
NETWORK_INTERFACES :
|
|
|
|
{
|
|
|
|
MME_INTERFACE_NAME_FOR_S1_MME = "eth0";
|
|
|
|
MME_IPV4_ADDRESS_FOR_S1_MME = "192.168.12.4/24";
|
|
|
|
|
|
|
|
MME_INTERFACE_NAME_FOR_S11_MME = "none";
|
|
|
|
MME_IPV4_ADDRESS_FOR_S11_MME = "0.0.0.0/24";
|
|
|
|
};
|
|
|
|
S-GW :
|
|
|
|
{
|
|
|
|
NETWORK_INTERFACES :
|
|
|
|
{
|
|
|
|
SGW_INTERFACE_NAME_FOR_S11 = "none";
|
|
|
|
SGW_IPV4_ADDRESS_FOR_S11 = "0.0.0.0/24";
|
|
|
|
|
|
|
|
SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP = "eth0";
|
|
|
|
SGW_IPV4_ADDRESS_FOR_S1U_S12_S4_UP = "192.168.12.4/24";
|
|
|
|
SGW_IPV4_PORT_FOR_S1U_S12_S4_UP = 2152;
|
|
|
|
|
|
|
|
SGW_INTERFACE_NAME_FOR_S5_S8_UP = "none";
|
|
|
|
SGW_IPV4_ADDRESS_FOR_S5_S8_UP = "0.0.0.0/24";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
P-GW :
|
|
|
|
{
|
|
|
|
NETWORK_INTERFACES :
|
|
|
|
{
|
|
|
|
PGW_INTERFACE_NAME_FOR_S5_S8 = "none";
|
|
|
|
PGW_IPV4_ADDRESS_FOR_S5_S8 = "0.0.0.0/24";
|
|
|
|
|
|
|
|
PGW_INTERFACE_NAME_FOR_SGI = "eth0";
|
|
|
|
PGW_IPV4_ADDRESS_FOR_SGI = "192.168.12.4/24";
|
|
|
|
PGW_MASQUERADE_SGI = "yes";
|
|
|
|
};
|
|
|
|
...
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
Note that PGW_IPV4_ADDRESS_FOR_SGI is the address used by EPC to access the (external) Internet.
|
|
|
|
|
|
|
|
#### Step 2: Run EPC and HSS
|
|
|
|
|
|
|
|
##### Compile & Run EPC:
|
|
|
|
|
|
|
|
```shell
|
|
|
|
cd ~/openair-cn
|
|
|
|
cd SCRIPTS
|
|
|
|
./build_epc -c -l
|
|
|
|
./run_epc -r
|
|
|
|
```
|
|
|
|
|
|
|
|
##### Compile & Run HSS:
|
|
|
|
|
|
|
|
```shell
|
|
|
|
cd ~/openair-cn
|
|
|
|
cd SCRIPTS
|
|
|
|
./build_hss -c -l
|
|
|
|
./run_hss
|
|
|
|
```
|
|
|
|
|
|
|
|
EPC should be able to connect to HSS and you should see both enter STATE_OPEN in the terminal.The OAI core network is up and running.
|
|
Please refer to the instructions here .
|
|
|
|
After this it is assumed that there is a working openair eNB
|
|
|
|
|
|
## 2. Installation and Configuration of OAI RRH GW
|
|
## 2. Installation and Configuration of OAI RRH GW
|
|
|
|
|
... | | ... | |