From 1ce66af03d8f30b81dfd3d20ec541d02cd102f1c Mon Sep 17 00:00:00 2001
From: Raphael Defosseux <raphael.defosseux@eurecom.fr>
Date: Fri, 5 May 2023 14:59:21 +0200
Subject: [PATCH] chore(tutorial): porting UL/CL deployment to HTTP/2

Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
---
 .../docker-compose-basic-vpp-pcf-ulcl.yaml    | 151 +++++++++---------
 1 file changed, 73 insertions(+), 78 deletions(-)

diff --git a/docker-compose/docker-compose-basic-vpp-pcf-ulcl.yaml b/docker-compose/docker-compose-basic-vpp-pcf-ulcl.yaml
index b0ed2dea..f3c2c050 100644
--- a/docker-compose/docker-compose-basic-vpp-pcf-ulcl.yaml
+++ b/docker-compose/docker-compose-basic-vpp-pcf-ulcl.yaml
@@ -23,15 +23,13 @@ services:
     oai-udr:
         container_name: "oai-udr"
         image: oaisoftwarealliance/oai-udr:develop
+        expose:
+            - 80/tcp
+            - 8080/tcp
         environment:
             - TZ=Europe/Paris
-            - INSTANCE=0
-            - PID_DIRECTORY=/var/run
             - UDR_NAME=OAI_UDR
             - UDR_INTERFACE_NAME_FOR_NUDR=eth0
-            - UDR_INTERFACE_PORT_FOR_NUDR=80
-            - UDR_INTERFACE_HTTP2_PORT_FOR_NUDR=8080
-            - UDR_API_VERSION=v1
             - MYSQL_IPV4_ADDRESS=192.168.70.131
             - MYSQL_USER=test
             - MYSQL_PASS=test
@@ -40,9 +38,9 @@ services:
             - USE_FQDN_DNS=yes
             - REGISTER_NRF=yes
             - NRF_IPV4_ADDRESS=192.168.70.130
-            - NRF_PORT=80
-            - NRF_API_VERSION=v1
             - NRF_FQDN=oai-nrf
+            # change for HTTP2
+            - USE_HTTP2=yes
         depends_on:
             - mysql
             - oai-nrf
@@ -52,24 +50,23 @@ services:
     oai-udm:
         container_name: "oai-udm"
         image: oaisoftwarealliance/oai-udm:develop
+        expose:
+            - 80/tcp
+            - 8080/tcp
         environment:
             - TZ=Europe/Paris
-            - INSTANCE=0
-            - PID_DIRECTORY=/var/run
             - UDM_NAME=OAI_UDM
             - SBI_IF_NAME=eth0
-            - SBI_PORT=80
-            - UDM_VERSION_NB=v1
+            - REGISTER_NRF=yes
             - USE_FQDN_DNS=yes
             - UDR_IP_ADDRESS=192.168.70.136
-            - UDR_PORT=80
-            - UDR_VERSION_NB=v1
+            - UDR_PORT=8080
             - UDR_FQDN=oai-udr
-            - REGISTER_NRF=yes
             - NRF_IPV4_ADDRESS=192.168.70.130
-            - NRF_PORT=80
-            - NRF_API_VERSION=v1
+            - NRF_PORT=8080
             - NRF_FQDN=oai-nrf
+            # change for HTTP2
+            - USE_HTTP2=yes
         depends_on:
             - oai-udr
         networks:
@@ -78,23 +75,23 @@ services:
     oai-ausf:
         container_name: "oai-ausf"
         image: oaisoftwarealliance/oai-ausf:develop
+        expose:
+            - 80/tcp
+            - 8080/tcp
         environment:
             - TZ=Europe/Paris
-            - INSTANCE_ID=0
-            - PID_DIR=/var/run
             - AUSF_NAME=OAI_AUSF
             - SBI_IF_NAME=eth0
-            - SBI_PORT=80
             - USE_FQDN_DNS=yes
+            - REGISTER_NRF=yes
             - UDM_IP_ADDRESS=192.168.70.137
-            - UDM_PORT=80
-            - UDM_VERSION_NB=v1
+            - UDM_PORT=8080
             - UDM_FQDN=oai-udm
-            - REGISTER_NRF=yes
             - NRF_IPV4_ADDRESS=192.168.70.130
-            - NRF_PORT=80
-            - NRF_API_VERSION=v1
+            - NRF_PORT=8080
             - NRF_FQDN=oai-nrf
+            #change for HTTP2
+            - USE_HTTP2=yes
         depends_on:
             - oai-udm
         networks:
@@ -103,23 +100,25 @@ services:
     oai-nrf:
         container_name: "oai-nrf"
         image: oaisoftwarealliance/oai-nrf:develop
+        expose:
+            - 80/tcp
+            - 8080/tcp
         environment:
