Skip to content

Setting up the VBS

Roberto Riggio edited this page May 12, 2021 · 8 revisions

Table of Contents

  1. Hardware Requirements
  2. Software Requirements
  3. Compilation process
  4. Configuration process
  5. Start the VBS

Hardware Requirements

This guide assumes that you are deploying the eNodeB using our pre-patched version of the srsLTE software stack. As EPC we are currently using Open5GS.

For the machine running the eNB a Quad-core PC (i5 or better) with at least 8GB RAM will be needed together with a Software Defined Radio platform supported by srsLTE (e.g. the Ettus USRP B210).

The reference operating system for this guide is Ubuntu 20.04 LTS Server.

Software Requirements

The following commands will update the package repository and install some dependencies:

sudo apt-get update
sudo apt-get install cmake git libfftw3-dev libmbedtls-dev \
                     libboost-program-options-dev libconfig++-dev \
                     libsctp-dev libuhd-dev

Compilation process

Clone the 5G-EmPOWER eNB agent and protocols repository:

git clone https://github.com/5g-empower/empower-enb-agent.git

This will create a directory named empower-enb-agent which from now on will be referred to as $LIB_TOPDIR.

Change into the $TOPDIR directory, compile, and install the library:

cd $LIB_TOPDIR
cmake -DCMAKE_BUILD_TYPE=Release .
make
sudo make install

Clone the srsRAN repository:

git clone https://github.com/5g-empower/srsRAN.git

This will create a directory named srsRAN which from now on will be referred to as $TOPDIR.

Change into the $TOPDIR directory and compile srsRAN:

cd $TOPDIR 
git checkout agent
mkdir build 
cd build 
cmake ../ 
make

Configuration process

This tutorial assumes that you have a compatible EPC properly configured. This could be either a commercial EPC or an open-source one. Please refer to your EPC provider for information about its configuration and usage.

We use Open5GS as EPC. You can find detailed instructions on how to install and configure the EPC and program the USIM here.

Copy the example configuration files into the working directory:

cd $TOPDIR
cp srsenb/drb.conf.example build/srsenb/src/drb.conf
cp srsenb/enb.conf.example build/srsenb/src/enb.conf
cp srsenb/rr.conf.example build/srsenb/src/rr.conf
cp srsenb/sib.conf.example build/srsenb/src/sib.conf

Leave all the configuration files unchanged with the exception of the enb.conf file which has to be edited in order to specify:

  • the desired enb_id and cell_id
  • the phy_cell_id compatible with the cell_id
  • the TAC, MCC, and MNC as defined in the core network configuration
  • the mme_addr pointing to the MME in the core network
  • the gtp_bind_addr pointing to the local IP address used to reach the core network
  • the number of resource blocks assigned to the cell (n_prb)
  • the controller address (ctrl_addr) and port (ctrl_port, default 2210)

Start the VBS

Start the srsenb:

cd $TOPDIR/build/srsenb/src/
./srsenb enb.conf