Commit f1d080d3 authored by Raphael Defosseux's avatar Raphael Defosseux Committed by Jaroslava Fiedlerova

chore(ci): updating 5G rfsimulator scenarios to release v2.0

Signed-off-by: default avatarRaphael Defosseux <raphael.defosseux@eurecom.fr>
parent 2f10ce6d
...@@ -46,8 +46,8 @@ ...@@ -46,8 +46,8 @@
<class>DeployGenObject</class> <class>DeployGenObject</class>
<desc>Deploy OAI 5G CoreNetwork</desc> <desc>Deploy OAI 5G CoreNetwork</desc>
<yaml_path>yaml_files/5g_rfsimulator_e1</yaml_path> <yaml_path>yaml_files/5g_rfsimulator_e1</yaml_path>
<services>mysql oai-nrf oai-amf oai-smf oai-spgwu</services> <services>mysql oai-amf oai-smf oai-upf</services>
<nb_healthy>5</nb_healthy> <nb_healthy>4</nb_healthy>
</testCase> </testCase>
<testCase id="000022"> <testCase id="000022">
...@@ -55,7 +55,7 @@ ...@@ -55,7 +55,7 @@
<desc>Deploy OAI 5G RAN RF sim SA (1 CU-CP, 3 CU-UPs, 3 DUs)</desc> <desc>Deploy OAI 5G RAN RF sim SA (1 CU-CP, 3 CU-UPs, 3 DUs)</desc>
<yaml_path>yaml_files/5g_rfsimulator_e1</yaml_path> <yaml_path>yaml_files/5g_rfsimulator_e1</yaml_path>
<services>oai-cucp oai-cuup oai-cuup2 oai-cuup3 oai-du oai-du2 oai-du3</services> <services>oai-cucp oai-cuup oai-cuup2 oai-cuup3 oai-du oai-du2 oai-du3</services>
<nb_healthy>12</nb_healthy> <nb_healthy>11</nb_healthy>
</testCase> </testCase>
<testCase id="000023"> <testCase id="000023">
...@@ -63,7 +63,7 @@ ...@@ -63,7 +63,7 @@
<desc>Deploy OAI 5G NR-UE RF sim SA</desc> <desc>Deploy OAI 5G NR-UE RF sim SA</desc>
<yaml_path>yaml_files/5g_rfsimulator_e1</yaml_path> <yaml_path>yaml_files/5g_rfsimulator_e1</yaml_path>
<services>oai-nr-ue oai-nr-ue2 oai-nr-ue3</services> <services>oai-nr-ue oai-nr-ue2 oai-nr-ue3</services>
<nb_healthy>15</nb_healthy> <nb_healthy>14</nb_healthy>
</testCase> </testCase>
<testCase id="020021"> <testCase id="020021">
......
...@@ -47,8 +47,8 @@ ...@@ -47,8 +47,8 @@
<class>DeployGenObject</class> <class>DeployGenObject</class>
<desc>Deploy OAI 5G CoreNetwork</desc> <desc>Deploy OAI 5G CoreNetwork</desc>
<yaml_path>yaml_files/5g_f1_rfsimulator</yaml_path> <yaml_path>yaml_files/5g_f1_rfsimulator</yaml_path>
<services>mysql oai-nrf oai-amf oai-smf oai-spgwu oai-ext-dn</services> <services>mysql oai-amf oai-smf oai-upf oai-ext-dn</services>
<nb_healthy>6</nb_healthy> <nb_healthy>5</nb_healthy>
</testCase> </testCase>
<testCase id="000022"> <testCase id="000022">
...@@ -56,7 +56,7 @@ ...@@ -56,7 +56,7 @@
<desc>Deploy OAI 5G CU+DU+UE RF sim SA</desc> <desc>Deploy OAI 5G CU+DU+UE RF sim SA</desc>
<yaml_path>yaml_files/5g_f1_rfsimulator</yaml_path> <yaml_path>yaml_files/5g_f1_rfsimulator</yaml_path>
<services>oai-cu oai-du oai-nr-ue</services> <services>oai-cu oai-du oai-nr-ue</services>
<nb_healthy>9</nb_healthy> <nb_healthy>8</nb_healthy>
</testCase> </testCase>
<testCase id="020021"> <testCase id="020021">
......
...@@ -59,8 +59,8 @@ ...@@ -59,8 +59,8 @@
<class>DeployGenObject</class> <class>DeployGenObject</class>
<desc>Deploy OAI 5G CoreNetwork</desc> <desc>Deploy OAI 5G CoreNetwork</desc>
<yaml_path>yaml_files/5g_fdd_rfsimulator</yaml_path> <yaml_path>yaml_files/5g_fdd_rfsimulator</yaml_path>
<services>oai-nrf oai-amf oai-smf oai-spgwu oai-ext-dn</services> <services>oai-amf oai-smf oai-upf oai-ext-dn</services>
<nb_healthy>6</nb_healthy> <nb_healthy>5</nb_healthy>
</testCase> </testCase>
<testCase id="000012"> <testCase id="000012">
...@@ -68,7 +68,7 @@ ...@@ -68,7 +68,7 @@
<desc>Deploy OAI 5G gNB RF sim SA</desc> <desc>Deploy OAI 5G gNB RF sim SA</desc>
<yaml_path>yaml_files/5g_fdd_rfsimulator</yaml_path> <yaml_path>yaml_files/5g_fdd_rfsimulator</yaml_path>
<services>oai-gnb</services> <services>oai-gnb</services>
<nb_healthy>7</nb_healthy> <nb_healthy>6</nb_healthy>
</testCase> </testCase>
<testCase id="000013"> <testCase id="000013">
...@@ -76,7 +76,7 @@ ...@@ -76,7 +76,7 @@
<desc>Deploy OAI 5G NR-UE RF sim SA</desc> <desc>Deploy OAI 5G NR-UE RF sim SA</desc>
<yaml_path>yaml_files/5g_fdd_rfsimulator</yaml_path> <yaml_path>yaml_files/5g_fdd_rfsimulator</yaml_path>
<services>oai-nr-ue</services> <services>oai-nr-ue</services>
<nb_healthy>8</nb_healthy> <nb_healthy>7</nb_healthy>
</testCase> </testCase>
<testCase id="020011"> <testCase id="020011">
......
...@@ -65,8 +65,8 @@ ...@@ -65,8 +65,8 @@
<class>DeployGenObject</class> <class>DeployGenObject</class>
<desc>Deploy OAI 5G CoreNetwork</desc> <desc>Deploy OAI 5G CoreNetwork</desc>
<yaml_path>yaml_files/5g_rfsimulator</yaml_path> <yaml_path>yaml_files/5g_rfsimulator</yaml_path>
<services>mysql oai-nrf oai-amf oai-smf oai-spgwu oai-ext-dn</services> <services>mysql oai-amf oai-smf oai-upf oai-ext-dn</services>
<nb_healthy>6</nb_healthy> <nb_healthy>5</nb_healthy>
</testCase> </testCase>
<testCase id="000002"> <testCase id="000002">
...@@ -74,7 +74,7 @@ ...@@ -74,7 +74,7 @@
<desc>Deploy OAI 5G gNB RF sim SA</desc> <desc>Deploy OAI 5G gNB RF sim SA</desc>
<yaml_path>yaml_files/5g_rfsimulator</yaml_path> <yaml_path>yaml_files/5g_rfsimulator</yaml_path>
<services>oai-gnb</services> <services>oai-gnb</services>
<nb_healthy>7</nb_healthy> <nb_healthy>6</nb_healthy>
</testCase> </testCase>
<testCase id="000003"> <testCase id="000003">
...@@ -82,7 +82,7 @@ ...@@ -82,7 +82,7 @@
<desc>Deploy OAI 5G NR-UE RF sim SA</desc> <desc>Deploy OAI 5G NR-UE RF sim SA</desc>
<yaml_path>yaml_files/5g_rfsimulator</yaml_path> <yaml_path>yaml_files/5g_rfsimulator</yaml_path>
<services>oai-nr-ue</services> <services>oai-nr-ue</services>
<nb_healthy>8</nb_healthy> <nb_healthy>7</nb_healthy>
</testCase> </testCase>
<testCase id="000004"> <testCase id="000004">
...@@ -90,7 +90,7 @@ ...@@ -90,7 +90,7 @@
<desc>Deploy Second OAI 5G NR-UE RF sim SA</desc> <desc>Deploy Second OAI 5G NR-UE RF sim SA</desc>
<yaml_path>yaml_files/5g_rfsimulator</yaml_path> <yaml_path>yaml_files/5g_rfsimulator</yaml_path>
<services>oai-nr-ue2</services> <services>oai-nr-ue2</services>
<nb_healthy>9</nb_healthy> <nb_healthy>8</nb_healthy>
</testCase> </testCase>
<testCase id="000005"> <testCase id="000005">
...@@ -98,7 +98,7 @@ ...@@ -98,7 +98,7 @@
<desc>Deploy OAI 5G NR-UEs (#3, #4, #5) RF sim SA</desc> <desc>Deploy OAI 5G NR-UEs (#3, #4, #5) RF sim SA</desc>
<yaml_path>yaml_files/5g_rfsimulator</yaml_path> <yaml_path>yaml_files/5g_rfsimulator</yaml_path>
<services>oai-nr-ue3 oai-nr-ue4 oai-nr-ue5</services> <services>oai-nr-ue3 oai-nr-ue4 oai-nr-ue5</services>
<nb_healthy>12</nb_healthy> <nb_healthy>11</nb_healthy>
</testCase> </testCase>
<testCase id="000006"> <testCase id="000006">
...@@ -106,7 +106,7 @@ ...@@ -106,7 +106,7 @@
<desc>Deploy OAI 5G NR-UEs (#6, #7, #8) RF sim SA</desc> <desc>Deploy OAI 5G NR-UEs (#6, #7, #8) RF sim SA</desc>
<yaml_path>yaml_files/5g_rfsimulator</yaml_path> <yaml_path>yaml_files/5g_rfsimulator</yaml_path>
<services>oai-nr-ue6 oai-nr-ue7 oai-nr-ue8</services> <services>oai-nr-ue6 oai-nr-ue7 oai-nr-ue8</services>
<nb_healthy>15</nb_healthy> <nb_healthy>14</nb_healthy>
</testCase> </testCase>
<testCase id="000007"> <testCase id="000007">
...@@ -114,7 +114,7 @@ ...@@ -114,7 +114,7 @@
<desc>Deploy OAI 5G NR-UEs (#9, #10) RF sim SA</desc> <desc>Deploy OAI 5G NR-UEs (#9, #10) RF sim SA</desc>
<yaml_path>yaml_files/5g_rfsimulator</yaml_path> <yaml_path>yaml_files/5g_rfsimulator</yaml_path>
<services>oai-nr-ue9 oai-nr-ue10</services> <services>oai-nr-ue9 oai-nr-ue10</services>
<nb_healthy>17</nb_healthy> <nb_healthy>16</nb_healthy>
</testCase> </testCase>
<testCase id="000008"> <testCase id="000008">
......
...@@ -59,8 +59,8 @@ ...@@ -59,8 +59,8 @@
<class>DeployGenObject</class> <class>DeployGenObject</class>
<desc>Deploy OAI 5G CoreNetwork</desc> <desc>Deploy OAI 5G CoreNetwork</desc>
<yaml_path>yaml_files/5g_rfsimulator_24prb</yaml_path> <yaml_path>yaml_files/5g_rfsimulator_24prb</yaml_path>
<services>oai-nrf oai-amf oai-smf oai-spgwu oai-ext-dn</services> <services>oai-amf oai-smf oai-upf oai-ext-dn</services>
<nb_healthy>6</nb_healthy> <nb_healthy>5</nb_healthy>
</testCase> </testCase>
<testCase id="000002"> <testCase id="000002">
...@@ -68,7 +68,7 @@ ...@@ -68,7 +68,7 @@
<desc>Deploy OAI 5G gNB RF sim SA</desc> <desc>Deploy OAI 5G gNB RF sim SA</desc>
<yaml_path>yaml_files/5g_rfsimulator_24prb</yaml_path> <yaml_path>yaml_files/5g_rfsimulator_24prb</yaml_path>
<services>oai-gnb</services> <services>oai-gnb</services>
<nb_healthy>7</nb_healthy> <nb_healthy>6</nb_healthy>
</testCase> </testCase>
<testCase id="000003"> <testCase id="000003">
...@@ -76,7 +76,7 @@ ...@@ -76,7 +76,7 @@
<desc>Deploy OAI 5G NR-UE RF sim SA</desc> <desc>Deploy OAI 5G NR-UE RF sim SA</desc>
<yaml_path>yaml_files/5g_rfsimulator_24prb</yaml_path> <yaml_path>yaml_files/5g_rfsimulator_24prb</yaml_path>
<services>oai-nr-ue</services> <services>oai-nr-ue</services>
<nb_healthy>8</nb_healthy> <nb_healthy>7</nb_healthy>
</testCase> </testCase>
<testCase id="020001"> <testCase id="020001">
......
...@@ -59,8 +59,8 @@ ...@@ -59,8 +59,8 @@
<class>DeployGenObject</class> <class>DeployGenObject</class>
<desc>Deploy OAI 5G CoreNetwork</desc> <desc>Deploy OAI 5G CoreNetwork</desc>
<yaml_path>yaml_files/5g_rfsimulator_2x2</yaml_path> <yaml_path>yaml_files/5g_rfsimulator_2x2</yaml_path>
<services>oai-nrf oai-amf oai-smf oai-spgwu oai-ext-dn</services> <services>oai-amf oai-smf oai-upf oai-ext-dn</services>
<nb_healthy>6</nb_healthy> <nb_healthy>5</nb_healthy>
</testCase> </testCase>
<testCase id="000002"> <testCase id="000002">
...@@ -68,7 +68,7 @@ ...@@ -68,7 +68,7 @@
<desc>Deploy OAI 5G gNB RF sim SA</desc> <desc>Deploy OAI 5G gNB RF sim SA</desc>
<yaml_path>yaml_files/5g_rfsimulator_2x2</yaml_path> <yaml_path>yaml_files/5g_rfsimulator_2x2</yaml_path>
<services>oai-gnb</services> <services>oai-gnb</services>
<nb_healthy>7</nb_healthy> <nb_healthy>6</nb_healthy>
</testCase> </testCase>
<testCase id="000003"> <testCase id="000003">
...@@ -76,7 +76,7 @@ ...@@ -76,7 +76,7 @@
<desc>Deploy OAI 5G NR-UE RF sim SA</desc> <desc>Deploy OAI 5G NR-UE RF sim SA</desc>
<yaml_path>yaml_files/5g_rfsimulator_2x2</yaml_path> <yaml_path>yaml_files/5g_rfsimulator_2x2</yaml_path>
<services>oai-nr-ue</services> <services>oai-nr-ue</services>
<nb_healthy>8</nb_healthy> <nb_healthy>7</nb_healthy>
</testCase> </testCase>
<testCase id="020001"> <testCase id="020001">
......
...@@ -59,8 +59,8 @@ ...@@ -59,8 +59,8 @@
<class>DeployGenObject</class> <class>DeployGenObject</class>
<desc>Deploy OAI 5G CoreNetwork</desc> <desc>Deploy OAI 5G CoreNetwork</desc>
<yaml_path>yaml_files/5g_rfsimulator_u0_25prb</yaml_path> <yaml_path>yaml_files/5g_rfsimulator_u0_25prb</yaml_path>
<services>oai-nrf oai-amf oai-smf oai-spgwu oai-ext-dn</services> <services>oai-amf oai-smf oai-upf oai-ext-dn</services>
<nb_healthy>6</nb_healthy> <nb_healthy>5</nb_healthy>
</testCase> </testCase>
<testCase id="000002"> <testCase id="000002">
...@@ -68,7 +68,7 @@ ...@@ -68,7 +68,7 @@
<desc>Deploy OAI 5G gNB RF sim SA</desc> <desc>Deploy OAI 5G gNB RF sim SA</desc>
<yaml_path>yaml_files/5g_rfsimulator_u0_25prb</yaml_path> <yaml_path>yaml_files/5g_rfsimulator_u0_25prb</yaml_path>
<services>oai-gnb</services> <services>oai-gnb</services>
<nb_healthy>7</nb_healthy> <nb_healthy>6</nb_healthy>
</testCase> </testCase>
<testCase id="000003"> <testCase id="000003">
...@@ -76,7 +76,7 @@ ...@@ -76,7 +76,7 @@
<desc>Deploy OAI 5G NR-UE RF sim SA</desc> <desc>Deploy OAI 5G NR-UE RF sim SA</desc>
<yaml_path>yaml_files/5g_rfsimulator_u0_25prb</yaml_path> <yaml_path>yaml_files/5g_rfsimulator_u0_25prb</yaml_path>
<services>oai-nr-ue</services> <services>oai-nr-ue</services>
<nb_healthy>8</nb_healthy> <nb_healthy>7</nb_healthy>
</testCase> </testCase>
<testCase id="020001"> <testCase id="020001">
......
#!/bin/bash
set -eo pipefail
STATUS=0
AMF_PORT_FOR_NGAP=38412
AMF_PORT_FOR_N11_HTTP=80
AMF_IP_NGAP_INTERFACE=$(ifconfig $AMF_INTERFACE_NAME_FOR_NGAP | grep inet | awk {'print $2'})
AMF_IP_N11_INTERFACE=$(ifconfig $AMF_INTERFACE_NAME_FOR_N11 | grep inet | awk {'print $2'})
N2_PORT_STATUS=$(netstat -Snpl | grep -o "$AMF_IP_NGAP_INTERFACE:$AMF_PORT_FOR_NGAP")
N11_PORT_STATUS=$(netstat -tnpl | grep -o "$AMF_IP_N11_INTERFACE:$AMF_PORT_FOR_N11_HTTP")
#Check if entrypoint properly configured the conf file and no parameter is unset (optional)
NB_UNREPLACED_AT=`cat /openair-amf/etc/*.conf | grep -v contact@openairinterface.org | grep -c @ || true`
if [ $NB_UNREPLACED_AT -ne 0 ]; then
STATUS=1
echo "Healthcheck error: configuration file is not configured properly"
fi
if [[ -z $N2_PORT_STATUS ]]; then
STATUS=1
echo "Healthcheck error: N2 SCTP port $AMF_PORT_FOR_NGAP is not listening"
fi
if [[ -z $N11_PORT_STATUS ]]; then
STATUS=1
echo "Healthcheck error: N11/SBI TCP/HTTP port $AMF_PORT_FOR_N11_HTTP is not listening"
fi
#host="${MYSQL_SERVER}"
#user="${MYSQL_USER:-root}"
#export MYSQL_PWD="${MYSQL_PASS}"
#args=(
# -h"$host"
# -u"$user"
# --silent
#)
#if ! command -v mysql &> /dev/null; then
# echo "Installing mysql command"
# apt update
# apt-get -y install mysql-client
#else
# if select="$(echo 'SELECT 1' | mysql "${args[@]}")" && [ "$select" = '1' ]; then
# database_check=$(mysql -h$host -u$user -D oai_db --silent -e "SELECT * FROM users;")
# if [[ -z $database_check ]]; then
# echo "Healthcheck error: oai_db not populated"
# STATUS=1
# fi
# STATUS=0
# else
# echo "Healthcheck error: Mysql port inactive"
# STATUS=1
# fi
#fi
exit $STATUS
version: '3.8' version: '3.8'
services: services:
oai-nrf:
container_name: "rfsim5g-oai-nrf"
image: oaisoftwarealliance/oai-nrf:v1.5.0
environment:
- NRF_INTERFACE_NAME_FOR_SBI=eth0
- TZ=Europe/Paris
networks:
public_net:
ipv4_address: 192.168.71.130
mysql: mysql:
container_name: "rfsim5g-mysql" container_name: "rfsim5g-mysql"
image: mysql:8.0 image: mysql:8.0
volumes: volumes:
- ./oai_db.sql:/docker-entrypoint-initdb.d/oai_db.sql - ../5g_rfsimulator/oai_db.sql:/docker-entrypoint-initdb.d/oai_db.sql
- ./mysql-healthcheck.sh:/tmp/mysql-healthcheck.sh - ../5g_rfsimulator/mysql-healthcheck.sh:/tmp/mysql-healthcheck.sh
environment: environment:
- TZ=Europe/Paris - TZ=Europe/Paris
- MYSQL_DATABASE=oai_db - MYSQL_DATABASE=oai_db
...@@ -31,118 +22,36 @@ services: ...@@ -31,118 +22,36 @@ services:
ipv4_address: 192.168.71.131 ipv4_address: 192.168.71.131
oai-amf: oai-amf:
container_name: "rfsim5g-oai-amf" container_name: "rfsim5g-oai-amf"
image: oaisoftwarealliance/oai-amf:v1.5.0 image: oaisoftwarealliance/oai-amf:v2.0.0
environment: environment:
- TZ=Europe/paris - TZ=Europe/paris
- MCC=208 volumes:
- MNC=99 - ../5g_rfsimulator_e1/mini_nonrf_config_3slices.yaml:/openair-amf/etc/config.yaml
- REGION_ID=128
- AMF_SET_ID=1
- SERVED_GUAMI_MCC_0=208
- SERVED_GUAMI_MNC_0=99
- SERVED_GUAMI_REGION_ID_0=128
- SERVED_GUAMI_AMF_SET_ID_0=1
- SERVED_GUAMI_MCC_1=460
- SERVED_GUAMI_MNC_1=11
- SERVED_GUAMI_REGION_ID_1=10
- SERVED_GUAMI_AMF_SET_ID_1=1
- PLMN_SUPPORT_MCC=208
- PLMN_SUPPORT_MNC=99
- PLMN_SUPPORT_TAC=0x0001
# Three slices are defined
- SST_0=1
- SST_1=2
- SST_2=3
- 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.71.133
- SELECTED_0=true
# mysql definition in AMF is mandatory in mini deployment.
- MYSQL_SERVER=192.168.71.131
- MYSQL_USER=root
- MYSQL_PASS=linux
- MYSQL_DB=oai_db
# NF registration
- NRF_IPV4_ADDRESS=192.168.71.130
- NRF_FQDN=oai-nrf
- NF_REGISTRATION=yes
- SMF_SELECTION=yes
- USE_FQDN_DNS=yes
- USE_HTTP2=no
depends_on: depends_on:
- oai-nrf
- mysql - mysql
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.132 ipv4_address: 192.168.71.132
oai-smf: oai-smf:
container_name: "rfsim5g-oai-smf" container_name: "rfsim5g-oai-smf"
image: oaisoftwarealliance/oai-smf:v1.5.0 image: oaisoftwarealliance/oai-smf:v2.0.0
environment: environment:
- TZ=Europe/Paris - TZ=Europe/Paris
- SMF_INTERFACE_NAME_FOR_N4=eth0 volumes:
- SMF_INTERFACE_NAME_FOR_SBI=eth0 - ../5g_rfsimulator_e1/mini_nonrf_config_3slices.yaml:/openair-smf/etc/config.yaml
- DEFAULT_DNS_IPV4_ADDRESS=172.21.3.100
- DEFAULT_DNS_SEC_IPV4_ADDRESS=4.4.4.4
- AMF_IPV4_ADDRESS=192.168.71.132
- AMF_FQDN=oai-amf
- UPF_IPV4_ADDRESS=192.168.71.134
- UPF_FQDN_0=oai-spgwu
- NRF_IPV4_ADDRESS=192.168.71.130
- NRF_FQDN=oai-nrf
- REGISTER_NRF=yes
- DISCOVER_UPF=yes
- USE_FQDN_DNS=yes
- USE_LOCAL_SUBSCRIPTION_INFO=yes
- UE_MTU=1500
# Only one slice is defined (1, 0xFFFFFF)
- DNN_NI0=oai
- TYPE0=IPv4
- DNN_RANGE0=12.1.1.2 - 12.1.1.127
- NSSAI_SST0=1
- NSSAI_SST1=2
- NSSAI_SST2=3
- SESSION_AMBR_UL0=200Mbps
- SESSION_AMBR_DL0=400Mbps
- DEFAULT_CSCF_IPV4_ADDRESS=127.0.0.1
- ENABLE_USAGE_REPORTING=no
depends_on: depends_on:
- oai-nrf
- oai-amf - oai-amf
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.133 ipv4_address: 192.168.71.133
oai-spgwu: oai-upf:
container_name: "rfsim5g-oai-spgwu" container_name: "rfsim5g-oai-upf"
image: oaisoftwarealliance/oai-spgwu-tiny:v1.5.0 image: oaisoftwarealliance/oai-upf:v2.0.0
environment: environment:
- TZ=Europe/Paris - TZ=Europe/Paris
- SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP=eth0 volumes:
- SGW_INTERFACE_NAME_FOR_SX=eth0 - ../5g_rfsimulator_e1/mini_nonrf_config_3slices.yaml:/openair-upf/etc/config.yaml
- PGW_INTERFACE_NAME_FOR_SGI=eth0
- NETWORK_UE_NAT_OPTION=yes
- NETWORK_UE_IP=12.1.1.0/24
- ENABLE_5G_FEATURES=yes
- REGISTER_NRF=yes
- USE_FQDN_NRF=yes
- UPF_FQDN_5G=oai-spgwu
- NRF_IPV4_ADDRESS=192.168.71.130
- NRF_FQDN=oai-nrf
# Three slices are defined
- NSSAI_SST_0=1
- NSSAI_SD_0=0xffffff
- DNN_0=oai
- NSSAI_SST_1=2
- NSSAI_SD_1=0xffffff
- DNN_1=oai
- NSSAI_SST_2=3
- NSSAI_SD_2=0xffffff
- DNN_2=oai
depends_on: depends_on:
- oai-nrf
- oai-smf - oai-smf
cap_add: cap_add:
- NET_ADMIN - NET_ADMIN
...@@ -164,7 +73,7 @@ services: ...@@ -164,7 +73,7 @@ services:
"iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;"\ "iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;"\
"ip route add 12.1.1.0/24 via 192.168.72.134 dev eth0; sleep infinity" "ip route add 12.1.1.0/24 via 192.168.72.134 dev eth0; sleep infinity"
depends_on: depends_on:
- oai-spgwu - oai-upf
networks: networks:
traffic_net: traffic_net:
ipv4_address: 192.168.72.135 ipv4_address: 192.168.72.135
...@@ -248,7 +157,7 @@ networks: ...@@ -248,7 +157,7 @@ networks:
com.docker.network.bridge.name: "rfsim5g-public" com.docker.network.bridge.name: "rfsim5g-public"
traffic_net: traffic_net:
driver: bridge driver: bridge
name: rfsim5g-oai-traffic_net-net name: rfsim5g-oai-traffic-net
ipam: ipam:
config: config:
- subnet: 192.168.72.128/26 - subnet: 192.168.72.128/26
......
#!/bin/bash
set -eo pipefail
if [ "$MYSQL_ROOT_PASSWORD" ] && [ -z "$MYSQL_USER" ] && [ -z "$MYSQL_PASSWORD" ]; then
echo >&2 'Healthcheck error: cannot determine root password (and MYSQL_USER and MYSQL_PASSWORD were not set)'
exit 0
fi
host="$(hostname --ip-address || echo '127.0.0.1')"
user="${MYSQL_USER:-root}"
export MYSQL_PWD="${MYSQL_PASSWORD:-$MYSQL_ROOT_PASSWORD}"
args=(
# force mysql to not use the local "mysqld.sock" (test "external" connectivity)
-h"$host"
-u"$user"
--silent
)
STATUS=0
if command -v mysqladmin &> /dev/null; then
if mysqladmin "${args[@]}" ping > /dev/null; then
database_check=$(mysql -u$user -D oai_db --silent -e "SELECT * FROM users;")
if [[ -z $database_check ]]; then
echo "Healthcheck error: oai_db not populated"
STATUS=1
fi
STATUS=0
else
echo "Healthcheck error: Mysql port inactive"
STATUS=1
fi
else
if select="$(echo 'SELECT 1' | mysql "${args[@]}")" && [ "$select" = '1' ]; then
database_check=$(mysql -u$user -D oai_db --silent -e "SELECT * FROM users;")
if [[ -z $database_check ]]; then
echo "Healthcheck error: oai_db not populated"
STATUS=1
fi
STATUS=0
else
echo "Healthcheck error: Mysql port inactive"
STATUS=1
fi
fi
exit $STATUS
#!/bin/bash
set -eo pipefail
STATUS=0
NRF_IP_SBI_INTERFACE=$(ifconfig $NRF_INTERFACE_NAME_FOR_SBI | grep inet | awk {'print $2'})
NRF_SBI_PORT_STATUS=$(netstat -tnpl | grep -o "$NRF_IP_SBI_INTERFACE:$NRF_INTERFACE_PORT_FOR_SBI")
#Check if entrypoint properly configured the conf file and no parameter is unset(optional)
NB_UNREPLACED_AT=`cat /openair-nrf/etc/*.conf | grep -v contact@openairinterface.org | grep -c @ || true`
if [ $NB_UNREPLACED_AT -ne 0 ]; then
STATUS=1
echo "Healthcheck error: UNHEALTHY configuration file is not configured properly"
fi
if [[ -z $NRF_SBI_PORT_STATUS ]]; then
STATUS=1
echo "Healthcheck error: UNHEALTHY SBI TCP/HTTP port $NRF_INTERFACE_PORT_FOR_SBI is not listening."
fi
exit $STATUS
\ No newline at end of file
This diff is collapsed.
#!/bin/bash
set -eo pipefail
STATUS=0
SMF_IP_SBI_INTERFACE=$(ifconfig $SMF_INTERFACE_NAME_FOR_SBI | grep inet | awk {'print $2'})
SMF_SBI_PORT_STATUS=$(netstat -tnpl | grep -o "$SMF_IP_SBI_INTERFACE:$SMF_INTERFACE_PORT_FOR_SBI")
#Check if entrypoint properly configured the conf file and no parameter is unset(optional)
#NB_UNREPLACED_AT=`cat /openair-smf/etc/*.conf | grep -v contact@openairinterface.org | grep -c @ || true`
#if [ $NB_UNREPLACED_AT -ne 0 ]; then
# STATUS=-1
# echo "Healthcheck error: UNHEALTHY configuration file is not configured properly"
#fi
#
if [[ -z $SMF_SBI_PORT_STATUS ]]; then
STATUS=-1
echo "Healthcheck error: UNHEALTHY SBI TCP/HTTP port $SMF_INTERFACE_PORT_FOR_SBI is not listening."
fi
exit $STATUS
#!/bin/bash
set -eo pipefail
STATUS=0
SGW_PORT_FOR_S1U_S12_S4_UP=2152
SGW_PORT_FOR_SX=8805
SGW_IP_S1U_INTERFACE=$(ifconfig $SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP | grep inet | awk {'print $2'})
SGW_IP_SX_INTERFACE=$(ifconfig $SGW_INTERFACE_NAME_FOR_SX | grep inet | awk {'print $2'})
S1U_S12_S4_UP_PORT_STATUS=$(netstat -unpl | grep -o "$SGW_IP_S1U_INTERFACE:$SGW_PORT_FOR_S1U_S12_S4_UP")
SX_PORT_STATUS=$(netstat -unpl | grep -o "$SGW_IP_SX_INTERFACE:$SGW_PORT_FOR_SX")
#Check if entrypoint properly configured the conf file and no parameter is unset (optional)
NB_UNREPLACED_AT=`cat /openair-spgwu/etc/*.conf | grep -v contact@openairinterface.org | grep -c @ || true`
if [ $NB_UNREPLACED_AT -ne 0 ]; then
STATUS=1
echo "Healthcheck error: UNHEALTHY configuration file is not configured properly"
fi
if [[ -z $S1U_S12_S4_UP_PORT_STATUS ]]; then
STATUS=1
echo "Healthcheck error: UNHEALTHY S1U port $SGW_PORT_FOR_S1U_S12_S4_UP is not listening."
fi
if [[ -z $SX_PORT_STATUS ]]; then
STATUS=1
echo "Healthcheck error: UNHEALTHY SX port $SGW_PORT_FOR_SX is not listening."
fi
exit $STATUS
\ No newline at end of file
#!/bin/bash
set -eo pipefail
STATUS=0
AMF_PORT_FOR_NGAP=38412
AMF_PORT_FOR_N11_HTTP=80
AMF_IP_NGAP_INTERFACE=$(ifconfig $AMF_INTERFACE_NAME_FOR_NGAP | grep inet | awk {'print $2'})
AMF_IP_N11_INTERFACE=$(ifconfig $AMF_INTERFACE_NAME_FOR_N11 | grep inet | awk {'print $2'})
N2_PORT_STATUS=$(netstat -Snpl | grep -o "$AMF_IP_NGAP_INTERFACE:$AMF_PORT_FOR_NGAP")
N11_PORT_STATUS=$(netstat -tnpl | grep -o "$AMF_IP_N11_INTERFACE:$AMF_PORT_FOR_N11_HTTP")
#Check if entrypoint properly configured the conf file and no parameter is unset (optional)
NB_UNREPLACED_AT=`cat /openair-amf/etc/*.conf | grep -v contact@openairinterface.org | grep -c @ || true`
if [ $NB_UNREPLACED_AT -ne 0 ]; then
STATUS=1
echo "Healthcheck error: configuration file is not configured properly"
fi
if [[ -z $N2_PORT_STATUS ]]; then
STATUS=1
echo "Healthcheck error: N2 SCTP port $AMF_PORT_FOR_NGAP is not listening"
fi
if [[ -z $N11_PORT_STATUS ]]; then
STATUS=1
echo "Healthcheck error: N11/SBI TCP/HTTP port $AMF_PORT_FOR_N11_HTTP is not listening"
fi
#host="${MYSQL_SERVER}"
#user="${MYSQL_USER:-root}"
#export MYSQL_PWD="${MYSQL_PASS}"
#args=(
# -h"$host"
# -u"$user"
# --silent
#)
#if ! command -v mysql &> /dev/null; then
# echo "Installing mysql command"
# apt update
# apt-get -y install mysql-client
#else
# if select="$(echo 'SELECT 1' | mysql "${args[@]}")" && [ "$select" = '1' ]; then
# database_check=$(mysql -h$host -u$user -D oai_db --silent -e "SELECT * FROM users;")
# if [[ -z $database_check ]]; then
# echo "Healthcheck error: oai_db not populated"
# STATUS=1
# fi
# STATUS=0
# else
# echo "Healthcheck error: Mysql port inactive"
# STATUS=1
# fi
#fi
exit $STATUS
version: '3.8' version: '3.8'
services: services:
oai-nrf:
container_name: "rfsim5g-oai-nrf"
image: oaisoftwarealliance/oai-nrf:v1.5.0
environment:
- NRF_INTERFACE_NAME_FOR_SBI=eth0
- TZ=Europe/Paris
networks:
public_net:
ipv4_address: 192.168.71.130
mysql: mysql:
container_name: "rfsim5g-mysql" container_name: "rfsim5g-mysql"
image: mysql:8.0 image: mysql:8.0
volumes: volumes:
- ./oai_db.sql:/docker-entrypoint-initdb.d/oai_db.sql - ../5g_rfsimulator/oai_db.sql:/docker-entrypoint-initdb.d/oai_db.sql
- ./mysql-healthcheck.sh:/tmp/mysql-healthcheck.sh - ../5g_rfsimulator/mysql-healthcheck.sh:/tmp/mysql-healthcheck.sh
environment: environment:
- TZ=Europe/Paris - TZ=Europe/Paris
- MYSQL_DATABASE=oai_db - MYSQL_DATABASE=oai_db
...@@ -31,108 +22,36 @@ services: ...@@ -31,108 +22,36 @@ services:
ipv4_address: 192.168.71.131 ipv4_address: 192.168.71.131
oai-amf: oai-amf:
container_name: "rfsim5g-oai-amf" container_name: "rfsim5g-oai-amf"
image: oaisoftwarealliance/oai-amf:v1.5.0 image: oaisoftwarealliance/oai-amf:v2.0.0
environment: environment:
- TZ=Europe/paris - TZ=Europe/paris
- MCC=208 volumes:
- MNC=99 - ../5g_rfsimulator/mini_nonrf_config.yaml:/openair-amf/etc/config.yaml
- REGION_ID=128
- AMF_SET_ID=1
- SERVED_GUAMI_MCC_0=208
- SERVED_GUAMI_MNC_0=99
- SERVED_GUAMI_REGION_ID_0=128
- SERVED_GUAMI_AMF_SET_ID_0=1
- SERVED_GUAMI_MCC_1=460
- SERVED_GUAMI_MNC_1=11
- SERVED_GUAMI_REGION_ID_1=10
- SERVED_GUAMI_AMF_SET_ID_1=1
- PLMN_SUPPORT_MCC=208
- PLMN_SUPPORT_MNC=99
- PLMN_SUPPORT_TAC=0x0001
# Only one slice is defined (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.71.133
- SELECTED_0=true
# mysql definition in AMF is mandatory in mini deployment.
- MYSQL_SERVER=192.168.71.131
- MYSQL_USER=root
- MYSQL_PASS=linux
- MYSQL_DB=oai_db
# NF registration
- NRF_IPV4_ADDRESS=192.168.71.130
- NRF_FQDN=oai-nrf
- NF_REGISTRATION=yes
- SMF_SELECTION=yes
- USE_FQDN_DNS=yes
- USE_HTTP2=no
depends_on: depends_on:
- oai-nrf
- mysql - mysql
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.132 ipv4_address: 192.168.71.132
oai-smf: oai-smf:
container_name: "rfsim5g-oai-smf" container_name: "rfsim5g-oai-smf"
image: oaisoftwarealliance/oai-smf:v1.5.0 image: oaisoftwarealliance/oai-smf:v2.0.0
environment: environment:
- TZ=Europe/Paris - TZ=Europe/Paris
- SMF_INTERFACE_NAME_FOR_N4=eth0 volumes:
- SMF_INTERFACE_NAME_FOR_SBI=eth0 - ../5g_rfsimulator/mini_nonrf_config.yaml:/openair-smf/etc/config.yaml
- DEFAULT_DNS_IPV4_ADDRESS=172.21.3.100
- DEFAULT_DNS_SEC_IPV4_ADDRESS=4.4.4.4
- AMF_IPV4_ADDRESS=192.168.71.132
- AMF_FQDN=oai-amf
- UPF_IPV4_ADDRESS=192.168.71.134
- UPF_FQDN_0=oai-spgwu
- NRF_IPV4_ADDRESS=192.168.71.130
- NRF_FQDN=oai-nrf
- REGISTER_NRF=yes
- DISCOVER_UPF=yes
- USE_FQDN_DNS=yes
- USE_LOCAL_SUBSCRIPTION_INFO=yes
- UE_MTU=1500
# Only one slice is defined (1, 0xFFFFFF)
- DNN_NI0=oai
- TYPE0=IPv4
- DNN_RANGE0=12.1.1.2 - 12.1.1.127
- NSSAI_SST0=1
- SESSION_AMBR_UL0=200Mbps
- SESSION_AMBR_DL0=400Mbps
- DEFAULT_CSCF_IPV4_ADDRESS=127.0.0.1
- ENABLE_USAGE_REPORTING=no
depends_on: depends_on:
- oai-nrf
- oai-amf - oai-amf
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.133 ipv4_address: 192.168.71.133
oai-spgwu: oai-upf:
container_name: "rfsim5g-oai-spgwu" container_name: "rfsim5g-oai-upf"
image: oaisoftwarealliance/oai-spgwu-tiny:v1.5.0 image: oaisoftwarealliance/oai-upf:v2.0.0
environment: environment:
- TZ=Europe/Paris - TZ=Europe/Paris
- SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP=eth0 volumes:
- SGW_INTERFACE_NAME_FOR_SX=eth0 - ../5g_rfsimulator/mini_nonrf_config.yaml:/openair-upf/etc/config.yaml
- PGW_INTERFACE_NAME_FOR_SGI=eth0
- NETWORK_UE_NAT_OPTION=yes
- NETWORK_UE_IP=12.1.1.0/24
- ENABLE_5G_FEATURES=yes
- REGISTER_NRF=yes
- USE_FQDN_NRF=yes
- UPF_FQDN_5G=oai-spgwu
- NRF_IPV4_ADDRESS=192.168.71.130
- NRF_FQDN=oai-nrf
# Only one slice is defined (1, 0xFFFFFF)
- NSSAI_SST_0=1
- NSSAI_SD_0=0xffffff
- DNN_0=oai
depends_on: depends_on:
- oai-nrf
- oai-smf - oai-smf
cap_add: cap_add:
- NET_ADMIN - NET_ADMIN
...@@ -153,7 +72,7 @@ services: ...@@ -153,7 +72,7 @@ services:
"iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;"\ "iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;"\
"ip route add 12.1.1.0/24 via 192.168.72.134 dev eth0; sleep infinity" "ip route add 12.1.1.0/24 via 192.168.72.134 dev eth0; sleep infinity"
depends_on: depends_on:
- oai-spgwu - oai-upf
networks: networks:
traffic_net: traffic_net:
ipv4_address: 192.168.72.135 ipv4_address: 192.168.72.135
......
#!/bin/bash
set -eo pipefail
if [ "$MYSQL_ROOT_PASSWORD" ] && [ -z "$MYSQL_USER" ] && [ -z "$MYSQL_PASSWORD" ]; then
echo >&2 'Healthcheck error: cannot determine root password (and MYSQL_USER and MYSQL_PASSWORD were not set)'
exit 0
fi
host="$(hostname --ip-address || echo '127.0.0.1')"
user="${MYSQL_USER:-root}"
export MYSQL_PWD="${MYSQL_PASSWORD:-$MYSQL_ROOT_PASSWORD}"
args=(
# force mysql to not use the local "mysqld.sock" (test "external" connectivity)
-h"$host"
-u"$user"
--silent
)
STATUS=0
if command -v mysqladmin &> /dev/null; then
if mysqladmin "${args[@]}" ping > /dev/null; then
database_check=$(mysql -u$user -D oai_db --silent -e "SELECT * FROM users;")
if [[ -z $database_check ]]; then
echo "Healthcheck error: oai_db not populated"
STATUS=1
fi
STATUS=0
else
echo "Healthcheck error: Mysql port inactive"
STATUS=1
fi
else
if select="$(echo 'SELECT 1' | mysql "${args[@]}")" && [ "$select" = '1' ]; then
database_check=$(mysql -u$user -D oai_db --silent -e "SELECT * FROM users;")
if [[ -z $database_check ]]; then
echo "Healthcheck error: oai_db not populated"
STATUS=1
fi
STATUS=0
else
echo "Healthcheck error: Mysql port inactive"
STATUS=1
fi
fi
exit $STATUS
#!/bin/bash
set -eo pipefail
STATUS=0
NRF_IP_SBI_INTERFACE=$(ifconfig $NRF_INTERFACE_NAME_FOR_SBI | grep inet | awk {'print $2'})
NRF_SBI_PORT_STATUS=$(netstat -tnpl | grep -o "$NRF_IP_SBI_INTERFACE:$NRF_INTERFACE_PORT_FOR_SBI")
#Check if entrypoint properly configured the conf file and no parameter is unset(optional)
NB_UNREPLACED_AT=`cat /openair-nrf/etc/*.conf | grep -v contact@openairinterface.org | grep -c @ || true`
if [ $NB_UNREPLACED_AT -ne 0 ]; then
STATUS=1
echo "Healthcheck error: UNHEALTHY configuration file is not configured properly"
fi
if [[ -z $NRF_SBI_PORT_STATUS ]]; then
STATUS=1
echo "Healthcheck error: UNHEALTHY SBI TCP/HTTP port $NRF_INTERFACE_PORT_FOR_SBI is not listening."
fi
exit $STATUS
\ No newline at end of file
This diff is collapsed.
#!/bin/bash
set -eo pipefail
STATUS=0
SMF_IP_SBI_INTERFACE=$(ifconfig $SMF_INTERFACE_NAME_FOR_SBI | grep inet | awk {'print $2'})
SMF_SBI_PORT_STATUS=$(netstat -tnpl | grep -o "$SMF_IP_SBI_INTERFACE:$SMF_INTERFACE_PORT_FOR_SBI")
#Check if entrypoint properly configured the conf file and no parameter is unset(optional)
#NB_UNREPLACED_AT=`cat /openair-smf/etc/*.conf | grep -v contact@openairinterface.org | grep -c @ || true`
#if [ $NB_UNREPLACED_AT -ne 0 ]; then
# STATUS=-1
# echo "Healthcheck error: UNHEALTHY configuration file is not configured properly"
#fi
#
if [[ -z $SMF_SBI_PORT_STATUS ]]; then
STATUS=-1
echo "Healthcheck error: UNHEALTHY SBI TCP/HTTP port $SMF_INTERFACE_PORT_FOR_SBI is not listening."
fi
exit $STATUS
#!/bin/bash
set -eo pipefail
STATUS=0
SGW_PORT_FOR_S1U_S12_S4_UP=2152
SGW_PORT_FOR_SX=8805
SGW_IP_S1U_INTERFACE=$(ifconfig $SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP | grep inet | awk {'print $2'})
SGW_IP_SX_INTERFACE=$(ifconfig $SGW_INTERFACE_NAME_FOR_SX | grep inet | awk {'print $2'})
S1U_S12_S4_UP_PORT_STATUS=$(netstat -unpl | grep -o "$SGW_IP_S1U_INTERFACE:$SGW_PORT_FOR_S1U_S12_S4_UP")
SX_PORT_STATUS=$(netstat -unpl | grep -o "$SGW_IP_SX_INTERFACE:$SGW_PORT_FOR_SX")
#Check if entrypoint properly configured the conf file and no parameter is unset (optional)
NB_UNREPLACED_AT=`cat /openair-spgwu/etc/*.conf | grep -v contact@openairinterface.org | grep -c @ || true`
if [ $NB_UNREPLACED_AT -ne 0 ]; then
STATUS=1
echo "Healthcheck error: UNHEALTHY configuration file is not configured properly"
fi
if [[ -z $S1U_S12_S4_UP_PORT_STATUS ]]; then
STATUS=1
echo "Healthcheck error: UNHEALTHY S1U port $SGW_PORT_FOR_S1U_S12_S4_UP is not listening."
fi
if [[ -z $SX_PORT_STATUS ]]; then
STATUS=1
echo "Healthcheck error: UNHEALTHY SX port $SGW_PORT_FOR_SX is not listening."
fi
exit $STATUS
\ No newline at end of file
...@@ -37,10 +37,9 @@ Now pull images. ...@@ -37,10 +37,9 @@ Now pull images.
```bash ```bash
$ docker pull mysql:8.0 $ docker pull mysql:8.0
$ docker pull oaisoftwarealliance/oai-amf:v1.5.0 $ docker pull oaisoftwarealliance/oai-amf:v2.0.0
$ docker pull oaisoftwarealliance/oai-nrf:v1.5.0 $ docker pull oaisoftwarealliance/oai-smf:v2.0.0
$ docker pull oaisoftwarealliance/oai-smf:v1.5.0 $ docker pull oaisoftwarealliance/oai-upf:v2.0.0
$ docker pull oaisoftwarealliance/oai-spgwu-tiny:v1.5.0
$ docker pull oaisoftwarealliance/trf-gen-cn5g:focal $ docker pull oaisoftwarealliance/trf-gen-cn5g:focal
$ docker pull oaisoftwarealliance/oai-gnb:develop $ docker pull oaisoftwarealliance/oai-gnb:develop
...@@ -53,7 +52,7 @@ $ docker logout ...@@ -53,7 +52,7 @@ $ docker logout
**CAUTION: 2023/01/27 with the release `v1.5.0` of the `CN5G`, the previous version was not compatible any-more.** **CAUTION: 2023/01/27 with the release `v1.5.0` of the `CN5G`, the previous version was not compatible any-more.**
**This new version is working only with the `v1.5.0` of the `CN5G`.** **This new version is working only with the `v2.0.0` of the `CN5G`.**
# 2. Deploy containers # # 2. Deploy containers #
...@@ -72,12 +71,11 @@ For a deployment with the gNB split in CU-CP, CU-UP, and DU components, please r ...@@ -72,12 +71,11 @@ For a deployment with the gNB split in CU-CP, CU-UP, and DU components, please r
```bash ```bash
$ cd ci-scripts/yaml_files/5g_rfsimulator $ cd ci-scripts/yaml_files/5g_rfsimulator
$ docker-compose up -d mysql oai-nrf oai-amf oai-smf oai-spgwu oai-ext-dn $ docker-compose up -d mysql oai-amf oai-smf oai-upf oai-ext-dn
Creating network "rfsim5g-oai-public-net" with driver "bridge" Creating network "rfsim5g-oai-public-net" with driver "bridge"
Creating network "rfsim5g-oai-traffic_net-net" with driver "bridge" Creating network "rfsim5g-oai-traffic_net-net" with driver "bridge"
Creating rfsim5g-oai-nrf ... done
Creating rfsim5g-mysql ... done Creating rfsim5g-mysql ... done
Creating rfsim5g-oai-spgwu ... done Creating rfsim5g-oai-upf ... done
Creating rfsim5g-oai-amf ... done Creating rfsim5g-oai-amf ... done
Creating rfsim5g-oai-smf ... done Creating rfsim5g-oai-smf ... done
Creating rfsim5g-oai-ext-dn ... done Creating rfsim5g-oai-ext-dn ... done
...@@ -92,9 +90,8 @@ $ docker-compose ps -a ...@@ -92,9 +90,8 @@ $ docker-compose ps -a
rfsim5g-mysql docker-entrypoint.sh mysqld Up (healthy) 3306/tcp, 33060/tcp rfsim5g-mysql docker-entrypoint.sh mysqld Up (healthy) 3306/tcp, 33060/tcp
rfsim5g-oai-amf /bin/bash /openair-amf/bin ... Up (healthy) 38412/sctp, 80/tcp, 9090/tcp rfsim5g-oai-amf /bin/bash /openair-amf/bin ... Up (healthy) 38412/sctp, 80/tcp, 9090/tcp
rfsim5g-oai-ext-dn /bin/bash -c apt update; ... Up (healthy) rfsim5g-oai-ext-dn /bin/bash -c apt update; ... Up (healthy)
rfsim5g-oai-nrf /bin/bash /openair-nrf/bin ... Up (healthy) 80/tcp, 9090/tcp
rfsim5g-oai-smf /bin/bash -c /openair-smf/ ... Up (healthy) 80/tcp, 8805/udp, 9090/tcp rfsim5g-oai-smf /bin/bash -c /openair-smf/ ... Up (healthy) 80/tcp, 8805/udp, 9090/tcp
rfsim5g-oai-spgwu /openair-spgwu-tiny/bin/en ... Up (healthy) 2152/udp, 8805/udp rfsim5g-oai-upf /bin/bash -c /openair-upf/ ... Up (healthy) 2152/udp, 8805/udp
``` ```
At this point, you can prepare a capture on the newly-created public docker bridges: At this point, you can prepare a capture on the newly-created public docker bridges:
...@@ -131,8 +128,7 @@ The gNB can be deployed either in monolithic mode, or in CU/DU split mode. ...@@ -131,8 +128,7 @@ The gNB can be deployed either in monolithic mode, or in CU/DU split mode.
```bash ```bash
$ docker-compose up -d oai-gnb $ docker-compose up -d oai-gnb
rfsim5g-oai-nrf is up-to-date rfsim5g-oai-upf is up-to-date
rfsim5g-oai-spgwu is up-to-date
rfsim5g-oai-ext-dn is up-to-date rfsim5g-oai-ext-dn is up-to-date
Creating rfsim5g-oai-gnb ... done Creating rfsim5g-oai-gnb ... done
``` ```
...@@ -156,9 +152,8 @@ rfsim5g-mysql docker-entrypoint.sh mysqld Up (healthy) 3306/tcp, 3 ...@@ -156,9 +152,8 @@ rfsim5g-mysql docker-entrypoint.sh mysqld Up (healthy) 3306/tcp, 3
rfsim5g-oai-amf /bin/bash /openair-amf/bin ... Up (healthy) 38412/sctp, 80/tcp, 9090/tcp rfsim5g-oai-amf /bin/bash /openair-amf/bin ... Up (healthy) 38412/sctp, 80/tcp, 9090/tcp
rfsim5g-oai-ext-dn /bin/bash -c apt update; ... Up (healthy) rfsim5g-oai-ext-dn /bin/bash -c apt update; ... Up (healthy)
rfsim5g-oai-gnb /opt/oai-gnb/bin/entrypoin ... Up (healthy) rfsim5g-oai-gnb /opt/oai-gnb/bin/entrypoin ... Up (healthy)
rfsim5g-oai-nrf /bin/bash /openair-nrf/bin ... Up (healthy) 80/tcp, 9090/tcp
rfsim5g-oai-smf /bin/bash -c /openair-smf/ ... Up (healthy) 80/tcp, 8805/udp, 9090/tcp rfsim5g-oai-smf /bin/bash -c /openair-smf/ ... Up (healthy) 80/tcp, 8805/udp, 9090/tcp
rfsim5g-oai-spgwu /openair-spgwu-tiny/bin/en ... Up (healthy) 2152/udp, 8805/udp rfsim5g-oai-upf /bin/bash -c /openair-upf/ ... Up (healthy) 2152/udp, 8805/udp
``` ```
You can verify that the `gNB` is connected with the `AMF`: You can verify that the `gNB` is connected with the `AMF`:
...@@ -178,10 +173,9 @@ $ docker logs rfsim5g-oai-amf ...@@ -178,10 +173,9 @@ $ docker logs rfsim5g-oai-amf
```bash ```bash
$ docker-compose up -d oai-nr-ue $ docker-compose up -d oai-nr-ue
rfsim5g-mysql is up-to-date rfsim5g-mysql is up-to-date
rfsim5g-oai-nrf is up-to-date
rfsim5g-oai-amf is up-to-date rfsim5g-oai-amf is up-to-date
rfsim5g-oai-smf is up-to-date rfsim5g-oai-smf is up-to-date
rfsim5g-oai-spgwu is up-to-date rfsim5g-oai-upf is up-to-date
rfsim5g-oai-ext-dn is up-to-date rfsim5g-oai-ext-dn is up-to-date
rfsim5g-oai-gnb is up-to-date rfsim5g-oai-gnb is up-to-date
Creating rfsim5g-oai-nr-ue ... done Creating rfsim5g-oai-nr-ue ... done
...@@ -198,9 +192,8 @@ rfsim5g-oai-amf /bin/bash /openair-amf/bin ... Up (healthy) 38412/sctp, ...@@ -198,9 +192,8 @@ rfsim5g-oai-amf /bin/bash /openair-amf/bin ... Up (healthy) 38412/sctp,
rfsim5g-oai-ext-dn /bin/bash -c apt update; ... Up (healthy) rfsim5g-oai-ext-dn /bin/bash -c apt update; ... Up (healthy)
rfsim5g-oai-gnb /opt/oai-gnb/bin/entrypoin ... Up (healthy) rfsim5g-oai-gnb /opt/oai-gnb/bin/entrypoin ... Up (healthy)
rfsim5g-oai-nr-ue /opt/oai-nr-ue/bin/entrypo ... Up (healthy) rfsim5g-oai-nr-ue /opt/oai-nr-ue/bin/entrypo ... Up (healthy)
rfsim5g-oai-nrf /bin/bash /openair-nrf/bin ... Up (healthy) 80/tcp, 9090/tcp
rfsim5g-oai-smf /bin/bash -c /openair-smf/ ... Up (healthy) 80/tcp, 8805/udp, 9090/tcp rfsim5g-oai-smf /bin/bash -c /openair-smf/ ... Up (healthy) 80/tcp, 8805/udp, 9090/tcp
rfsim5g-oai-spgwu /openair-spgwu-tiny/bin/en ... Up (healthy) 2152/udp, 8805/udp rfsim5g-oai-upf /bin/bash -c /openair-upf/ ... Up (healthy) 2152/udp, 8805/udp
``` ```
Making sure the OAI UE is connected: Making sure the OAI UE is connected:
...@@ -266,10 +259,9 @@ Create the entry for the second UE in `docker-compose.yaml` file as follows: ...@@ -266,10 +259,9 @@ Create the entry for the second UE in `docker-compose.yaml` file as follows:
```bash ```bash
$ docker-compose up -d oai-nr-ue2 $ docker-compose up -d oai-nr-ue2
rfsim5g-mysql is up-to-date rfsim5g-mysql is up-to-date
rfsim5g-oai-nrf is up-to-date
rfsim5g-oai-amf is up-to-date rfsim5g-oai-amf is up-to-date
rfsim5g-oai-smf is up-to-date rfsim5g-oai-smf is up-to-date
rfsim5g-oai-spgwu is up-to-date rfsim5g-oai-upf is up-to-date
rfsim5g-oai-ext-dn is up-to-date rfsim5g-oai-ext-dn is up-to-date
rfsim5g-oai-gnb is up-to-date rfsim5g-oai-gnb is up-to-date
Creating rfsim5g-oai-nr-ue2 ... done Creating rfsim5g-oai-nr-ue2 ... done
...@@ -287,9 +279,8 @@ rfsim5g-oai-ext-dn /bin/bash -c apt update; ... Up (healthy) ...@@ -287,9 +279,8 @@ rfsim5g-oai-ext-dn /bin/bash -c apt update; ... Up (healthy)
rfsim5g-oai-gnb /opt/oai-gnb/bin/entrypoin ... Up (healthy) rfsim5g-oai-gnb /opt/oai-gnb/bin/entrypoin ... Up (healthy)
rfsim5g-oai-nr-ue /opt/oai-nr-ue/bin/entrypo ... Up (healthy) rfsim5g-oai-nr-ue /opt/oai-nr-ue/bin/entrypo ... Up (healthy)
rfsim5g-oai-nr-ue2 /opt/oai-nr-ue/bin/entrypo ... Up (healthy) rfsim5g-oai-nr-ue2 /opt/oai-nr-ue/bin/entrypo ... Up (healthy)
rfsim5g-oai-nrf /bin/bash /openair-nrf/bin ... Up (healthy) 80/tcp, 9090/tcp
rfsim5g-oai-smf /bin/bash /openair-smf/bin ... Up (healthy) 80/tcp, 8805/udp, 9090/tcp rfsim5g-oai-smf /bin/bash /openair-smf/bin ... Up (healthy) 80/tcp, 8805/udp, 9090/tcp
rfsim5g-oai-spgwu /openair-spgwu-tiny/bin/en ... Up (healthy) 2152/udp, 8805/udp rfsim5g-oai-upf /bin/bash /openair-upf/bin ... Up (healthy) 2152/udp, 8805/udp
``` ```
Making sure the Second OAI UE is connected: Making sure the Second OAI UE is connected:
...@@ -458,19 +449,17 @@ Stopping rfsim5g-oai-nr-ue2 ... done ...@@ -458,19 +449,17 @@ Stopping rfsim5g-oai-nr-ue2 ... done
Stopping rfsim5g-oai-nr-ue ... done Stopping rfsim5g-oai-nr-ue ... done
Stopping rfsim5g-oai-gnb ... done Stopping rfsim5g-oai-gnb ... done
Stopping rfsim5g-oai-ext-dn ... done Stopping rfsim5g-oai-ext-dn ... done
Stopping rfsim5g-oai-spgwu ... done Stopping rfsim5g-oai-upf ... done
Stopping rfsim5g-oai-smf ... done Stopping rfsim5g-oai-smf ... done
Stopping rfsim5g-oai-amf ... done Stopping rfsim5g-oai-amf ... done
Stopping rfsim5g-oai-nrf ... done
Stopping rfsim5g-mysql ... done Stopping rfsim5g-mysql ... done
Removing rfsim5g-oai-nr-ue2 ... done Removing rfsim5g-oai-nr-ue2 ... done
Removing rfsim5g-oai-nr-ue ... done Removing rfsim5g-oai-nr-ue ... done
Removing rfsim5g-oai-gnb ... done Removing rfsim5g-oai-gnb ... done
Removing rfsim5g-oai-ext-dn ... done Removing rfsim5g-oai-ext-dn ... done
Removing rfsim5g-oai-spgwu ... done Removing rfsim5g-oai-upf ... done
Removing rfsim5g-oai-smf ... done Removing rfsim5g-oai-smf ... done
Removing rfsim5g-oai-amf ... done Removing rfsim5g-oai-amf ... done
Removing rfsim5g-oai-nrf ... done
Removing rfsim5g-mysql ... done Removing rfsim5g-mysql ... done
Removing network rfsim5g-oai-public-net Removing network rfsim5g-oai-public-net
Removing network rfsim5g-oai-traffic-net Removing network rfsim5g-oai-traffic-net
...@@ -522,24 +511,21 @@ docker-compose entry mount another config, or add `--uicc0.imsi ...@@ -522,24 +511,21 @@ docker-compose entry mount another config, or add `--uicc0.imsi
feature of the configuration module to overwrite any configuration option in feature of the configuration module to overwrite any configuration option in
the config file on the command line. the config file on the command line.
We are also using a dedicated `oai-smf.conf` for the `SMF` container: the `oai` DNN shall match the one in the NR-UE section of `docker-compose.yaml` (`DNN: oai`).
## 5.2. Making the gNB connect to the core network ## ## 5.2. Making the gNB connect to the core network ##
Mainly you need to match the PLMN in `gNB`, `AMF` and `SPGWU` parameters: Mainly you need to match the PLMN in `gNB`, `AMF` and `UPF` parameters in the `mini_nonrf_config.yaml`:
* `AMF` ```yaml
- `MCC=208` plmn_support_list:
- `MNC=99` - mcc: 208
- `PLMN_SUPPORT_TAC=0x0001` mnc: 99
- ... tac: 0x0001
* `SPGWU` nssai:
- `MCC=208` - *embb_slice1
- `MNC=99` ...
- `TAC=1` snssais:
* `gNB` - &embb_slice1
- `MCC: '208'` sst: 1
- `MNC: '99'` ```
- `TAC: 1`
The `ST` and `SD` values shall also match. The `ST` and `SD` values shall also match.
version: '3.8' version: '3.8'
services: services:
oai-nrf:
container_name: "rfsim5g-oai-nrf"
image: oaisoftwarealliance/oai-nrf:v1.5.0
environment:
- NRF_INTERFACE_NAME_FOR_SBI=eth0
- TZ=Europe/Paris
networks:
public_net:
ipv4_address: 192.168.71.130
mysql: mysql:
container_name: "rfsim5g-mysql" container_name: "rfsim5g-mysql"
image: mysql:8.0 image: mysql:8.0
...@@ -31,108 +22,36 @@ services: ...@@ -31,108 +22,36 @@ services:
ipv4_address: 192.168.71.131 ipv4_address: 192.168.71.131
oai-amf: oai-amf:
container_name: "rfsim5g-oai-amf" container_name: "rfsim5g-oai-amf"
image: oaisoftwarealliance/oai-amf:v1.5.0 image: oaisoftwarealliance/oai-amf:v2.0.0
environment: environment:
- TZ=Europe/paris - TZ=Europe/paris
- MCC=208 volumes:
- MNC=99 - ./mini_nonrf_config.yaml:/openair-amf/etc/config.yaml
- REGION_ID=128
- AMF_SET_ID=1
- SERVED_GUAMI_MCC_0=208
- SERVED_GUAMI_MNC_0=99
- SERVED_GUAMI_REGION_ID_0=128
- SERVED_GUAMI_AMF_SET_ID_0=1
- SERVED_GUAMI_MCC_1=460
- SERVED_GUAMI_MNC_1=11
- SERVED_GUAMI_REGION_ID_1=10
- SERVED_GUAMI_AMF_SET_ID_1=1
- PLMN_SUPPORT_MCC=208
- PLMN_SUPPORT_MNC=99
- PLMN_SUPPORT_TAC=0x0001
# Only one slice is defined (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.71.133
- SELECTED_0=true
# mysql definition in AMF is mandatory in mini deployment.
- MYSQL_SERVER=192.168.71.131
- MYSQL_USER=root
- MYSQL_PASS=linux
- MYSQL_DB=oai_db
# NF registration
- NRF_IPV4_ADDRESS=192.168.71.130
- NRF_FQDN=oai-nrf
- NF_REGISTRATION=yes
- SMF_SELECTION=yes
- USE_FQDN_DNS=yes
- USE_HTTP2=no
depends_on: depends_on:
- oai-nrf
- mysql - mysql
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.132 ipv4_address: 192.168.71.132
oai-smf: oai-smf:
container_name: "rfsim5g-oai-smf" container_name: "rfsim5g-oai-smf"
image: oaisoftwarealliance/oai-smf:v1.5.0 image: oaisoftwarealliance/oai-smf:v2.0.0
environment: environment:
- TZ=Europe/Paris - TZ=Europe/Paris
- SMF_INTERFACE_NAME_FOR_N4=eth0 volumes:
- SMF_INTERFACE_NAME_FOR_SBI=eth0 - ./mini_nonrf_config.yaml:/openair-smf/etc/config.yaml
- DEFAULT_DNS_IPV4_ADDRESS=172.21.3.100
- DEFAULT_DNS_SEC_IPV4_ADDRESS=4.4.4.4
- AMF_IPV4_ADDRESS=192.168.71.132
- AMF_FQDN=oai-amf
- UPF_IPV4_ADDRESS=192.168.71.134
- UPF_FQDN_0=oai-spgwu
- NRF_IPV4_ADDRESS=192.168.71.130
- NRF_FQDN=oai-nrf
- REGISTER_NRF=yes
- DISCOVER_UPF=yes
- USE_FQDN_DNS=yes
- USE_LOCAL_SUBSCRIPTION_INFO=yes
- UE_MTU=1500
# Only one slice is defined (1, 0xFFFFFF)
- DNN_NI0=oai
- TYPE0=IPv4
- DNN_RANGE0=12.1.1.2 - 12.1.1.127
- NSSAI_SST0=1
- SESSION_AMBR_UL0=200Mbps
- SESSION_AMBR_DL0=400Mbps
- DEFAULT_CSCF_IPV4_ADDRESS=127.0.0.1
- ENABLE_USAGE_REPORTING=no
depends_on: depends_on:
- oai-nrf
- oai-amf - oai-amf
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.133 ipv4_address: 192.168.71.133
oai-spgwu: oai-upf:
container_name: "rfsim5g-oai-spgwu" container_name: "rfsim5g-oai-upf"
image: oaisoftwarealliance/oai-spgwu-tiny:v1.5.0 image: oaisoftwarealliance/oai-upf:v2.0.0
environment: environment:
- TZ=Europe/Paris - TZ=Europe/Paris
- SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP=eth0 volumes:
- SGW_INTERFACE_NAME_FOR_SX=eth0 - ./mini_nonrf_config.yaml:/openair-upf/etc/config.yaml
- PGW_INTERFACE_NAME_FOR_SGI=eth0
- NETWORK_UE_NAT_OPTION=yes
- NETWORK_UE_IP=12.1.1.0/24
- ENABLE_5G_FEATURES=yes
- REGISTER_NRF=yes
- USE_FQDN_NRF=yes
- UPF_FQDN_5G=oai-spgwu
- NRF_IPV4_ADDRESS=192.168.71.130
- NRF_FQDN=oai-nrf
# Only one slice is defined (1, 0xFFFFFF)
- NSSAI_SST_0=1
- NSSAI_SD_0=0xffffff
- DNN_0=oai
depends_on: depends_on:
- oai-nrf
- oai-smf - oai-smf
cap_add: cap_add:
- NET_ADMIN - NET_ADMIN
...@@ -153,7 +72,7 @@ services: ...@@ -153,7 +72,7 @@ services:
"iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;"\ "iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;"\
"ip route add 12.1.1.0/24 via 192.168.72.134 dev eth0; sleep infinity" "ip route add 12.1.1.0/24 via 192.168.72.134 dev eth0; sleep infinity"
depends_on: depends_on:
- oai-spgwu - oai-upf
networks: networks:
traffic_net: traffic_net:
ipv4_address: 192.168.72.135 ipv4_address: 192.168.72.135
......
################################################################################
# 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
## NOTE ON YAML ANCHORS ##
# We use YAML anchors to ease the configuration and to avoid duplicating parts of the configuration.
# This is especially true for the SNSSAIs, as we have to define them for multiple NFs.
# Please note that the use of anchors is not mandatory, and you can define the SNSSAI in each NF yourself.
# You can read more about anchors here: https://yaml.org/spec/1.2.2/#anchors-and-aliases
############# 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: no
http_version: 1
############## 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: 80
api_version: v1
interface_name: eth0
n2:
interface_name: eth0
port: 38412
smf:
host: oai-smf
sbi:
port: 80
api_version: v1
interface_name: eth0
n4:
interface_name: eth0
port: 8805
upf:
host: oai-upf
sbi:
port: 80
api_version: v1
interface_name: eth0
n3:
interface_name: eth0
port: 2152
n4:
interface_name: eth0
port: 8805
n6:
interface_name: eth1
n9:
interface_name: eth0
port: 2152
#### 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
## general single_nssai configuration
## Defines YAML anchors, which are reused in the config file
snssais:
- &embb_slice1
sst: 1
############## NF-specific configuration
amf:
amf_name: "OAI-AMF"
# This really depends on if we want to keep the "mini" version or not
support_features_options:
enable_simple_scenario: yes # "no" by default with the normal deployment scenarios with AMF/SMF/UPF/AUSF/UDM/UDR/NRF.
# set it to "yes" to use with the minimalist deployment scenario (including only AMF/SMF/UPF) by using the internal AUSF/UDM implemented inside AMF.
# There's no NRF in this scenario, SMF info is taken from "nfs" section.
enable_nssf: no
enable_smf_selection: no
relative_capacity: 30
statistics_timer_interval: 20 # in seconds
emergency_support: false
served_guami_list:
- mcc: 208
mnc: 99
amf_region_id: 01
amf_set_id: 001
amf_pointer: 01
plmn_support_list:
- mcc: 208
mnc: 99
tac: 0x0001
nssai:
- *embb_slice1
supported_integrity_algorithms:
- "NIA0"
- "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
upfs:
- host: oai-upf
port: 8805
config:
enable_usage_reporting: no
# follows UPFInfo from 3GPP TS 29.510, currently only these values from interfaceUpfInfoList are supported
upf_info:
interfaceUpfInfoList:
- interfaceType: "N3"
networkInstance: "access.oai.org"
- interfaceType: "N6"
networkInstance: "core.oai.org"
ue_dns:
primary_ipv4: "172.21.3.100"
primary_ipv6: "2001:4860:4860::8888"
secondary_ipv4: "8.8.8.8"
secondary_ipv6: "2001:4860:4860::8888"
ims:
pcscf_ipv4: "127.0.0.1"
pcscf_ipv6: "fe80::7915:f408:1787:db8b"
# the DNN you configure here should be configured in "dnns"
# follows the SmfInfo datatype from 3GPP TS 29.510
smf_info:
sNssaiSmfInfoList:
- sNssai: *embb_slice1
dnnSmfInfoList:
- dnn: "oai"
local_subscription_infos:
- single_nssai: *embb_slice1
dnn: "oai"
qos_profile:
5qi: 9
session_ambr_ul: "200Mbps"
session_ambr_dl: "400Mbps"
upf:
support_features:
enable_bpf_datapath: no # If "on": BPF is used as datapath else simpleswitch is used, DEFAULT= off
enable_snat: yes # If "on": Source natting is done for UE, DEFAULT= off
remote_n6_gw: localhost # Dummy host since simple-switch does not use N6 GW
upf_info:
sNssaiUpfInfoList:
- sNssai: *embb_slice1
dnnUpfInfoList:
- dnn: "oai"
## DNN configuration
dnns:
- dnn: "oai"
pdu_session_type: "IPV4"
ipv4_subnet: "12.1.1.0/24"
File mode changed from 100755 to 100644
version: '3.8' version: '3.8'
services: services:
oai-nrf:
container_name: "rfsim5g-oai-nrf"
image: oaisoftwarealliance/oai-nrf:v1.5.0
environment:
- NRF_INTERFACE_NAME_FOR_SBI=eth0
- TZ=Europe/Paris
networks:
public_net:
ipv4_address: 192.168.71.130
mysql: mysql:
container_name: "rfsim5g-mysql" container_name: "rfsim5g-mysql"
image: mysql:8.0 image: mysql:8.0
...@@ -31,108 +22,36 @@ services: ...@@ -31,108 +22,36 @@ services:
ipv4_address: 192.168.71.131 ipv4_address: 192.168.71.131
oai-amf: oai-amf:
container_name: "rfsim5g-oai-amf" container_name: "rfsim5g-oai-amf"
image: oaisoftwarealliance/oai-amf:v1.5.0 image: oaisoftwarealliance/oai-amf:v2.0.0
environment: environment:
- TZ=Europe/paris - TZ=Europe/paris
- MCC=208 volumes:
- MNC=99 - ../5g_rfsimulator/mini_nonrf_config.yaml:/openair-amf/etc/config.yaml
- REGION_ID=128
- AMF_SET_ID=1
- SERVED_GUAMI_MCC_0=208
- SERVED_GUAMI_MNC_0=99
- SERVED_GUAMI_REGION_ID_0=128
- SERVED_GUAMI_AMF_SET_ID_0=1
- SERVED_GUAMI_MCC_1=460
- SERVED_GUAMI_MNC_1=11
- SERVED_GUAMI_REGION_ID_1=10
- SERVED_GUAMI_AMF_SET_ID_1=1
- PLMN_SUPPORT_MCC=208
- PLMN_SUPPORT_MNC=99
- PLMN_SUPPORT_TAC=0x0001
# Only one slice is defined (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.71.133
- SELECTED_0=true
# mysql definition in AMF is mandatory in mini deployment.
- MYSQL_SERVER=192.168.71.131
- MYSQL_USER=root
- MYSQL_PASS=linux
- MYSQL_DB=oai_db
# NF registration
- NRF_IPV4_ADDRESS=192.168.71.130
- NRF_FQDN=oai-nrf
- NF_REGISTRATION=yes
- SMF_SELECTION=yes
- USE_FQDN_DNS=yes
- USE_HTTP2=no
depends_on: depends_on:
- oai-nrf
- mysql - mysql
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.132 ipv4_address: 192.168.71.132
oai-smf: oai-smf:
container_name: "rfsim5g-oai-smf" container_name: "rfsim5g-oai-smf"
image: oaisoftwarealliance/oai-smf:v1.5.0 image: oaisoftwarealliance/oai-smf:v2.0.0
environment: environment:
- TZ=Europe/Paris - TZ=Europe/Paris
- SMF_INTERFACE_NAME_FOR_N4=eth0 volumes:
- SMF_INTERFACE_NAME_FOR_SBI=eth0 - ../5g_rfsimulator/mini_nonrf_config.yaml:/openair-smf/etc/config.yaml
- DEFAULT_DNS_IPV4_ADDRESS=172.21.3.100
- DEFAULT_DNS_SEC_IPV4_ADDRESS=4.4.4.4
- AMF_IPV4_ADDRESS=192.168.71.132
- AMF_FQDN=oai-amf
- UPF_IPV4_ADDRESS=192.168.71.134
- UPF_FQDN_0=oai-spgwu
- NRF_IPV4_ADDRESS=192.168.71.130
- NRF_FQDN=oai-nrf
- REGISTER_NRF=yes
- DISCOVER_UPF=yes
- USE_FQDN_DNS=yes
- USE_LOCAL_SUBSCRIPTION_INFO=yes
- UE_MTU=1500
# Only one slice is defined (1, 0xFFFFFF)
- DNN_NI0=oai
- TYPE0=IPv4
- DNN_RANGE0=12.1.1.2 - 12.1.1.127
- NSSAI_SST0=1
- SESSION_AMBR_UL0=200Mbps
- SESSION_AMBR_DL0=400Mbps
- DEFAULT_CSCF_IPV4_ADDRESS=127.0.0.1
- ENABLE_USAGE_REPORTING=no
depends_on: depends_on:
- oai-nrf
- oai-amf - oai-amf
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.133 ipv4_address: 192.168.71.133
oai-spgwu: oai-upf:
container_name: "rfsim5g-oai-spgwu" container_name: "rfsim5g-oai-upf"
image: oaisoftwarealliance/oai-spgwu-tiny:v1.5.0 image: oaisoftwarealliance/oai-upf:v2.0.0
environment: environment:
- TZ=Europe/Paris - TZ=Europe/Paris
- SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP=eth0 volumes:
- SGW_INTERFACE_NAME_FOR_SX=eth0 - ../5g_rfsimulator/mini_nonrf_config.yaml:/openair-upf/etc/config.yaml
- PGW_INTERFACE_NAME_FOR_SGI=eth0
- NETWORK_UE_NAT_OPTION=yes
- NETWORK_UE_IP=12.1.1.0/24
- ENABLE_5G_FEATURES=yes
- REGISTER_NRF=yes
- USE_FQDN_NRF=yes
- UPF_FQDN_5G=oai-spgwu
- NRF_IPV4_ADDRESS=192.168.71.130
- NRF_FQDN=oai-nrf
# Only one slice is defined (1, 0xFFFFFF)
- NSSAI_SST_0=1
- NSSAI_SD_0=0xffffff
- DNN_0=oai
depends_on: depends_on:
- oai-nrf
- oai-smf - oai-smf
cap_add: cap_add:
- NET_ADMIN - NET_ADMIN
...@@ -153,7 +72,7 @@ services: ...@@ -153,7 +72,7 @@ services:
"iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;"\ "iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;"\
"ip route add 12.1.1.0/24 via 192.168.72.134 dev eth0; sleep infinity" "ip route add 12.1.1.0/24 via 192.168.72.134 dev eth0; sleep infinity"
depends_on: depends_on:
- oai-spgwu - oai-upf
networks: networks:
traffic_net: traffic_net:
ipv4_address: 192.168.72.135 ipv4_address: 192.168.72.135
......
version: '3.8' version: '3.8'
services: services:
oai-nrf:
container_name: "rfsim5g-oai-nrf"
image: oaisoftwarealliance/oai-nrf:v1.5.0
environment:
- NRF_INTERFACE_NAME_FOR_SBI=eth0
- TZ=Europe/Paris
networks:
public_net:
ipv4_address: 192.168.71.130
mysql: mysql:
container_name: "rfsim5g-mysql" container_name: "rfsim5g-mysql"
image: mysql:8.0 image: mysql:8.0
...@@ -31,108 +22,36 @@ services: ...@@ -31,108 +22,36 @@ services:
ipv4_address: 192.168.71.131 ipv4_address: 192.168.71.131
oai-amf: oai-amf:
container_name: "rfsim5g-oai-amf" container_name: "rfsim5g-oai-amf"
image: oaisoftwarealliance/oai-amf:v1.5.0 image: oaisoftwarealliance/oai-amf:v2.0.0
environment: environment:
- TZ=Europe/paris - TZ=Europe/paris
- MCC=208 volumes:
- MNC=99 - ../5g_rfsimulator/mini_nonrf_config.yaml:/openair-amf/etc/config.yaml
- REGION_ID=128
- AMF_SET_ID=1
- SERVED_GUAMI_MCC_0=208
- SERVED_GUAMI_MNC_0=99
- SERVED_GUAMI_REGION_ID_0=128
- SERVED_GUAMI_AMF_SET_ID_0=1
- SERVED_GUAMI_MCC_1=460
- SERVED_GUAMI_MNC_1=11
- SERVED_GUAMI_REGION_ID_1=10
- SERVED_GUAMI_AMF_SET_ID_1=1
- PLMN_SUPPORT_MCC=208
- PLMN_SUPPORT_MNC=99
- PLMN_SUPPORT_TAC=0x0001
# Only one slice is defined (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.71.133
- SELECTED_0=true
# mysql definition in AMF is mandatory in mini deployment.
- MYSQL_SERVER=192.168.71.131
- MYSQL_USER=root
- MYSQL_PASS=linux
- MYSQL_DB=oai_db
# NF registration
- NRF_IPV4_ADDRESS=192.168.71.130
- NRF_FQDN=oai-nrf
- NF_REGISTRATION=yes
- SMF_SELECTION=yes
- USE_FQDN_DNS=yes
- USE_HTTP2=no
depends_on: depends_on:
- oai-nrf
- mysql - mysql
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.132 ipv4_address: 192.168.71.132
oai-smf: oai-smf:
container_name: "rfsim5g-oai-smf" container_name: "rfsim5g-oai-smf"
image: oaisoftwarealliance/oai-smf:v1.5.0 image: oaisoftwarealliance/oai-smf:v2.0.0
environment: environment:
- TZ=Europe/Paris - TZ=Europe/Paris
- SMF_INTERFACE_NAME_FOR_N4=eth0 volumes:
- SMF_INTERFACE_NAME_FOR_SBI=eth0 - ../5g_rfsimulator/mini_nonrf_config.yaml:/openair-smf/etc/config.yaml
- DEFAULT_DNS_IPV4_ADDRESS=172.21.3.100
- DEFAULT_DNS_SEC_IPV4_ADDRESS=4.4.4.4
- AMF_IPV4_ADDRESS=192.168.71.132
- AMF_FQDN=oai-amf
- UPF_IPV4_ADDRESS=192.168.71.134
- UPF_FQDN_0=oai-spgwu
- NRF_IPV4_ADDRESS=192.168.71.130
- NRF_FQDN=oai-nrf
- REGISTER_NRF=yes
- DISCOVER_UPF=yes
- USE_FQDN_DNS=yes
- USE_LOCAL_SUBSCRIPTION_INFO=yes
- UE_MTU=1500
# Only one slice is defined (1, 0xFFFFFF)
- DNN_NI0=oai
- TYPE0=IPv4
- DNN_RANGE0=12.1.1.2 - 12.1.1.127
- NSSAI_SST0=1
- SESSION_AMBR_UL0=200Mbps
- SESSION_AMBR_DL0=400Mbps
- DEFAULT_CSCF_IPV4_ADDRESS=127.0.0.1
- ENABLE_USAGE_REPORTING=no
depends_on: depends_on:
- oai-nrf
- oai-amf - oai-amf
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.133 ipv4_address: 192.168.71.133
oai-spgwu: oai-upf:
container_name: "rfsim5g-oai-spgwu" container_name: "rfsim5g-oai-upf"
image: oaisoftwarealliance/oai-spgwu-tiny:v1.5.0 image: oaisoftwarealliance/oai-upf:v2.0.0
environment: environment:
- TZ=Europe/Paris - TZ=Europe/Paris
- SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP=eth0 volumes:
- SGW_INTERFACE_NAME_FOR_SX=eth0 - ../5g_rfsimulator/mini_nonrf_config.yaml:/openair-upf/etc/config.yaml
- PGW_INTERFACE_NAME_FOR_SGI=eth0
- NETWORK_UE_NAT_OPTION=yes
- NETWORK_UE_IP=12.1.1.0/24
- ENABLE_5G_FEATURES=yes
- REGISTER_NRF=yes
- USE_FQDN_NRF=yes
- UPF_FQDN_5G=oai-spgwu
- NRF_IPV4_ADDRESS=192.168.71.130
- NRF_FQDN=oai-nrf
# Only one slice is defined (1, 0xFFFFFF)
- NSSAI_SST_0=1
- NSSAI_SD_0=0xffffff
- DNN_0=oai
depends_on: depends_on:
- oai-nrf
- oai-smf - oai-smf
cap_add: cap_add:
- NET_ADMIN - NET_ADMIN
...@@ -153,7 +72,7 @@ services: ...@@ -153,7 +72,7 @@ services:
"iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;"\ "iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;"\
"ip route add 12.1.1.0/24 via 192.168.72.134 dev eth0; sleep infinity" "ip route add 12.1.1.0/24 via 192.168.72.134 dev eth0; sleep infinity"
depends_on: depends_on:
- oai-spgwu - oai-upf
networks: networks:
traffic_net: traffic_net:
ipv4_address: 192.168.72.135 ipv4_address: 192.168.72.135
......
...@@ -20,8 +20,7 @@ Core network components are on `core_net` network, CU-CP <--> CU-UP X communicat ...@@ -20,8 +20,7 @@ Core network components are on `core_net` network, CU-CP <--> CU-UP X communicat
``` ```
AMF --> 192.168.71.132 (N2,Namf) AMF --> 192.168.71.132 (N2,Namf)
SMF --> 192.168.71.133 (N4,Nsmf) SMF --> 192.168.71.133 (N4,Nsmf)
NRF --> 192.168.71.130 (Nnrf) UPF --> 192.168.71.134 (N3)
SPGWU --> 192.168.71.134 (N3)
CU-CP --> 192.168.71.X (N2), 192.168.72.2 (F1C), 192.168.77.2 (E1) CU-CP --> 192.168.71.X (N2), 192.168.72.2 (F1C), 192.168.77.2 (E1)
CU-UP1 --> 192.168.71.X (N3), 192.168.73.2 (F1U), 192.168.77.3 (E1) CU-UP1 --> 192.168.71.X (N3), 192.168.73.2 (F1U), 192.168.77.3 (E1)
CU-UP2 --> 192.168.71.X (N3), 192.168.74.2 (F1U), 192.168.77.4 (E1) CU-UP2 --> 192.168.71.X (N3), 192.168.74.2 (F1U), 192.168.77.4 (E1)
...@@ -41,7 +40,7 @@ You should be able to deploy the [basic 5G RFsim deployment](../5g_rfsimulator/R ...@@ -41,7 +40,7 @@ You should be able to deploy the [basic 5G RFsim deployment](../5g_rfsimulator/R
First, start the MySQL server and 5GC: First, start the MySQL server and 5GC:
```bash ```bash
docker-compose up -d mysql oai-nrf oai-amf oai-smf oai-spgwu docker-compose up -d mysql oai-amf oai-smf oai-upf
docker-compose ps -a docker-compose ps -a
``` ```
......
version: '3.8' version: '3.8'
services: services:
oai-nrf:
container_name: "rfsim5g-oai-nrf"
image: oaisoftwarealliance/oai-nrf:v1.5.0
environment:
- NRF_INTERFACE_NAME_FOR_SBI=eth0
- TZ=Europe/1
networks:
core_net:
ipv4_address: 192.168.71.130
mysql: mysql:
container_name: "rfsim5g-mysql" container_name: "rfsim5g-mysql"
image: mysql:8.0 image: mysql:8.0
volumes: volumes:
- ../5g_f1_rfsimulator/oai_db.sql:/docker-entrypoint-initdb.d/oai_db.sql - ../5g_rfsimulator/oai_db.sql:/docker-entrypoint-initdb.d/oai_db.sql
- ../5g_f1_rfsimulator/mysql-healthcheck.sh:/tmp/mysql-healthcheck.sh - ../5g_rfsimulator/mysql-healthcheck.sh:/tmp/mysql-healthcheck.sh
environment: environment:
- TZ=Europe/1 - TZ=Europe/Paris
- MYSQL_DATABASE=oai_db - MYSQL_DATABASE=oai_db
- MYSQL_USER=test - MYSQL_USER=test
- MYSQL_PASSWORD=test - MYSQL_PASSWORD=test
...@@ -31,118 +22,36 @@ services: ...@@ -31,118 +22,36 @@ services:
ipv4_address: 192.168.71.131 ipv4_address: 192.168.71.131
oai-amf: oai-amf:
container_name: "rfsim5g-oai-amf" container_name: "rfsim5g-oai-amf"
image: oaisoftwarealliance/oai-amf:v1.5.0 image: oaisoftwarealliance/oai-amf:v2.0.0
environment: environment:
- TZ=Europe/1 - TZ=Europe/paris
- MCC=208 volumes:
- MNC=99 - ./mini_nonrf_config_3slices.yaml:/openair-amf/etc/config.yaml
- REGION_ID=128
- AMF_SET_ID=1
- SERVED_GUAMI_MCC_0=208
- SERVED_GUAMI_MNC_0=99
- SERVED_GUAMI_REGION_ID_0=128
- SERVED_GUAMI_AMF_SET_ID_0=1
- SERVED_GUAMI_MCC_1=460
- SERVED_GUAMI_MNC_1=11
- SERVED_GUAMI_REGION_ID_1=10
- SERVED_GUAMI_AMF_SET_ID_1=1
- PLMN_SUPPORT_MCC=208
- PLMN_SUPPORT_MNC=99
- PLMN_SUPPORT_TAC=0x0001
# Three slices are defined
- SST_0=1
- SST_1=2
- SST_2=3
- 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.71.133
- SELECTED_0=true
# mysql definition in AMF is mandatory in mini deployment.
- MYSQL_SERVER=192.168.71.131
- MYSQL_USER=root
- MYSQL_PASS=linux
- MYSQL_DB=oai_db
# NF registration
- NRF_IPV4_ADDRESS=192.168.71.130
- NRF_FQDN=oai-nrf
- NF_REGISTRATION=yes
- SMF_SELECTION=yes
- USE_FQDN_DNS=yes
- USE_HTTP2=no
depends_on: depends_on:
- oai-nrf
- mysql - mysql
networks: networks:
core_net: core_net:
ipv4_address: 192.168.71.132 ipv4_address: 192.168.71.132
oai-smf: oai-smf:
container_name: "rfsim5g-oai-smf" container_name: "rfsim5g-oai-smf"
image: oaisoftwarealliance/oai-smf:v1.5.0 image: oaisoftwarealliance/oai-smf:v2.0.0
environment: environment:
- TZ=Europe/1 - TZ=Europe/Paris
- SMF_INTERFACE_NAME_FOR_N4=eth0 volumes:
- SMF_INTERFACE_NAME_FOR_SBI=eth0 - ./mini_nonrf_config_3slices.yaml:/openair-smf/etc/config.yaml
- DEFAULT_DNS_IPV4_ADDRESS=172.21.3.100
- DEFAULT_DNS_SEC_IPV4_ADDRESS=4.4.4.4
- AMF_IPV4_ADDRESS=192.168.71.132
- AMF_FQDN=oai-amf
- UPF_IPV4_ADDRESS=192.168.71.134
- UPF_FQDN_0=oai-spgwu
- NRF_IPV4_ADDRESS=192.168.71.130
- NRF_FQDN=oai-nrf
- REGISTER_NRF=yes
- DISCOVER_UPF=yes
- USE_FQDN_DNS=yes
- USE_LOCAL_SUBSCRIPTION_INFO=yes
- UE_MTU=1500
# Only one slice is defined (1, 0xFFFFFF)
- DNN_NI0=oai
- TYPE0=IPv4
- DNN_RANGE0=12.1.1.2 - 12.1.1.127
- NSSAI_SST0=1
- NSSAI_SST1=2
- NSSAI_SST2=3
- SESSION_AMBR_UL0=200Mbps
- SESSION_AMBR_DL0=400Mbps
- DEFAULT_CSCF_IPV4_ADDRESS=127.0.0.1
- ENABLE_USAGE_REPORTING=no
depends_on: depends_on:
- oai-nrf
- oai-amf - oai-amf
networks: networks:
core_net: core_net:
ipv4_address: 192.168.71.133 ipv4_address: 192.168.71.133
oai-spgwu: oai-upf:
container_name: "rfsim5g-oai-spgwu" container_name: "rfsim5g-oai-upf"
image: oaisoftwarealliance/oai-spgwu-tiny:v1.5.0 image: oaisoftwarealliance/oai-upf:v2.0.0
environment: environment:
- TZ=Europe/1 - TZ=Europe/Paris
- SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP=eth0 volumes:
- SGW_INTERFACE_NAME_FOR_SX=eth0 - ./mini_nonrf_config_3slices.yaml:/openair-upf/etc/config.yaml
- PGW_INTERFACE_NAME_FOR_SGI=eth0
- NETWORK_UE_NAT_OPTION=yes
- NETWORK_UE_IP=12.1.1.0/24
- ENABLE_5G_FEATURES=yes
- REGISTER_NRF=yes
- USE_FQDN_NRF=yes
- UPF_FQDN_5G=oai-spgwu
- NRF_IPV4_ADDRESS=192.168.71.130
- NRF_FQDN=oai-nrf
# Three slices are defined
- NSSAI_SST_0=1
- NSSAI_SD_0=0xffffff
- DNN_0=oai
- NSSAI_SST_1=2
- NSSAI_SD_1=0xffffff
- DNN_1=oai
- NSSAI_SST_2=3
- NSSAI_SD_2=0xffffff
- DNN_2=oai
depends_on: depends_on:
- oai-nrf
- oai-smf - oai-smf
cap_add: cap_add:
- NET_ADMIN - NET_ADMIN
...@@ -153,6 +62,8 @@ services: ...@@ -153,6 +62,8 @@ services:
networks: networks:
core_net: core_net:
ipv4_address: 192.168.71.134 ipv4_address: 192.168.71.134
traffic_net:
ipv4_address: 192.168.72.134
oai-cucp: oai-cucp:
image: oaisoftwarealliance/oai-gnb:develop image: oaisoftwarealliance/oai-gnb:develop
...@@ -164,7 +75,7 @@ services: ...@@ -164,7 +75,7 @@ services:
--gNBs.[0].local_s_address 192.168.72.2 --gNBs.[0].local_s_address 192.168.72.2
ASAN_OPTIONS: detect_leaks=0 ASAN_OPTIONS: detect_leaks=0
depends_on: depends_on:
- oai-spgwu - oai-upf
networks: networks:
core_net: core_net:
ipv4_address: 192.168.71.150 ipv4_address: 192.168.71.150
...@@ -435,6 +346,14 @@ networks: ...@@ -435,6 +346,14 @@ networks:
- subnet: 192.168.71.128/26 - subnet: 192.168.71.128/26
driver_opts: driver_opts:
com.docker.network.bridge.name: "rfsim5g-core" com.docker.network.bridge.name: "rfsim5g-core"
traffic_net:
driver: bridge
name: rfsim5g-oai-traffic-net
ipam:
config:
- subnet: 192.168.72.128/26
driver_opts:
com.docker.network.bridge.name: "rfsim5g-traffic"
f1c_net: f1c_net:
driver: bridge driver: bridge
name: rfsim5g-oai-f1c-net name: rfsim5g-oai-f1c-net
......
################################################################################
# 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
## NOTE ON YAML ANCHORS ##
# We use YAML anchors to ease the configuration and to avoid duplicating parts of the configuration.
# This is especially true for the SNSSAIs, as we have to define them for multiple NFs.
# Please note that the use of anchors is not mandatory, and you can define the SNSSAI in each NF yourself.
# You can read more about anchors here: https://yaml.org/spec/1.2.2/#anchors-and-aliases
############# 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: no
http_version: 1
############## 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: 80
api_version: v1
interface_name: eth0
n2:
interface_name: eth0
port: 38412
smf:
host: oai-smf
sbi:
port: 80
api_version: v1
interface_name: eth0
n4:
interface_name: eth0
port: 8805
upf:
host: oai-upf
sbi:
port: 80
api_version: v1
interface_name: eth0
n3:
interface_name: eth0
port: 2152
n4:
interface_name: eth0
port: 8805
n6:
interface_name: eth1
n9:
interface_name: eth0
port: 2152
#### 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
## general single_nssai configuration
## Defines YAML anchors, which are reused in the config file
snssais:
- &embb_slice1
sst: 1
- &embb_slice2
sst: 2
- &embb_slice3
sst: 3
############## NF-specific configuration
amf:
amf_name: "OAI-AMF"
# This really depends on if we want to keep the "mini" version or not
support_features_options:
enable_simple_scenario: yes # "no" by default with the normal deployment scenarios with AMF/SMF/UPF/AUSF/UDM/UDR/NRF.
# set it to "yes" to use with the minimalist deployment scenario (including only AMF/SMF/UPF) by using the internal AUSF/UDM implemented inside AMF.
# There's no NRF in this scenario, SMF info is taken from "nfs" section.
enable_nssf: no
enable_smf_selection: no
relative_capacity: 30
statistics_timer_interval: 20 # in seconds
emergency_support: false
served_guami_list:
- mcc: 208
mnc: 99
amf_region_id: 01
amf_set_id: 001
amf_pointer: 01
plmn_support_list:
- mcc: 208
mnc: 99
tac: 0x0001
nssai:
- *embb_slice1
- *embb_slice2
- *embb_slice3
supported_integrity_algorithms:
- "NIA0"
- "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
upfs:
- host: oai-upf
port: 8805
config:
enable_usage_reporting: no
# follows UPFInfo from 3GPP TS 29.510, currently only these values from interfaceUpfInfoList are supported
upf_info:
interfaceUpfInfoList:
- interfaceType: "N3"
networkInstance: "access.oai.org"
- interfaceType: "N6"
networkInstance: "core.oai.org"
ue_dns:
primary_ipv4: "172.21.3.100"
primary_ipv6: "2001:4860:4860::8888"
secondary_ipv4: "8.8.8.8"
secondary_ipv6: "2001:4860:4860::8888"
ims:
pcscf_ipv4: "127.0.0.1"
pcscf_ipv6: "fe80::7915:f408:1787:db8b"
# the DNN you configure here should be configured in "dnns"
# follows the SmfInfo datatype from 3GPP TS 29.510
smf_info:
sNssaiSmfInfoList:
- sNssai: *embb_slice1
dnnSmfInfoList:
- dnn: "oai"
local_subscription_infos:
- single_nssai: *embb_slice1
dnn: "oai"
qos_profile:
5qi: 9
session_ambr_ul: "200Mbps"
session_ambr_dl: "400Mbps"
- single_nssai: *embb_slice2
dnn: "oai"
qos_profile:
5qi: 9
session_ambr_ul: "200Mbps"
session_ambr_dl: "400Mbps"
- single_nssai: *embb_slice3
dnn: "oai"
qos_profile:
5qi: 9
session_ambr_ul: "200Mbps"
session_ambr_dl: "400Mbps"
upf:
support_features:
enable_bpf_datapath: no # If "on": BPF is used as datapath else simpleswitch is used, DEFAULT= off
enable_snat: yes # If "on": Source natting is done for UE, DEFAULT= off
remote_n6_gw: localhost # Dummy host since simple-switch does not use N6 GW
upf_info:
sNssaiUpfInfoList:
- sNssai: *embb_slice1
dnnUpfInfoList:
- dnn: "oai"
- sNssai: *embb_slice2
dnnUpfInfoList:
- dnn: "oai"
- sNssai: *embb_slice3
dnnUpfInfoList:
- dnn: "oai"
## DNN configuration
dnns:
- dnn: "oai"
pdu_session_type: "IPV4"
ipv4_subnet: "12.1.1.0/24"
version: '3.8' version: '3.8'
services: services:
oai-nrf:
container_name: "rfsim5g-oai-nrf"
image: oaisoftwarealliance/oai-nrf:v1.5.0
environment:
- NRF_INTERFACE_NAME_FOR_SBI=eth0
- TZ=Europe/Paris
networks:
public_net:
ipv4_address: 192.168.71.130
mysql: mysql:
container_name: "rfsim5g-mysql" container_name: "rfsim5g-mysql"
image: mysql:8.0 image: mysql:8.0
...@@ -31,108 +22,36 @@ services: ...@@ -31,108 +22,36 @@ services:
ipv4_address: 192.168.71.131 ipv4_address: 192.168.71.131
oai-amf: oai-amf:
container_name: "rfsim5g-oai-amf" container_name: "rfsim5g-oai-amf"
image: oaisoftwarealliance/oai-amf:v1.5.0 image: oaisoftwarealliance/oai-amf:v2.0.0
environment: environment:
- TZ=Europe/paris - TZ=Europe/paris
- MCC=208 volumes:
- MNC=99 - ../5g_rfsimulator/mini_nonrf_config.yaml:/openair-amf/etc/config.yaml
- REGION_ID=128
- AMF_SET_ID=1
- SERVED_GUAMI_MCC_0=208
- SERVED_GUAMI_MNC_0=99
- SERVED_GUAMI_REGION_ID_0=128
- SERVED_GUAMI_AMF_SET_ID_0=1
- SERVED_GUAMI_MCC_1=460
- SERVED_GUAMI_MNC_1=11
- SERVED_GUAMI_REGION_ID_1=10
- SERVED_GUAMI_AMF_SET_ID_1=1
- PLMN_SUPPORT_MCC=208
- PLMN_SUPPORT_MNC=99
- PLMN_SUPPORT_TAC=0x0001
# Only one slice is defined (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.71.133
- SELECTED_0=true
# mysql definition in AMF is mandatory in mini deployment.
- MYSQL_SERVER=192.168.71.131
- MYSQL_USER=root
- MYSQL_PASS=linux
- MYSQL_DB=oai_db
# NF registration
- NRF_IPV4_ADDRESS=192.168.71.130
- NRF_FQDN=oai-nrf
- NF_REGISTRATION=yes
- SMF_SELECTION=yes
- USE_FQDN_DNS=yes
- USE_HTTP2=no
depends_on: depends_on:
- oai-nrf
- mysql - mysql
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.132 ipv4_address: 192.168.71.132
oai-smf: oai-smf:
container_name: "rfsim5g-oai-smf" container_name: "rfsim5g-oai-smf"
image: oaisoftwarealliance/oai-smf:v1.5.0 image: oaisoftwarealliance/oai-smf:v2.0.0
environment: environment:
- TZ=Europe/Paris - TZ=Europe/Paris
- SMF_INTERFACE_NAME_FOR_N4=eth0 volumes:
- SMF_INTERFACE_NAME_FOR_SBI=eth0 - ../5g_rfsimulator/mini_nonrf_config.yaml:/openair-smf/etc/config.yaml
- DEFAULT_DNS_IPV4_ADDRESS=172.21.3.100
- DEFAULT_DNS_SEC_IPV4_ADDRESS=4.4.4.4
- AMF_IPV4_ADDRESS=192.168.71.132
- AMF_FQDN=oai-amf
- UPF_IPV4_ADDRESS=192.168.71.134
- UPF_FQDN_0=oai-spgwu
- NRF_IPV4_ADDRESS=192.168.71.130
- NRF_FQDN=oai-nrf
- REGISTER_NRF=yes
- DISCOVER_UPF=yes
- USE_FQDN_DNS=yes
- USE_LOCAL_SUBSCRIPTION_INFO=yes
- UE_MTU=1500
# Only one slice is defined (1, 0xFFFFFF)
- DNN_NI0=oai
- TYPE0=IPv4
- DNN_RANGE0=12.1.1.2 - 12.1.1.127
- NSSAI_SST0=1
- SESSION_AMBR_UL0=200Mbps
- SESSION_AMBR_DL0=400Mbps
- DEFAULT_CSCF_IPV4_ADDRESS=127.0.0.1
- ENABLE_USAGE_REPORTING=no
depends_on: depends_on:
- oai-nrf
- oai-amf - oai-amf
networks: networks:
public_net: public_net:
ipv4_address: 192.168.71.133 ipv4_address: 192.168.71.133
oai-spgwu: oai-upf:
container_name: "rfsim5g-oai-spgwu" container_name: "rfsim5g-oai-upf"
image: oaisoftwarealliance/oai-spgwu-tiny:v1.5.0 image: oaisoftwarealliance/oai-upf:v2.0.0
environment: environment:
- TZ=Europe/Paris - TZ=Europe/Paris
- SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP=eth0 volumes:
- SGW_INTERFACE_NAME_FOR_SX=eth0 - ../5g_rfsimulator/mini_nonrf_config.yaml:/openair-upf/etc/config.yaml
- PGW_INTERFACE_NAME_FOR_SGI=eth0
- NETWORK_UE_NAT_OPTION=yes
- NETWORK_UE_IP=12.1.1.0/24
- ENABLE_5G_FEATURES=yes
- REGISTER_NRF=yes
- USE_FQDN_NRF=yes
- UPF_FQDN_5G=oai-spgwu
- NRF_IPV4_ADDRESS=192.168.71.130
- NRF_FQDN=oai-nrf
# Only one slice is defined (1, 0xFFFFFF)
- NSSAI_SST_0=1
- NSSAI_SD_0=0xffffff
- DNN_0=oai
depends_on: depends_on:
- oai-nrf
- oai-smf - oai-smf
cap_add: cap_add:
- NET_ADMIN - NET_ADMIN
...@@ -153,7 +72,7 @@ services: ...@@ -153,7 +72,7 @@ services:
"iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;"\ "iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;"\
"ip route add 12.1.1.0/24 via 192.168.72.134 dev eth0; sleep infinity" "ip route add 12.1.1.0/24 via 192.168.72.134 dev eth0; sleep infinity"
depends_on: depends_on:
- oai-spgwu - oai-upf
networks: networks:
traffic_net: traffic_net:
ipv4_address: 192.168.72.135 ipv4_address: 192.168.72.135
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment