|
|
# How to Connect OAI eNB with COTS UE via the NGFI RRU
|
|
|
# How to use OAI to setup C-RAN -> NGFI RCC/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. The OAI C-RAN architecture is described in detailed in the whitepaper.
|
|
|
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 on this whitepaper [[1](http://www.openairinterface.org/?page_id=1695)].
|
|
|
|
|
|
This tutorial describes how to deploy and run OAI as RCC and RRU on different hosts as depicted in the following figure:
|
|
|
Specifically, 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](how-to-connect-cots-ue-to-oai-enb-via-ngfi-rru/topology_wiki.png)
|
|
|
|
|
|
Figure 1.: NGFI based OAI C-RAN architecture
|
|
|
|
|
|
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)
|
|
|
|
|
|
Please also ensure that you meet the requirements for OAI installation.
|
|
|
## 1. Prerequisites
|
|
|
* We assume that OAI EPC and HSS are setup and ready to be used with the RCC. Refer to OAI CN tutorial [2 link]().
|
|
|
* Please also ensure that you meet the requirements for OAI installation.
|
|
|
|
|
|
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.
|
|
|
|
|
|
![topology_wiki_if_info.png](HowToConnectCOTSUEwithOAIeNBviaRRHGW/topology_wiki_if_info.png)
|
|
|
|
|
|
Figure 2.: OAI RRH GW, OAI eNB and OAI EPC+HSS on different hosts (interface information included)
|
|
|
Figure 2.: OAI RRU, OAI RCC and OAI EPC+HSS on different hosts (interface information included)
|
|
|
|
|
|
### 1.1 Functionality and choice of configuration files
|
|
|
|
|
|
## 1. Installation, Configuration and Execution of OAI EPC + HSS
|
|
|
At the time of writing this tutorial, OAI architecture supports IF4.5 and IF5 functional splits. The different splits can be run by using the appropriate configuration files from below.
|
|
|
|
|
|
Please refer to the instructions here .
|
|
|
After this it is assumed that there is a working openair eNB
|
|
|
**NGFI IF4p5 (10 MHz)**
|
|
|
* rcc_file: rcc.band7.tm1.if5.50PRB.usrpb210.conf
|
|
|
* rru_file: rru.band7.tm1.if5.50PRB.usrpb210.conf
|
|
|
|
|
|
**NGFI IF5 (10 MHz)**
|
|
|
* rcc_file: rcc.band7.tm1.if5.50PRB.usrpb210.conf
|
|
|
* rru_file: rru.band7.tm1.if5.50PRB.usrpb210.conf
|
|
|
|
|
|
## 2. Installation and Configuration of OAI RRH GW
|
|
|
## 2. Installation and Configuration of OAI RRU
|
|
|
|
|
|
### 2.1 Installation
|
|
|
|
... | ... | @@ -33,29 +40,27 @@ Download the source code from the appropriate Git repository (see [GetSources](G |
|
|
|
|
|
openairinterface5g: The location of openairinterface5g repository.
|
|
|
|
|
|
#### Step 2: Run automated script for OAI RRH GW
|
|
|
#### Step 2: Run automated script for OAI RRU
|
|
|
|
|
|
```shell
|
|
|
cd ~/openairinterface
|
|
|
cd ~/openairinterface5g
|
|
|
source oaienv
|
|
|
cd cmake_targets
|
|
|
./build_oai -I -g --RRH --install-system-files -w USRP -t ETHERNET --install-optional-packages #for USRP
|
|
|
./build_oai -I -g --RRH --install-system-files -w BLADERF -t ETHERNET --install-optional-packages #for BladeRF
|
|
|
./build_oai -I -g --eNB --install-system-files -w USRP -t ETHERNET --install-optional-packages #for USRP
|
|
|
```
|
|
|
|
|
|
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.
|
|
|
* -g: adds debugging symbols to compilation directives.
|
|
|
* --RRH: installs RRH GW, i.e., rrh_gw.
|
|
|
* --eNB: complies for eNB application, i.e., lte-softmodem.
|
|
|
* --install-system-files: installs OAI required files in Linux system.
|
|
|
* -w: adds the hardware support, which is USRP in our case.
|
|
|
* -t: adds fronthaul transport protocol support (currently only ETHERNET is supported)
|
|
|
* --install-optional-packages: Installs optional packages
|
|
|
* --install-optional-packages: installs optional packages.
|
|
|
|
|
|
__Notes:__
|
|
|
* If you have previously build OAI on your host, please use -c or -C to remove existing compiled files.
|
|
|
* 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.
|
|
|
|
|
|
Look at [AutoBuild](AutoBuild) for more details.
|
|
|
|
... | ... | @@ -99,11 +104,12 @@ When OAI RRH GW is up waiting for a connection from the eNB, you should see some |
|
|
[RRH] binding mod_0 to 192.168.12.1:50000
|
|
|
```
|
|
|
|
|
|
## 3. Installation and Configuration of OAI eNB
|
|
|
## 3. Installation and Configuration of OAI RCC
|
|
|
|
|
|
### 3.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:
|
|
|
|
|
|
openairinterface5g: The location of openairinterface5g repository.
|
... | ... | @@ -111,7 +117,7 @@ openairinterface5g: The location of openairinterface5g repository. |
|
|
#### Step 2: Run automated build script (openairinterface5g)
|
|
|
|
|
|
```shell
|
|
|
cd ~/openairinterface
|
|
|
cd ~/openairinterface5g
|
|
|
source oaienv
|
|
|
cd cmake_targets
|
|
|
./build_oai -I -g --eNB -x --install-system-files -w None -t ETHERNET --install-optional-packages
|
... | ... | @@ -121,31 +127,30 @@ You can print out the help message to see what these options mean using the comm |
|
|
|
|
|
* -I: installs required packages.
|
|
|
* -g: adds debugging symbols to compilation directives.
|
|
|
* --eNB: installs eNB, i.e., lte-softmodem.
|
|
|
* --eNB: complies for eNB application, i.e., lte-softmodem.
|
|
|
* -x: adds a software oscilloscope feature to the produced binaries.
|
|
|
* --install-system-files: installs OAI required files in Linux system.
|
|
|
* -w: adds the hardware support, which is None in our case (radio hardware support is associated with RRH GW).
|
|
|
* -w: adds the hardware support, which is None in our case (radio hardware support is associated with RRU).
|
|
|
* -t: adds fronthaul transport protocol support (currently only ETHERNET is supported)
|
|
|
* --install-optional-packages: Installs optional packages
|
|
|
* --install-optional-packages: installs optional packages.
|
|
|
|
|
|
__Notes:__
|
|
|
* If you have previously build OAI on your host, please use -c or -C to remove existing compiled files.
|
|
|
* 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.
|
|
|
|
|
|
Look at [AutoBuild](AutoBuild) for more details.
|
|
|
|
|
|
### 3.2 Configuration and execution
|
|
|
|
|
|
#### Step 1: Edit the eNB configuration file (`~/openairinterface5g/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.rrh.usrpb210.conf`)
|
|
|
#### Step 1: Edit the eNB configuration file (`~/openairinterface5g/targets/PROJECTS/GENERIC-LTE-EPC/CONF/**rcc_file**`)
|
|
|
|
|
|
The file is edited appropriately with respect to Figure 2:
|
|
|
* IP address of EPC/HSS is `192.168.12.4`
|
|
|
* IP address of eNB towards EPC/HSS is `192.168.12.3` and Ethernet interface name is `eth1`
|
|
|
* IP address of eNB towards RRH GW is `192.168.12.2` and Ethernet interface name is `eth0`
|
|
|
* IP address of RRH GW is `192.168.12.1`
|
|
|
* RRH GW will have a `USRPB210` attached to it
|
|
|
* IP address of RCC towards EPC/HSS is `192.168.12.3` and Ethernet interface name is `eth1`
|
|
|
* IP address of RCC towards RRU is `192.168.12.2` and Ethernet interface name is `eth0`
|
|
|
* IP address of RRU is `192.168.12.1`
|
|
|
* RRU will have a `USRPB210` attached to it
|
|
|
|
|
|
It is assumed that `UDP` ETHERNET communication will be used and finally, we again assume that the UE that will be used will be configured with the information mentioned in `Step 1: Edit the EPC configuration file`. Using this information the configuration file of eNB is edited as follows:
|
|
|
It is assumed that `RAW` ETHERNET communication will be used. Using this information the configuration file of eNB is edited as follows:
|
|
|
|
|
|
```
|
|
|
tracking_area_code = "1";
|
... | ... | @@ -160,15 +165,16 @@ mobile_network_code = "93"; |
|
|
preference = "ipv4";
|
|
|
}
|
|
|
);
|
|
|
|
|
|
rrh_gw_config = (
|
|
|
{
|
|
|
local_if_name = "eth0";
|
|
|
remote_address = "192.168.12.1";
|
|
|
local_address = "192.168.12.2";
|
|
|
local_port = 50001; #for raw option local port must be the same to remote
|
|
|
local_port = 50000; #for raw option local port must be the same to remote
|
|
|
remote_port = 50000;
|
|
|
rrh_gw_active = "yes";
|
|
|
tr_preference = "udp"
|
|
|
tr_preference = "raw_if4p5"
|
|
|
rf_preference = "usrp_b200";
|
|
|
iq_txshift = 4;
|
|
|
tx_sample_advance = 70;
|
... | ... | @@ -189,22 +195,16 @@ rrh_gw_config = ( |
|
|
|
|
|
```
|
|
|
|
|
|
__Note__: Some notes on the following parameters:
|
|
|
* iq_txshift: corresponds to the value that will be used to shift the bits of I/Q samples in TX path and is dependent on the output fromat of the radio hardware target attached to RRH GW
|
|
|
* tx_sample_advance and tx_scheduling_advance are parameters used for timestamp adjustment between the radio hardware target and its host and they depend on the radio hardware target used and the bandwidth
|
|
|
* tx_sample_advance-> fine-grain parameter - each unit corresponds to a sample
|
|
|
* tx_scheduling_advance-> coarse-grain parameter-each unit corresponds to one packet
|
|
|
|
|
|
#### Step 2: Run eNB
|
|
|
__Notes:__
|
|
|
* If you have previously build OAI on your host, please use -c or -C to remove existing compiled files.
|
|
|
|
|
|
##### Compile & Run eNB:
|
|
|
#### Step 2: Run the RCC
|
|
|
|
|
|
```shell
|
|
|
cd ~/openairinterface5g
|
|
|
source oaienv
|
|
|
./cmake_targets/build_oai -w None -t ETHERNET --eNB -x -V -c
|
|
|
cd cmake_targets/lte_build_oai/build
|
|
|
sudo -E ./lte-softmodem -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.rrh.usrpb210.conf
|
|
|
sudo -E ./lte-softmodem -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/**rcc_file** # replace based on choice of functional split
|
|
|
```
|
|
|
You may print out the help message (`./lte-softmodem -h`) to see other options. A summary of the above options is given below.
|
|
|
* -O: configuration file
|
... | ... | @@ -229,8 +229,7 @@ At this point we have an operating base station and core network, so it is time |
|
|
|
|
|
## References:
|
|
|
|
|
|
\[1\] https://gitlab.eurecom.fr/oai/openair-cn/blob/master/DOCS/EPC_User_Guide.pdf
|
|
|
[1]: https://gitlab.eurecom.fr/oai/openair-cn/blob/master/DOCS/EPC_User_Guide.pdf
|
|
|
\[1\]: http://www.openairinterface.org/?page_id=1695
|
|
|
|
|
|
## Attachments
|
|
|
|
... | ... | @@ -238,4 +237,3 @@ At this point we have an operating base station and core network, so it is time |
|
|
* [epc.conf.in](HowToConnectCOTSUEwithOAIeNB/epc.conf.in)
|
|
|
* [topology_wiki.png](HowToConnectCOTSUEwithOAIeNBviaRRHGW/topology_wiki.png)
|
|
|
* [topology_wiki_if_info.png](HowToConnectCOTSUEwithOAIeNBviaRRHGW/topology_wiki_if_info.png) |
|
|
|