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.
Specifically, this tutorial describes how to deploy and run OAI as RCC and RRU on different hosts as depicted in the following figure:
Figure 1: NGFI based OAI C-RAN architecture
1. Prerequisites
- Please ensure that you meet the system requirements for OAI installation.
- We assume that OAI EPC and HSS are setup and ready to be used with the RCC. Refer to the basic OAI eNB <-> OAI CN tutorial.
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.
Figure 2: OAI RRU, OAI RCC and OAI EPC+HSS on different hosts (interface information included)
1.1 Choice of configuration files
At the time of writing this tutorial, OAI architecture supports IF4.5 and IF5 functional splits (note: IF5 and IF4p5/RAW Ethernet are broken and not tested with CI/CD for the moment, so test only IF4p5/UDP). The different splits can be run by using the appropriate configuration files from below.
NGFI IF4p5 (10 MHz)
- rcc_file: rcc.band7.tm1.if4p5.50PRB.usrpb210.conf
- rru_file: rru.oaisim.conf
2. Installation and Configuration of OAI RRU
2.1 Installation
Step 1: Check out the develop branch
Download the source code from the appropriate Git repository (see Get the Sources). We assume that you have following directory:
openairinterface5g: The location of openairinterface5g repository.
for software installation->TO BE RUN ONLY ONCE)
)
Step 2: Run automated script for OAI RRU/RCC (cd ~/openairinterface5g
source oaienv
cd cmake_targets
./build_oai -I --eNB -w USRP #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.
- -w: adds the hardware support, which is USRP in our case
You can skip this if you've already installed the packages (including the RF hardware you are using) or do not wish to update the packages.
2.2 Configuration and execution
start from ~/openairinterface5g/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru_oaisim.conf
)
Step 1: Edit the RRU configuration file (Under the following configuration parameters:
- IP address of RCC towards RRU is
10.10.10.1
and RRU Ethernet interface name iseth0
- 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];
}
);
Step 2: Compile & Run the RRU
cd ~/openairinterface5g
source oaienv
cd cmake_targets
./build_oai -I -w USRP -t ETHERNET -x -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.
- -I: installs required packages.
- -w: adds the hardware support, which is USRP in our case.
- -t: adds trasport protocol support in compilation
- -x: adds a software oscilloscope feature to the produced binaries
- -c: erase all files to make a rebuild from start
- --eNB: complies for eNB application.
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
3. Installation and Configuration of OAI RCC
3.1 Installation
Step 1: Check out the develop branch
Download the source code from the appropriate Git repository (see Get the Sources). We assume that you have following directory:
openairinterface5g: The location of openairinterface5g repository.
Step 2: Run automated build script (openairinterface5g)
cd ~/openairinterface5g
source oaienv
cd cmake_targets
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.
- -I: installs required packages.
- --eNB: complies for eNB application, i.e., lte-softmodem.
- -x: adds a software oscilloscope feature to the produced binaries.
- -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)
Notes:
- If you have previously build OAI on your host, please use -c or -C to remove existing compiled files.
- Look at AutoBuild for more details.
3.2 Configuration and execution
~/openairinterface5g/targets/PROJECTS/GENERIC-LTE-EPC/CONF/**rcc_file**
)
Step 1: Edit the RCC configuration file (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 iseth1
- IP address of RCC towards RRU is
10.10.10.1
and Ethernet interface name iseth0
- 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 UDP
ETHERNET transport. Using this information the configuration file of RCC is edited as follows:
tracking_area_code = 1;
plmn_list = ( { mcc = 901; mnc = 70; mnc_length = 2; } );
////////// MME parameters:
mme_ip_address = ( { ipv4 = "192.168.12.4";
ipv6 = "192:168:3::17";
active = "yes";
preference = "ipv4";
}
);
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";
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.12.3/24";
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
};
Notes:
- If you have previously build OAI on your host, please use -c or -C to remove existing compiled files.
Step 2: Compile & Run the RCC
cd ~/openairinterface5g
source oaienv
cmake_targets/build_oai -t ETHERNET -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
4. UE Configuration and User Registration on HSS Database
At this point we have an operating base station and core network, so it is time to configure the COTS UE and use it (see Stage 2 of HowToConnectCOTSUEwithOAIeNBNew tutorial).
References:
[1]: Whitepaper "Prototyping of Next Generation Fronthaul Interfaces (NGFI) using OpenAirInterface", http://www.openairinterface.org/?page_id=1695
[2]: System requirements for OAI
[4]: Get OAI Sources
[5]: OAI AutoBuild