docker-compose.yaml 8.88 KB
Newer Older
1 2 3 4
version: '3.8'
services:
    oai-nrf:
        container_name: "rfsim5g-oai-nrf"
5
        image: oaisoftwarealliance/oai-nrf:v1.5.0
6 7
        environment:
            - NRF_INTERFACE_NAME_FOR_SBI=eth0
8
            - TZ=Europe/Paris
9 10 11 12 13
        networks:
            public_net:
                ipv4_address: 192.168.71.130
    mysql:
        container_name: "rfsim5g-mysql"
14
        image: mysql:8.0
15 16 17 18 19 20 21 22 23 24 25 26 27
        volumes:
            - ./oai_db.sql:/docker-entrypoint-initdb.d/oai_db.sql
            - ./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
28
            retries: 30
29 30 31 32 33
        networks:
            public_net:
                ipv4_address: 192.168.71.131
    oai-amf:
        container_name: "rfsim5g-oai-amf"
34
        image: oaisoftwarealliance/oai-amf:v1.5.0
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
        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
52
            # Only one slice is defined (1, 0xFFFFFF).
53 54 55
            - SST_0=1
            - AMF_INTERFACE_NAME_FOR_NGAP=eth0
            - AMF_INTERFACE_NAME_FOR_N11=eth0
56
            # One single SMF instance
57 58
            - SMF_INSTANCE_ID_0=1
            - SMF_FQDN_0=oai-smf
59
            - SMF_IPV4_ADDR_0=192.168.71.133
60
            - SELECTED_0=true
61
            # mysql definition in AMF is mandatory in mini deployment.
62 63 64 65
            - MYSQL_SERVER=192.168.71.131
            - MYSQL_USER=root
            - MYSQL_PASS=linux
            - MYSQL_DB=oai_db
66
            # NF registration
67
            - NRF_IPV4_ADDRESS=192.168.71.130
68
            - NRF_FQDN=oai-nrf
69 70 71
            - NF_REGISTRATION=yes
            - SMF_SELECTION=yes
            - USE_FQDN_DNS=yes
72
            - USE_HTTP2=no
73 74
        depends_on:
            - oai-nrf
75
            - mysql
76 77 78 79 80
        networks:
            public_net:
                ipv4_address: 192.168.71.132
    oai-smf:
        container_name: "rfsim5g-oai-smf"
81
        image: oaisoftwarealliance/oai-smf:v1.5.0
82 83 84 85
        environment:
            - TZ=Europe/Paris
            - SMF_INTERFACE_NAME_FOR_N4=eth0
            - SMF_INTERFACE_NAME_FOR_SBI=eth0
86
            - DEFAULT_DNS_IPV4_ADDRESS=172.21.3.100
87
            - DEFAULT_DNS_SEC_IPV4_ADDRESS=4.4.4.4
88
            - AMF_IPV4_ADDRESS=192.168.71.132
89 90 91 92 93 94 95 96
            - 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
97 98 99
            - USE_LOCAL_SUBSCRIPTION_INFO=yes
            - UE_MTU=1500
            # Only one slice is defined (1, 0xFFFFFF)
100
            - DNN_NI0=oai
101 102 103 104 105
            - TYPE0=IPv4
            - DNN_RANGE0=12.1.1.2 - 12.1.1.127
            - NSSAI_SST0=1
            - SESSION_AMBR_UL0=200Mbps
            - SESSION_AMBR_DL0=400Mbps
106 107
            - DEFAULT_CSCF_IPV4_ADDRESS=127.0.0.1
            - ENABLE_USAGE_REPORTING=no
108 109
        depends_on:
            - oai-nrf
110
            - oai-amf
111 112 113 114 115
        networks:
            public_net:
                ipv4_address: 192.168.71.133
    oai-spgwu:
        container_name: "rfsim5g-oai-spgwu"
116
        image: oaisoftwarealliance/oai-spgwu-tiny:v1.5.0
117 118 119 120 121 122 123 124 125 126 127 128 129
        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
130
            # Only one slice is defined (1, 0xFFFFFF)
131
            - NSSAI_SST_0=1
132
            - NSSAI_SD_0=0xffffff
133 134 135
            - DNN_0=oai
        depends_on:
            - oai-nrf
136
            - oai-smf
137 138 139 140 141 142 143 144 145 146 147 148 149 150
        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: rfsim5g-oai-ext-dn
