From 0994d795851ede6b0bfd6c31dffe14b9ef2dde21 Mon Sep 17 00:00:00 2001
From: luis_pereira87 <lpereira@allbesmart.pt>
Date: Thu, 31 Aug 2023 07:58:35 +0100
Subject: [PATCH] Tutorials: Update NR SA Tutorials to be compliant with OAI
 CN5G pre-2.0 release

---
 doc/NR_SA_Tutorial_COTS_UE.md                 |   2 +-
 doc/NR_SA_Tutorial_OAI_CN5G.md                |   4 +-
 doc/NR_SA_Tutorial_OAI_nrUE.md                |   2 +-
 doc/tutorial_resources/oai-cn5g/Dockerfile    |  15 -
 .../oai-cn5g/conf/config.yaml                 | 184 ++++++++++++
 .../oai-cn5g/database/oai_db.sql              |   8 +-
 .../oai-cn5g/docker-compose.yaml              | 205 ++++++++++++++
 .../oai-cn5g/docker-compose.yml               | 264 ------------------
 8 files changed, 397 insertions(+), 287 deletions(-)
 delete mode 100644 doc/tutorial_resources/oai-cn5g/Dockerfile
 create mode 100644 doc/tutorial_resources/oai-cn5g/conf/config.yaml
 create mode 100644 doc/tutorial_resources/oai-cn5g/docker-compose.yaml
 delete mode 100644 doc/tutorial_resources/oai-cn5g/docker-compose.yml

diff --git a/doc/NR_SA_Tutorial_COTS_UE.md b/doc/NR_SA_Tutorial_COTS_UE.md
index 13b07df3278..211bfdd3e50 100644
--- a/doc/NR_SA_Tutorial_COTS_UE.md
+++ b/doc/NR_SA_Tutorial_COTS_UE.md
@@ -90,7 +90,7 @@ cd ~/openairinterface5g/cmake_targets
 cd ~/openairinterface5g
 source oaienv
 cd cmake_targets
-./build_oai -w USRP --ninja --gNB -c
+./build_oai -w USRP --ninja --gNB -C
 ```
 
 # 4. Run OAI CN5G and OAI gNB
diff --git a/doc/NR_SA_Tutorial_OAI_CN5G.md b/doc/NR_SA_Tutorial_OAI_CN5G.md
index 9f17d944552..1f65aa30024 100644
--- a/doc/NR_SA_Tutorial_OAI_CN5G.md
+++ b/doc/NR_SA_Tutorial_OAI_CN5G.md
@@ -66,8 +66,8 @@ docker pull oaisoftwarealliance/oai-udr:develop
 docker pull oaisoftwarealliance/oai-udm:develop
 docker pull oaisoftwarealliance/oai-ausf:develop
 docker pull oaisoftwarealliance/oai-spgwu-tiny:develop
-docker pull oaisoftwarealliance/trf-gen-cn5g:latest
-docker build --target ims --tag asterisk-ims:latest --file ~/oai-cn5g/Dockerfile .
+docker pull oaisoftwarealliance/trf-gen-cn5g:jammy
+docker pull oaisoftwarealliance/ims:latest
 ```
 
 # 3. Run OAI CN5G
diff --git a/doc/NR_SA_Tutorial_OAI_nrUE.md b/doc/NR_SA_Tutorial_OAI_nrUE.md
index 8091d44e743..890e7a4e251 100644
--- a/doc/NR_SA_Tutorial_OAI_nrUE.md
+++ b/doc/NR_SA_Tutorial_OAI_nrUE.md
@@ -81,7 +81,7 @@ sudo apt install -y libforms-dev libforms-bin
 cd ~/openairinterface5g
 source oaienv
 cd cmake_targets
