... | ... | @@ -6,7 +6,7 @@ Specifically, this tutorial describes how to deploy and run OAI as RCC and RRU o |
|
|
|
|
|
![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
|
|
|
Figure 1: NGFI based OAI C-RAN architecture
|
|
|
|
|
|
## 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]().
|
... | ... | @@ -16,9 +16,9 @@ The tutorial set up is depicted once more in the following figure, this time con |
|
|
|
|
|
![topology_wiki_if_info.png](HowToConnectCOTSUEwithOAIeNBviaRRHGW/topology_wiki_if_info.png)
|
|
|
|
|
|
Figure 2.: OAI RRU, OAI RCC 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.1 Choice of configuration files
|
|
|
|
|
|
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.
|
|
|
|
... | ... | @@ -30,6 +30,14 @@ At the time of writing this tutorial, OAI architecture supports IF4.5 and IF5 fu |
|
|
* rcc_file: rcc.band7.tm1.if5.50PRB.usrpb210.conf
|
|
|
* rru_file: rru.band7.tm1.if5.50PRB.usrpb210.conf
|
|
|
|
|
|
### 1.1 Choice of fronthaul transport mode
|
|
|
|
|
|
**NGFI IF4p5**
|
|
|
* tr_preference: raw_if4p5 or udp_if4p5
|
|
|
|
|
|
**NGFI IF5**
|
|
|
* tr_preference: raw_if5 or udp_if5
|
|
|
|
|
|
## 2. Installation and Configuration of OAI RRU
|
|
|
|
|
|
### 2.1 Installation
|
... | ... | @@ -66,33 +74,49 @@ Look at [AutoBuild](AutoBuild) for more details. |
|
|
|
|
|
#### 2.2 Configuration and execution
|
|
|
|
|
|
#### Step 1: Run RRH GW
|
|
|
#### Step 1: Edit the RRU configuration file (`~/openairinterface5g/targets/PROJECTS/GENERIC-LTE-EPC/CONF/**rru_file**`)
|
|
|
|
|
|
The file is edited appropriately with respect to Figure 2:
|
|
|
* IP address of RRU towards RCC is `192.168.12.2` and Ethernet interface name is `eth0`
|
|
|
* IP address of RCC is `192.168.12.1`
|
|
|
* RRU will have a `USRPB210` attached to it
|
|
|
|
|
|
All the required configuration for RRH GW is given via input arguments which will be adjusted with respect to the following:
|
|
|
* we assume that `UDP` will be used as the transport protocol in the link between RRH GW and eNB
|
|
|
* only `one` eNB will be connected to RRH GW (see Figure 1)
|
|
|
* RRH GW will have a radio front end equipment (USRPB210) attached to it, so there is `no emulation operation` (see Figure 1)
|
|
|
* the name of the Ethernet interface for RRH GW is `eth0` (see Figure 2).
|
|
|
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:
|
|
|
|
|
|
##### Compile & Run RRH GW:
|
|
|
```
|
|
|
tracking_area_code = "1";
|
|
|
mobile_country_code = "208";
|
|
|
mobile_network_code = "93";
|
|
|
|
|
|
rrh_gw_config = (
|
|
|
{
|
|
|
local_if_name = "eth0";
|
|
|
remote_address = "192.168.12.1";
|
|
|
local_address = "192.168.12.2";
|
|
|
local_port = 50000; # for raw option local port must be the same to remote
|
|
|
remote_port = 50000;
|
|
|
rrh_gw_active = "yes";
|
|
|
tr_preference = "raw_if4p5"; # replace based on choice of functional split
|
|
|
rf_preference = "usrp_b200";
|
|
|
iq_txshift = 4;
|
|
|
tx_sample_advance = 70;
|
|
|
tx_scheduling_advance = 9;
|
|
|
}
|
|
|
);
|
|
|
```
|
|
|
|
|
|
#### Step 2: Run the RRU
|
|
|
|
|
|
```shell
|
|
|
cd ~/openairinterface5g
|
|
|
source oaienv
|
|
|
./cmake_targets/build_oai -w USRP -t ETHERNET --RRH -c
|
|
|
cd cmake_targets/rrh_gw/build
|
|
|
sudo -E ./rrh_gw -n1 -i eth0 -m0 -x
|
|
|
sudo -E ./rrh_gw -h #(to see help options)
|
|
|
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
|
|
|
```
|
|
|
You may print out the help message to see other options. A summary of the above options follows.
|
|
|
* -n: number of eNBs that will be connected to RRH GW (in this case is 1)
|
|
|
* -i: name of the RRH GW Ethernet interface (in this case the name is "eth0")
|
|
|
* -m: choose between UDP and RAW version of Ethernet (UDP:0 RAW:1)
|
|
|
* -x: choose between real time or emulated operation (in this case real time operation is used)
|
|
|
|
|
|
__Note__: some other options are very useful for debugging purposes, such as `-v`, which enables VCD and generates a log file (/tmp/openair_dump_rrh.vcd) with a lot of details and `-g9` which sets logging information to debug level. Finally, there is the option `-t`, which prints periodic round trip delay measurements between RRH GW and eNB. Since all three of them consume computing resources (e.g. VCD is heavy on file access), you are recommended to disable them for normal use.
|
|
|
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
|
|
|
|
|
|
When OAI RRH GW is up waiting for a connection from the eNB, you should see something like the following:
|
|
|
When OAI RRU is up waiting for a connection from the OAI RCC, you should see something like the following:
|
|
|
|
|
|
```
|
|
|
...
|
... | ... | @@ -141,7 +165,7 @@ 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/**rcc_file**`)
|
|
|
#### Step 1: Edit the RCC 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`
|
... | ... | @@ -150,7 +174,7 @@ The file is edited appropriately with respect to Figure 2: |
|
|
* IP address of RRU is `192.168.12.1`
|
|
|
* RRU will have a `USRPB210` attached to it
|
|
|
|
|
|
It is assumed that `RAW` ETHERNET communication will be used. Using this information the configuration file of eNB is edited as follows:
|
|
|
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:
|
|
|
|
|
|
```
|
|
|
tracking_area_code = "1";
|
... | ... | @@ -171,15 +195,14 @@ rrh_gw_config = ( |
|
|
local_if_name = "eth0";
|
|
|
remote_address = "192.168.12.1";
|
|
|
local_address = "192.168.12.2";
|
|
|
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;
|
|
|
rrh_gw_active = "yes";
|
|
|
tr_preference = "raw_if4p5"
|
|
|
tr_preference = "raw_if4p5"; # replace based on choice of functional split
|
|
|
rf_preference = "usrp_b200";
|
|
|
iq_txshift = 4;
|
|
|
tx_sample_advance = 70;
|
|
|
tx_scheduling_advance = 9;
|
|
|
|
|
|
tx_scheduling_advance = 9;
|
|
|
}
|
|
|
);
|
|
|
|
... | ... | @@ -192,7 +215,6 @@ rrh_gw_config = ( |
|
|
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.12.3/24";
|
|
|
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
|
|
};
|
|
|
|
|
|
```
|
|
|
|
|
|
__Notes:__
|
... | ... | @@ -204,14 +226,14 @@ __Notes:__ |
|
|
cd ~/openairinterface5g
|
|
|
source oaienv
|
|
|
cd cmake_targets/lte_build_oai/build
|
|
|
sudo -E ./lte-softmodem -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/**rcc_file** # replace based on choice of functional split
|
|
|
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
|
|
|
|
|
|
__Note__: some other options are very useful for debugging purposes, such as `-V`, which enables VCD and generates a log file (/tmp/openair_dump_eNB.vcd) with a lot of details, and `-d`, which enables software oscilloscope with interactive graphic interfaces. Since both consume a lot of computing resources (one is heavy on file access, the other one is heavy on graphics), you are recommended to disable them for normal use.
|
|
|
|
|
|
When eNB is successfully connected, you should see something like the following on eNB terminal:
|
|
|
When OAI RCC is successfully connected, you should see something like the following on the RCC terminal:
|
|
|
|
|
|
```
|
|
|
...
|
... | ... | |