Skip to content

Commit

Permalink
copying markdown to wiki
Browse files Browse the repository at this point in the history
  • Loading branch information
eduardoschulz committed Feb 6, 2024
1 parent db91791 commit b008916
Show file tree
Hide file tree
Showing 10 changed files with 205 additions and 0 deletions.
1 change: 1 addition & 0 deletions docs/core-network/cores.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#
1 change: 1 addition & 0 deletions docs/core-network/free5gc.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#
53 changes: 53 additions & 0 deletions docs/core-network/oaicn.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# OAI Core Network

## 1. Set Up
For our test the version 1.5.0 was used.
### 1.1 Core-host Configurations
```shell
sudo sysctl net.ipv4.conf.all.forwarding=1
sudo iptables -P FORWARD ACCEPT
```

### 1.2 Clone oai-cn5g-fed
```shell
git clone https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-fed.git
git checkout v1.5.0
```

### 1.3 Changing Core Settings

```shell
git clone https://github.com/eduardoschulz/Interoperabilidade.git
cd Interoperabilidade/core-networks/OAI-CN/

rm -r ~/oai-cn5g-fed/docker-compose/database
cp -r database ~/oai-cn5g-fed/docker-compose/database

mv docker-compose-basic-nrf.yaml ~/oai-cn5g-fed/docker-compose/
```

### 1.4 gNB-host Configurations
You also must configure a route to the internal docker network so that the gNB can make a connection.

```shell
sudo ip route add route 192.168.70.128/26 via {ip_addr_corehost} dev {interface}

#example
sudo ip route add route 192.168.70.128/26 via 191.4.205.38 dev br01
```

## 2.0 Deploying the Core Network

+ To start the core
```shell
cd path-to/oai-cn5g-fed/docker-compose
python3 core-networks.py --type start-basic --scenario 1
```
+ To stop the core
```shell
python3 core-networks.py --type stop-basic --scenario 1
```

## 3.0 More Information

[Basic Deployment using Docker Compose](https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-fed/-/blob/master/docs/DEPLOY_SA5G_BASIC_DEPLOYMENT.md)
1 change: 1 addition & 0 deletions docs/core-network/open5gs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#
53 changes: 53 additions & 0 deletions docs/rans/oai.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# Configuration files for OPENAIRINTERFACE NR-5G

## gNB

```configfile
amf_ip_address = ( { ipv4 = "CHANGE for your ip addr to AMF";});
NETWORK_INTERFACES :
{
GNB_INTERFACE_NAME_FOR_NG_AMF = "CHANGE for your interface"; #eth0
GNB_IPV4_ADDRESS_FOR_NG_AMF = "CHANGE for your ip addr"; #191.4.205.128/23
GNB_INTERFACE_NAME_FOR_NGU = "CHANGE for your interface"; #eth0
GNB_IPV4_ADDRESS_FOR_NGU = "CHANGE for your ip addr"; #191.4.205.128/23
GNB_PORT_FOR_S1U = 2152; # Spec 2152
};
```

## CU/DU Split

### CU

```configfile
local_s_if_name = "CHANGE for your interface"; #lo
local_s_address = "CHANGE for your ip addr of preference"; #127.0.0.4
remote_s_address = "CHANGE for your DU ip addr"; #127.0.0.3
amf_ip_address = ( { ipv4 = "CHANGE for your ip addr to AMF";});
NETWORK_INTERFACES :
{
GNB_INTERFACE_NAME_FOR_NG_AMF = "CHANGE for your interface"; #eth0
GNB_IPV4_ADDRESS_FOR_NG_AMF = "CHANGE for your ip addr"; #191.4.205.128/23
GNB_INTERFACE_NAME_FOR_NGU = "CHANGE for your interface"; #eth0
GNB_IPV4_ADDRESS_FOR_NGU = "CHANGE for your ip addr"; #191.4.205.128/23
GNB_PORT_FOR_S1U = 2152; # Spec 2152
};
```
### DU

```configfile
local_s_if_name = "CHANGE for your interface"; #lo
local_s_address = "CHANGE for your ip addr of preference"; #127.0.0.3
remote_s_address = "CHANGE for your CU ip addr"; #127.0.0.4
```




45 changes: 45 additions & 0 deletions docs/rans/rans.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# RANs

## Open Air Interface
[OpenAirInteface](oai/README.md)
For our testing it was used the tag 2023.w50.
### How to Build

