- when CU is used, UE ID data is filled as GNB_UE_ID_E2SM with CU UE ID value included
OpenAirInterface License
It is distributed under OAI Public License V1.1.
The license information is distributed under LICENSE file in the same directory.
Please see NOTICE file for third party software that is included in the sources.
Overview
This tutorial describes the steps of deployment 5G OAI RAN, with integrated E2 agent, and FlexRIC, O-RAN compliant nearRT-RIC.
1. Installation
1.1 Install prerequisites
-
A recent CMake (at least v3.15).
On Ubuntu, you might want to use this PPA to install an up-to-date version.
-
SWIG (at least v.4.0).
We use SWIG as an interface generator to enable the multi-language feature (i.e., C/C++ and Python) for the xApps. Please, check your SWIG version (i.e,
swig -version) and install it from scratch if necessary as described here: https://swig.org/svn.html or via the code below:git clone https://github.com/swig/swig.git cd swig ./autogen.sh ./configure --prefix=/usr/ make make install -
Flatbuffer encoding(optional).
We also provide a flatbuffers encoding/decoding scheme as alternative to ASN.1. In case that you want to use it follow the instructions at https://github.com/dvidelabs/flatcc and provide the path for the lib and include when selecting it at
ccmake ..from the build directory
1.2 Download the required dependencies.
Below an example of how to install it in ubuntu
sudo apt install libsctp-dev python3.8 cmake-curses-gui libpcre2-dev python-dev
2. Deployment
2.1 OAI RAN
2.1.1 Clone the OAI repository
git clone https://gitlab.eurecom.fr/oai/openairinterface5g oai
cd oai/
2.1.2 Build OAI
cd cmake_targets/
./build_oai -I -w SIMU --gNB --nrUE --build-e2 --ninja
If the flexric folder is empty, try manually the following commands
git submodule init
git submodule update
-Ioption is to install pre-requisites, you only need it the first time you build the softmodem or when some oai dependencies have changed.-woption is to select the radio head support you want to include in your build. Radio head support is provided via a shared library, which is called the "oai device" The build script creates a soft link fromliboai_device.soto the true device which will be used at run-time (here the USRP one, liboai_usrpdevif.so). The RF simulatorRF simulator is implemented as a specific device replacing RF hardware, it can be specifically built using-w SIMUoption, but is also built during any softmodem build.--gNBis to build thenr-softmodemandnr-cuupexecutables and all required shared libraries--nrUEis to build thenr-uesoftmodemexecutable and all required shared libraries--ninjais to use the ninja build tool, which speeds up compilation--build-e2option is to use the E2 agent, integrated within gNB.
2.2 FlexRIC
2.2.1 Clone the FlexRIC repository
git clone https://gitlab.eurecom.fr/mosaic5g/flexric flexric
cd flexric/
git checkout 8ee3aca107a9da8ccf425e623bed18cd40a31fa1
2.2.2 Build FlexRIC
mkdir build && cd build && cmake .. && make -j8
2.2.3 Installation of Service Models (SMs)
sudo make install
By default the service model libraries will be installed in the path /usr/local/lib/flexric while the configuration file in /usr/local/etc/flexric.
Available SMs in this version are:
- KPM v03.00 (xapp_kpm_moni)
- GTP (xapp_gtp_moni)
- MAC + RLC + PDCP (xapp_mac_rlc_pdcp_moni)
If you are interested in TC and SLICE SMs, please follow the instructions at https://gitlab.eurecom.fr/mosaic5g/flexric.
3. Start the process
In order to configure E2 agent, please, add the following block in the configuration file:
e2_agent = {
near_ric_ip_addr = "127.0.0.1";
sm_dir = "/usr/local/lib/flexric/"
}
- start the gNB
cd oai/cmake_targets/ran_build/build
sudo ./nr-softmodem -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.conf --rfsim --sa -E
- if CU-DU split is used, start the gNB as follows
sudo ./nr-softmodem -O <path_to_du_conf_file> --rfsim --sa -E
sudo ./nr-softmodem -O <path_to_cu_conf_file> --rfsim --sa -E
- start the nrUE
cd oai/cmake_targets/ran_build/build
sudo ./nr-uesoftmodem -r 106 --numerology 1 --band 78 -C 3619200000 --rfsim --sa --uicc0.imsi 001010000000001 --rfsimulator.serveraddr 127.0.0.1
- start the nearRT-RIC
cd flexric
./build/examples/ric/nearRT-RIC
- start the KPM xApp
cd flexric
./build/examples/xApp/c/monitor/xapp_kpm_moni
- start the GTP xApp
cd flexric
./build/examples/xApp/c/monitor/xapp_gtp_moni
- start the (MAC + RLC + PDCP) xApp
cd flexric
./build/examples/xApp/c/monitor/xapp_mac_rlc_pdcp_moni
Optional - Multiple UEs
If you are interested in having multiple UEs in rfsim mode, please, follow the instructions at https://gitlab.eurecom.fr/oaiworkshop/summerworkshop2023/-/tree/main/ran#multiple-ues.