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 ../../