|
# How to use OAI to setup C-RAN -> NGFI RCC/RRU
|
|
# How to use OAI to setup C-RAN -> NGFI RCC/RRU (*Experimental at the time of writing*)
|
|
|
|
|
|
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](http://www.openairinterface.org/?page_id=1695).
|
|
In this tutorial, we will describe how to connect a commercial off-the-shelf 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](http://www.openairinterface.org/?page_id=1695).
|
|
|
|
|
|
Specifically, 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:
|
|
|
|
|
... | @@ -23,8 +23,8 @@ Figure 2: OAI RRU, OAI RCC and OAI EPC+HSS on different hosts (interface informa |
... | @@ -23,8 +23,8 @@ Figure 2: OAI RRU, OAI RCC and OAI EPC+HSS on different hosts (interface informa |
|
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.
|
|
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.
|
|
|
|
|
|
**NGFI IF4p5 (10 MHz)**
|
|
**NGFI IF4p5 (10 MHz)**
|
|
* rcc_file: rcc.band7.tm1.if5.50PRB.usrpb210.conf
|
|
* rcc_file: rcc.band7.tm1.if4p5.50PRB.usrpb210.conf
|
|
* rru_file: rru.band7.tm1.if5.50PRB.usrpb210.conf
|
|
* rru_file: rru.band7.tm1.if4p5.50PRB.usrpb210.conf
|
|
|
|
|
|
**NGFI IF5 (10 MHz)**
|
|
**NGFI IF5 (10 MHz)**
|
|
* rcc_file: rcc.band7.tm1.if5.50PRB.usrpb210.conf
|
|
* rcc_file: rcc.band7.tm1.if5.50PRB.usrpb210.conf
|
... | @@ -38,6 +38,8 @@ At the time of writing this tutorial, OAI architecture supports IF4.5 and IF5 fu |
... | @@ -38,6 +38,8 @@ At the time of writing this tutorial, OAI architecture supports IF4.5 and IF5 fu |
|
**NGFI IF5**
|
|
**NGFI IF5**
|
|
* tr_preference: raw_if5 or udp_if5
|
|
* tr_preference: raw_if5 or udp_if5
|
|
|
|
|
|
|
|
The choice of configuration file and tr_preferences for your setup are referred to as rcc_file, rru_file and tr_preference from now.
|
|
|
|
|
|
## 2. Installation and Configuration of OAI RRU
|
|
## 2. Installation and Configuration of OAI RRU
|
|
|
|
|
|
### 2.1 Installation
|
|
### 2.1 Installation
|
... | @@ -54,21 +56,22 @@ openairinterface5g: The location of openairinterface5g repository. |
... | @@ -54,21 +56,22 @@ openairinterface5g: The location of openairinterface5g repository. |
|
cd ~/openairinterface5g
|
|
cd ~/openairinterface5g
|
|
source oaienv
|
|
source oaienv
|
|
cd cmake_targets
|
|
cd cmake_targets
|
|
./build_oai -I -g --eNB --install-system-files -w USRP -t ETHERNET --install-optional-packages #for USRP
|
|
./build_oai -I --eNB --noS1 --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.
|
|
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.
|
|
* -g: adds debugging symbols to compilation directives.
|
|
* --eNB: complies for eNB application.
|
|
* --eNB: complies for eNB application, i.e., lte-softmodem.
|
|
* --noS1: when using nas kernel module (i.e., without S1 interface)
|
|
* --install-system-files: installs OAI required files in Linux system.
|
|
* --install-system-files: installs OAI required files in Linux system.
|
|
* -w: adds the hardware support, which is USRP in our case.
|
|
* -w: adds the hardware support, which is USRP in our case.
|
|
* -t: adds fronthaul transport protocol support (currently only ETHERNET is supported)
|
|
* -t: adds fronthaul transport protocol support (currently only ETHERNET is supported)
|
|
* --install-optional-packages: installs optional packages.
|
|
* --install-optional-packages: installs optional packages.
|
|
|
|
|
|
__Notes:__
|
|
__Notes:__
|
|
* If you have previously build OAI on your host, please use -c or -C to remove existing compiled files.
|
|
* If you have previously build OAI on your host, please use -c or -C to remove existing compiled files.
|
|
|
|
* Please note that you must use --noS1 to disable S1 interface functionality in RRU.
|
|
* Look at [AutoBuild](AutoBuild) for more details.
|
|
* Look at [AutoBuild](AutoBuild) for more details.
|
|
|
|
|
|
#### 2.2 Configuration and execution
|
|
#### 2.2 Configuration and execution
|
... | @@ -80,7 +83,7 @@ The file is edited appropriately with respect to Figure 2: |
... | @@ -80,7 +83,7 @@ The file is edited appropriately with respect to Figure 2: |
|
* IP address of RCC is `192.168.12.1`
|
|
* IP address of RCC is `192.168.12.1`
|
|
* RRU will have a `USRPB210` attached to it
|
|
* RRU will have a `USRPB210` attached to it
|
|
|
|
|
|
It is assumed that `NGFI_IF4.5` will be used with `RAW` ETHERNET transport. Using this information the configuration file of RRU is edited as follows:
|
|
It is assumed that `NGFI_IF4.5` will be used with `UDP` ETHERNET transport. Using this information the configuration file of RRU is edited as follows:
|
|
|
|
|
|
```
|
|
```
|
|
tracking_area_code = "1";
|
|
tracking_area_code = "1";
|
... | @@ -95,7 +98,7 @@ rrh_gw_config = ( |
... | @@ -95,7 +98,7 @@ rrh_gw_config = ( |
|
local_port = 50000; # 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;
|
|
remote_port = 50000;
|
|
rrh_gw_active = "yes";
|
|
rrh_gw_active = "yes";
|
|
tr_preference = "raw_if4p5"; # replace based on choice of functional split
|
|
tr_preference = "udp_if4p5"; # replace based on choice of functional split
|
|
rf_preference = "usrp_b200";
|
|
rf_preference = "usrp_b200";
|
|
iq_txshift = 4;
|
|
iq_txshift = 4;
|
|
tx_sample_advance = 70;
|
|
tx_sample_advance = 70;
|
... | @@ -109,8 +112,12 @@ rrh_gw_config = ( |
... | @@ -109,8 +112,12 @@ rrh_gw_config = ( |
|
```shell
|
|
```shell
|
|
cd ~/openairinterface5g
|
|
cd ~/openairinterface5g
|
|
source oaienv
|
|
source oaienv
|
|
cd cmake_targets/lte_build_oai/build
|
|
|
|
sudo -E ./lte-softmodem -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/**rru_file** # replace based on choice of functional split
|
|
cd cmake_targets/tools
|
|
|
|
./init_nas_nos1
|
|
|
|
|
|
|
|
cd ../lte_noS1_build_oai/build
|
|
|
|
sudo -E ./lte-softmodem-nos1 -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/**rru_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.
|
|
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
|
|
* -O: configuration file
|
... | @@ -143,13 +150,12 @@ openairinterface5g: The location of openairinterface5g repository. |
... | @@ -143,13 +150,12 @@ openairinterface5g: The location of openairinterface5g repository. |
|
cd ~/openairinterface5g
|
|
cd ~/openairinterface5g
|
|
source oaienv
|
|
source oaienv
|
|
cd cmake_targets
|
|
cd cmake_targets
|
|
./build_oai -I -g --eNB -x --install-system-files -w None -t ETHERNET --install-optional-packages
|
|
./build_oai -I --eNB -x --install-system-files -w None -t ETHERNET --install-optional-packages
|
|
```
|
|
```
|
|
|
|
|
|
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.
|
|
* -g: adds debugging symbols to compilation directives.
|
|
|
|
* --eNB: complies for eNB application, i.e., lte-softmodem.
|
|
* --eNB: complies for eNB application, i.e., lte-softmodem.
|
|
* -x: adds a software oscilloscope feature to the produced binaries.
|
|
* -x: adds a software oscilloscope feature to the produced binaries.
|
|
* --install-system-files: installs OAI required files in Linux system.
|
|
* --install-system-files: installs OAI required files in Linux system.
|
... | @@ -172,7 +178,7 @@ The file is edited appropriately with respect to Figure 2: |
... | @@ -172,7 +178,7 @@ The file is edited appropriately with respect to Figure 2: |
|
* IP address of RRU is `192.168.12.1`
|
|
* IP address of RRU is `192.168.12.1`
|
|
* RRU will have a `USRPB210` attached to it
|
|
* RRU will have a `USRPB210` attached to it
|
|
|
|
|
|
It is assumed that `NGFI_IF4.5` will be used with `RAW` ETHERNET transport. Using this information the configuration file of RCC is edited as follows:
|
|
It is assumed that `NGFI_IF4.5` will be used with `UDP` ETHERNET transport. Using this information the configuration file of RCC is edited as follows:
|
|
|
|
|
|
```
|
|
```
|
|
tracking_area_code = "1";
|
|
tracking_area_code = "1";
|
... | @@ -196,7 +202,7 @@ rrh_gw_config = ( |
... | @@ -196,7 +202,7 @@ rrh_gw_config = ( |
|
local_port = 50000; # 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;
|
|
remote_port = 50000;
|
|
rrh_gw_active = "yes";
|
|
rrh_gw_active = "yes";
|
|
tr_preference = "raw_if4p5"; # replace based on choice of functional split
|
|
tr_preference = "udp_if4p5"; # replace based on choice of functional split
|
|
rf_preference = "usrp_b200";
|
|
rf_preference = "usrp_b200";
|
|
iq_txshift = 4;
|
|
iq_txshift = 4;
|
|
tx_sample_advance = 70;
|
|
tx_sample_advance = 70;
|
... | | ... | |