# <center>srsRAN with E2 Agent Installation Guide</center>
srsRAN is a 4G/5G software radio suite developed by SRS. This is a modified version of [srsRAN 21.10](https://github.com/srsran/srsRAN) and [POWDER’s E2 agent enabled srsLTE](https://gitlab.flux.utah.edu/powderrenewpublic/srslte-ric).
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
# Dependencies Installation
```bash
sudo apt-get install build-essential cmake libfftw3-dev libmbedtls-dev libboost-program-options-dev libconfig++-dev libsctp-dev libtool autoconf
```
# ZeroMQ Installation
```bash
sudo apt-get install libzmq3-dev
```
# UHD 4.1 Installation
```bash
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
```bash
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
==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.==
```bash
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 ../../
```