version: '3.8' services: oai-nrf: container_name: "l2sim-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: container_name: "l2sim-mysql" image: mysql:8.0 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 retries: 30 networks: public_net: ipv4_address: 192.168.71.131 oai-amf: container_name: "l2sim-oai-amf" image: oaisoftwarealliance/oai-amf:v1.5.0 environment: - TZ=Europe/paris - MCC=208 - MNC=99 - 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: - oai-nrf - mysql networks: public_net: ipv4_address: 192.168.71.132 oai-smf: container_name: "l2sim-oai-smf" image: oaisoftwarealliance/oai-smf:v1.5.0 environment: - TZ=Europe/Paris - SMF_INTERFACE_NAME_FOR_N4=eth0 - SMF_INTERFACE_NAME_FOR_SBI=eth0 - 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: - oai-nrf - oai-amf networks: public_net: ipv4_address: 192.168.71.133 oai-spgwu: container_name: "l2sim-oai-spgwu" image: oaisoftwarealliance/oai-spgwu-tiny:v1.5.0 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.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: - oai-nrf - oai-smf cap_add: - NET_ADMIN - SYS_ADMIN cap_drop: - ALL privileged: true networks: public_net: ipv4_address: 192.168.71.134 traffic_net: ipv4_address: 192.168.72.134 oai-ext-dn: privileged: true container_name: "l2sim-oai-ext-dn" image: oaisoftwarealliance/trf-gen-cn5g:focal 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-spgwu 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 oai-gnb: image: oaisoftwarealliance/oai-gnb:develop privileged: true container_name: "l2sim-oai-gnb" network_mode: "host" environment: TZ: Europe/Paris USE_SA_NFAPI_VNF: 'yes' GNB_NAME: gnb-l2sim-vnf TAC: 1 MCC: '208' MNC: '99' MNC_LENGTH: 2 NSSAI_SST: 1 AMF_IP_ADDRESS: 192.168.71.132 GNB_NGA_IF_NAME: eno1 GNB_NGA_IP_ADDRESS: 172.21.16.128 GNB_NGU_IF_NAME: eno1 GNB_NGU_IP_ADDRESS: 172.21.16.128 LOCAL_S_IF_NAME: 'lo:' REMOTE_S_ADDRESS: 127.0.0.1 LOCAL_S_ADDRESS: 127.0.0.2 USE_ADDITIONAL_OPTIONS: --sa --nfapi VNF --emulate-l1 --log_config.global_log_options level,time,thread_id,nocolor depends_on: - oai-spgwu - oai-amf healthcheck: test: /bin/bash -c "pgrep nr-softmodem" interval: 10s timeout: 5s retries: 5 proxy: image: oai-lte-multi-ue-proxy:latest privileged: true container_name: "l2sim-proxy" network_mode: "host" environment: TZ: Europe/Paris command: "/oai-lte-multi-ue-proxy/bin/proxy 1 --nr" depends_on: - oai-gnb healthcheck: test: /bin/bash -c "pgrep proxy" interval: 10s timeout: 5s retries: 5 oai-nr-ue0: image: oaisoftwarealliance/oai-nr-ue:develop privileged: true container_name: "l2sim-oai-nr-ue0" network_mode: "host" environment: TZ: Europe/Paris USE_NFAPI: 'yes' OPENAIR_DIR: /opt/oai-nr-ue FULL_IMSI: '208990100001100' FULL_KEY: 'fec86ba6eb707ed08905757b1bb44b8f' OPC: 'C42449363BBAD02B66D16BC975D77CC1' DNN: oai NSSAI_SST: 1 NSSAI_SD: 0xffffff NR_UE_NFAPI_IF_NAME: eno1 GNB_IP_ADDRESS: 127.0.0.1 NR_UE_IP_ADDRESS: 127.0.0.1 USE_ADDITIONAL_OPTIONS: --nfapi STANDALONE_PNF --node-number 2 --sa --emulate-l1 --log_config.global_log_options level,time,thread_id,nocolor volumes: - ../../../openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results:/opt/oai-nr-ue/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results depends_on: - oai-gnb - proxy healthcheck: test: /bin/bash -c "pgrep nr-uesoftmodem" interval: 10s timeout: 5s retries: 5 networks: public_net: driver: bridge name: l2sim-oai-public-net ipam: config: - subnet: 192.168.71.128/26 driver_opts: com.docker.network.bridge.name: "l2sim-public" traffic_net: driver: bridge name: l2sim-oai-traffic-net ipam: config: - subnet: 192.168.72.128/26 driver_opts: com.docker.network.bridge.name: "l2sim-traffic"