Skip to content
Snippets Groups Projects
Commit 281148c6 authored by Rohan's avatar Rohan
Browse files

Merge branch 'master' of https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-fed into snssai_fix

parents 74a39acf c38f5426
No related branches found
No related tags found
1 merge request!55Slicing tutorial fix
...@@ -56,9 +56,9 @@ start: ...@@ -56,9 +56,9 @@ start:
multus: multus:
create: false create: false
n1IPadd: "172.21.10.101" n4IPadd: "172.21.10.101"
n1Netmask: "22" n4Netmask: "22"
n1Gateway: "172.21.11.254" n4Gateway: "172.21.11.254"
hostInterface: "ens2f0np0" # Interface of the host machine on which this pod will be scheduled hostInterface: "ens2f0np0" # Interface of the host machine on which this pod will be scheduled
config: config:
......
...@@ -188,7 +188,7 @@ services: ...@@ -188,7 +188,7 @@ services:
- NRF_PORT=80 - NRF_PORT=80
- EXTERNAL_NRF=yes - EXTERNAL_NRF=yes
- NF_REGISTRATION=yes - NF_REGISTRATION=yes
- SMF_SELECTION=yes - SMF_SELECTION=no
- USE_FQDN_DNS=yes - USE_FQDN_DNS=yes
- EXTERNAL_AUSF=yes - EXTERNAL_AUSF=yes
- NRF_API_VERSION=v1 - NRF_API_VERSION=v1
...@@ -242,7 +242,7 @@ services: ...@@ -242,7 +242,7 @@ services:
- NRF_IPV4_ADDRESS=192.168.70.130 - NRF_IPV4_ADDRESS=192.168.70.130
- NRF_PORT=80 - NRF_PORT=80
- NRF_API_VERSION=v1 - NRF_API_VERSION=v1
- USE_LOCAL_SUBSCRIPTION_INFO=yes - USE_LOCAL_SUBSCRIPTION_INFO=no
- NRF_FQDN=oai-nrf - NRF_FQDN=oai-nrf
- REGISTER_NRF=yes - REGISTER_NRF=yes
- DISCOVER_UPF=yes - DISCOVER_UPF=yes
......
...@@ -37,7 +37,7 @@ services: ...@@ -37,7 +37,7 @@ services:
- MYSQL_PASS=test - MYSQL_PASS=test
- MYSQL_DB=oai_db - MYSQL_DB=oai_db
- WAIT_MYSQL=120 - WAIT_MYSQL=120
- USE_FQDN_DNS=yes - USE_FQDN_DNS=no
- REGISTER_NRF=yes - REGISTER_NRF=yes
- NRF_IPV4_ADDRESS=192.168.70.130 - NRF_IPV4_ADDRESS=192.168.70.130
- NRF_PORT=80 - NRF_PORT=80
...@@ -67,7 +67,7 @@ services: ...@@ -67,7 +67,7 @@ services:
- SBI_IF_NAME=eth0 - SBI_IF_NAME=eth0
- SBI_PORT=80 - SBI_PORT=80
- UDM_VERSION_NB=v1 - UDM_VERSION_NB=v1
- USE_FQDN_DNS=yes - USE_FQDN_DNS=no
- UDR_IP_ADDRESS=192.168.70.136 - UDR_IP_ADDRESS=192.168.70.136
- UDR_PORT=80 - UDR_PORT=80
- UDR_VERSION_NB=v1 - UDR_VERSION_NB=v1
...@@ -99,7 +99,7 @@ services: ...@@ -99,7 +99,7 @@ services:
- AUSF_NAME=OAI_AUSF - AUSF_NAME=OAI_AUSF
- SBI_IF_NAME=eth0 - SBI_IF_NAME=eth0
- SBI_PORT=80 - SBI_PORT=80
- USE_FQDN_DNS=yes - USE_FQDN_DNS=no
- UDM_IP_ADDRESS=192.168.70.137 - UDM_IP_ADDRESS=192.168.70.137
- UDM_PORT=80 - UDM_PORT=80
- UDM_VERSION_NB=v1 - UDM_VERSION_NB=v1
...@@ -189,7 +189,7 @@ services: ...@@ -189,7 +189,7 @@ services:
- EXTERNAL_NRF=yes - EXTERNAL_NRF=yes
- NF_REGISTRATION=yes - NF_REGISTRATION=yes
- SMF_SELECTION=yes - SMF_SELECTION=yes
- USE_FQDN_DNS=yes - USE_FQDN_DNS=no
- EXTERNAL_AUSF=yes - EXTERNAL_AUSF=yes
- NRF_API_VERSION=v1 - NRF_API_VERSION=v1
- NRF_FQDN=oai-nrf - NRF_FQDN=oai-nrf
...@@ -246,7 +246,7 @@ services: ...@@ -246,7 +246,7 @@ services:
- NRF_FQDN=oai-nrf - NRF_FQDN=oai-nrf
- REGISTER_NRF=yes - REGISTER_NRF=yes
- DISCOVER_UPF=yes - DISCOVER_UPF=yes
- USE_FQDN_DNS=yes - USE_FQDN_DNS=no
- USE_NETWORK_INSTANCE=yes - USE_NETWORK_INSTANCE=yes
- DNN_RANGE1=12.1.1.2 - 12.1.1.128 - DNN_RANGE1=12.1.1.2 - 12.1.1.128
- DNN_RANGE0=12.2.1.2 - 12.2.1.128 - DNN_RANGE0=12.2.1.2 - 12.2.1.128
......
version: '3.8'
services:
my5grantester:
image: my5grantester:latest
container_name: my5grantester
privileged: true
environment:
NGAP_LOCAL_ADDR: 192.168.70.143
NGAP_REMOTE_ADDR: 192.168.70.132
GTPU_LOCAL_ADDR: 192.168.72.143
MCC: 208
MNC: 95
TAC: 00a000
GNBID: "000003"
SST_GNB: de
SST_UE: 222
SD: "00007b"
MSIN: "0000000031"
OPC: 63bfa50ee6523365ff14c1f45f88737d
KEY: 0C0A34601D4F07677303652C0462535B
AMF: 8000
SQN: 0000000
DNN: default
NUM_UE: 1
cap_add:
- NET_ADMIN
networks:
public_net:
ipv4_address: 192.168.70.143
public_net_access:
ipv4_address: 192.168.72.143
healthcheck:
test: /bin/bash -c "ip addr | grep uetun1"
interval: 10s
timeout: 5s
retries: 5
networks:
public_net:
external:
name: demo-oai-public-net
public_net_access:
external:
name: oai-public-access
...@@ -27,6 +27,7 @@ Welcome to the tutorial home page of OAI 5g Core project. Here you can find lot ...@@ -27,6 +27,7 @@ Welcome to the tutorial home page of OAI 5g Core project. Here you can find lot
- [Using Docker-Compose, perform a `basic` deployment and test with `OAI RF simulator`](https://gitlab.eurecom.fr/oai/openairinterface5g/-/tree/develop/ci-scripts/yaml_files/5g_rfsimulator) - [Using Docker-Compose, perform a `basic` deployment and test with `OAI RF simulator`](https://gitlab.eurecom.fr/oai/openairinterface5g/-/tree/develop/ci-scripts/yaml_files/5g_rfsimulator)
- [Using Docker-Compose, perform a `basic` deployment and test with `UERANSIM`](./DEPLOY_SA5G_WITH_UERANSIM.md) - [Using Docker-Compose, perform a `basic` deployment and test with `UERANSIM`](./DEPLOY_SA5G_WITH_UERANSIM.md)
- [Using Docker-Compose, perform a `basic` deployment and test with `Network Slicing`](./DEPLOY_SA5G_SLICING.md) - [Using Docker-Compose, perform a `basic` deployment and test with `Network Slicing`](./DEPLOY_SA5G_SLICING.md)
- [Using Docker-Compose, perform a `basic` deployment and test with `My5g-RANTester`](./DEPLOY_SA5G_WITH_My5g-RANTester.md)
- [Using Docker-Compose, when testing with Commercial UE, troubleshoot traffic issues](./TROUBLESHOOT_COTS_UE_TRAFFIC.md) - [Using Docker-Compose, when testing with Commercial UE, troubleshoot traffic issues](./TROUBLESHOOT_COTS_UE_TRAFFIC.md)
- The Developer Corner - The Developer Corner
- [How to Deploy Developers Core Network and Basic Debugging](./DEBUG_5G_CORE.md) - [How to Deploy Developers Core Network and Basic Debugging](./DEBUG_5G_CORE.md)
...@@ -104,13 +104,13 @@ To know how to configure the machine with the above requirements vist [pre-requi ...@@ -104,13 +104,13 @@ To know how to configure the machine with the above requirements vist [pre-requi
| CNF Name | Branch Name | Tag | Ubuntu 18.04 | RHEL8 (UBI8) | | CNF Name | Branch Name | Tag | Ubuntu 18.04 | RHEL8 (UBI8) |
| ----------- | ----------- | -------- | ------------ | ----------------| | ----------- | ----------- | -------- | ------------ | ----------------|
| AMF | `master` | `v1.2.0` | X | X | | AMF | `master` | `v1.3.0` | X | X |
| SMF | `master` | `v1.2.0` | X | X | | SMF | `master` | `v1.3.0` | X | X |
| NRF | `master` | `v1.2.0` | X | X | | NRF | `master` | `v1.3.0` | X | X |
| SPGW-U-TINY | `master` | `v1.1.3` | X | X | | SPGW-U-TINY | `master` | `v1.2.0` | X | X |
| UDR | `master` | `v1.2.0` | X | X | | UDR | `master` | `v1.3.0` | X | X |
| UDM | `master` | `v1.2.0` | X | X | | UDM | `master` | `v1.3.0` | X | X |
| AUSF | `master` | `v1.2.0` | X | X | | AUSF | `master` | `v1.3.0` | 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**.
......
...@@ -104,9 +104,9 @@ To know how to configure the machine with the above requirements vist [pre-requi ...@@ -104,9 +104,9 @@ To know how to configure the machine with the above requirements vist [pre-requi
| CNF Name | Branch Name | Tag | Ubuntu 18.04 | RHEL8 (UBI8) | | CNF Name | Branch Name | Tag | Ubuntu 18.04 | RHEL8 (UBI8) |
| ----------- | ----------- | -------- | ------------ | ----------------| | ----------- | ----------- | -------- | ------------ | ----------------|
| AMF | `master` | `v1.2.0` | X | X | | AMF | `master` | `v1.3.0` | X | X |
| SMF | `master` | `v1.2.0` | X | X | | SMF | `master` | `v1.3.0` | X | X |
| NRF | `master` | `v1.2.0` | X | X | | NRF | `master` | `v1.3.0` | X | X |
| SPGW-U-TINY | `master` | `v1.1.3` | X | X | | SPGW-U-TINY | `master` | `v1.1.3` | 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**.
...@@ -122,7 +122,7 @@ There are two ways to create this bridge either manually or automatically using ...@@ -122,7 +122,7 @@ There are two ways to create this bridge either manually or automatically using
**NOTE** This tutorial needs that the bridge is created manually to analyse NRF packet exchange. **NOTE** This tutorial needs that the bridge is created manually to analyse NRF packet exchange.
### 4.1 Creating bridge manually ### 4.1 Creating bridge manually ###
Since this is not the `default` behavior, you **SHALL** edit the docker-compose file. Since this is not the `default` behavior, you **SHALL** edit the docker-compose file.
...@@ -165,7 +165,7 @@ Since this is not the `default` behavior, you **SHALL** edit the docker-compose ...@@ -165,7 +165,7 @@ Since this is not the `default` behavior, you **SHALL** edit the docker-compose
455631b3749c demo-oai-public-net bridge local 455631b3749c demo-oai-public-net bridge local
``` ```
### 4.2 Create bridge automatically ### 4.2 Create bridge automatically ###
- Though the bridge can be automatically created using docker-compose file if there is no need to capture initial packets. - Though the bridge can be automatically created using docker-compose file if there is no need to capture initial packets.
...@@ -188,7 +188,7 @@ The bottom section SHALL look like this: ...@@ -188,7 +188,7 @@ The bottom section SHALL look like this:
com.docker.network.bridge.name: "demo-oai" com.docker.network.bridge.name: "demo-oai"
``` ```
### 4.3 In case you forgot. True for manual or automatic network creation. ### 4.3 In case you forgot. True for manual or automatic network creation. ###
- If the `docker-compose-host` machine is not configured with packet forwarding then it can be done using below command (**important step**), - If the `docker-compose-host` machine is not configured with packet forwarding then it can be done using below command (**important step**),
...@@ -453,7 +453,7 @@ Using wireshark, open `5gcn-mini-deployment-nrf.pcap` and use the filter `http | ...@@ -453,7 +453,7 @@ Using wireshark, open `5gcn-mini-deployment-nrf.pcap` and use the filter `http |
![Analysing initial message exchange](./images/docker-compose/start.png) ![Analysing initial message exchange](./images/docker-compose/start.png)
### Analysing scenario execution ### Analysing scenario execution ###
Using wireshark, open `5gcn-mini-deployment-nrf.pcap` and use the filter `ngap || http || pfcp || gtp` Using wireshark, open `5gcn-mini-deployment-nrf.pcap` and use the filter `ngap || http || pfcp || gtp`
......
<table style="border-collapse: collapse; border: none;">
<tr style="border-collapse: collapse; border: none;">
<td style="border-collapse: collapse; border: none;">
<a href="http://www.openairinterface.org/">
<img src="./images/oai_final_logo.png" alt="" border=3 height=50 width=150>
</img>
</a>
</td>
<td style="border-collapse: collapse; border: none; vertical-align: center;">
<b><font size = "5">OpenAirInterface 5G Core Network Deployment and Testing with My5g-RANTester</font></b>
</td>
</tr>
</table>
![SA dsTest Demo](./images/5gcn_vpp_upf_my5grantester.png)
**Reading time: ~ 30mins**
**Tutorial replication time: ~ 1h30mins**
Note: In case readers are interested in deploying debuggers/developers core network environment with more logs please follow [this tutorial](./DEBUG_5G_CORE.md)
**TABLE OF CONTENTS**
1. Pre-requisites
2. Building Container Images
3. Configuring Host Machines
4. Configuring OAI 5G Core Network Functions
5. Deploying OAI 5G Core Network
6. [Getting a `my5G-RANTester` docker image](#6-getting-a-my5G-RANTester-docker-image)
7. [Executing `my5G-RANTester` Scenario](#7-executing-the-my5G-RANTester-scenario)
8. [Analysing Scenario Results](#8-analysing-the-scenario-results)
9. [Trying some advanced stuff](#9-trying-some-advanced-stuff)
* In this demo the image tags which were used are listed below, follow the [Building images](./BUILD_IMAGES.md) to build images with below tags. When pulling images of network functions from dockerhub pull images for `develop` tag
| CNF Name | Branch Name | Ubuntu 18.04 | RHEL8 (UBI8) |
| ----------- | ----------- | ------------ | ----------------|
| AMF | `develop` | X | X |
| SMF | `develop` | X | X |
| NRF | `develop` | X | X |
| VPP-UPF | `develop` | X | X |
| UDR | `develop` | X | X |
| UDM | `develop` | X | X |
| AUSF | `develop` | X | X |
<br/>
This tutorial is an extension of a previous tutorial: [testing a `basic` deployment with dsTester](./DEPLOY_SA5G_BASIC_DS_TESTER_DEPLOYMENT.md). In previous tutorial, we have seen the advanced testing tool dsTester, which is useful for validating even more complex scenarios.
Moreover, there are various other opensource gnb/ue simulator tools that are available for SA5G test. In this tutorial, we use an opensource simulator tool called `My5g-RANTester`. With the help of `My5g-RANTester` tool, we can perform very basic SA5G test by simulating one gnb and multiple ues.
##### About My5g-RANTester -
[My5g-RANTester](https://github.com/my5G/my5G-RANTester) is the open-source state-of-the-art 5G UE and RAN (gNodeB) implementation. my5G-RANTester follows the 3GPP Release 15 standard for NG-RAN. Using my5G-RANTester, it is possible to generate different workloads and test several functionalities of a 5G core, including its complaince to the 3GPP standards. Scalability is also a relevant feature of the my5G-RANTester, which is able mimic the behaviour of a large number of UEs and gNBs accessing simultaneously a 5G core.
Let's begin !!
* Steps 1 to 5 are similar as previous [tutorial on vpp-upf](https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-fed/-/blob/master/docs/DEPLOY_SA5G_WITH_VPP_UPF.md#5-deploying-oai-5g-core-network). Please follow these steps to deploy OAI 5G core network components.
* We deploy my5G-RANTester docker service on same host as of core network, so there is no need to create additional route as
we did for dsTest-host.
* Before we proceed further for end-to-end SA5G test, make sure you have healthy docker services for OAI cn5g
## 1. Pre-requisites
Create a folder where you can store all the result files of the tutorial and later compare them with our provided result files, we recommend creating exactly the same folder to not break the flow of commands afterwards.
<!---
For CI purposes please ignore this line
``` shell
docker-compose-host $: rm -rf /tmp/oai/vpp-upf-my5g
```
-->
``` shell
docker-compose-host $: mkdir -p /tmp/oai/vpp-upf-my5g
docker-compose-host $: chmod 777 /tmp/oai/vpp-upf-my5g
```
## 5. Deploying OAI 5g Core Network
* We will use same wrapper script for docker-compose that used for previous tutorials to set up 5gcn with `UPF-VPP`. Use help option to check how to use this wrapper script.
``` shell
docker-compose-host $: python3 ./core-network.py --type start-basic-vpp --fqdn no --scenario 1 --capture /tmp/oai/vpp-upf-my5g/vpp-upf-my5g.pcap
[2022-02-08 16:18:19,328] root:DEBUG: Starting 5gcn components... Please wait....
[2022-02-08 16:18:19,328] root:DEBUG: docker-compose -f docker-compose-basic-vpp-nrf.yaml up -d mysql
Creating network "oai-public-cp" with the default driver
Creating network "oai-public-access" with the default driver
Creating network "oai-public-core" with the default driver
Creating mysql ... done
[2022-02-08 16:18:32,203] root:DEBUG: nohup sudo tshark -i demo-oai -i cn5g-core -f "(not host 192.168.73.135 and not arp and not port 53 and not port 2152) or (host 192.168.73.135 and icmp)" -w /tmp/oai/vpp-upf-gnbsim/vpp-upf-gnbsim.pcap > /dev/null 2>&1 &
[2022-02-08 16:18:52,217] root:DEBUG: docker-compose -f docker-compose-basic-vpp-nrf.yaml up -d
mysql is up-to-date
Creating oai-nrf ... done
Creating vpp-upf ... done
Creating oai-udr ... done
Creating oai-udm ... done
Creating oai-ext-dn ... done
Creating oai-ausf ... done
Creating oai-amf ... done
Creating oai-smf ... done
[2022-02-08 16:19:47,977] root:DEBUG: OAI 5G Core network started, checking the health status of the containers... takes few secs....
[2022-02-08 16:19:47,977] root:DEBUG: docker-compose -f docker-compose-basic-vpp-nrf.yaml ps -a
[2022-02-08 16:20:11,681] root:DEBUG: All components are healthy, please see below for more details....
Name Command State Ports
-----------------------------------------------------------------------------------------
mysql docker-entrypoint.sh mysqld Up (healthy) 3306/tcp, 33060/tcp
oai-amf /bin/bash /openair-amf/bin ... Up (healthy) 38412/sctp, 80/tcp, 9090/tcp
oai-ausf /bin/bash /openair-ausf/bi ... Up (healthy) 80/tcp
oai-ext-dn /bin/bash -c apt update; ... Up
oai-nrf /bin/bash /openair-nrf/bin ... Up (healthy) 80/tcp, 9090/tcp
oai-smf /bin/bash /openair-smf/bin ... Up (healthy) 80/tcp, 8805/udp, 9090/tcp
oai-udm /bin/bash /openair-udm/bin ... Up (healthy) 80/tcp
oai-udr /bin/bash /openair-udr/bin ... Up (healthy) 80/tcp
vpp-upf /openair-upf/bin/entrypoin ... Up (healthy) 2152/udp, 8085/udp
[2022-02-08 16:20:11,681] root:DEBUG: Checking if the containers are configured....
[2022-02-08 16:20:11,681] root:DEBUG: Checking if AMF, SMF and UPF registered with nrf core network....
[2022-02-08 16:20:11,681] root:DEBUG: curl -s -X GET http://192.168.70.130/nnrf-nfm/v1/nf-instances?nf-type="AMF" | grep -o "192.168.70.132"
192.168.70.132
[2022-02-08 16:20:11,694] root:DEBUG: curl -s -X GET http://192.168.70.130/nnrf-nfm/v1/nf-instances?nf-type="SMF" | grep -o "192.168.70.133"
192.168.70.133
[2022-02-08 16:20:11,706] root:DEBUG: curl -s -X GET http://192.168.70.130/nnrf-nfm/v1/nf-instances?nf-type="UPF" | grep -o "192.168.70.202"
192.168.70.202
[2022-02-08 16:20:11,717] root:DEBUG: Checking if AUSF, UDM and UDR registered with nrf core network....
[2022-02-08 16:20:11,717] root:DEBUG: curl -s -X GET http://192.168.70.130/nnrf-nfm/v1/nf-instances?nf-type="AUSF" | grep -o "192.168.70.138"
192.168.70.138
[2022-02-08 16:20:11,728] root:DEBUG: curl -s -X GET http://192.168.70.130/nnrf-nfm/v1/nf-instances?nf-type="UDM" | grep -o "192.168.70.137"
192.168.70.137
[2022-02-08 16:20:11,739] root:DEBUG: curl -s -X GET http://192.168.70.130/nnrf-nfm/v1/nf-instances?nf-type="UDR" | grep -o "192.168.70.136"
192.168.70.136
[2022-02-08 16:20:11,750] root:DEBUG: AUSF, UDM, UDR, AMF, SMF and UPF are registered to NRF....
[2022-02-08 16:20:11,750] root:DEBUG: Checking if SMF is able to connect with UPF....
[2022-02-08 16:20:11,868] root:DEBUG: UPF did answer to N4 Association request from SMF....
[2022-02-08 16:20:11,927] root:DEBUG: SMF receiving heathbeats from UPF....
[2022-02-08 16:20:11,928] root:DEBUG: OAI 5G Core network is configured and healthy....
```
More details in [section 5 of the `basic` vpp tutorial](https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-fed/-/blob/master/docs/DEPLOY_SA5G_WITH_VPP_UPF.md#5-deploying-oai-5g-core-network).
## 6. Building a `My5g-RANTester` docker image
* Pull pre-built docker image
``` console
docker-compose-host $: docker pull rohankharade/my5grantester:latest
docker-compose-host $: docker tag rohankharade/my5grantester:latest my5grantester:latest
```
OR
* Build `My5g-RANTester` docker image
``` console
docker-compose-host $: git clone https://github.com/my5G/my5G-RANTester
docker-compose-host $: cd my5G-RANTester/
docker-compose-host $: docker build -f docker/Dockerfile --target my5grantester --tag my5grantester:latest .
```
## 7. Executing the `My5g-RANTester` Scenario
* The configuration parameters, are preconfigured in [docker-compose-basic-vpp-nrf.yaml](../docker-compose/docker-compose-basic-vpp-nrf.yaml) and [docker-compose-my5grantester-vpp.yaml](../docker-compose/docker-compose-my5grantester-vpp.yaml) and one can modify it for test.
* Launch my5G-RANTester docker service
<!---
For CI purposes please ignore this line
``` shell
docker-compose-host $: sleep 5
```
-->
``` shell
docker-compose-host $: docker-compose -f docker-compose-my5grantester-vpp.yaml up -d
Creating my5grantester ... done
```
<!---
For CI purposes please ignore this line
``` shell
docker-compose-host $: sleep 15
```
-->
* After launching My5g-RANTester, make sure service status is healthy -
``` shell
docker-compose-host $: docker-compose -f docker-compose-my5grantester-vpp.yaml ps -a
Name Command State Ports
-----------------------------------------------
my5grantester ./app ue Up (healthy)
```
We can verify it using my5grantester container logs as below -
``` console
docker-compose-host $: docker logs my5G-RANTester
Creating my5grantester ... done
Attaching to my5grantester
my5grantester | time="2022-05-11T21:59:28Z" level=info msg="my5G-RANTester version 0.1"
my5grantester | time="2022-05-11T21:59:28Z" level=info msg=---------------------------------------
my5grantester | time="2022-05-11T21:59:28Z" level=info msg="[TESTER] Starting test function: Testing registration of multiple UEs"
my5grantester | time="2022-05-11T21:59:28Z" level=info msg="[TESTER][UE] Number of UEs: 1"
my5grantester | time="2022-05-11T21:59:28Z" level=info msg="[TESTER][GNB] gNodeB control interface IP/Port: 192.168.70.143/9487"
my5grantester | time="2022-05-11T21:59:28Z" level=info msg="[TESTER][GNB] gNodeB data interface IP/Port: 192.168.72.143/2152"
my5grantester | time="2022-05-11T21:59:28Z" level=info msg="[TESTER][AMF] AMF IP/Port: 192.168.70.132/38412"
my5grantester | time="2022-05-11T21:59:28Z" level=info msg=---------------------------------------
my5grantester | time="2022-05-11T21:59:28Z" level=info msg="[GNB] SCTP/NGAP service is running"
my5grantester | time="2022-05-11T21:59:28Z" level=info msg="[GNB] UNIX/NAS service is running"
my5grantester | time="2022-05-11T21:59:28Z" level=info msg="[GNB][SCTP] Receive message in 0 stream\n"
my5grantester | time="2022-05-11T21:59:28Z" level=info msg="[GNB][NGAP] Receive Ng Setup Response"
my5grantester | time="2022-05-11T21:59:28Z" level=info msg="[GNB][AMF] AMF Name: OAI-AMF"
my5grantester | time="2022-05-11T21:59:28Z" level=info msg="[GNB][AMF] State of AMF: Active"
my5grantester | time="2022-05-11T21:59:28Z" level=info msg="[GNB][AMF] Capacity of AMF: 30"
my5grantester | time="2022-05-11T21:59:28Z" level=info msg="[GNB][AMF] PLMNs Identities Supported by AMF -- mcc: 208 mnc:95"
my5grantester | time="2022-05-11T21:59:28Z" level=info msg="[GNB][AMF] List of AMF slices Supported by AMF -- sst:de sd:000000"
my5grantester | time="2022-05-11T21:59:28Z" level=info msg="[GNB][AMF] List of AMF slices Supported by AMF -- sst:01 sd:000001"
my5grantester | time="2022-05-11T21:59:28Z" level=info msg="[GNB][AMF] List of AMF slices Supported by AMF -- sst:04 sd:000000"
my5grantester | time="2022-05-11T21:59:29Z" level=info msg="[TESTER] TESTING REGISTRATION USING IMSI 0000000043 UE"
my5grantester | time="2022-05-11T21:59:29Z" level=info msg="[UE] UNIX/NAS service is running"
my5grantester | time="2022-05-11T21:59:29Z" level=info msg="[GNB][SCTP] Receive message in 0 stream\n"
my5grantester | time="2022-05-11T21:59:29Z" level=info msg="[GNB][NGAP] Receive Downlink NAS Transport"
my5grantester | time="2022-05-11T21:59:29Z" level=info msg="[UE][NAS] Message without security header"
my5grantester | time="2022-05-11T21:59:29Z" level=info msg="[UE][NAS] Receive Authentication Request"
my5grantester | time="2022-05-11T21:59:29Z" level=info msg="[UE][NAS][MAC] Authenticity of the authentication request message: OK"
my5grantester | time="2022-05-11T21:59:29Z" level=info msg="[UE][NAS][SQN] SQN of the authentication request message: VALID"
my5grantester | time="2022-05-11T21:59:29Z" level=info msg="[UE][NAS] Send authentication response"
my5grantester | time="2022-05-11T21:59:29Z" level=info msg="[GNB][SCTP] Receive message in 0 stream\n"
my5grantester | time="2022-05-11T21:59:29Z" level=info msg="[GNB][NGAP] Receive Downlink NAS Transport"
my5grantester | time="2022-05-11T21:59:29Z" level=info msg="[UE][NAS] Message with security header"
my5grantester | time="2022-05-11T21:59:29Z" level=info msg="[UE][NAS] Message with integrity and with NEW 5G NAS SECURITY CONTEXT"
my5grantester | time="2022-05-11T21:59:29Z" level=info msg="[UE][NAS] successful NAS MAC verification"
my5grantester | time="2022-05-11T21:59:29Z" level=info msg="[UE][NAS] Receive Security Mode Command"
my5grantester | time="2022-05-11T21:59:29Z" level=info msg="[UE][NAS] Type of ciphering algorithm is 5G-EA0"
my5grantester | time="2022-05-11T21:59:29Z" level=info msg="[UE][NAS] Type of integrity protection algorithm is 128-5G-IA2"
my5grantester | time="2022-05-11T21:59:29Z" level=info msg="[GNB][SCTP] Receive message in 0 stream\n"
my5grantester | time="2022-05-11T21:59:29Z" level=info msg="[GNB][NGAP] Receive Initial Context Setup Request"
my5grantester | time="2022-05-11T21:59:29Z" level=info msg="[GNB][UE] UE Context was created with successful"
my5grantester | time="2022-05-11T21:59:29Z" level=info msg="[GNB][UE] UE RAN ID 1"
my5grantester | time="2022-05-11T21:59:29Z" level=info msg="[GNB][UE] UE AMF ID 1"
my5grantester | time="2022-05-11T21:59:29Z" level=info msg="[GNB][UE] UE Mobility Restrict --Plmn-- Mcc: not informed Mnc: not informed"
my5grantester | time="2022-05-11T21:59:29Z" level=info msg="[GNB][UE] UE Masked Imeisv: "
my5grantester | time="2022-05-11T21:59:29Z" level=info msg="[GNB][UE] Allowed Nssai-- Sst: de Sd: 00007b"
my5grantester | time="2022-05-11T21:59:29Z" level=info msg="[GNB][NAS][UE] Send Registration Accept."
my5grantester | time="2022-05-11T21:59:29Z" level=info msg="[GNB][NGAP][AMF] Send Initial Context Setup Response."
my5grantester | time="2022-05-11T21:59:29Z" level=info msg="[UE][NAS] Message with security header"
my5grantester | time="2022-05-11T21:59:29Z" level=info msg="[UE][NAS] Message with integrity and ciphered"
my5grantester | time="2022-05-11T21:59:29Z" level=info msg="[UE][NAS] successful NAS MAC verification"
my5grantester | time="2022-05-11T21:59:29Z" level=info msg="[UE][NAS] successful NAS CIPHERING"
my5grantester | time="2022-05-11T21:59:29Z" level=info msg="[UE][NAS] Receive Registration Accept"
my5grantester | time="2022-05-11T21:59:29Z" level=info msg="[UE][NAS] UE 5G GUTI: [0 0 0 1]"
my5grantester | time="2022-05-11T21:59:30Z" level=info msg="[GNB][SCTP] Receive message in 0 stream\n"
my5grantester | time="2022-05-11T21:59:30Z" level=info msg="[GNB][NGAP] Receive PDU Session Resource Setup Request"
my5grantester | time="2022-05-11T21:59:30Z" level=info msg="[GNB][NGAP][UE] PDU Session was created with successful."
my5grantester | time="2022-05-11T21:59:30Z" level=info msg="[GNB][NGAP][UE] PDU Session Id: 1"
my5grantester | time="2022-05-11T21:59:30Z" level=info msg="[GNB][NGAP][UE] NSSAI Selected --- sst: de sd: 00007b"
my5grantester | time="2022-05-11T21:59:30Z" level=info msg="[GNB][NGAP][UE] PDU Session Type: ipv4"
my5grantester | time="2022-05-11T21:59:30Z" level=info msg="[GNB][NGAP][UE] QOS Flow Identifier: 6"
my5grantester | time="2022-05-11T21:59:30Z" level=info msg="[GNB][NGAP][UE] Uplink Teid: 231454274"
my5grantester | time="2022-05-11T21:59:30Z" level=info msg="[GNB][NGAP][UE] Downlink Teid: 1"
my5grantester | time="2022-05-11T21:59:30Z" level=info msg="[GNB][NGAP][UE] Non-Dynamic-5QI: 6"
my5grantester | time="2022-05-11T21:59:30Z" level=info msg="[GNB][NGAP][UE] Priority Level ARP: 1"
my5grantester | time="2022-05-11T21:59:30Z" level=info msg="[GNB][NGAP][UE] UPF Address: 192.168.72.202 :2152"
my5grantester | time="2022-05-11T21:59:30Z" level=info msg="[UE][NAS] Message with security header"
my5grantester | time="2022-05-11T21:59:30Z" level=info msg="[UE][NAS] Message with integrity and ciphered"
my5grantester | time="2022-05-11T21:59:30Z" level=info msg="[UE][NAS] successful NAS MAC verification"
my5grantester | time="2022-05-11T21:59:30Z" level=info msg="[UE][NAS] successful NAS CIPHERING"
my5grantester | time="2022-05-11T21:59:30Z" level=info msg="[UE][NAS] Receive DL NAS Transport"
my5grantester | time="2022-05-11T21:59:30Z" level=info msg="[UE][NAS] Receiving PDU Session Establishment Accept"
my5grantester | time="2022-05-11T21:59:30Z" level=info msg="[UE][DATA] UE is ready for using data plane"
```
## Traffic test
UL Test ->
``` shell
docker-compose-host $: docker exec my5grantester ping -c4 -I uetun1 192.168.73.135
PING 192.168.73.135 (192.168.73.135) from 12.1.1.2 uetun1: 56(84) bytes of data.
64 bytes from 192.168.73.135: icmp_seq=1 ttl=63 time=5.35 ms
64 bytes from 192.168.73.135: icmp_seq=2 ttl=63 time=0.456 ms
64 bytes from 192.168.73.135: icmp_seq=3 ttl=63 time=0.595 ms
--- 192.168.73.135 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2016ms
rtt min/avg/max/mdev = 0.456/2.136/5.357/2.278 ms
```
DL Test ->
``` shell
docker-compose-host $: docker exec oai-ext-dn ping 12.1.1.2 -c4
PING 12.1.1.2 (12.1.1.2) 56(84) bytes of data.
64 bytes from 12.1.1.2: icmp_seq=1 ttl=63 time=1.01 ms
64 bytes from 12.1.1.2: icmp_seq=2 ttl=63 time=0.531 ms
64 bytes from 12.1.1.2: icmp_seq=3 ttl=63 time=0.467 ms
--- 12.1.1.2 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2010ms
rtt min/avg/max/mdev = 0.467/0.670/1.013/0.244 ms
```
## Multiple UEs registration test
Load-test with UEs in queue*:
* Update value in the [docker-compose-my5grantester-vpp.yaml](../docker-compose/docker-compose-my5grantester-vpp.yaml)
``` console
NUM_UE: 10
```
* Verify at AMF logs
``` console
docker-compose-host $: docker logs oai-amf
[2022-05-11T21:53:21.866098] [AMF] [amf_app] [info ] |----------------------------------------------------------------------------------------------------------------|
[2022-05-11T21:53:21.866102] [AMF] [amf_app] [info ] |----------------------------------------------------gNBs' information-------------------------------------------|
[2022-05-11T21:53:21.866105] [AMF] [amf_app] [info ] | Index | Status | Global ID | gNB Name | PLMN |
[2022-05-11T21:53:21.866110] [AMF] [amf_app] [info ] | 1 | Connected | 0x300 | my5gRANTester | 208, 95 |
[2022-05-11T21:53:21.866113] [AMF] [amf_app] [info ] |----------------------------------------------------------------------------------------------------------------|
[2022-05-11T21:53:21.866115] [AMF] [amf_app] [info ]
[2022-05-11T21:53:21.866117] [AMF] [amf_app] [info ] |----------------------------------------------------------------------------------------------------------------|
[2022-05-11T21:53:21.866120] [AMF] [amf_app] [info ] |----------------------------------------------------UEs' information--------------------------------------------|
[2022-05-11T21:53:21.866122] [AMF] [amf_app] [info ] | Index | 5GMM state | IMSI | GUTI | RAN UE NGAP ID | AMF UE ID | PLMN |Cell ID|
[2022-05-11T21:53:21.866127] [AMF] [amf_app] [info ] | 1| 5GMM-REGISTERED| 208950000000043| | 1| 1| 208, 95 | 16|
[2022-05-11T21:53:21.866131] [AMF] [amf_app] [info ] | 2| 5GMM-REGISTERED| 208950000000044| | 2| 2| 208, 95 | 16|
[2022-05-11T21:53:21.866134] [AMF] [amf_app] [info ] | 3| 5GMM-REGISTERED| 208950000000045| | 3| 3| 208, 95 | 16|
[2022-05-11T21:53:21.866138] [AMF] [amf_app] [info ] | 4| 5GMM-REGISTERED| 208950000000046| | 4| 4| 208, 95 | 16|
[2022-05-11T21:53:21.866141] [AMF] [amf_app] [info ] | 5| 5GMM-REGISTERED| 208950000000047| | 5| 5| 208, 95 | 16|
[2022-05-11T21:53:21.866144] [AMF] [amf_app] [info ] | 6| 5GMM-REGISTERED| 208950000000048| | 6| 6| 208, 95 | 16|
[2022-05-11T21:53:21.866148] [AMF] [amf_app] [info ] | 7| 5GMM-REGISTERED| 208950000000049| | 7| 7| 208, 95 | 16|
[2022-05-11T21:53:21.866151] [AMF] [amf_app] [info ] | 8| 5GMM-REGISTERED| 208950000000050| | 8| 8| 208, 95 | 16|
[2022-05-11T21:53:21.866155] [AMF] [amf_app] [info ] | 9| 5GMM-REGISTERED| 208950000000051| | 9| 9| 208, 95 | 16|
[2022-05-11T21:53:21.866158] [AMF] [amf_app] [info ] | 10| 5GMM-REGISTERED| 208950000000052| | 10| 10| 208, 95 | 16|
[2022-05-11T21:53:21.866161] [AMF] [amf_app] [info ] |----------------------------------------------------------------------------------------------------------------|
```
## Recover the logs
``` shell
docker-compose-host $: docker logs oai-amf > /tmp/oai/vpp-upf-my5g/amf.log 2>&1
docker-compose-host $: docker logs oai-smf > /tmp/oai/vpp-upf-my5g/smf.log 2>&1
docker-compose-host $: docker logs oai-nrf > /tmp/oai/vpp-upf-my5g/nrf.log 2>&1
docker-compose-host $: docker logs vpp-upf > /tmp/oai/vpp-upf-my5g/vpp-upf.log 2>&1
docker-compose-host $: docker logs oai-udr > /tmp/oai/vpp-upf-my5g/udr.log 2>&1
docker-compose-host $: docker logs oai-udm > /tmp/oai/vpp-upf-my5g/udm.log 2>&1
docker-compose-host $: docker logs oai-ausf > /tmp/oai/vpp-upf-my5g/ausf.log 2>&1
docker-compose-host $: docker logs my5grantester > /tmp/oai/vpp-upf-my5g/my5grantester.log 2>&1
```
## 8. Analysing the Scenario Results
| Pcap/log files |
|:------------------------------------------------------------------------------------------ |
| [5gcn-deployment-my5G-RANTester.pcap](./results/My5g-RANTester/5gcn-deployment-my5grantester.pcap) |
* For detailed analysis of messages, please refer previous tutorial of [testing with dsTester](./docs/DEPLOY_SA5G_WITH_DS_TESTER.md).
## 9. Undeploy
Last thing is to remove all services - <br/>
* Undeploy the My5g-RANTester
``` shell
docker-compose-host $: docker-compose -f docker-compose-my5grantester-vpp.yaml down
Stopping my5grantester ... done
Removing my5grantester ... done
Network demo-oai-public-net is external, skipping
Network oai-public-access is external, skipping
```
* Undeploy the core network
``` shell
docker-compose-host $: docker-compose -f docker-compose-basic-vpp-nrf.yaml down
Stopping oai-smf ... done
Stopping oai-amf ...
Stopping oai-ausf ...
Stopping oai-ext-dn ...
Stopping oai-udm ...
Stopping vpp-upf ...
Stopping oai-udr ...
Stopping mysql ...
Stopping oai-nrf ...
```
\ No newline at end of file
...@@ -16,13 +16,11 @@ This page is only valid for an `Ubuntu18` host. ...@@ -16,13 +16,11 @@ This page is only valid for an `Ubuntu18` host.
If you are using any other distributions, please refer to [Build your own images](./BUILD_IMAGES.md). If you are using any other distributions, please refer to [Build your own images](./BUILD_IMAGES.md).
If you want to the up-to-date new features, please refer to [Build your own images](./BUILD_IMAGES.md). If you want to use a specific branch or commit, please refer to [Build your own images](./BUILD_IMAGES.md).
# Pulling the images from Docker Hub # # Pulling the images from Docker Hub #
Currently the images are hosted under the user account `rdefosseoai`. The images are hosted under the oai account `oaisoftwarealliance`.
This may change in the future.
Once again you may need to log on [docker-hub](https://hub.docker.com/) if your organization has reached pulling limit as `anonymous`. Once again you may need to log on [docker-hub](https://hub.docker.com/) if your organization has reached pulling limit as `anonymous`.
...@@ -33,39 +31,39 @@ Username: ...@@ -33,39 +31,39 @@ Username:
Password: Password:
``` ```
The OAI CI/CD team has automated more frequent pushes to Docker-Hub on `rdefosseoai` account. Two important things to be noted: The OAI CI/CD team has automated more frequent pushes to Docker-Hub on `oaisoftwarealliance` account. Two important things to be noted:
- We will keep pushing to the `latest` tag when a milestone is reached. - We will keep pushing to the `latest` tag when a milestone is reached.
- We are making pushes on the `develop` tag whenever a contribution has been accepted. These images are **EXPERIMENTAL**. - We are making pushes on the `develop` tag whenever a contribution has been accepted. These images are **EXPERIMENTAL**.
Now pull images. Now pull images according to your requirement,
```bash ```bash
$ docker pull rdefosseoai/oai-amf:latest $ docker pull oaisoftwarealliance/oai-amf:latest
$ docker pull rdefosseoai/oai-nrf:latest $ docker pull oaisoftwarealliance/oai-nrf:latest
$ docker pull rdefosseoai/oai-spgwu-tiny:latest $ docker pull oaisoftwarealliance/oai-spgwu-tiny:latest
$ docker pull rdefosseoai/oai-smf:latest $ docker pull oaisoftwarealliance/oai-smf:latest
$ docker pull rdefosseoai/oai-udr:latest $ docker pull oaisoftwarealliance/oai-udr:latest
$ docker pull rdefosseoai/oai-udm:latest $ docker pull oaisoftwarealliance/oai-udm:latest
$ docker pull rdefosseoai/oai-ausf:latest $ docker pull oaisoftwarealliance/oai-ausf:latest
$ docker pull rdefosseoai/oai-upf-vpp:latest $ docker pull oaisoftwarealliance/oai-upf-vpp:latest
$ docker pull rdefosseoai/oai-nssf:latest $ docker pull oaisoftwarealliance/oai-nssf:latest
# Utility image to generate traffic # Utility image to generate traffic
$ docker pull rdefosseoai/trf-gen-cn5g:latest $ docker pull oaisoftwarealliance/trf-gen-cn5g:latest
``` ```
And **re-tag** them for tutorials' docker-compose file to work. And **re-tag** them for tutorials' docker-compose file to work.
```bash ```bash
$ docker image tag rdefosseoai/oai-amf:latest oai-amf:latest $ docker image tag oaisoftwarealliance/oai-amf:latest oai-amf:latest
$ docker image tag rdefosseoai/oai-nrf:latest oai-nrf:latest $ docker image tag oaisoftwarealliance/oai-nrf:latest oai-nrf:latest
$ docker image tag rdefosseoai/oai-smf:latest oai-smf:latest $ docker image tag oaisoftwarealliance/oai-smf:latest oai-smf:latest
$ docker image tag rdefosseoai/oai-spgwu-tiny:latest oai-spgwu-tiny:latest $ docker image tag oaisoftwarealliance/oai-spgwu-tiny:latest oai-spgwu-tiny:latest
$ docker image tag rdefosseoai/oai-udr:latest oai-udr:latest $ docker image tag oaisoftwarealliance/oai-udr:latest oai-udr:latest
$ docker image tag rdefosseoai/oai-udm:latest oai-udm:latest $ docker image tag oaisoftwarealliance/oai-udm:latest oai-udm:latest
$ docker image tag rdefosseoai/oai-ausf:latest oai-ausf:latest $ docker image tag oaisoftwarealliance/oai-ausf:latest oai-ausf:latest
$ docker image tag rdefosseoai/oai-upf-vpp:latest oai-upf-vpp:latest $ docker image tag oaisoftwarealliance/oai-upf-vpp:latest oai-upf-vpp:latest
$ docker image tag rdefosseoai/oai-nssf:latest oai-nssf:latest $ docker image tag oaisoftwarealliance/oai-nssf:latest oai-nssf:latest
$ docker image tag rdefosseoai/trf-gen-cn5g:latest trf-gen-cn5g:latest $ docker image tag oaisoftwarealliance/trf-gen-cn5g:latest trf-gen-cn5g:latest
``` ```
Finally you may logoff --> your token is stored in plain text.. Finally you may logoff --> your token is stored in plain text..
...@@ -90,7 +88,7 @@ This repository only has tutorials and Continuous Integration scripts. ...@@ -90,7 +88,7 @@ This repository only has tutorials and Continuous Integration scripts.
| AMF | `master` | `v1.3.0` | X | X | | AMF | `master` | `v1.3.0` | X | X |
| SMF | `master` | `v1.3.0` | X | X | | SMF | `master` | `v1.3.0` | X | X |
| NRF | `master` | `v1.3.0` | X | X | | NRF | `master` | `v1.3.0` | X | X |
| SPGW-U-TINY | `master` | `v1.1.5` | X | X | | SPGW-U-TINY | `master` | `v1.2.0` | X | X |
| UDR | `master` | `v1.3.0` | X | X | | UDR | `master` | `v1.3.0` | X | X |
| UDM | `master` | `v1.3.0` | X | X | | UDM | `master` | `v1.3.0` | X | X |
| AUSF | `master` | `v1.3.0` | X | X | | AUSF | `master` | `v1.3.0` | X | X |
......
docs/images/5gcn_vpp_upf_my5grantester.png

77.4 KiB

File added
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment