diff --git a/doc/NR_SA_Tutorial_COTS_UE.md b/doc/NR_SA_Tutorial_COTS_UE.md index 13b07df327834f1a4f3bb3c5fe698a8c3712e2ec..211bfdd3e509edc7e5788799b7234d25982526e1 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 9f17d944552f0f6b59164c493e6adb45ac797797..1f65aa300247d28a6aa69c8a17fdb31636dec070 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 8091d44e743ef859dad4f575d6e00973b8292b2c..890e7a4e25149bf400b5ce0bd77e116a2eb497d5 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 9aeba34d02847b3d0074ad17a883ec625a0323c8..0000000000000000000000000000000000000000 --- 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 0000000000000000000000000000000000000000..a3951fdc016882e112802f9e164666267e7d9539 --- /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 d312db93c3b8f1687599ba6d22026984ea02b01f..4fadde5b436c2e4ffad38f3e67c503a5bc2444a6 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 0000000000000000000000000000000000000000..9837983ed8100b3cf449e9e4f7dbfc140cdf3030 --- /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 fc9eab0ad59ce3fc283f5efa8227057b1f3f0ccd..0000000000000000000000000000000000000000 --- 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"