From dabb8d338f13a9693a518c5b01587cc8136cd88c Mon Sep 17 00:00:00 2001 From: Rakesh Mundlamuri Date: Tue, 3 Feb 2026 12:55:49 +0530 Subject: [PATCH] Add docker compose file of the 5G core network with the LMF feature --- .../oai-cn5g/conf/config.yaml | 20 ++ .../oai-cn5g/docker-compose-positioning.yaml | 195 ++++++++++++++++++ 2 files changed, 215 insertions(+) create mode 100644 doc/tutorial_resources/oai-cn5g/docker-compose-positioning.yaml diff --git a/doc/tutorial_resources/oai-cn5g/conf/config.yaml b/doc/tutorial_resources/oai-cn5g/conf/config.yaml index f18c965ed1..6e55c95bb3 100644 --- a/doc/tutorial_resources/oai-cn5g/conf/config.yaml +++ b/doc/tutorial_resources/oai-cn5g/conf/config.yaml @@ -100,6 +100,12 @@ nfs: port: 8080 api_version: v1 interface_name: eth0 + lmf: + host: oai-lmf + sbi: + port: 8080 + api_version: v1 + interface_name: eth0 #### Common for UDR and AMF database: @@ -220,6 +226,20 @@ upf: - dnn: "ims" - dnn: "default" +lmf: + http_threads_count: 8 + gnb_id_bits_count: 28 + num_gnb: 1 + trp_info_wait_ms: 500 + positioning_wait_ms: 500 + measurement_wait_ms: 500 + support_features: + request_trp_info: no + determine_num_gnb: yes + use_http2: yes + use_fqdn_dns: no + register_nrf: yes + ## DNN configuration dnns: - dnn: "oai" diff --git a/doc/tutorial_resources/oai-cn5g/docker-compose-positioning.yaml b/doc/tutorial_resources/oai-cn5g/docker-compose-positioning.yaml new file mode 100644 index 0000000000..6b75c22b6b --- /dev/null +++ b/doc/tutorial_resources/oai-cn5g/docker-compose-positioning.yaml @@ -0,0 +1,195 @@ +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: "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-lmf: + container_name: "oai-lmf" + image: oaisoftwarealliance/oai-lmf:develop + #image: oai-lmf:psoElementwiseTdoAmeanVarTDoAfilter + expose: + - 80/tcp + - 8080/tcp + volumes: + - ./conf/config.yaml:/openair-lmf/etc/config.yaml + environment: + - TZ=Europe/Paris + depends_on: + - mysql + - oai-nrf + - oai-amf + networks: + public_net: + ipv4_address: 192.168.70.141 + 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-upf: + container_name: "oai-upf" + image: oaisoftwarealliance/oai-upf:develop + expose: + - 2152/udp + - 8805/udp + volumes: + - ./conf/config.yaml:/openair-upf/etc/config.yaml + environment: + - TZ=Europe/Paris + 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 10.0.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 10.0.0" + interval: 5s + timeout: 2s + retries: 10 + networks: + public_net: + ipv4_address: 192.168.70.135 +networks: + public_net: + driver: bridge + name: oai-cn5g-public-net + ipam: + config: + - subnet: 192.168.70.128/26 + driver_opts: + com.docker.network.bridge.name: "oai-cn5g"