+            - TZ=Europe/Paris
             - NRF_INTERFACE_NAME_FOR_SBI=eth0
-            - NRF_INTERFACE_PORT_FOR_SBI=80
-            - NRF_INTERFACE_HTTP2_PORT_FOR_SBI=9090
-            - NRF_API_VERSION=v1
-            - INSTANCE=0
-            - PID_DIRECTORY=/var/run
+            - NRF_INTERFACE_HTTP2_PORT_FOR_SBI=8080
         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
         environment:
             - TZ=Europe/Paris
-            - INSTANCE=0
-            - PID_DIRECTORY=/var/run
             - MCC=208
             - MNC=95
             - REGION_ID=128
@@ -135,46 +134,37 @@ services:
             - PLMN_SUPPORT_MCC=208
             - PLMN_SUPPORT_MNC=95
             - PLMN_SUPPORT_TAC=0xa000
+            # Slice 0 (222, 123)
             - SST_0=222
             - SD_0=123
+            # Slice 0 (128, 12)
             - SST_1=128
             - SD_1=12
             - 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
             - SMF_HTTP_VERSION_0=v1
             - SELECTED_0=true
-            - SMF_INSTANCE_ID_1=2
-            - SMF_FQDN_1=oai-smf
-            - SMF_IPV4_ADDR_1=0.0.0.0
-            - SMF_HTTP_VERSION_1=v1
-            - SELECTED_1=false
-            - MYSQL_SERVER=192.168.70.131
-            - MYSQL_USER=root
-            - MYSQL_PASS=linux
-            - MYSQL_DB=oai_db
-            - NRF_IPV4_ADDRESS=192.168.70.130
-            - NRF_PORT=80
-            - EXTERNAL_NRF=yes
             - NF_REGISTRATION=yes
             - SMF_SELECTION=yes
             - USE_FQDN_DNS=yes
             - EXTERNAL_AUSF=yes
             - EXTERNAL_UDM=no
             - EXTERNAL_NSSF=no
-            - USE_HTTP2=no
-            - NRF_API_VERSION=v1
+            - NRF_IPV4_ADDRESS=192.168.70.130
+            - NRF_PORT=8080
             - NRF_FQDN=oai-nrf
             - AUSF_IPV4_ADDRESS=192.168.70.138
-            - AUSF_PORT=80
-            - AUSF_API_VERSION=v1
+            - AUSF_PORT=8080
             - AUSF_FQDN=oai-ausf
             - UDM_IPV4_ADDRESS=192.168.70.137
-            - UDM_PORT=80
-            - UDM_API_VERSION=v2
+            - UDM_PORT=8080
             - UDM_FQDN=oai-udm
+            #change for HTTP2
+            - USE_HTTP2=yes
         depends_on:
             - mysql
             - vpp-upf-ulcl
@@ -189,49 +179,48 @@ services:
     oai-smf:
         container_name: "oai-smf"
         image: oaisoftwarealliance/oai-smf:develop
+        expose:
+            - 80/tcp
+            - 8080/tcp
+            - 8805/udp
         environment:
             - TZ=Europe/Paris
-            - INSTANCE=0
-            - PID_DIRECTORY=/var/run
             - SMF_INTERFACE_NAME_FOR_N4=eth0
             - SMF_INTERFACE_NAME_FOR_SBI=eth0
-            - SMF_INTERFACE_PORT_FOR_SBI=80
-            - SMF_INTERFACE_HTTP2_PORT_FOR_SBI=9090
-            - SMF_API_VERSION=v1
             - DEFAULT_DNS_IPV4_ADDRESS=172.21.3.100
             - DEFAULT_DNS_SEC_IPV4_ADDRESS=8.8.8.8
             - AMF_IPV4_ADDRESS=192.168.70.132
-            - AMF_PORT=80
-            - AMF_API_VERSION=v1
+            - AMF_PORT=8080
             - AMF_FQDN=oai-amf
             - UDM_IPV4_ADDRESS=192.168.70.137
-            - UDM_PORT=80
-            - UDM_API_VERSION=v2
+            - UDM_PORT=8080
             - UDM_FQDN=oai-udm
             - UPF_IPV4_ADDRESS=192.168.70.201
             - UPF_FQDN_0=ulcl.node.5gcn.mnc95.mcc208.3gppnetwork.org
             - NRF_IPV4_ADDRESS=192.168.70.130
-            - NRF_PORT=80
-            - NRF_API_VERSION=v1
+            - NRF_PORT=8080
+            - NRF_FQDN=oai-nrf
             - PCF_FQDN=oai-pcf
             - PCF_IPV4_ADDRESS=192.168.70.139
-            - PCF_PORT=80
+            - PCF_PORT=8080
             - DEFAULT_CSCF_IPV4_ADDRESS=127.0.0.1  # only needed when ims is being used
             - USE_LOCAL_SUBSCRIPTION_INFO=yes  #Set to yes if SMF uses local subscription information instead of from an UDM
             - USE_LOCAL_PCC_RULES=no  #Set to yes if SMF uses local PCC rules instead of from a PCF