151
        image: oaisoftwarealliance/trf-gen-cn5g:focal
152 153 154 155 156 157 158 159 160 161 162 163 164 165
        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-cu:
166
        image: oaisoftwarealliance/oai-gnb:develop
167 168 169 170 171 172 173 174 175 176 177 178 179
        privileged: true
        container_name: rfsim5g-oai-cu
        environment: 
            RFSIMULATOR: server
            USE_SA_CU: 'yes'
            GNB_NAME: cu-rfsim
            TAC: 1
            MCC: '208'
            MNC: '99'
            MNC_LENGTH: 2
            NSSAI_SST: 1
            AMF_IP_ADDRESS: 192.168.71.132
            GNB_NGA_IF_NAME: eth0
180
            GNB_NGA_IP_ADDRESS: 192.168.71.140
181
            GNB_NGU_IF_NAME: eth0
182
            GNB_NGU_IP_ADDRESS: 192.168.71.140
183
            F1_IF_NAME: eth0
184 185
            F1_CU_IP_ADDRESS: 192.168.71.140
            F1_DU_IP_ADDRESS: 192.168.71.142
186 187
            F1_CU_D_PORT: 2153
            F1_DU_D_PORT: 2153
188
            USE_ADDITIONAL_OPTIONS: --sa --rfsim --log_config.global_log_options level,nocolor,time
189 190 191 192
        depends_on:
            - oai-ext-dn
        networks:
            public_net:
193
                ipv4_address: 192.168.71.140
194 195 196 197 198 199
        healthcheck:
            test: /bin/bash -c "pgrep nr-softmodem"
            interval: 10s
            timeout: 5s
            retries: 5
    oai-du:
200
        image: oaisoftwarealliance/oai-gnb:develop
201 202 203 204
        privileged: true
        container_name: rfsim5g-oai-du
        environment: 
            RFSIMULATOR: server
205
            USE_SA_TDD_DU: 'yes'
206 207 208 209 210 211 212 213
            GNB_NAME: du-rfsim
            TAC: 1
            MCC: '208'
            MNC: '99'
            MNC_LENGTH: 2
            NSSAI_SST: 1
            AMF_IP_ADDRESS: 192.168.71.132
            GNB_NGA_IF_NAME: eth0
214
            GNB_NGA_IP_ADDRESS: 192.168.71.142
215
            GNB_NGU_IF_NAME: eth0
216
            GNB_NGU_IP_ADDRESS: 192.168.71.142
217
            F1_IF_NAME: eth0
218 219
            F1_CU_IP_ADDRESS: 192.168.71.140
            F1_DU_IP_ADDRESS: 192.168.71.142
220 221
            F1_CU_D_PORT: 2153
            F1_DU_D_PORT: 2153
222
            USE_ADDITIONAL_OPTIONS: --sa --rfsim --rfsimulator.wait_timeout 20 --log_config.global_log_options level,nocolor,time
223 224 225 226
        depends_on:
            - oai-cu
        networks:
            public_net:
227
                ipv4_address: 192.168.71.142
228 229 230 231 232 233
        healthcheck:
            test: /bin/bash -c "pgrep nr-softmodem"
            interval: 10s
            timeout: 5s
            retries: 5
    oai-nr-ue:
234
        image: oaisoftwarealliance/oai-nr-ue:develop
235 236 237
        privileged: true
        container_name: rfsim5g-oai-nr-ue
        environment: 
238
            RFSIMULATOR: 192.168.71.142
239 240 241 242 243
            FULL_IMSI: '208990100001100'
            FULL_KEY: 'fec86ba6eb707ed08905757b1bb44b8f'
            OPC: 'C42449363BBAD02B66D16BC975D77CC1'
            DNN: oai
            NSSAI_SST: 1
244
            USE_ADDITIONAL_OPTIONS: --sa --rfsim -r 106 --numerology 1 -C 3619200000 --log_config.global_log_options level,nocolor,time
245 246 247 248
        depends_on:
            - oai-du
        networks:
            public_net:
249
                ipv4_address: 192.168.71.150
250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272
        healthcheck:
            test: /bin/bash -c "pgrep nr-uesoftmodem"
            interval: 10s
            timeout: 5s
            retries: 5

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-net
        ipam:
            config:
                - subnet: 192.168.72.128/26
        driver_opts:
            com.docker.network.bridge.name: "rfsim5g-traffic"