|
|
# How to use OAI to setup C-RAN -> NGFI RCC/RRU (*Experimental*)
|
|
|
# How to use OAI to setup C-RAN -> NGFI RCC/RRU
|
|
|
|
|
|
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).
|
|
|
|
... | ... | @@ -24,27 +24,14 @@ At the time of writing this tutorial, OAI architecture supports IF4.5 and IF5 fu |
|
|
|
|
|
**NGFI IF4p5 (10 MHz)**
|
|
|
* rcc_file: rcc.band7.tm1.if4p5.50PRB.usrpb210.conf
|
|
|
* rru_file: rru.band7.tm1.if4p5.50PRB.usrpb210.conf
|
|
|
* rru_file: rru.oaisim.conf
|
|
|
|
|
|
**NGFI IF5 (10 MHz)**
|
|
|
* rcc_file: rcc.band7.tm1.if5.50PRB.usrpb210.conf
|
|
|
* rru_file: rru.band7.tm1.if5.50PRB.usrpb210.conf
|
|
|
|
|
|
### 1.2 Choice of fronthaul transport mode
|
|
|
|
|
|
**NGFI IF4p5**
|
|
|
* tr_preference: raw_if4p5 or udp_if4p5
|
|
|
|
|
|
**NGFI 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.1 Installation
|
|
|
|
|
|
#### Step 1: Check out the Trunk
|
|
|
#### Step 1: Check out the develop branch
|
|
|
|
|
|
Download the source code from the appropriate Git repository (see [GetSources](GetSources)). We assume that you have following directory:
|
|
|
|
... | ... | @@ -72,7 +59,7 @@ __Notes:__ |
|
|
|
|
|
#### 2.2 Configuration and execution
|
|
|
|
|
|
#### Step 1: Edit the RRU configuration file (`~/openairinterface5g/targets/PROJECTS/GENERIC-LTE-EPC/CONF/**rru_file**`)
|
|
|
#### Step 1: Edit the RRU configuration file (`start from ~/openairinterface5g/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru_oaisim.conf`)
|
|
|
|
|
|
The file is edited appropriately with respect to Figure 2:
|
|
|
* MAC address of RRU is `24:f5:aa:e1:46:01` and Ethernet interface name is `eth0`
|
... | ... | @@ -124,20 +111,42 @@ You can print out the help message to see what these options mean using the comm |
|
|
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 (`./lte-softmodem -h`) to see other options. A summary of the above options is given below.
|
|
|
* -O: configuration file
|
|
|
|
|
|
When OAI RRU is up waiting for a connection from the OAI RCC, you should see something like the following:
|
|
|
Under the following configuration parameters:
|
|
|
|
|
|
![rru_waiting](/uploads/3f29ddf7665d6af296febc5982959955/rru_waiting.png)
|
|
|
* IP address of RCC towards RRU is `10.10.10.1` and RRU Ethernet interface name is `eth0`
|
|
|
* IP address of RRU is `10.10.10.2`
|
|
|
* RRU will have a `USRPB210` attached to it
|
|
|
* band 7
|
|
|
* -27 dBm/RE RS EPRE (maximum level for USRP B2x0 with 10 MHz carrier bandwidth)
|
|
|
* 115 dB RX gain (a reasonable choice for USRP B2x0)
|
|
|
|
|
|
The contents of the RU section in the RRU .conf file should look like :
|
|
|
|
|
|
RUs = (
|
|
|
{
|
|
|
local_if_name = "eth0";
|
|
|
remote_address = "10.10.10.1"
|
|
|
local_address = "10.10.10.2";
|
|
|
local_portc = 50000;
|
|
|
remote_portc = 50000;
|
|
|
local_portd = 50001;
|
|
|
remote_portd = 50001;
|
|
|
local_rf = "yes"
|
|
|
tr_preference = "udp_if4p5";
|
|
|
nb_tx = 1;
|
|
|
nb_rx = 1;
|
|
|
max_pdschReferenceSignalPower = -27;
|
|
|
max_rxgain = 115;
|
|
|
bands = [7];
|
|
|
}
|
|
|
);
|
|
|
|
|
|
Figure 3: RRU up and waiting for connection from RCC
|
|
|
|
|
|
## 3. Installation and Configuration of OAI RCC
|
|
|
|
|
|
### 3.1 Installation
|
|
|
|
|
|
#### Step 1: Check out the Trunk
|
|
|
#### Step 1: Check out the develop branch
|
|
|
|
|
|
Download the source code from the appropriate Git repository (see [GetSources](GetSources)). We assume that you have following directory:
|
|
|
|
... | ... | @@ -149,7 +158,7 @@ openairinterface5g: The location of openairinterface5g repository. |
|
|
cd ~/openairinterface5g
|
|
|
source oaienv
|
|
|
cd cmake_targets
|
|
|
cmake_targets/build_oai -w None -t ETHERNET -x -c --eNB
|
|
|
cmake_targets/build_oai -t ETHERNET -c --eNB
|
|
|
```
|
|
|
|
|
|
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.
|
... | ... | @@ -168,19 +177,19 @@ __Notes:__ |
|
|
|
|
|
#### 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:
|
|
|
The file is edited appropriately with respect to the following configuration:
|
|
|
* IP address of EPC/HSS is `192.168.12.4`
|
|
|
* IP address of RCC towards EPC/HSS is `192.168.12.3` and Ethernet interface name is `eth1`
|
|
|
* MAC address of RCC towards RRU is `24:f5:aa:e1:4e:0c` and Ethernet interface name is `eth0`
|
|
|
* MAC address of RRU is `24:f5:aa:e1:46:01`
|
|
|
* IP address of RCC towards RRU is `10.10.10.1` and Ethernet interface name is `eth0`
|
|
|
* IP address of RRU is `10.10.10.2`
|
|
|
* 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";
|
|
|
mobile_country_code = "901";
|
|
|
mobile_network_code = "70";
|
|
|
tracking_area_code = 1;
|
|
|
|
|
|
plmn_list = ( { mcc = 901; mnc = 70; mnc_length = 2; } );
|
|
|
|
|
|
|
|
|
////////// MME parameters:
|
... | ... | @@ -191,22 +200,26 @@ mobile_network_code = "70"; |
|
|
}
|
|
|
);
|
|
|
|
|
|
rrh_gw_config = (
|
|
|
{
|
|
|
local_if_name = "eth0";
|
|
|
remote_address = "24:f5:aa:e1:46:01";
|
|
|
local_address = "24:f5:aa:e1:4e:0c";
|
|
|
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 = 80;
|
|
|
tx_scheduling_advance = 9;
|
|
|
}
|
|
|
RUs = (
|
|
|
{
|
|
|
local_if_name = "eth0";
|
|
|
remote_address = "10.10.10.2";
|
|
|
local_address = "10.10.10.1";
|
|
|
local_portc = 50000;
|
|
|
remote_portc = 50000;
|
|
|
local_portd = 50001;
|
|
|
remote_portd = 50001;
|
|
|
local_rf = "no"
|
|
|
tr_preference = "udp_if4p5"
|
|
|
nb_tx = 1
|
|
|
nb_rx = 1
|
|
|
att_tx = 0
|
|
|
att_rx = 0;
|
|
|
eNB_instances = [0];
|
|
|
}
|
|
|
);
|
|
|
|
|
|
|
|
|
NETWORK_INTERFACES :
|
|
|
{
|
|
|
ENB_INTERFACE_NAME_FOR_S1_MME = "eth1";
|
... | ... | @@ -215,6 +228,10 @@ rrh_gw_config = ( |
|
|
ENB_INTERFACE_NAME_FOR_S1U = "eth1";
|
|
|
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.12.3/24";
|
|
|
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
|
|
|
|
|
ENB_IPV4_ADDRESS_FOR_X2C = "192.168.12.3/24";
|
|
|
ENB_PORT_FOR_X2C = 36422; # Spec 36422
|
|
|
|
|
|
};
|
|
|
```
|
|
|
|
... | ... | @@ -230,24 +247,7 @@ cmake_targets/build_oai -w None -t ETHERNET -x -c --eNB |
|
|
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
|
|
|
```
|
|
|
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 OAI RCC is successfully connected, you should see something like the following on the RCC and RRU terminal.
|
|
|
|
|
|
|
|
|
![rcc_connected](/uploads/3f6b8fbc1afcd0adcacdb60ac4f227b5/rcc_connected.png)
|
|
|
|
|
|
Figure 4: RCC connected terminal output
|
|
|
|
|
|
|
|
|
![rru_connected](/uploads/b6b933de532174a6a21ea2be7e0c63b8/rru_connected.png)
|
|
|
|
|
|
Figure 5: RRU connected terminal output
|
|
|
|
|
|
## 4. UE Configuration and User Registration on HSS Database
|
|
|
|
... | ... | |