+ [UHD - Build Instructions](https://files.ettus.com/manual/page_build_guide.html)
+ [OAI - Build Instructions(No E2Agent)](https://gitlab.eurecom.fr/oai/openairinterface5g/-/blob/develop/doc/BUILD.md)
+ [OAI - Build Instructions(Flexric)](https://gitlab.eurecom.fr/oai/openairinterface5g/-/blob/develop/openair2/E2AP/README.md)

#### Build with Flexric
In this setup we have used oai built with the _--build-e2_ flag.
```shell

## 0.1 Building Swig

$ git clone https://github.com/swig/swig.git && cd swig
$ git checkout release-4.1
$ ./autogen.sh
$ ./configure --prefix=/usr/
$ make -j12
$ sudo make install

## 0.2 Required dependencies

$ sudo apt install libsctp-dev python3 cmake-curses-gui libpcre2-dev

## 1. Building OAI

$ git clone https://gitlab.eurecom.fr/oai/openairinterface5g oai
$ cd oai
$ git checkout 2023.w50
$ ./build_oai -w USRP --gNB --nrUE --build-e2 --ninja

## 2. Building Flexric

$ cd oai/openair2/E2AP/flexric
$ mkdir build && cd build
$ cmake -D CMAKE_C_COMPILER=gcc-10 -D CMAKE_CXX_COMPILER=g++-10 ..
$ make -j8
$ sudo make install

```
## srsRAN
18 changes: 18 additions & 0 deletions docs/rans/srsran.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# SRSRAN

## Building

Version: 23.10.1
UHD version: 4.6.0.0
OS version: Ubuntu Server 22.04 LTS

For building we recommend following the official documentation available [here](https://docs.srsran.com/projects/project/en/latest/user_manuals/source/installation.html) to build srsRAN from source. The UHD driver was used and built from sources following [this guide](https://files.ettus.com/manual/page_build_guide.html).

## Running
After building and installing srsRAN we recommend running the [srsran_performance](https://raw.githubusercontent.com/srsran/srsRAN_Project/release_23_10_1/scripts/srsran_performance) script available in the official srsran_project repository. Since these changes do not persist remember to re-run them if the machine is restarted.

For each of the core networks there is an accompanying helper script, however, you still need to manually change the second line of each script so that they have the name of your network interface.

Finnaly, free5gc and OAI CN require a change in routing table of the gNB host. This change can be applied with the commands:
- Free5Gc: `sudo ip route add 10.100.200.0/24 via {external addr of the core host} dev {name of the network interface used to reach the core host}`.
- OAI CN: `sudo ip route add 10.100.200.0/26 via {external addr of the core host} dev {name of the network interface used to reach the core host}`.
25 changes: 25 additions & 0 deletions docs/rics/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Non RealTime RIC

## Installation

### Docker and kubernetes (skip if already installed)

We installed the non rt ric using kubernetes and containers, to do so we used [kubeadm](https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/) and [containerd](https://containerd.io/).

We've started with a machine running Ubuntu Desktop 22.04 LTS and installed docker following [their own documentation](https://docs.docker.com/engine/install/ubuntu/).

For our cgroup driver we chose systemd. Our configuration file can be found [here](./config.yaml). Make sure to install kubectl as well. As our pod network add-on, we picked [flannel](https://github.com/flannel-io/flannel). Finally we removed the `node-role.kubernetes.io/control-plane:NoSchedule` taint from all nodes.

Now we should have a healthy kubernetes cluster running so its time to deploy the NearRTRIC itself.


<!--
missing details:
- clone it/dep repo
- run the chartsmuseum with `./dep/smo-install/scripts/layer-0/0-setup-charts-museum.sh`
- change all references of `kubectl` in `bin/deploy-nonrtric` for `minikube kubectl --`
- modify the recipe so it doesnt deploy the a1 simulator
- run `bin/deploy-nonrtric`
- profit
- undeploy by modifing `bin/undeploy-nonrtric` to use `minikube kubectl --` instead of `kubectl`
-->
8 changes: 8 additions & 0 deletions docs/rics/oran-sc.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Non RealTime RIC

## Installation

### Docker and kubernetes (skip if already installed)

We installed the non rt ric using microk8s and had to enable .

Empty file added docs/rics/rics.md
Empty file.

0 comments on commit b008916

Please sign in to comment.