-            - NRF_FQDN=oai-nrf
             - REGISTER_NRF=yes
             - DISCOVER_UPF=yes
             - DISCOVER_PCF=no
             - USE_FQDN_DNS=no # Issue with PCF DNS resolving
             - ENABLE_USAGE_REPORTING=yes
+            #change for HTTP2
+            - HTTP_VERSION=2
+            # Slice 0 (1, 0xFFFFFF)
             - DNN_NI0=oai
             - TYPE0=IPv4
             - DNN_RANGE0=12.1.1.151 - 12.1.1.253
             - NSSAI_SST0=1
-            - NSSAI_SD0=0xFFFFFF
             - SESSION_AMBR_UL0=200Mbps
             - SESSION_AMBR_DL0=400Mbps
+            # Slice 1 (1, 1)
             - DNN_NI1=oai.ipv4
             - TYPE1=IPv4
             - DNN_RANGE1=12.1.1.51 - 12.1.1.150
@@ -239,6 +228,7 @@ services:
             - NSSAI_SD1=1
             - SESSION_AMBR_UL1=100Mbps
             - SESSION_AMBR_DL1=200Mbps
+            # Slice 2 (222, 123)
             - DNN_NI2=default
             - TYPE2=IPv4
             - DNN_RANGE2=12.1.1.2 - 12.1.1.50
@@ -246,6 +236,7 @@ services:
             - NSSAI_SD2=123
             - SESSION_AMBR_UL2=50Mbps
             - SESSION_AMBR_DL2=100Mbps
+            # Slice 3 for ims
             - DNN_NI3=ims
             - TYPE3=IPv4v6
             - DNN_RANGE3=14.1.1.2 - 14.1.1.253
@@ -260,20 +251,21 @@ services:
             public_net:
                 ipv4_address: 192.168.70.133
     oai-pcf:
-        image: oaisoftwarealliance/oai-pcf:develop
         container_name: "oai-pcf"
+        image: oaisoftwarealliance/oai-pcf:develop
+        expose:
+            - 80/tcp
+            - 8080/tcp
         environment:
             - PCF_NAME=OAI-PCF
             - SBI_IF_NAME=eth0
-            - SBI_PORT_HTTP1=80
-            - SBI_PORT_HTTP2=9090
-            - SBI_API_VERSION=v1
-            - SBI_HTTP_VERSION=1
+            - SBI_PORT_HTTP2=8080
+            #change for HTTP2
+            - SBI_HTTP_VERSION=2
             - REGISTER_NRF=yes
-            - CLIENT_HTTP_VERSION=1
+            - CLIENT_HTTP_VERSION=2
             - NRF_HOST=oai-nrf
-            - NRF_PORT=80
-            - NRF_API_VERSION=v1
+            - NRF_PORT=8080
             - POLICY_DECISIONS_DIR=/openair-pcf/policies/policy_decisions
             - PCC_RULES_DIR=/openair-pcf/policies/pcc_rules
             - TRAFFIC_RULES_DIR=/openair-pcf/policies/traffic_rules
@@ -285,9 +277,9 @@ services:
             public_net:
                 ipv4_address: 192.168.70.139
     vpp-upf-ulcl:
+        container_name: "vpp-upf-ulcl"
         image: oaisoftwarealliance/oai-upf-vpp:develop
         privileged: true
-        container_name: "vpp-upf-ulcl"
         environment:
             - IF_1_IP=192.168.70.201
             - IF_1_TYPE=N4
@@ -316,8 +308,9 @@ services:
             - DNN=default
             - REGISTER_NRF=yes
             - NRF_IP_ADDR=192.168.70.130
-            - NRF_PORT=80
-            - HTTP_VERSION=1
+            #change for HTTP2
+            - NRF_PORT=8080
+            - HTTP_VERSION=2
         depends_on:
             - oai-nrf
         healthcheck:
@@ -363,8 +356,9 @@ services:
             - DNN=default
             - REGISTER_NRF=yes
             - NRF_IP_ADDR=192.168.70.130
-            - NRF_PORT=80
-            - HTTP_VERSION=1
+            #change for HTTP2
+            - NRF_PORT=8080
+            - HTTP_VERSION=2
         depends_on:
             - oai-nrf
         healthcheck:
@@ -408,8 +402,9 @@ services:
             - DNN=default
             - REGISTER_NRF=yes
             - NRF_IP_ADDR=192.168.70.130
-            - NRF_PORT=80
-            - HTTP_VERSION=1
+            #change for HTTP2
+            - NRF_PORT=8080
+            - HTTP_VERSION=2
         depends_on:
             - oai-nrf
         healthcheck:
-- 
GitLab