services: # CIR Generator service - generates CIRDB files on every CI run cir-generator: image: oaisoftwarealliance/cir-generator:test environment: GENERATOR_ARGS: "--demo" OUTPUT: "--out /opt/output/cir_db.bin" volumes: - cirdb_data:/opt/output mysql: container_name: "rfsim5g-mysql" image: mysql:8.0 init: true volumes: - ../5g_rfsimulator/oai_db.sql:/docker-entrypoint-initdb.d/oai_db.sql - ../5g_rfsimulator/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 start_period: 10s start_interval: 500ms retries: 30 networks: public_net: ipv4_address: 192.168.71.131 oai-amf: container_name: "rfsim5g-oai-amf" image: oaisoftwarealliance/oai-amf:v2.1.10 environment: - TZ=Europe/paris volumes: - ../5g_rfsimulator/mini_nonrf_config.yaml:/openair-amf/etc/config.yaml depends_on: - mysql networks: public_net: ipv4_address: 192.168.71.132 oai-smf: container_name: "rfsim5g-oai-smf" image: oaisoftwarealliance/oai-smf:v2.1.10 environment: - TZ=Europe/Paris volumes: - ../5g_rfsimulator/mini_nonrf_config.yaml:/openair-smf/etc/config.yaml depends_on: - oai-amf networks: public_net: ipv4_address: 192.168.71.133 oai-upf: container_name: "rfsim5g-oai-upf" image: oaisoftwarealliance/oai-upf:v2.1.10 init: true environment: - TZ=Europe/Paris volumes: - ../5g_rfsimulator/mini_nonrf_config.yaml:/openair-upf/etc/config.yaml depends_on: - oai-smf cap_add: - NET_ADMIN - SYS_ADMIN cap_drop: - ALL privileged: true networks: public_net: ipv4_address: 192.168.71.134 interface_name: eth0 traffic_net: ipv4_address: 192.168.72.134 interface_name: eth1 oai-ext-dn: privileged: true container_name: rfsim5g-oai-ext-dn image: oaisoftwarealliance/trf-gen-cn5g:latest init: true entrypoint: /bin/bash -c \ "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" depends_on: - oai-upf networks: traffic_net: ipv4_address: 192.168.72.135 healthcheck: test: /bin/bash -c "ping -c 2 192.168.72.134" interval: 10s timeout: 5s retries: 5 start_period: 10s start_interval: 500ms oai-gnb: image: ${REGISTRY-oaisoftwarealliance/}${GNB_IMG:-oai-gnb}:${TAG:-develop} container_name: rfsim5g-oai-gnb cap_drop: - ALL environment: USE_ADDITIONAL_OPTIONS: -E --log_config.global_log_options level,nocolor,time --device.name vrtsim --vrtsim.role server --vrtsim.num_ues 2 --vrtsim.cirdb 1 --vrtsim.cirdb_file /cirdb/cir_db.bin --vrtsim.cirdb_yaml /cirdb/cir_db.yaml --vrtsim.ue_config.[0].antennas 1x2 --vrtsim.ue_config.[0].model_id 0 --vrtsim.ue_config.[0].ds_ns 10.0 --vrtsim.ue_config.[0].speed_mps 1.5 --vrtsim.ue_config.[1].antennas 2x2 --vrtsim.ue_config.[1].model_id 1 --vrtsim.ue_config.[1].ds_ns 10.0 --vrtsim.ue_config.[1].speed_mps 1.5 --gNBs.[0].min_rxtxtime 8 depends_on: cir-generator: condition: service_completed_successfully oai-ext-dn: condition: service_started networks: public_net: ipv4_address: 192.168.71.140 volumes: - ../../conf_files/gnb.sa.band78.106prb.vrtsim.2x2.yaml:/opt/oai-gnb/etc/gnb.yaml - cirdb_data:/cirdb:ro - tmp_data:/tmp/ healthcheck: test: /bin/bash -c "pgrep nr-softmodem" interval: 10s timeout: 5s start_period: 10s start_interval: 500ms retries: 5 ipc: host oai-nr-ue0: image: ${REGISTRY-oaisoftwarealliance/}${NRUE_IMG:-oai-nr-ue}:${TAG:-develop} container_name: rfsim5g-oai-nr-ue cap_drop: - ALL cap_add: - NET_ADMIN - NET_RAW environment: USE_ADDITIONAL_OPTIONS: -E -r 106 --numerology 1 --band 78 -C 3319680000 --ssb 516 --uicc0.imsi 208990100001100 --log_config.global_log_options level,nocolor,time --device.name vrtsim --vrtsim.role client --vrtsim.ue_id 0 --ue-nb-ant-tx 1 --ue-nb-ant-rx 2 depends_on: - oai-gnb networks: public_net: ipv4_address: 192.168.71.150 devices: - /dev/net/tun:/dev/net/tun volumes: - ../../conf_files/nrue.vrtsim.chanmod.yaml:/opt/oai-nr-ue/etc/nr-ue.yaml - tmp_data:/tmp/ healthcheck: test: /bin/bash -c "pgrep nr-uesoftmodem" interval: 10s timeout: 5s retries: 5 start_period: 10s start_interval: 500ms ipc: host oai-nr-ue1: image: ${REGISTRY-oaisoftwarealliance/}${NRUE_IMG:-oai-nr-ue}:${TAG:-develop} container_name: rfsim5g-oai-nr-ue2 cap_drop: - ALL cap_add: - NET_ADMIN - NET_RAW environment: USE_ADDITIONAL_OPTIONS: -E -r 106 --numerology 1 --band 78 -C 3319680000 --ssb 516 --uicc0.imsi 208990100001101 --log_config.global_log_options level,nocolor,time --device.name vrtsim --vrtsim.role client --vrtsim.ue_id 1 --ue-nb-ant-tx 2 --ue-nb-ant-rx 2 depends_on: - oai-gnb networks: public_net: ipv4_address: 192.168.71.151 devices: - /dev/net/tun:/dev/net/tun volumes: - ../../conf_files/nrue.vrtsim.chanmod.yaml:/opt/oai-nr-ue/etc/nr-ue.yaml - tmp_data:/tmp/ healthcheck: test: /bin/bash -c "pgrep nr-uesoftmodem" interval: 10s timeout: 5s retries: 5 start_period: 10s start_interval: 500ms ipc: host networks: public_net: driver: bridge name: rfsim5g-oai-public-net ipam: config: - subnet: 192.168.71.128/26 driver_opts: com.docker.network.bridge.name: "rfsim5g-public" 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" volumes: tmp_data: cirdb_data: