srsRAN with E2 Agent Installation Guide
Note
Before you begin, please clone the parent oaic directory as outlined in Getting Started.
srsRAN is a 4G/5G software radio suite developed by SRS. This is a modified version of srsRAN 21.10 and POWDER’s E2 agent enabled srsLTE.
See the srsRAN project pages for information, guides and project news.
- The srsRAN suite includes:
srsUE - a full-stack SDR 4G/5G-NSA UE application (5G-SA coming soon)
srsENB - a full-stack SDR 4G/5G-NSA eNodeB application (5G-SA coming soon)
srsEPC - a light-weight 4G core network implementation with MME, HSS and S/P-GW
For application features, build instructions and user guides see the srsRAN documentation.
For license details, see LICENSE file - Needs to be modified.
Pre-requisites
TODO
Create a system specification table for different cellular configurations
System Requirements - 4 core CPU (3 - 5 GHz)
Operating system - Ubuntu 20.04
E2 Agent Integration - E2 Bindings, asn1c Compiler, O-RAN Specification documents(optional)
Simulated 1 UE 1 eNB/gNB setup - ZeroMQ libraries, Single Host machine/VM
USRP frontend - UHD version 4.1, At least two host machines/VMs
Multiple simulated UE and eNB/gNB support : GNU Radio companion 3.9
Dependencies Installation
sudo apt-get install build-essential cmake libfftw3-dev libmbedtls-dev libboost-program-options-dev libconfig++-dev libsctp-dev libtool autoconf
ZeroMQ Installation
srsRAN software suite includes virtual radios which uses the ZeroMQ networking library to transfer radio samples between applications. This approach is very useful for development, testing, debugging, CI/CD or for teaching and demonstrating. Natively, ZeroMQ with srsRAN supports only one eNB/gNB and one UE configuration but it can be extended to support multiple UEs using GNU Radio. Have a look at the tutorial to do this here.
Getting ZeroMQ development Libraries
ZeroMQ Installation Instructions
Package Installation
sudo apt-get install libzmq3-dev
UHD 4.1 Installation
Warning
Make sure you don’t have UHD already installed in your system. The system might not work if there are multiple versions of UHD
Ettus UHD Binary Installation Manual
Using package manager
sudo add-apt-repository ppa:ettusresearch/uhd
sudo apt-get update
sudo apt-get install libuhd-dev libuhd4.1.0 uhd-host
asn1c Compiler Installation
We will be using the modified asn1c compiler (for RAN and CN) that is hosted by Open Air Interface (OAI)
cd ../..
sudo apt install libtool autoconf
git clone https://gitlab.eurecom.fr/oai/asn1c.git
cd asn1c
git checkout velichkov_s1ap_plus_option_group
autoreconf -iv
./configure
make -j`nproc`
sudo make install
sudo ldconfig
cd ..
srsRAN with E2 agent Installation
Installation from Source
Warning
This step will have to be performed again if any of the above librarires change. For example, if UHD is updated, you will have to re-build srsRAN to make use of the updated library.
cd srsRAN-e2
mkdir build
export SRS=`realpath .`
cd build
cmake ../ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DRIC_GENERATED_E2AP_BINDING_DIR=${SRS}/e2_bindings/E2AP-v01.01 \
-DRIC_GENERATED_E2SM_KPM_BINDING_DIR=${SRS}/e2_bindings/E2SM-KPM \
-DRIC_GENERATED_E2SM_GNB_NRT_BINDING_DIR=${SRS}/e2_bindings/E2SM-GNB-NRT
make -j`nproc`
sudo make install
sudo ldconfig
srsran_install_configs.sh user --force
cd ../../