Skip to content
Snippets Groups Projects
README.md 5.03 KiB
Newer Older
## Installation and deployment of 5G Core (5GC) of Open Air Interface (OAI)
## Objectives
- Install and configure the 5GC of OAI in a virtual machine Ubuntu 20.04 LTS (Focal Fossa)
- Deploy 5GC Core
- Inspec 5G Core Docker containers by means of command line instructions 
- Install and configure Portainer tool
- Inspec 5G Core Docker containers by means of Portainer browser

**Minimum hardware requirements for OAI UE, according to doc/NR_SA_Tutorial_COTS_UE.md · develop · oai / openairinterface5G · GitLab (eurecom.fr):**
- Ubuntu 20.04.5 LTS;
- CPU: 4 cores x86_64;
- 8 GB RAM.

**Minimum hardware requirements for OAI 5GC and OAI gNB, according to doc/NR_SA_Tutorial_COTS_UE.md · develop · oai / openairinterface5G · GitLab (eurecom.fr):**
- Ubuntu 20.04.5 LTS;
- CPU: 8 cores x86_64 3.5 GHz;
- 32 GB RAM.

**However, if you do not have such hardware specifications, you may use the one below for both devices (tested for us, you may face some lags, but it works):**
- Ubuntu 20.04.5 LTS;
- CPU: 4 cores x86_64;
- 4 GB RAM.

## 5GC Installation

In a Linux Terminal, follow the steps below:

**Step 0:** Setup your VM or Baremetal Machine, after install Useful Software:

> sudo su 
> 
> apt update -y 
> 
> apt upgrade -y
> 
> apt install -y python3-pip git curl cmake tree golang vim net-tools build-essential nfs-common openssh-server
**Step 1:** Install dependencies
> sudo apt-get install ca-certificates 
> 
> sudo apt-get install curl 
> 
> sudo apt-get install gnupg 
> 
> sudo apt-get install lsb-release 
**Step 2:** Enable packet forwarding
> sudo sysctl net.ipv4.conf.all.forwarding=1
> 
> sudo iptables -P FORWARD ACCEPT
**Step 3:** Install docker and docker-compose
> sudo rm /etc/apt/sources.list.d/docker.list*
> 
> sudo mkdir -p /etc/apt/keyrings 
> 
> curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
> 
> sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
> 
> sudo chmod a+r /etc/apt/keyrings/docker.gpg
> 
> sudo apt-get update
> 
> sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
> 
> sudo curl -L https://github.com/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
> 
> sudo chmod +x /usr/local/bin/docker-compose
**Step 4:** Clone OpenAirInterface 5G Core repository
> git clone https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-fed.git
> 
> cd oai-cn5g-fed
> 
> git checkout slicing-spring-of-code

## 5G RAN Installation

## Objectives
- Install and configure the OAI gNB 
- Deploy a gNB together a previous configured 5GC
- Inspect gNB status in 5GC Core
## gNB Installation
To install OAI RAN 5G, go back for /home/$your user$ and follow this tutorial.
**Step 0:** go back to /home/$your user$. In a Linux Terminal, type:
> sudo su
> 
> cd /home/$your user$
## 5G RAN Installation
**Step 1:** Install dependencies
> sudo add-apt-repository ppa:ettusresearch/uhd
> 
> sudo apt-get install libuhd-dev uhd-host -y
> 
> sudo apt-get install libuhd4.6.0 -y
> 
> sudo apt-get install ccache -y
> 
> sudo apt-get install net-tools


**Step 2:** Fix problem in the libuhd. When you run the commands below, if you get the error "cannot access archive", you can continue to the next step.
sudo dpkg -i --force-overwrite /var/cache/apt/archives/libuhd4.6.0_4.6.0.0-0ubuntu1~focal1_amd64.deb

**Step 3:** Clone OpenAirInterface 5G RAN repository

> git clone https://gitlab.eurecom.fr/oai/openairinterface5g.git
> cd /home/$your user$/openairinterface5g
> 
> git checkout slicing-spring-of-code
> 
> **Step 4:** Run the installation script
> 
> source oaienv
> 
> cd cmake_targets
> 
> sudo ./build_oai -I 
> 
> sudo ./build_oai -I --install-optional-packages
> 
> sudo ./build_oai -w USRP --ninja --gNB --nrUE -C --build-lib "uescope nrscope telnetsrv" 

## RIC Installation (FlexRIC)
## Objectives
- Install and configure the gNB and FlexRIC 
To install OAI FlexRIC, go back to /home/$your user$ and follow this tutorial.
**Step 0:** go back to /home/$your user$. In a Linux Terminal, type:
> cd /home/$your user$

**Step 1:** Install dependencies:

> sudo apt-get install -y autotools-dev automake g++ make libpcre2-dev byacc cmake python3-dev libsctp-dev pcre2-utils bison

**Step 2:** Install swig:

> git clone https://github.com/swig/swig.git
> 
> cd swig
> 
> git checkout release-4.1 
> 
> ./autogen.sh
> 
> ./configure --prefix=/usr/
> 
> make -j8
> 
> sudo make install
**Step 3:** Clone FlexRIC repository:
> git clone https://gitlab.eurecom.fr/mosaic5g/flexric flexric
> 
> cd flexric/
> 
> git checkout slicing-spring-of-code
> 
> **Step 4:** Build FlexRIC:
> 
> mkdir build && cd build && cmake .. && make -j8
> 
> sudo make install

## Deployment

For this task, open another terminal using crtl+Alt+T.

**Step 1:** Core deployment

> cd /home/$your user$/oai-cn5g-fed/docker-compose
> 
> sudo python3 core-network.py --type start-basic --scenario 1


Expected result:

After running the above command, nine containers are expected to be in the "Up (healthy)" state as shown in figure below.