diff --git a/ci-scripts/conf_files/gnb-cucp.sa.f1.conf b/ci-scripts/conf_files/gnb-cucp.sa.f1.conf index 469ab8d187..94200b8189 100644 --- a/ci-scripts/conf_files/gnb-cucp.sa.f1.conf +++ b/ci-scripts/conf_files/gnb-cucp.sa.f1.conf @@ -16,7 +16,7 @@ gNBs = // Tracking area code, 0x0000 and 0xfffe are reserved values tracking_area_code = 1; - plmn_list = ({ mcc = 208; mnc = 99; mnc_length = 2; snssaiList = ({ sst = 1, sd = 0xffffff }) }); + plmn_list = ({ mcc = 208; mnc = 99; mnc_length = 2; snssaiList = ({ sst = 1 }, { sst = 2 }, { sst = 3 }) }); nr_cellid = 12345678L; @@ -24,8 +24,8 @@ gNBs = tr_s_preference = "f1"; local_s_if_name = "lo"; - local_s_address = "192.168.72.140"; - remote_s_address = "192.168.72.143"; + local_s_address = "192.168.71.150"; + remote_s_address = "0.0.0.0"; # multiple DUs local_s_portc = 501; local_s_portd = 2152; remote_s_portc = 500; @@ -52,9 +52,9 @@ gNBs = ( { type = "cp"; - ipv4_cucp = "192.168.72.140"; + ipv4_cucp = "192.168.71.150"; port_cucp = 38462; - ipv4_cuup = "192.168.72.141"; + ipv4_cuup = "0.0.0.0"; # multiple CU-UPs port_cuup = 38462; } ) diff --git a/ci-scripts/conf_files/gnb-cuup.sa.f1.conf b/ci-scripts/conf_files/gnb-cuup.sa.f1.conf index d6c54f0b9a..07e3701749 100644 --- a/ci-scripts/conf_files/gnb-cuup.sa.f1.conf +++ b/ci-scripts/conf_files/gnb-cuup.sa.f1.conf @@ -22,12 +22,12 @@ gNBs = tr_s_preference = "f1"; local_s_if_name = "lo"; - local_s_address = "192.168.72.141"; - remote_s_address = "192.168.72.142"; + local_s_address = "192.168.72.161"; + remote_s_address = "192.168.72.171"; local_s_portc = 501; - local_s_portd = 2152; + local_s_portd = 2153; remote_s_portc = 500; - remote_s_portd = 2152; + remote_s_portd = 2153; # ------- SCTP definitions SCTP : @@ -41,17 +41,17 @@ gNBs = ( { type = "up"; - ipv4_cucp = "192.168.72.140"; - ipv4_cuup = "192.168.72.141"; + ipv4_cucp = "192.168.71.150"; + ipv4_cuup = "192.168.71.161"; } ) NETWORK_INTERFACES : { GNB_INTERFACE_NAME_FOR_NG_AMF = "demo-oai"; - GNB_IPV4_ADDRESS_FOR_NG_AMF = "192.168.71.141/24"; + GNB_IPV4_ADDRESS_FOR_NG_AMF = "192.168.71.161/24"; GNB_INTERFACE_NAME_FOR_NGU = "demo-oai"; - GNB_IPV4_ADDRESS_FOR_NGU = "192.168.71.141/24"; + GNB_IPV4_ADDRESS_FOR_NGU = "192.168.71.161/24"; GNB_PORT_FOR_S1U = 2152; # Spec 2152 }; } diff --git a/ci-scripts/xml_files/container_5g_e1_rfsim.xml b/ci-scripts/xml_files/container_5g_e1_rfsim.xml index b89b8a2bd2..8ccb7bdd15 100644 --- a/ci-scripts/xml_files/container_5g_e1_rfsim.xml +++ b/ci-scripts/xml_files/container_5g_e1_rfsim.xml @@ -27,14 +27,10 @@ 111111 100021 - 000020 000021 000022 000023 - 000024 020021 - 020022 - 030021 100021 @@ -46,80 +42,38 @@ oai-gnb-asan oai-nr-cuup-asan oai-nr-ue-asan - - DeployGenObject - Deploy MySql Database - yaml_files/5g_rfsimulator_e1 - mysql - 1 - - DeployGenObject Deploy OAI 5G CoreNetwork yaml_files/5g_rfsimulator_e1 - oai-nrf oai-amf oai-smf oai-spgwu oai-ext-dn + mysql oai-nrf oai-amf oai-smf oai-spgwu oai-ext-dn 6 DeployGenObject - Deploy OAI 5G CU-CP RF sim SA + Deploy OAI 5G RAN RF sim SA (1 CU-CP, 3 CU-UPs, 3 DUs) yaml_files/5g_rfsimulator_e1 - oai-cucp - 7 + oai-cucp oai-cuup oai-cuup2 oai-cuup3 oai-du oai-du2 oai-du3 + 13 - DeployGenObject - Deploy OAI 5G CU-UP and DU RF sim SA - yaml_files/5g_rfsimulator_e1 - oai-cuup oai-du - 9 - - - DeployGenObject Deploy OAI 5G NR-UE RF sim SA yaml_files/5g_rfsimulator_e1 - oai-nr-ue - 10 + oai-nr-ue oai-nr-ue2 oai-nr-ue3 + 16 Ping - Ping ext-dn from NR-UE - rfsim5g_ue - -c 20 192.168.73.135 + Ping ext-dn from all NR-UEs + rfsim5g_ue rfsim5g_ue2 rfsim5g_ue3 + -c 20 12.1.1.1 -i0.25 5 - - Ping - Ping NR-UE from ext-dn - rfsim5g_ext_dn - -c 20 12.1.1.2 - 5 - - - - IperfFromContainer - Iperf UDP Downlink - rfsim5g-oai-nr-ue - rfsim5g-oai-ext-dn - -B 12.1.1.2 -u -i 1 -s - -c 12.1.1.2 -u -i 1 -t 30 -b 3M - - - - IperfFromContainer - Iperf UDP Uplink - rfsim5g-oai-ext-dn - rfsim5g-oai-nr-ue - -u -i 1 -s - -B 12.1.1.2 -c 192.168.73.135 -u -i 1 -t 30 -b 1M - - UndeployGenObject Undeploy all OAI 5G stack diff --git a/ci-scripts/xml_files/container_5g_e1_rfsim_down.xml b/ci-scripts/xml_files/container_5g_e1_rfsim_down.xml index a1213c9b9b..4ccf180fd0 100644 --- a/ci-scripts/xml_files/container_5g_e1_rfsim_down.xml +++ b/ci-scripts/xml_files/container_5g_e1_rfsim_down.xml @@ -22,7 +22,7 @@ --> rfsim-5gnr-down-e1 - CleanUp CUCP-CUUP-DU E1+F1 split + CleanUp E1+F1 split trash 100022 diff --git a/ci-scripts/yaml_files/5g_rfsimulator_e1/README.md b/ci-scripts/yaml_files/5g_rfsimulator_e1/README.md new file mode 100644 index 0000000000..b59440e958 --- /dev/null +++ b/ci-scripts/yaml_files/5g_rfsimulator_e1/README.md @@ -0,0 +1,136 @@ +# CI test for 5G F1+E1 splits with RFsimulator + +## General + +This docker-compose file deploys a core, RAN, and 3 UEs. Specifically: + +- 5GC mini deployment, +- 1 CU-CP, +- 3 CU-UPs, one for slices SST=1,2,3, +- 3 DUs, +- 3 UEs connecting to each DU, each requesting slice SST=1,2,3. + +The CU-CP associates each UE X connecting through DU X to CU-UP X, X=1,2,3. To +this end, the docker-compose file deliberately employs the three `ran_netX` +networks to route the user-plane traffic of each DU X/CU-UP X pair, through the +`ran_netX` network in order to effectively test that the correct CU-UP is +associated. Basically, the traffic test will only succeed if the correct pair +of DU/CU-UP has been established; if not, the DU/CU-UP cannot communicate, as +the traffic cannot be routed. + +For all other (CP, RFsim) traffic, all entities use the `public_net` network. + +## How to run + +You should be able to deploy the [basic 5G RFsim deployment](../5g_rfsimulator/README.md). + +First, start the MySQL server and 5GC: +```bash +$ docker-compose up -d mysql oai-nrf oai-amf oai-smf oai-spgwu oai-ext-dn +$ docker-compose ps -a +``` + +Wait till everything is healthy. + +Next, start the RAN: +```bash +$ docker-compose up -d oai-cucp oai-cuup{,2,3} oai-du{,2,3} +``` + +You can verify that the DUs and CU-UPs connected successfully: +```bash +$ docker logs rfsim5g-oai-cucp +[...] +18535.139811 [RRC] I Accepting new CU-UP ID 3585 name gNB-OAI (assoc_id 257) +18535.425744 [RRC] I Accepting new CU-UP ID 3584 name gNB-OAI (assoc_id 260) +18535.425757 [RRC] I Accepting new CU-UP ID 3586 name gNB-OAI (assoc_id 261) +18535.669733 [NR_RRC] I Received F1 Setup Request from gNB_DU 3585 (du-rfsim) on assoc_id 263 +18535.669814 [RRC] I Accepting DU 3585 (du-rfsim), sending F1 Setup Response +18536.066417 [NR_RRC] I Received F1 Setup Request from gNB_DU 3586 (du-rfsim) on assoc_id 265 +18536.066476 [RRC] I Accepting DU 3586 (du-rfsim), sending F1 Setup Response +18536.135581 [NR_RRC] I Received F1 Setup Request from gNB_DU 3584 (du-rfsim) on assoc_id 267 +18536.135650 [RRC] I Accepting DU 3584 (du-rfsim), sending F1 Setup Response +``` + +You should see that the CU-UP initialized two GTP instances (one for NG-U, the +other for F1-U): +``` +$ docker logs -f rfsim5g-oai-cuup +[...] +18535.425535 [GTPU] I Initializing UDP for local address 192.168.72.161 with port 2152 +18535.425571 [GTPU] I Created gtpu instance id: 96 +18535.425577 [GTPU] I Configuring GTPu address : 192.168.71.161, port : 2152 +18535.425581 [GTPU] I Initializing UDP for local address 192.168.71.161 with port 2152 +18535.425604 [GTPU] I Created gtpu instance id: 97 +``` + +You should see the typical periodical output at the DUs: +``` +$ docker logs rfsim5g-oai-du +[...] +18626.446953 [NR_MAC] I Frame.Slot 128.0 + +18629.151076 [NR_MAC] I Frame.Slot 256.0 +``` + +Next, connect the UEs. They are configured to connect to each DU by setting the +RFsimulator server address to the `public_net` IP address of each DU. For each, +you should see that they get an IP address +```bash +$ docker compose up -d oai-nr-ue{,2,3} +$ docker logs oai-nr-ue +[...] +18758.176149 [NR_RRC] I rrcReconfigurationComplete Encoded 10 bits (2 bytes) +18758.176153 [NR_RRC] I Logical Channel UL-DCCH (SRB1), Generating RRCReconfigurationComplete (bytes 2) +18758.176154 [NAS] I [UE 0] Received NAS_CONN_ESTABLI_CNF: errCode 1, length 87 +18758.176455 [OIP] I Interface oaitun_ue1 successfully configured, ip address 12.1.1.3, mask 255.255.255.0 broadcast address 12.1.1.255 +``` + +Alternatively, check that they all received an IP address (the associated IP +addresses might be different): +```bash +$ docker exec -it rfsim5g-oai-nr-ue3 ip a show oaitun_ue1 +[...] + inet 12.1.1.2/24 brd 12.1.1.255 scope global oaitun_ue1 +[...] +$ docker exec -it rfsim5g-oai-nr-ue2 ip a show oaitun_ue1 +[...] + inet 12.1.1.4/24 brd 12.1.1.255 scope global oaitun_ue1 +[...] +$ docker exec -it rfsim5g-oai-nr-ue ip a show oaitun_ue1 +[...] + inet 12.1.1.3/24 brd 12.1.1.255 scope global oaitun_ue1 +[...] +``` + +Also, note that each DU sees only one UE! At the CU-CP, you should see that +each DU has been associated to a different CU-UP, based on the NSSAI (`exact +NSSAI match`): +```bash +$ docker logs rfsim5g-oai-cucp | grep CU-U +[...] +18757.531423 [RRC] I selecting CU-UP ID 3586 based on exact NSSAI match (3:0xffffff) +18757.531434 [RRC] I UE 1 associating to CU-UP assoc_id 261 out of 3 CU-UPs +18758.171502 [RRC] I selecting CU-UP ID 3584 based on exact NSSAI match (1:0xffffff) +18758.171510 [RRC] I UE 2 associating to CU-UP assoc_id 260 out of 3 CU-UPs +18758.772320 [RRC] I selecting CU-UP ID 3585 based on exact NSSAI match (2:0xffffff) +18758.772327 [RRC] I UE 3 associating to CU-UP assoc_id 257 out of 3 CU-UPs +``` + +Also, each UE should be able to ping the core network. For instance, with UE 1: +```bash +$ docker exec -it rfsim5g-oai-nr-ue ping -c1 12.1.1.1 +PING 12.1.1.1 (12.1.1.1) 56(84) bytes of data. +64 bytes from 12.1.1.1: icmp_seq=1 ttl=64 time=15.2 ms + +--- 12.1.1.1 ping statistics --- +1 packets transmitted, 1 received, 0% packet loss, time 0ms +rtt min/avg/max/mdev = 15.155/15.155/15.155/0.000 ms +``` + +Finally, undeploy the UEs (to give them time to do deregistration), and then +the rest of the network: +```bash +$ docker compose stop oai-nr-ue{,2,3} +$ docker compose down +``` diff --git a/ci-scripts/yaml_files/5g_rfsimulator_e1/docker-compose.yaml b/ci-scripts/yaml_files/5g_rfsimulator_e1/docker-compose.yaml index 4eaa942824..8479e32723 100644 --- a/ci-scripts/yaml_files/5g_rfsimulator_e1/docker-compose.yaml +++ b/ci-scripts/yaml_files/5g_rfsimulator_e1/docker-compose.yaml @@ -7,14 +7,14 @@ services: - NRF_INTERFACE_NAME_FOR_SBI=eth0 - TZ=Europe/Paris networks: - core_net: + public_net: ipv4_address: 192.168.71.130 mysql: container_name: "rfsim5g-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 + - ../5g_f1_rfsimulator/oai_db.sql:/docker-entrypoint-initdb.d/oai_db.sql + - ../5g_f1_rfsimulator/mysql-healthcheck.sh:/tmp/mysql-healthcheck.sh environment: - TZ=Europe/Paris - MYSQL_DATABASE=oai_db @@ -27,7 +27,7 @@ services: timeout: 5s retries: 30 networks: - core_net: + public_net: ipv4_address: 192.168.71.131 oai-amf: container_name: "rfsim5g-oai-amf" @@ -49,8 +49,10 @@ services: - PLMN_SUPPORT_MCC=208 - PLMN_SUPPORT_MNC=99 - PLMN_SUPPORT_TAC=0x0001 - # Only one slice is defined (1, 0xFFFFFF). + # Three slices are defined - SST_0=1 + - SST_1=2 + - SST_2=3 - AMF_INTERFACE_NAME_FOR_NGAP=eth0 - AMF_INTERFACE_NAME_FOR_N11=eth0 # One single SMF instance @@ -74,7 +76,7 @@ services: - oai-nrf - mysql networks: - core_net: + public_net: ipv4_address: 192.168.71.132 oai-smf: container_name: "rfsim5g-oai-smf" @@ -101,6 +103,8 @@ services: - TYPE0=IPv4 - DNN_RANGE0=12.1.1.2 - 12.1.1.127 - NSSAI_SST0=1 + - NSSAI_SST1=2 + - NSSAI_SST2=3 - SESSION_AMBR_UL0=200Mbps - SESSION_AMBR_DL0=400Mbps - DEFAULT_CSCF_IPV4_ADDRESS=127.0.0.1 @@ -109,7 +113,7 @@ services: - oai-nrf - oai-amf networks: - core_net: + public_net: ipv4_address: 192.168.71.133 oai-spgwu: container_name: "rfsim5g-oai-spgwu" @@ -127,10 +131,16 @@ services: - UPF_FQDN_5G=oai-spgwu - NRF_IPV4_ADDRESS=192.168.71.130 - NRF_FQDN=oai-nrf - # Only one slice is defined (1, 0xFFFFFF) + # Three slices are defined - NSSAI_SST_0=1 - NSSAI_SD_0=0xffffff - DNN_0=oai + - NSSAI_SST_1=2 + - NSSAI_SD_1=0xffffff + - DNN_1=oai + - NSSAI_SST_2=3 + - NSSAI_SD_2=0xffffff + - DNN_2=oai depends_on: - oai-nrf - oai-smf @@ -141,10 +151,10 @@ services: - ALL privileged: true networks: - core_net: + public_net: ipv4_address: 192.168.71.134 traffic_net: - ipv4_address: 192.168.73.134 + ipv4_address: 192.168.75.134 oai-ext-dn: privileged: true @@ -152,14 +162,14 @@ services: 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.73.134 dev eth0; sleep infinity" + "ip route add 12.1.1.0/24 via 192.168.75.134 dev eth0; sleep infinity" depends_on: - oai-spgwu networks: traffic_net: - ipv4_address: 192.168.73.135 + ipv4_address: 192.168.75.135 healthcheck: - test: /bin/bash -c "ping -c 2 192.168.73.134" + test: /bin/bash -c "ping -c 2 192.168.75.134" interval: 10s timeout: 5s retries: 5 @@ -174,10 +184,8 @@ services: depends_on: - oai-ext-dn networks: - core_net: - ipv4_address: 192.168.71.140 - ran_net: - ipv4_address: 192.168.72.140 + public_net: + ipv4_address: 192.168.71.150 volumes: - ../../conf_files/gnb-cucp.sa.f1.conf:/opt/oai-gnb/etc/gnb.conf healthcheck: @@ -196,10 +204,66 @@ services: depends_on: - oai-cucp networks: - core_net: - ipv4_address: 192.168.71.141 + public_net: + ipv4_address: 192.168.71.161 ran_net: - ipv4_address: 192.168.72.141 + ipv4_address: 192.168.72.161 + volumes: + - ../../conf_files/gnb-cuup.sa.f1.conf:/opt/oai-gnb/etc/gnb.conf + healthcheck: + test: /bin/bash -c "pgrep nr-cuup" + interval: 10s + timeout: 5s + retries: 5 + + oai-cuup2: + image: oaisoftwarealliance/oai-nr-cuup:develop + privileged: true + container_name: rfsim5g-oai-cuup2 + environment: + USE_ADDITIONAL_OPTIONS: --sa --log_config.global_log_options level,nocolor,time + --gNBs.[0].gNB_CU_UP_ID 0xe01 + --gNBs.[0].E1_INTERFACE.[0].ipv4_cuup 192.168.71.162 + --gNBs.[0].local_s_address 192.168.73.162 + --gNBs.[0].remote_s_address 192.168.73.172 + --gNBs.[0].NETWORK_INTERFACES.GNB_IPV4_ADDRESS_FOR_NGU 192.168.71.162 + --gNBs.[0].plmn_list.[0].snssaiList.[0].sst 2 + ASAN_OPTIONS: detect_leaks=0 + depends_on: + - oai-cucp + networks: + public_net: + ipv4_address: 192.168.71.162 + ran_net2: + ipv4_address: 192.168.73.162 + volumes: + - ../../conf_files/gnb-cuup.sa.f1.conf:/opt/oai-gnb/etc/gnb.conf + healthcheck: + test: /bin/bash -c "pgrep nr-cuup" + interval: 10s + timeout: 5s + retries: 5 + + oai-cuup3: + image: oaisoftwarealliance/oai-nr-cuup:develop + privileged: true + container_name: rfsim5g-oai-cuup3 + environment: + USE_ADDITIONAL_OPTIONS: --sa --log_config.global_log_options level,nocolor,time + --gNBs.[0].gNB_CU_UP_ID 0xe02 + --gNBs.[0].E1_INTERFACE.[0].ipv4_cuup 192.168.71.163 + --gNBs.[0].local_s_address 192.168.74.163 + --gNBs.[0].remote_s_address 192.168.74.173 + --gNBs.[0].NETWORK_INTERFACES.GNB_IPV4_ADDRESS_FOR_NGU 192.168.71.163 + --gNBs.[0].plmn_list.[0].snssaiList.[0].sst 3 + ASAN_OPTIONS: detect_leaks=0 + depends_on: + - oai-cucp + networks: + public_net: + ipv4_address: 192.168.71.163 + ran_net3: + ipv4_address: 192.168.74.163 volumes: - ../../conf_files/gnb-cuup.sa.f1.conf:/opt/oai-gnb/etc/gnb.conf healthcheck: @@ -214,12 +278,72 @@ services: container_name: rfsim5g-oai-du environment: USE_ADDITIONAL_OPTIONS: --sa --rfsim --log_config.global_log_options level,nocolor,time + --MACRLCs.[0].local_n_address 192.168.72.171 ASAN_OPTIONS: detect_leaks=0 + depends_on: + - oai-cucp + - oai-cuup networks: + public_net: + ipv4_address: 192.168.71.171 ran_net: - ipv4_address: 192.168.72.142 + ipv4_address: 192.168.72.171 volumes: - - ../../conf_files/gnb-du.band78.106prb.rfsim.conf:/opt/oai-gnb/etc/gnb.conf + - ../../conf_files/gnb-du.sa.band78.106prb.rfsim.conf:/opt/oai-gnb/etc/gnb.conf + healthcheck: + test: /bin/bash -c "pgrep nr-softmodem" + interval: 10s + timeout: 5s + retries: 5 + + oai-du2: + image: oaisoftwarealliance/oai-gnb:develop + privileged: true + container_name: rfsim5g-oai-du2 + environment: + USE_ADDITIONAL_OPTIONS: --sa --rfsim --log_config.global_log_options level,nocolor,time + --gNBs.[0].gNB_DU_ID 0xe01 + --gNBs.[0].nr_cellid 87654321 + --gNBs.[0].servingCellConfigCommon.[0].physCellId 1 + --MACRLCs.[0].local_n_address 192.168.73.172 + ASAN_OPTIONS: detect_leaks=0 + depends_on: + - oai-cucp + - oai-cuup2 + networks: + public_net: + ipv4_address: 192.168.71.172 + ran_net2: + ipv4_address: 192.168.73.172 + volumes: + - ../../conf_files/gnb-du.sa.band78.106prb.rfsim.conf:/opt/oai-gnb/etc/gnb.conf + healthcheck: + test: /bin/bash -c "pgrep nr-softmodem" + interval: 10s + timeout: 5s + retries: 5 + + oai-du3: + image: oaisoftwarealliance/oai-gnb:develop + privileged: true + container_name: rfsim5g-oai-du3 + environment: + USE_ADDITIONAL_OPTIONS: --sa --rfsim --log_config.global_log_options level,nocolor,time + --gNBs.[0].gNB_DU_ID 0xe02 + --gNBs.[0].nr_cellid 11111111 + --gNBs.[0].servingCellConfigCommon.[0].physCellId 2 + --MACRLCs.[0].local_n_address 192.168.74.173 + ASAN_OPTIONS: detect_leaks=0 + depends_on: + - oai-cucp + - oai-cuup3 + networks: + public_net: + ipv4_address: 192.168.71.173 + ran_net3: + ipv4_address: 192.168.74.173 + volumes: + - ../../conf_files/gnb-du.sa.band78.106prb.rfsim.conf:/opt/oai-gnb/etc/gnb.conf healthcheck: test: /bin/bash -c "pgrep nr-softmodem" interval: 10s @@ -231,13 +355,62 @@ services: privileged: true container_name: rfsim5g-oai-nr-ue environment: - USE_ADDITIONAL_OPTIONS: --sa --rfsim -r 106 --numerology 1 -C 3619200000 --rfsimulator.serveraddr 192.168.72.142 --log_config.global_log_options level,nocolor,time + USE_ADDITIONAL_OPTIONS: --sa --rfsim --log_config.global_log_options level,nocolor,time + -r 106 --numerology 1 -C 3619200000 + --uicc0.imsi 208990100001100 + --rfsimulator.serveraddr 192.168.71.171 ASAN_OPTIONS: detect_leaks=0 depends_on: - oai-du networks: - ran_net: - ipv4_address: 192.168.72.150 + public_net: + ipv4_address: 192.168.71.181 + volumes: + - ../../conf_files/nrue.uicc.conf:/opt/oai-nr-ue/etc/nr-ue.conf + healthcheck: + test: /bin/bash -c "pgrep nr-uesoftmodem" + interval: 10s + timeout: 5s + retries: 5 + + oai-nr-ue2: + image: oaisoftwarealliance/oai-nr-ue:develop + privileged: true + container_name: rfsim5g-oai-nr-ue2 + environment: + USE_ADDITIONAL_OPTIONS: --sa --rfsim --log_config.global_log_options level,nocolor,time + -r 106 --numerology 1 -C 3619200000 + --uicc0.imsi 208990100001101 --uicc0.nssai_sst 2 + --rfsimulator.serveraddr 192.168.71.172 + ASAN_OPTIONS: detect_leaks=0 + depends_on: + - oai-du2 + networks: + public_net: + ipv4_address: 192.168.71.182 + volumes: + - ../../conf_files/nrue.uicc.conf:/opt/oai-nr-ue/etc/nr-ue.conf + healthcheck: + test: /bin/bash -c "pgrep nr-uesoftmodem" + interval: 10s + timeout: 5s + retries: 5 + + oai-nr-ue3: + image: oaisoftwarealliance/oai-nr-ue:develop + privileged: true + container_name: rfsim5g-oai-nr-ue3 + environment: + USE_ADDITIONAL_OPTIONS: --sa --rfsim --log_config.global_log_options level,nocolor,time + -r 106 --numerology 1 -C 3619200000 + --uicc0.imsi 208990100001102 --uicc0.nssai_sst 3 + --rfsimulator.serveraddr 192.168.71.173 + ASAN_OPTIONS: detect_leaks=0 + depends_on: + - oai-du3 + networks: + public_net: + ipv4_address: 192.168.71.183 volumes: - ../../conf_files/nrue.uicc.conf:/opt/oai-nr-ue/etc/nr-ue.conf healthcheck: @@ -247,14 +420,14 @@ services: retries: 5 networks: - core_net: + public_net: driver: bridge - name: rfsim5g-oai-core-net + name: rfsim5g-oai-public-net ipam: config: - subnet: 192.168.71.128/26 driver_opts: - com.docker.network.bridge.name: "rfsim5g-core" + com.docker.network.bridge.name: "rfsim5g-public" ran_net: driver: bridge name: rfsim5g-oai-ran-net @@ -263,11 +436,27 @@ networks: - subnet: 192.168.72.128/26 driver_opts: com.docker.network.bridge.name: "rfsim5g-ran" + ran_net2: + driver: bridge + name: rfsim5g-oai-ran-net2 + ipam: + config: + - subnet: 192.168.73.128/26 + driver_opts: + com.docker.network.bridge.name: "rfsim5g-ran2" + ran_net3: + driver: bridge + name: rfsim5g-oai-ran-net3 + ipam: + config: + - subnet: 192.168.74.128/26 + driver_opts: + com.docker.network.bridge.name: "rfsim5g-ran3" traffic_net: driver: bridge name: rfsim5g-oai-traffic_net-net ipam: config: - - subnet: 192.168.73.128/26 + - subnet: 192.168.75.128/26 driver_opts: com.docker.network.bridge.name: "rfsim5g-traffic"