-./build_oai -w USRP --ninja --nrUE --gNB --build-lib "nrscope" -c
+./build_oai -w USRP --ninja --nrUE --gNB --build-lib "nrscope" -C
 ```
 
 # 4. Run OAI CN5G and OAI gNB
diff --git a/doc/tutorial_resources/oai-cn5g/Dockerfile b/doc/tutorial_resources/oai-cn5g/Dockerfile
deleted file mode 100644
index 9aeba34d028..00000000000
--- a/doc/tutorial_resources/oai-cn5g/Dockerfile
+++ /dev/null
@@ -1,15 +0,0 @@
-ARG BASE_IMAGE=ubuntu:jammy
-
-FROM $BASE_IMAGE as ims
-
-ENV DEBIAN_FRONTEND=noninteractive
-
-RUN apt-get update && \
-    DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && \
-    DEBIAN_FRONTEND=noninteractive apt-get install --yes \
-      psmisc \
-      git \
-      asterisk \
-  && rm -rf /var/lib/apt/lists/*
-
-ENTRYPOINT ["asterisk", "-fp"]
diff --git a/doc/tutorial_resources/oai-cn5g/conf/config.yaml b/doc/tutorial_resources/oai-cn5g/conf/config.yaml
new file mode 100644
index 00000000000..a3951fdc016
--- /dev/null
+++ b/doc/tutorial_resources/oai-cn5g/conf/config.yaml
@@ -0,0 +1,184 @@
+################################################################################
+# Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The OpenAirInterface Software Alliance licenses this file to You under
+# the OAI Public License, Version 1.1  (the "License"); you may not use this file
+# except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.openairinterface.org/?page_id=698
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#-------------------------------------------------------------------------------
+# For more information about the OpenAirInterface (OAI) Software Alliance:
+#      contact@openairinterface.org
+################################################################################
+
+# OAI CN Configuration File
+### This file can be used by all OAI NFs
+### Some fields are specific to an NF and will be ignored by other NFs
+### The {{ env['ENV_NAME'] }} syntax lets you define these values in a docker-compose file
+### If you intend to mount this file or use a bare-metal deployment, please refer to README.md
+### The README.md also defines default values and allowed values for each configuration parameter
+
+############# Common configuration
+
+# Log level for all the NFs
+log_level:
+  general: debug
+
+# If you enable registration, the other NFs will use the NRF discovery mechanism
+register_nf:
+  general: yes
+  
+http_version: 2
+
+############## SBI Interfaces
+### Each NF takes its local SBI interfaces and remote interfaces from here, unless it gets them using NRF discovery mechanisms
+nfs:
+  amf:
+    host: oai-amf
+    sbi:
+      port: 8080
+      api_version: v1
+      interface_name: eth0
+    n2:
+      interface_name: eth0
+      port: 38412
+  smf:
+    host: oai-smf
+    sbi:
+      port: 8080
+      api_version: v1
+      interface_name: eth0
+    n4:
+      interface_name: eth0
+      port: 8805
+  udm:
+    host: oai-udm
+    sbi:
+      port: 8080
+      api_version: v1
+      interface_name: eth0
+  udr:
+    host: oai-udr
+    sbi:
+      port: 8080
+      api_version: v1
+      interface_name: eth0
+  ausf:
+    host: oai-ausf
+    sbi:
+      port: 8080
+      api_version: v1
+      interface_name: eth0
+  nrf:
+    host: oai-nrf
+    sbi:
+      port: 8080
+      api_version: v1
+      interface_name: eth0
+
+#### Common for UDR and AMF
+database:
+  host: mysql
+  user: test
+  type: mysql
+  password: test
+  database_name: oai_db
+  generate_random: true
+  connection_timeout: 300 # seconds
+
+############## NF-specific configuration
+amf:
+  pid_directory: "/var/run"
+  amf_name: "OAI-AMF"
+  # This really depends on if we want to keep the "mini" version or not
+  support_features_options:
+    enable_simple_scenario: no
+    enable_nssf: no
+    enable_smf_selection: yes
+    use_external_udm: no
+  relative_capacity: 30
+  statistics_timer_interval: 20  #in seconds
+  emergency_support: false
+  served_guami_list:
+    - mcc: 001
+      mnc: 01
+      amf_region_id: 80
+      amf_set_id: 001
+      amf_pointer: 01
+  plmn_support_list:
+    - mcc: 001
+      mnc: 01
+      tac: 0x0001
+      nssai:
+        - sst: 1
+  supported_integrity_algorithms:
+    - "NIA1"
+    - "NIA2"
+  supported_encryption_algorithms:
+    - "NEA0"
+    - "NEA1"
+    - "NEA2"
+
+smf:
+  ue_mtu: 1500
+  support_features:
+    use_local_subscription_info: yes # Use infos from local_subscription_info or from UDM
+    use_local_pcc_rules: yes # Use infos from local_pcc_rules or from PCF
+  # we resolve from NRF, this is just to configure usage_reporting
+  upfs:
+    - host: oai-spgwu
+      config:
+        enable_usage_reporting: no
+  ue_dns:
+    primary_ipv4: "1.1.1.1"
+    primary_ipv6: "2001:4860:4860::8888"
+    secondary_ipv4: "8.8.8.8"
+    secondary_ipv6: "2001:4860:4860::8888"
+  ims:
+    pcscf_ipv4: "192.168.70.139"
+    pcscf_ipv6: "fe80::7915:f408:1787:db8b"
+ # the DNN you configure here should be configured in "dnns"
+  local_subscription_infos:
+    - single_nssai:
+        sst: 1
+      dnn: "oai"
+      qos_profile:
+        5qi: 9
+        session_ambr_ul: "10Gbps"
+        session_ambr_dl: "10Gbps"
+    - single_nssai:
+        sst: 1
+      dnn: "openairinterface"
+      qos_profile:
+        5qi: 9
+        session_ambr_ul: "10Gbps"
+        session_ambr_dl: "10Gbps"
+    - single_nssai:
+        sst: 1
+      dnn: "ims"
+      qos_profile:
+        5qi: 9
+        session_ambr_ul: "10Gbps"
+        session_ambr_dl: "10Gbps"
+
+## DNN configuration
+dnns:
+  - dnn: "oai"
+    pdu_session_type: "IPV4"
+    ipv4_subnet: "12.1.1.2/24"
+  - dnn: "openairinterface"
+    pdu_session_type: "IPV4V6"
+    ipv4_subnet: "12.1.2.2/24"
+    ipv6_prefix: "2001:1:2::/64"
+  - dnn: "ims"
+    pdu_session_type: "IPV4V6"
+    ipv4_subnet: "12.1.9.2/24"
+    ipv6_prefix: "2001:1:2::/64"
diff --git a/doc/tutorial_resources/oai-cn5g/database/oai_db.sql b/doc/tutorial_resources/oai-cn5g/database/oai_db.sql
index d312db93c3b..4fadde5b436 100644
--- a/doc/tutorial_resources/oai-cn5g/database/oai_db.sql
+++ b/doc/tutorial_resources/oai-cn5g/database/oai_db.sql
@@ -211,13 +211,13 @@ CREATE TABLE `SessionManagementSubscriptionData` (
 --
 
 INSERT INTO `SessionManagementSubscriptionData` (`ueid`, `servingPlmnid`, `singleNssai`, `dnnConfigurations`) VALUES
-('001010000000001', '00101', '{\"sst\": 1, \"sd\": \"0xFFFFFF\"}','{\"oai\":{\"pduSessionTypes\":{ \"defaultSessionType\": \"IPV4\"},\"sscModes\": {\"defaultSscMode\": \"SSC_MODE_1\"},\"5gQosProfile\": {\"5qi\": 6,\"arp\":{\"priorityLevel\": 15,\"preemptCap\": \"NOT_PREEMPT\",\"preemptVuln\":\"PREEMPTABLE\"},\"priorityLevel\":1},\"sessionAmbr\":{\"uplink\":\"1000Mbps\", \"downlink\":\"1000Mbps\"},\"staticIpAddress\":[{\"ipv4Addr\": \"12.1.1.99\"}]},\"ims\":{\"pduSessionTypes\":{ \"defaultSessionType\": \"IPV4V6\"},\"sscModes\": {\"defaultSscMode\": \"SSC_MODE_1\"},\"5gQosProfile\": {\"5qi\": 2,\"arp\":{\"priorityLevel\": 15,\"preemptCap\": \"NOT_PREEMPT\",\"preemptVuln\":\"PREEMPTABLE\"},\"priorityLevel\":1},\"sessionAmbr\":{\"uplink\":\"1000Mbps\", \"downlink\":\"1000Mbps\"}}}');
+('001010000000001', '00101', '{\"sst\": 1, \"sd\": \"16777215\"}','{\"oai\":{\"pduSessionTypes\":{ \"defaultSessionType\": \"IPV4\"},\"sscModes\": {\"defaultSscMode\": \"SSC_MODE_1\"},\"5gQosProfile\": {\"5qi\": 6,\"arp\":{\"priorityLevel\": 15,\"preemptCap\": \"NOT_PREEMPT\",\"preemptVuln\":\"PREEMPTABLE\"},\"priorityLevel\":1},\"sessionAmbr\":{\"uplink\":\"1000Mbps\", \"downlink\":\"1000Mbps\"},\"staticIpAddress\":[{\"ipv4Addr\": \"12.1.1.101\"}]},\"ims\":{\"pduSessionTypes\":{ \"defaultSessionType\": \"IPV4V6\"},\"sscModes\": {\"defaultSscMode\": \"SSC_MODE_1\"},\"5gQosProfile\": {\"5qi\": 2,\"arp\":{\"priorityLevel\": 15,\"preemptCap\": \"NOT_PREEMPT\",\"preemptVuln\":\"PREEMPTABLE\"},\"priorityLevel\":1},\"sessionAmbr\":{\"uplink\":\"1000Mbps\", \"downlink\":\"1000Mbps\"}}}');
 INSERT INTO `SessionManagementSubscriptionData` (`ueid`, `servingPlmnid`, `singleNssai`, `dnnConfigurations`) VALUES
-('001010000000002', '00101', '{\"sst\": 1, \"sd\": \"0xFFFFFF\"}','{\"oai\":{\"pduSessionTypes\":{ \"defaultSessionType\": \"IPV4\"},\"sscModes\": {\"defaultSscMode\": \"SSC_MODE_1\"},\"5gQosProfile\": {\"5qi\": 6,\"arp\":{\"priorityLevel\": 15,\"preemptCap\": \"NOT_PREEMPT\",\"preemptVuln\":\"PREEMPTABLE\"},\"priorityLevel\":1},\"sessionAmbr\":{\"uplink\":\"1000Mbps\", \"downlink\":\"1000Mbps\"},\"staticIpAddress\":[{\"ipv4Addr\": \"12.1.1.100\"}]},\"ims\":{\"pduSessionTypes\":{ \"defaultSessionType\": \"IPV4V6\"},\"sscModes\": {\"defaultSscMode\": \"SSC_MODE_1\"},\"5gQosProfile\": {\"5qi\": 2,\"arp\":{\"priorityLevel\": 15,\"preemptCap\": \"NOT_PREEMPT\",\"preemptVuln\":\"PREEMPTABLE\"},\"priorityLevel\":1},\"sessionAmbr\":{\"uplink\":\"1000Mbps\", \"downlink\":\"1000Mbps\"}}}');
+('001010000000002', '00101', '{\"sst\": 1, \"sd\": \"16777215\"}','{\"oai\":{\"pduSessionTypes\":{ \"defaultSessionType\": \"IPV4\"},\"sscModes\": {\"defaultSscMode\": \"SSC_MODE_1\"},\"5gQosProfile\": {\"5qi\": 6,\"arp\":{\"priorityLevel\": 15,\"preemptCap\": \"NOT_PREEMPT\",\"preemptVuln\":\"PREEMPTABLE\"},\"priorityLevel\":1},\"sessionAmbr\":{\"uplink\":\"1000Mbps\", \"downlink\":\"1000Mbps\"},\"staticIpAddress\":[{\"ipv4Addr\": \"12.1.1.102\"}]},\"ims\":{\"pduSessionTypes\":{ \"defaultSessionType\": \"IPV4V6\"},\"sscModes\": {\"defaultSscMode\": \"SSC_MODE_1\"},\"5gQosProfile\": {\"5qi\": 2,\"arp\":{\"priorityLevel\": 15,\"preemptCap\": \"NOT_PREEMPT\",\"preemptVuln\":\"PREEMPTABLE\"},\"priorityLevel\":1},\"sessionAmbr\":{\"uplink\":\"1000Mbps\", \"downlink\":\"1000Mbps\"}}}');
 INSERT INTO `SessionManagementSubscriptionData` (`ueid`, `servingPlmnid`, `singleNssai`, `dnnConfigurations`) VALUES
-('001010000000003', '00101', '{\"sst\": 1, \"sd\": \"0xFFFFFF\"}','{\"oai\":{\"pduSessionTypes\":{ \"defaultSessionType\": \"IPV4\"},\"sscModes\": {\"defaultSscMode\": \"SSC_MODE_1\"},\"5gQosProfile\": {\"5qi\": 6,\"arp\":{\"priorityLevel\": 15,\"preemptCap\": \"NOT_PREEMPT\",\"preemptVuln\":\"PREEMPTABLE\"},\"priorityLevel\":1},\"sessionAmbr\":{\"uplink\":\"1000Mbps\", \"downlink\":\"1000Mbps\"},\"staticIpAddress\":[{\"ipv4Addr\": \"12.1.1.101\"}]},\"ims\":{\"pduSessionTypes\":{ \"defaultSessionType\": \"IPV4V6\"},\"sscModes\": {\"defaultSscMode\": \"SSC_MODE_1\"},\"5gQosProfile\": {\"5qi\": 2,\"arp\":{\"priorityLevel\": 15,\"preemptCap\": \"NOT_PREEMPT\",\"preemptVuln\":\"PREEMPTABLE\"},\"priorityLevel\":1},\"sessionAmbr\":{\"uplink\":\"1000Mbps\", \"downlink\":\"1000Mbps\"}}}');
+('001010000000003', '00101', '{\"sst\": 1, \"sd\": \"16777215\"}','{\"oai\":{\"pduSessionTypes\":{ \"defaultSessionType\": \"IPV4\"},\"sscModes\": {\"defaultSscMode\": \"SSC_MODE_1\"},\"5gQosProfile\": {\"5qi\": 6,\"arp\":{\"priorityLevel\": 15,\"preemptCap\": \"NOT_PREEMPT\",\"preemptVuln\":\"PREEMPTABLE\"},\"priorityLevel\":1},\"sessionAmbr\":{\"uplink\":\"1000Mbps\", \"downlink\":\"1000Mbps\"},\"staticIpAddress\":[{\"ipv4Addr\": \"12.1.1.103\"}]},\"ims\":{\"pduSessionTypes\":{ \"defaultSessionType\": \"IPV4V6\"},\"sscModes\": {\"defaultSscMode\": \"SSC_MODE_1\"},\"5gQosProfile\": {\"5qi\": 2,\"arp\":{\"priorityLevel\": 15,\"preemptCap\": \"NOT_PREEMPT\",\"preemptVuln\":\"PREEMPTABLE\"},\"priorityLevel\":1},\"sessionAmbr\":{\"uplink\":\"1000Mbps\", \"downlink\":\"1000Mbps\"}}}');
 INSERT INTO `SessionManagementSubscriptionData` (`ueid`, `servingPlmnid`, `singleNssai`, `dnnConfigurations`) VALUES
-('001010000000004', '00101', '{\"sst\": 1, \"sd\": \"0xFFFFFF\"}','{\"oai\":{\"pduSessionTypes\":{ \"defaultSessionType\": \"IPV4\"},\"sscModes\": {\"defaultSscMode\": \"SSC_MODE_1\"},\"5gQosProfile\": {\"5qi\": 6,\"arp\":{\"priorityLevel\": 15,\"preemptCap\": \"NOT_PREEMPT\",\"preemptVuln\":\"PREEMPTABLE\"},\"priorityLevel\":1},\"sessionAmbr\":{\"uplink\":\"1000Mbps\", \"downlink\":\"1000Mbps\"},\"staticIpAddress\":[{\"ipv4Addr\": \"12.1.1.102\"}]},\"ims\":{\"pduSessionTypes\":{ \"defaultSessionType\": \"IPV4V6\"},\"sscModes\": {\"defaultSscMode\": \"SSC_MODE_1\"},\"5gQosProfile\": {\"5qi\": 2,\"arp\":{\"priorityLevel\": 15,\"preemptCap\": \"NOT_PREEMPT\",\"preemptVuln\":\"PREEMPTABLE\"},\"priorityLevel\":1},\"sessionAmbr\":{\"uplink\":\"1000Mbps\", \"downlink\":\"1000Mbps\"}}}');
+('001010000000004', '00101', '{\"sst\": 1, \"sd\": \"16777215\"}','{\"oai\":{\"pduSessionTypes\":{ \"defaultSessionType\": \"IPV4\"},\"sscModes\": {\"defaultSscMode\": \"SSC_MODE_1\"},\"5gQosProfile\": {\"5qi\": 6,\"arp\":{\"priorityLevel\": 15,\"preemptCap\": \"NOT_PREEMPT\",\"preemptVuln\":\"PREEMPTABLE\"},\"priorityLevel\":1},\"sessionAmbr\":{\"uplink\":\"1000Mbps\", \"downlink\":\"1000Mbps\"},\"staticIpAddress\":[{\"ipv4Addr\": \"12.1.1.104\"}]},\"ims\":{\"pduSessionTypes\":{ \"defaultSessionType\": \"IPV4V6\"},\"sscModes\": {\"defaultSscMode\": \"SSC_MODE_1\"},\"5gQosProfile\": {\"5qi\": 2,\"arp\":{\"priorityLevel\": 15,\"preemptCap\": \"NOT_PREEMPT\",\"preemptVuln\":\"PREEMPTABLE\"},\"priorityLevel\":1},\"sessionAmbr\":{\"uplink\":\"1000Mbps\", \"downlink\":\"1000Mbps\"}}}');
 
 -- --------------------------------------------------------
 
diff --git a/doc/tutorial_resources/oai-cn5g/docker-compose.yaml b/doc/tutorial_resources/oai-cn5g/docker-compose.yaml
new file mode 100644
index 00000000000..9837983ed81
--- /dev/null
+++ b/doc/tutorial_resources/oai-cn5g/docker-compose.yaml
@@ -0,0 +1,205 @@
+version: '3.8'
+services:
+    mysql:
+        container_name: "mysql"
+        image: mysql:8.0
+        volumes:
+            - ./database/oai_db.sql:/docker-entrypoint-initdb.d/oai_db.sql
+            - ./healthscripts/mysql-healthcheck.sh:/tmp/mysql-healthcheck.sh
+        environment:
+            - TZ=Europe/Paris
+            - MYSQL_DATABASE=oai_db
+            - MYSQL_USER=test
+            - MYSQL_PASSWORD=test
+            - MYSQL_ROOT_PASSWORD=linux
+        healthcheck:
+            test: /bin/bash -c "/tmp/mysql-healthcheck.sh"
+            interval: 5s
+            timeout: 2s
+            retries: 10
+        networks:
+            public_net:
+                ipv4_address: 192.168.70.131
+                
+    ims:
+        container_name: "asterisk-ims"
+        image: oaisoftwarealliance/ims:latest
+        volumes:
+            - ./conf/sip.conf:/etc/asterisk/sip.conf
+            - ./conf/users.conf:/etc/asterisk/users.conf
+        healthcheck:
+            test: /bin/bash -c "pgrep asterisk"
+            interval: 5s
+            timeout: 2s
+            retries: 10
+        networks:
+            public_net:
+                ipv4_address: 192.168.70.139
+    oai-udr:
+        container_name: "oai-udr"
+        image: oaisoftwarealliance/oai-udr:develop
+        expose:
+            - 80/tcp
+            - 8080/tcp
+        volumes:
+            - ./conf/config.yaml:/openair-udr/etc/config.yaml
+        environment:
+            - TZ=Europe/Paris
+        depends_on:
+            - mysql
+            - oai-nrf
+        networks:
+            public_net:
+                ipv4_address: 192.168.70.136
+    oai-udm:
+        container_name: "oai-udm"
+        image: oaisoftwarealliance/oai-udm:develop
+        expose:
+            - 80/tcp
+            - 8080/tcp
+        volumes:
+            - ./conf/config.yaml:/openair-udm/etc/config.yaml
+        environment:
+            - TZ=Europe/Paris
+        depends_on:
+            - oai-udr
+        networks:
+            public_net:
+                ipv4_address: 192.168.70.137
+    oai-ausf:
+        container_name: "oai-ausf"
+        image: oaisoftwarealliance/oai-ausf:develop
+        expose:
+            - 80/tcp
+            - 8080/tcp
+        volumes:
+            - ./conf/config.yaml:/openair-ausf/etc/config.yaml
+        environment:
+            - TZ=Europe/Paris
+        depends_on:
+            - oai-udm
+        networks:
+            public_net:
+                ipv4_address: 192.168.70.138
+    oai-nrf:
+        container_name: "oai-nrf"
+        image: oaisoftwarealliance/oai-nrf:develop
+        expose:
+            - 80/tcp
+            - 8080/tcp
+        volumes:
+            - ./conf/config.yaml:/openair-nrf/etc/config.yaml
+        environment:
+            - TZ=Europe/Paris
+        networks:
+            public_net:
+                ipv4_address: 192.168.70.130
+    oai-amf:
+        container_name: "oai-amf"
+        image: oaisoftwarealliance/oai-amf:develop
+        expose:
+            - 80/tcp
+            - 8080/tcp
+            - 38412/sctp
+        volumes:
+            - ./conf/config.yaml:/openair-amf/etc/config.yaml
+        environment:
+            - TZ=Europe/Paris
+        depends_on:
+            - mysql
+            - oai-nrf
+            - oai-ausf
+        networks:
+            public_net:
+                ipv4_address: 192.168.70.132
+    oai-smf:
+        container_name: "oai-smf"
+        image: oaisoftwarealliance/oai-smf:develop
+        expose:
+            - 80/tcp
+            - 8080/tcp
+            - 8805/udp
+        volumes:
+            - ./conf/config.yaml:/openair-smf/etc/config.yaml
+        environment:
+            - TZ=Europe/Paris
+        depends_on:
+            - oai-nrf
+            - oai-amf
+        networks:
+            public_net:
+                ipv4_address: 192.168.70.133
+    oai-spgwu:
+        container_name: "oai-spgwu"
+        image: oaisoftwarealliance/oai-spgwu-tiny:develop
+        expose:
+            - 2152/udp
+            - 8805/udp
+            - 8080/tcp
+        # TODO: oai-spgwu-tiny will not support the new common yaml config file feature
+        #       waiting for the new oai-upf NF
+        environment:
+            - TZ=Europe/Paris
+            - SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP=eth0
+            - SGW_INTERFACE_NAME_FOR_SX=eth0
+            - PGW_INTERFACE_NAME_FOR_SGI=eth0
+            - NETWORK_UE_NAT_OPTION=yes
+            - NETWORK_UE_IP=12.1.0.0/16
+            - ENABLE_5G_FEATURES=yes
+            - REGISTER_NRF=yes
+            - USE_FQDN_NRF=yes
+            - UPF_FQDN_5G=oai-spgwu
+            - NRF_IPV4_ADDRESS=192.168.70.130
+            - NRF_FQDN=oai-nrf
+            # Mandatory to set the NRF PORT to 8080 (it is set to default to 80 otherwise)
+            - HTTP_VERSION=2
+            - NRF_PORT=8080
+            # Slice 0 (1, 0xFFFFFF)
+            - NSSAI_SST_0=1
+            - DNN_0=oai
+            # Slice 1 (1, 0xFFFFFF)
+            - NSSAI_SST_1=1
+            - DNN_1=openairinterface
+            # Slice 2 (1, 0xFFFFFF)
+            - NSSAI_SST_2=1
+            - DNN_2=ims
+        depends_on:
+            - oai-nrf
+            - oai-smf
+        cap_add:
+            - NET_ADMIN
+            - SYS_ADMIN
+        cap_drop:
+            - ALL
+        privileged: true
+        networks:
+            public_net:
+                ipv4_address: 192.168.70.134
+    oai-ext-dn:
+        privileged: true
+        init: true
+        container_name: oai-ext-dn
+        image: oaisoftwarealliance/trf-gen-cn5g:jammy
+        entrypoint: /bin/bash -c \
+              "ip route add 12.1.0.0/16 via 192.168.70.134 dev eth0; ip route; sleep infinity"
+        command: ["/bin/bash", "-c", "trap : SIGTERM SIGINT; sleep infinity & wait"]
+        healthcheck:
+            test: /bin/bash -c "ip r | grep 12.1.0"
+            interval: 5s
+            timeout: 2s
+            retries: 10
+        networks:
+            public_net:
+                ipv4_address: 192.168.70.135
+networks:
+    # public_net:
+    #     external:
+    #         name: demo-oai-public-net
+    public_net:
+        driver: bridge
+        name: demo-oai-public-net
+        ipam:
+            config:
+                - subnet: 192.168.70.128/26
+        driver_opts:
+            com.docker.network.bridge.name: "demo-oai"
diff --git a/doc/tutorial_resources/oai-cn5g/docker-compose.yml b/doc/tutorial_resources/oai-cn5g/docker-compose.yml
deleted file mode 100644
index fc9eab0ad59..00000000000
--- a/doc/tutorial_resources/oai-cn5g/docker-compose.yml
+++ /dev/null
@@ -1,264 +0,0 @@
-version: '3.8'
-services:
-    mysql:
-        container_name: "mysql"
-        image: mysql:8.0
-        volumes:
-            - ./database/oai_db.sql:/docker-entrypoint-initdb.d/oai_db.sql
-            - ./healthscripts/mysql-healthcheck.sh:/tmp/mysql-healthcheck.sh
-        environment:
-            - TZ=Europe/Paris
-            - MYSQL_DATABASE=oai_db
-            - MYSQL_USER=test
-            - MYSQL_PASSWORD=test
-            - MYSQL_ROOT_PASSWORD=linux
-        healthcheck:
-            test: /bin/bash -c "/tmp/mysql-healthcheck.sh"
-            interval: 10s
-            timeout: 5s
-            retries: 5
-        networks:
-            public_net:
-                ipv4_address: 192.168.70.131
-    ims:
-        container_name: "asterisk-ims"
-        image: asterisk-ims:latest
-        volumes:
-            - ./conf/sip.conf:/etc/asterisk/sip.conf
-            - ./conf/users.conf:/etc/asterisk/users.conf
-        healthcheck:
-            test: /bin/bash -c "pgrep asterisk"
-            interval: 10s
-            timeout: 5s
-            retries: 5
-        networks:
-            public_net:
-                ipv4_address: 192.168.70.139
-    oai-udr:
-        container_name: "oai-udr"
-        image: oaisoftwarealliance/oai-udr:v1.5.1
-        environment:
-            - TZ=Europe/Paris
-            - UDR_NAME=OAI_UDR
-            - UDR_INTERFACE_NAME_FOR_NUDR=eth0
-            - MYSQL_IPV4_ADDRESS=mysql
-            - MYSQL_USER=test
-            - MYSQL_PASS=test
-            - MYSQL_DB=oai_db
-            - WAIT_MYSQL=120
-            - USE_FQDN_DNS=yes
-            - REGISTER_NRF=yes
-            - NRF_IPV4_ADDRESS=192.168.70.130
-            - NRF_FQDN=oai-nrf
-        depends_on:
-            - mysql
-            - oai-nrf
-        networks:
-            public_net:
-                ipv4_address: 192.168.70.136
-    oai-udm:
-        container_name: "oai-udm"
-        image: oaisoftwarealliance/oai-udm:v1.5.1
-        environment:
-            - TZ=Europe/Paris
-            - UDM_NAME=OAI_UDM
-            - SBI_IF_NAME=eth0
-            - REGISTER_NRF=yes
-            - USE_FQDN_DNS=yes
-            - UDR_IP_ADDRESS=192.168.70.136
-            - UDR_FQDN=oai-udr
-            - NRF_IPV4_ADDRESS=192.168.70.130
-            - NRF_FQDN=oai-nrf
-        depends_on:
-            - oai-nrf
-            - oai-udr
-        networks:
-            public_net:
-                ipv4_address: 192.168.70.137
-    oai-ausf:
-        container_name: "oai-ausf"
-        image: oaisoftwarealliance/oai-ausf:v1.5.1
-        environment:
-            - TZ=Europe/Paris
-            - AUSF_NAME=OAI_AUSF
-            - SBI_IF_NAME=eth0
-            - USE_FQDN_DNS=yes
-            - REGISTER_NRF=yes
-            - UDM_IP_ADDRESS=192.168.70.137
-            - UDM_FQDN=oai-udm
-            - NRF_IPV4_ADDRESS=192.168.70.130
-            - NRF_FQDN=oai-nrf
-        depends_on:
-            - oai-nrf
-            - oai-udm
-        networks:
-            public_net:
-                ipv4_address: 192.168.70.138
-    oai-nrf:
-        container_name: "oai-nrf"
-        image: oaisoftwarealliance/oai-nrf:v1.5.1
-        environment:
-            - TZ=Europe/Paris
-            - NRF_INTERFACE_NAME_FOR_SBI=eth0
-        networks:
-            public_net:
-                ipv4_address: 192.168.70.130
-    oai-amf:
-        container_name: "oai-amf"
-        image: oaisoftwarealliance/oai-amf:v1.5.1
-        environment:
-            - TZ=Europe/Paris
-            # PLMN informations
-            - MCC=001
-            - MNC=01
-            - REGION_ID=128
-            - AMF_SET_ID=1
-            - SERVED_GUAMI_MCC_0=001
-            - SERVED_GUAMI_MNC_0=01
-            - SERVED_GUAMI_REGION_ID_0=128
-            - SERVED_GUAMI_AMF_SET_ID_0=1
-            - PLMN_SUPPORT_MCC=001
-            - PLMN_SUPPORT_MNC=01
-            - PLMN_SUPPORT_TAC=0x0001
-            # Slice 0 (1, 0xFFFFFF)
-            - SST_0=1
-            - AMF_INTERFACE_NAME_FOR_NGAP=eth0
-            - AMF_INTERFACE_NAME_FOR_N11=eth0
-            # One single SMF instance
-            - SMF_INSTANCE_ID_0=1
-            - SMF_FQDN_0=oai-smf
-            - SMF_IPV4_ADDR_0=192.168.70.133
-            - SELECTED_0=true
-            # Interaction with other NFs
-            - NF_REGISTRATION=yes
-            - USE_FQDN_DNS=yes
-            - EXTERNAL_AUSF=yes
-            # Algorithm choices
-            - CIPH_ALGO_LIST=["NEA0" , "NEA1" , "NEA2"]
-            - INT_ALGO_LIST=["NIA1" , "NIA2"]
-            # Other NF
-            - NRF_IPV4_ADDRESS=192.168.70.130
-            - NRF_FQDN=oai-nrf
-            - AUSF_IPV4_ADDRESS=192.168.70.138
-            - AUSF_FQDN=oai-ausf
-            - UDM_IPV4_ADDRESS=192.168.70.137
-            - UDM_FQDN=oai-udm
-        depends_on:
-            - oai-nrf
-            - oai-ausf
-        networks:
-            public_net:
-                ipv4_address: 192.168.70.132
-    oai-smf:
-        container_name: "oai-smf"
-        image: oaisoftwarealliance/oai-smf:v1.5.1
-        environment:
-            - TZ=Europe/Paris
-            - SMF_INTERFACE_NAME_FOR_N4=eth0
-            - SMF_INTERFACE_NAME_FOR_SBI=eth0
-            - DEFAULT_DNS_IPV4_ADDRESS=8.8.8.8
-            - DEFAULT_DNS_SEC_IPV4_ADDRESS=4.4.4.4
-            - AMF_IPV4_ADDRESS=192.168.70.132
-            - AMF_FQDN=oai-amf
-            - UDM_IPV4_ADDRESS=192.168.70.137
-            - UDM_FQDN=oai-udm
-            - UPF_IPV4_ADDRESS=192.168.70.134
-            - UPF_FQDN_0=oai-spgwu-tiny
-            - NRF_IPV4_ADDRESS=192.168.70.130
-            - NRF_FQDN=oai-nrf
-            - USE_LOCAL_SUBSCRIPTION_INFO=yes
-            - REGISTER_NRF=yes
-            - DISCOVER_UPF=yes
-            - USE_FQDN_DNS=yes
-            - UE_MTU=1500
-            # Slice 0 (1, 0xFFFFFF)
-            - DNN_NI0=oai
-            - TYPE0=IPv4
-            - DNN_RANGE0=12.1.1.2 - 12.1.1.254
-            - NSSAI_SST0=1
-            - SESSION_AMBR_UL0=10Gbps
-            - SESSION_AMBR_DL0=10Gbps
-            # Slice 1 (1, 0xFFFFFF)
-            - DNN_NI1=openairinterface
-            - TYPE1=IPv4v6
-            - DNN_RANGE1=12.1.2.2 - 12.1.2.254
-            - NSSAI_SST1=1
-            - SESSION_AMBR_UL1=10Gbps
-            - SESSION_AMBR_DL1=10Gbps
-            # Slice 2 for ims
-            - DNN_NI2=ims
-            - TYPE2=IPv4v6
-            - DNN_RANGE2=12.1.9.2 - 12.1.9.254
-            - NSSAI_SST2=1
-            - SESSION_AMBR_UL2=10Gbps
-            - SESSION_AMBR_DL2=10Gbps
-            # IMS server
-            - DEFAULT_CSCF_IPV4_ADDRESS=192.168.70.139
-        depends_on:
-            - oai-nrf
-            - oai-amf
-        networks:
-            public_net:
-                ipv4_address: 192.168.70.133
-    oai-spgwu-tiny:
-        container_name: "oai-spgwu-tiny"
-        image: oaisoftwarealliance/oai-spgwu-tiny:v1.5.1
-        environment:
-            - TZ=Europe/Paris
-            - SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP=eth0
-            - SGW_INTERFACE_NAME_FOR_SX=eth0
-            - PGW_INTERFACE_NAME_FOR_SGI=eth0
-            - NETWORK_UE_NAT_OPTION=yes
-            - NETWORK_UE_IP=12.1.0.0/16
-            - ENABLE_5G_FEATURES=yes
-            - REGISTER_NRF=yes
-            - USE_FQDN_NRF=yes
-            - UPF_FQDN_5G=oai-spgwu-tiny
-            - NRF_IPV4_ADDRESS=192.168.70.130
-            - NRF_FQDN=oai-nrf
-            # Slice 0 (1, 0xFFFFFF)
-            - NSSAI_SST_0=1
-            - DNN_0=oai
-            # Slice 1 (1, 0xFFFFFF)
-            - NSSAI_SST_1=1
-            - DNN_1=openairinterface
-            # Slice 2 (1, 0xFFFFFF)
-            - NSSAI_SST_2=1
-            - DNN_2=ims
-        depends_on:
-            - oai-nrf
-            - oai-smf
-        cap_add:
-            - NET_ADMIN
-            - SYS_ADMIN
-        cap_drop:
-            - ALL
-        privileged: true
-        networks:
-            public_net:
-                ipv4_address: 192.168.70.134
-    oai-ext-dn:
-        image: oaisoftwarealliance/trf-gen-cn5g:latest
-        privileged: true
-        container_name: oai-ext-dn
-        entrypoint: /bin/bash -c \
-              "ip route add 12.1.0.0/16 via 192.168.70.134 dev eth0; sleep infinity"
-        depends_on:
-            - oai-spgwu-tiny
-        healthcheck:
-            test: /bin/bash -c "ip r | grep 12.1.0"
-            interval: 10s
-            timeout: 5s
-            retries: 5
-        networks:
-            public_net:
-                ipv4_address: 192.168.70.135
-networks:
-    public_net:
-        driver: bridge
-        name: demo-oai-public-net
-        ipam:
-            config:
-                - subnet: 192.168.70.128/26
-        driver_opts:
-            com.docker.network.bridge.name: "demo-oai"
-- 
GitLab