Welcome to the tutorial home page of OAI 5g Core project. Here you can find lot of tutorials and help manuals. We regularly update these documents depending on the new feature set.
**2021/07/27 Update: you have now the choice to either pull images or build your-self.**
**Table of Contents**
1.[Pre-requisites](./DEPLOY_PRE_REQUESITES.md)
2.[Building the Container Images](./BUILD_IMAGES.md)
2. Getting the images
1.[Retrieving the Container Images](./RETRIEVE_OFFICIAL_IMAGES.md)
2.[Building the Container Images](./BUILD_IMAGES.md)
3.[Configuring the Containers](./CONFIGURE_CONTAINERS.md)
4.[Tutorial: 5G Core Network Deployment and Testing with dsTest](./DEPLOY_SA5G_WITH_DS_TESTER.md)
5.[Tutorial: 5G Core Network Deployment using Helm Charts](./DEPLOY_SA5G_HC.md)
@@ -52,11 +52,11 @@ Go to [docker-hub](https://hub.docker.com/) and create an account.
# 3. Pull base images #
* Ubuntu version: We need 2 base images: `ubuntu:bionic` and `mysql/mysql-server:5.7`
* Ubuntu version: We need 2 base images: `ubuntu:bionic` and `mysql/mysql:5.7`
Currently we are working to support `CentOS8` and `RHEL8` distributions.
First log with your Docker Hub credentials.
First log with your Docker Hub credentials. This is required if your organization has reached pulling limit as `anonymous`.
```bash
$ docker login
...
...
@@ -65,24 +65,13 @@ Username:
Password:
```
All the network functions are using the same base image Ubuntu 18.04. If you want to build image of each network function then pull the base image, else you can pull the network function images from [rdefosseoai docker-hub](https://hub.docker.com/r/rdefosseoai)
On a Ubuntu18.04 host:
```bash
$ docker pull ubuntu:bionic
$ docker pull mysql/mysql-server:5.7
```
```bash
$ docker pull rdefosseoai/oai-amf
$ docker pull rdefosseoai/oai-nrf
$ docker pull rdefosseoai/oai-spgwu-tiny
$ docker pull rdefosseoai/oai-smf
$ docker pull mysql:5.7
```
Finally you may logoff --> your token is stored in plain text..
@@ -55,30 +55,22 @@ The requried softwares and their respected versions are listed below. To replica
| tshark | 3.4.4 (Git commit c33f6306cbb2) |
| wireshark | 3.4.4 (Git commit c33f6306cbb2) |
The new version of `wireshark` may not be available in the ubuntu repository so it is better to build it from source.
The new version of `wireshark` may not be available in the ubuntu repository so it is better to build it from source.
Most of the times the `docker-compose-host` machine is not configured with packet forwarding then it can be done using below command (if you have already done it in any other section then don't repeat). This is the most important step towards end to end connectivity.
Most of the times the `docker-compose-host` machine is not configured with packet forwarding then it can be done using below command (if you have already done it in any other section then don't repeat).
To know how to configure the machine with the above requirements vist [pre-requisites](./DEPLOY_PRE_REQUESITES.md) page.
## 2. Network Function Container Images ##
- This step can be skip and the images can be pulled from docker-hub, in case there is a problem in pulling the images due to docker limit then readers can build images.
-**NOTE**: Currently the [docker-compose-file](../docker-compose/docker-compose.yaml) is configured for pulling images from docker-hub. In you case you build images please change the image-tag accordingly
- In this demo the network function branch and tags which were used are listed below, follow the [Building images](./BUILD_IMAGES.md) to build images with below tags.
- In this demo the network function branch and tags which were used are listed below, follow the [Retrieving images](./RETRIEVE_OFFICIAL_IMAGES.md) or the [Building images](./BUILD_IMAGES.md) to build images with below tags.
| CNF Name | Branch Name | Tag | Ubuntu 18.04 | RHEL8 (UBI8) |
@@ -87,15 +79,15 @@ To know how to configure the machine with the above requirements vist [pre-requi
| NRF | `master` | `v1.1.0` | X | X |
| SPGW-U-TINY | `master` | `v1.1.2` | X | X |
- In case readers are interested in making images using different branch then **they have to build images from scratch they can't use the docker-hub images**.
- In case readers are interested in making images using different branch then **they have to build images from scratch they can't use the docker-hub images**.
## 3. Configuring Host Machines ##
All the network functions are connected using `demo-oai-net` bridge. There are two ways to create this bridge either manually or automatically using docker-compose. The manual version will allow packet capturing while network functions are getting deployed. So the initial tested setup packets can be captured for debugging purposes or checking if network functions registered properly to nrf. The second option of automatic deployment is good when initial packet capture is not important.
All the network functions are connected using `demo-oai-net` bridge. There are two ways to create this bridge either manually or automatically using docker-compose. The manual version will allow packet capturing while network functions are getting deployed. So the initial tested setup packets can be captured for debugging purposes or checking if network functions registered properly to nrf. The second option of automatic deployment is good when initial packet capture is not important.
### 3.1 Creating bridge manually
- Make sure that the below line is commented in [docker-compose file](../docker-compose/docker-compose.yaml) and uncomment the line above this,
- Make sure that the below line is commented in [docker-compose file](../docker-compose/docker-compose.yaml) and uncomment the line above this,
```
networks:
...
...
@@ -109,7 +101,7 @@ All the network functions are connected using `demo-oai-net` bridge. There are t
com.docker.network.bridge.name: "demo-oai"
```
- The `docker-compose-host` machine needs to be configured with `demo-oai-net` bridge before deploying core network components. To capture initial message exchange between smf<-->nrf<-->upf.
- The `docker-compose-host` machine needs to be configured with `demo-oai-net` bridge before deploying core network components. To capture initial message exchange between smf<-->nrf<-->upf.
```bash
(docker-compose-host)$ docker network create \
...
...
@@ -121,7 +113,6 @@ All the network functions are connected using `demo-oai-net` bridge. There are t
(docker-compose-host)$ ifconfig demo-oai
demo-oai: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
- The `dsTest-host` needs to configured with a route to reach `docker-compose-host`. Assuming `dsTest-host` physical interface which is connected with `docker-compose-host` is NIC1 and the ip-address of this interface is IP_ADDR_NIC1 then,
```bash
(dsTest-host)$ sudo ip route add route \
192.168.70.128/26 via IP_ADDR_NIC1\
dev NIC1_NAME
(dsTest-host)$ sudo ip route add route 192.168.70.128/26 \
via IP_ADDR_NIC1\
dev NIC1_NAME
```
- To verify ping the ip-address of the `docker-compose-host` interface connected to demo-oai bridge, if possible also ping amf from the dsTest-host machine.
- To verify ping the ip-address of the `docker-compose-host` interface connected to demo-oai bridge, if possible also ping amf from the dsTest-host machine.
```bash
(dsTest-host)$ ping 192.168.70.129
...
...
@@ -247,7 +238,7 @@ All the network functions are connected using `demo-oai-net` bridge. There are t