Skip to content
Snippets Groups Projects
Commit 2a26d522 authored by Raphael Defosseux's avatar Raphael Defosseux
Browse files

Merge branch 'slicing_tutorial' into 'master'

Slicing tutorial

See merge request !35
parents f5aa4866 c6fd20a1
No related branches found
No related tags found
1 merge request!35Slicing tutorial
version: '3.8'
services:
mysql:
container_name: mysql
image: mysql:5.7
volumes:
- ./oai_db2.sql:/docker-entrypoint-initdb.d/oai_db.sql
- ./mysql-healthcheck2.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: 5
networks:
public_net:
ipv4_address: 192.168.70.131
oai-nssf:
container_name: "oai-nssf"
image: oai-nssf:latest
environment:
- INSTANCE=0
- TZ=Europe/Paris
- PID_DIRECTORY=/var/run
- NSSF_NAME=oai-nssf
- NSSF_FQDN=nssf.oai-5gcn.eur
- SBI_IF_NAME=eth0
- SBI_PORT=80
- SBI_API_VERSION=v1
- SBI_PORT_HTTP1=80
- SBI_PORT_HTTP2=8080
- NSSF_SLICE_CONFIG=/openair-nssf/etc/nssf_slice_config.json
cap_add:
- NET_ADMIN
- SYS_ADMIN
cap_drop:
- ALL
privileged: true
volumes:
- ./nssf_slice_config.json:/openair-nssf/etc/nssf_slice_config.json
healthcheck:
test: /bin/bash -c "pgrep oai_nssf"
interval: 10s
timeout: 5s
retries: 5
networks:
public_net:
ipv4_address: 192.168.70.132
oai_udr:
container_name: oai-udr
image: oai-udr:latest
environment:
- TZ=Europe/Paris
- INSTANCE=0
- PID_DIRECTORY=/var/run
- UDR_INTERFACE_NAME_FOR_NUDR=eth0
- UDR_INTERFACE_PORT_FOR_NUDR=80
- UDR_INTERFACE_HTTP2_PORT_FOR_NUDR=8080
- UDR_API_VERSION=v1
- MYSQL_IPV4_ADDRESS=192.168.70.131
- MYSQL_USER=test
- MYSQL_PASS=test
- MYSQL_DB=oai_db
- WAIT_MYSQL=120
depends_on:
- mysql
networks:
public_net:
ipv4_address: 192.168.70.133
volumes:
- ./udr-healthcheck.sh:/openair-udr/bin/udr-healthcheck.sh
healthcheck:
test: /bin/bash -c "/openair-udr/bin/udr-healthcheck.sh"
interval: 10s
timeout: 5s
retries: 5
oai_udm:
container_name: oai-udm
image: oai-udm:latest
environment:
- TZ=Europe/Paris
- INSTANCE=0
- PID_DIRECTORY=/var/run
- UDM_NAME=OAI_UDM
- SBI_IF_NAME=eth0
- SBI_PORT=80
- UDM_VERSION_NB=v1
- USE_FQDN_DNS=yes
- UDR_IP_ADDRESS=192.168.70.133
- UDR_PORT=80
- UDR_VERSION_NB=v1
- UDR_FQDN=oai_udr
depends_on:
- oai_udr
networks:
public_net:
ipv4_address: 192.168.70.134
volumes:
- ./udm-healthcheck.sh:/openair-udm/bin/udm-healthcheck.sh
healthcheck:
test: /bin/bash -c "/openair-udm/bin/udm-healthcheck.sh"
interval: 10s
timeout: 5s
retries: 5
oai_ausf:
container_name: oai-ausf
image: oai-ausf:latest
environment:
- TZ=Europe/Paris
- INSTANCE_ID=0
- PID_DIR=/var/run
- AUSF_NAME=OAI_AUSF
- SBI_IF_NAME=eth0
- SBI_PORT=80
- USE_FQDN_DNS=yes
- UDM_IP_ADDRESS=192.168.70.134
- UDM_PORT=80
- UDM_VERSION_NB=v1
- UDM_FQDN=oai_udm
depends_on:
- oai_udm
networks:
public_net:
ipv4_address: 192.168.70.135
volumes:
- ./ausf-healthcheck.sh:/openair-ausf/bin/ausf-healthcheck.sh
healthcheck:
test: /bin/bash -c "/openair-ausf/bin/ausf-healthcheck.sh"
interval: 10s
timeout: 5s
retries: 5
oai_nrf_slice12:
container_name: oai-nrf-slice12
image: oai-nrf:latest
environment:
- NRF_INTERFACE_NAME_FOR_SBI=eth0
- NRF_INTERFACE_PORT_FOR_SBI=80
- NRF_INTERFACE_HTTP2_PORT_FOR_SBI=8080
- NRF_API_VERSION=v1
- INSTANCE=0
- PID_DIRECTORY=/var/run
networks:
public_net:
ipv4_address: 192.168.70.136
volumes:
- ./nrf-healthcheck.sh:/openair-nrf/bin/nrf-healthcheck.sh
healthcheck:
test: /bin/bash -c "/openair-nrf/bin/nrf-healthcheck.sh"
interval: 10s
timeout: 5s
retries: 5
oai_nrf_slice3:
container_name: oai-nrf-slice3
image: oai-nrf:latest
environment:
- NRF_INTERFACE_NAME_FOR_SBI=eth0
- NRF_INTERFACE_PORT_FOR_SBI=80
- NRF_INTERFACE_HTTP2_PORT_FOR_SBI=8080
- NRF_API_VERSION=v1
- INSTANCE=0
- PID_DIRECTORY=/var/run
networks:
public_net:
ipv4_address: 192.168.70.137
volumes:
- ./nrf-healthcheck.sh:/openair-nrf/bin/nrf-healthcheck.sh
healthcheck:
test: /bin/bash -c "/openair-nrf/bin/nrf-healthcheck.sh"
interval: 10s
timeout: 5s
retries: 5
oai_amf:
container_name: oai-amf
image: oai-amf:latest
environment:
- TZ=Europe/paris
- INSTANCE=0
- PID_DIRECTORY=/var/run
- MCC=208
- MNC=95
- REGION_ID=128
- AMF_SET_ID=1
- SERVED_GUAMI_MCC_0=208
- SERVED_GUAMI_MNC_0=95
- 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=95
- PLMN_SUPPORT_TAC=0xa000
- SST_0=2
- SD_0=2
- SST_1=3
- SD_1=3
- AMF_INTERFACE_NAME_FOR_NGAP=eth0
- AMF_INTERFACE_NAME_FOR_N11=eth0
- SMF_INSTANCE_ID_0=1
- SMF_FQDN_0=oai_smf_slice1
- SMF_IPV4_ADDR_0=0.0.0.0
- SMF_HTTP_VERSION_0=v1
- SELECTED_0=true
- SMF_INSTANCE_ID_1=2
- SMF_FQDN_1=oai_smf_slice2
- SMF_IPV4_ADDR_1=0.0.0.0
- SMF_HTTP_VERSION_1=v1
- SELECTED_1=false
- MYSQL_SERVER=192.168.70.131
- MYSQL_USER=root
- MYSQL_PASS=linux
- MYSQL_DB=oai_db
- OPERATOR_KEY=63bfa50ee6523365ff14c1f45f88737d
- NRF_IPV4_ADDRESS=0.0.0.0
- NRF_PORT=80
- NF_REGISTRATION=no
- SMF_SELECTION=yes
- USE_FQDN_DNS=yes
- EXTERNAL_AUSF=yes
- NRF_API_VERSION=v1
- NRF_FQDN=oai_nrf_slice12
- AUSF_IPV4_ADDRESS=192.168.70.135
- AUSF_PORT=80
- AUSF_API_VERSION=v1
- AUSF_FQDN=oai_ausf
- NRF_SELECTION=yes
- NSSF_IPV4_ADDRESS=192.168.70.132
- NSSF_PORT=80
- NSSF_API_VERSION=v1
- NSSF_FQDN=oai-nssf
- USE_HTTP2=no
- INT_ALGO_LIST=["NIA1" , "NIA2"]
- CIPH_ALGO_LIST=["NEA1" , "NEA2"]
depends_on:
- mysql
- oai_nrf_slice12
- vpp_upf_slice3
- oai_ausf
volumes:
- ./amf-healthcheck.sh:/openair-amf/bin/amf-healthcheck.sh
healthcheck:
test: /bin/bash -c "/openair-amf/bin/amf-healthcheck.sh"
interval: 10s
timeout: 15s
retries: 5
networks:
public_net:
ipv4_address: 192.168.70.138
oai_smf_slice1:
container_name: oai-smf-slice1
image: oai-smf:latest
environment:
- TZ=Europe/Paris
- INSTANCE=0
- PID_DIRECTORY=/var/run
- SMF_INTERFACE_NAME_FOR_N4=eth0
- SMF_INTERFACE_NAME_FOR_SBI=eth0
- SMF_INTERFACE_PORT_FOR_SBI=80
- SMF_INTERFACE_HTTP2_PORT_FOR_SBI=8080
- SMF_API_VERSION=v1
- DEFAULT_DNS_IPV4_ADDRESS=192.168.18.129
- DEFAULT_DNS_SEC_IPV4_ADDRESS=192.168.18.129
- AMF_IPV4_ADDRESS=192.168.70.138
- AMF_PORT=80
- AMF_API_VERSION=v1
- AMF_FQDN=oai_amf
- UDM_IPV4_ADDRESS=192.168.70.134
- UDM_PORT=80
- UDM_API_VERSION=v1
- UDM_FQDN=oai_udm
- UPF_IPV4_ADDRESS=127.0.0.1
- UPF_FQDN_0=localhost
- NRF_IPV4_ADDRESS=192.168.70.136
- NRF_PORT=80
- NRF_API_VERSION=v1
- NRF_FQDN=oai_nrf_slice12
- REGISTER_NRF=yes
- DISCOVER_UPF=yes
- USE_FQDN_DNS=yes
- NSSAI_SST0=2
- NSSAI_SD0=2
depends_on:
- oai_amf
- oai_nrf_slice12
volumes:
- ./smf-healthcheck.sh:/openair-smf/bin/smf-healthcheck.sh
healthcheck:
test: /bin/bash -c "/openair-smf/bin/smf-healthcheck.sh"
interval: 10s
timeout: 5s
retries: 5
networks:
public_net:
ipv4_address: 192.168.70.139
oai_smf_slice2:
container_name: oai-smf-slice2
image: oai-smf:latest
environment:
- TZ=Europe/Paris
- INSTANCE=0
- PID_DIRECTORY=/var/run
- SMF_INTERFACE_NAME_FOR_N4=eth0
- SMF_INTERFACE_NAME_FOR_SBI=eth0
- SMF_INTERFACE_PORT_FOR_SBI=80
- SMF_INTERFACE_HTTP2_PORT_FOR_SBI=8080
- SMF_API_VERSION=v1
- DEFAULT_DNS_IPV4_ADDRESS=192.168.18.129
- DEFAULT_DNS_SEC_IPV4_ADDRESS=192.168.18.129
- AMF_IPV4_ADDRESS=192.168.70.138
- AMF_PORT=80
- AMF_API_VERSION=v1
- AMF_FQDN=oai_amf
- UDM_IPV4_ADDRESS=192.168.70.134
- UDM_PORT=80
- UDM_API_VERSION=v1
- UDM_FQDN=localhost
- UPF_IPV4_ADDRESS=0.0.0.0
- UPF_FQDN_0=localhost
- NRF_IPV4_ADDRESS=192.168.70.136
- NRF_PORT=80
- NRF_API_VERSION=v1
- NRF_FQDN=oai_nrf_slice12
- REGISTER_NRF=yes
- DISCOVER_UPF=yes
- USE_FQDN_DNS=yes
- NSSAI_SST1=3
- NSSAI_SD1=3
depends_on:
- oai_amf
- oai_nrf_slice12
volumes:
- ./smf-healthcheck.sh:/openair-smf/bin/smf-healthcheck.sh
healthcheck:
test: /bin/bash -c "/openair-smf/bin/smf-healthcheck.sh"
interval: 10s
timeout: 5s
retries: 5
networks:
public_net:
ipv4_address: 192.168.70.140
oai_smf_slice3:
container_name: oai-smf-slice3
image: oai-smf:latest
environment:
- TZ=Europe/Paris
- INSTANCE=0
- PID_DIRECTORY=/var/run
- SMF_INTERFACE_NAME_FOR_N4=eth0
- SMF_INTERFACE_NAME_FOR_SBI=eth0
- SMF_INTERFACE_PORT_FOR_SBI=80
- SMF_INTERFACE_HTTP2_PORT_FOR_SBI=8080
- SMF_API_VERSION=v1
- DEFAULT_DNS_IPV4_ADDRESS=192.168.18.129
- DEFAULT_DNS_SEC_IPV4_ADDRESS=192.168.18.129
- AMF_IPV4_ADDRESS=192.168.70.138
- AMF_PORT=80
- AMF_API_VERSION=v1
- AMF_FQDN=oai_amf
- UDM_IPV4_ADDRESS=192.168.70.134
- UDM_PORT=80
- UDM_API_VERSION=v1
- UDM_FQDN=localhost
- UPF_IPV4_ADDRESS=0.0.0.0
- UPF_FQDN_0=localhost
- NRF_IPV4_ADDRESS=192.168.70.137
- NRF_PORT=80
- NRF_API_VERSION=v1
- NRF_FQDN=oai_nrf_slice3
- USE_NETWORK_INSTANCE=yes
- REGISTER_NRF=yes
- DISCOVER_UPF=yes
- USE_FQDN_DNS=yes
- NSSAI_SST1=4
- NSSAI_SD1=4
depends_on:
- oai_amf
- oai_nrf_slice3
extra_hosts:
- "gw1.vppupf.node.5gcn.mnc95.mcc208.3gppnetwork.org:192.168.70.202"
volumes:
- ./smf-healthcheck.sh:/openair-smf/bin/smf-healthcheck.sh
healthcheck:
test: /bin/bash -c "/openair-smf/bin/smf-healthcheck.sh"
interval: 10s
timeout: 5s
retries: 5
networks:
public_net:
ipv4_address: 192.168.70.141
oai_spgwu_slice1:
container_name: oai-spgwu-slice1
image: oai-spgwu-tiny:latest
environment:
- TZ=Europe/Paris
- PID_DIRECTORY=/var/run
- 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.2.1.0/24
- BYPASS_UL_PFCP_RULES=no
- MCC=208
- MNC=95
- MNC03=095
- TAC=40960
- GW_ID=1
- REALM=openairinterface.org
- ENABLE_5G_FEATURES=yes
- REGISTER_NRF=yes
- USE_FQDN_NRF=yes
- UPF_FQDN_5G=oai_spgwu_slice1
- NRF_IPV4_ADDRESS=192.168.70.136
- NRF_PORT=80
- NRF_API_VERSION=v1
- NRF_FQDN=oai_nrf_slice12
- NSSAI_SST_0=2
- NSSAI_SD_0=2
- DNN_0=default
depends_on:
- oai_nrf_slice12
- oai_smf_slice1
cap_add:
- NET_ADMIN
- SYS_ADMIN
cap_drop:
- ALL
privileged: true
volumes:
- ./spgwu-healthcheck.sh:/openair-spgwu-tiny/bin/spgwu-healthcheck.sh
healthcheck:
test: /bin/bash -c "/openair-spgwu-tiny/bin/spgwu-healthcheck.sh"
interval: 10s
timeout: 5s
retries: 5
networks:
public_net:
ipv4_address: 192.168.70.142
oai_spgwu_slice2:
container_name: oai-spgwu-slice2
image: oai-spgwu-tiny:latest
environment:
- TZ=Europe/Paris
- PID_DIRECTORY=/var/run
- 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
- BYPASS_UL_PFCP_RULES=no
- MCC=208
- MNC=95
- MNC03=095
- TAC=40960
- GW_ID=1
- REALM=openairinterface.org
- ENABLE_5G_FEATURES=yes
- REGISTER_NRF=yes
- USE_FQDN_NRF=yes
- UPF_FQDN_5G=oai_spgwu_slice2
- NRF_IPV4_ADDRESS=192.168.70.136
- NRF_PORT=80
- NRF_API_VERSION=v1
- NRF_FQDN=oai_nrf_slice12
- NSSAI_SST_0=3
- NSSAI_SD_0=3
- DNN_0=oai
depends_on:
- oai_nrf_slice12
cap_add:
- NET_ADMIN
- SYS_ADMIN
cap_drop:
- ALL
privileged: true
volumes:
- ./spgwu-healthcheck.sh:/openair-spgwu-tiny/bin/spgwu-healthcheck.sh
healthcheck:
test: /bin/bash -c "/openair-spgwu-tiny/bin/spgwu-healthcheck.sh"
interval: 10s
timeout: 5s
retries: 5
networks:
public_net:
ipv4_address: 192.168.70.143
vpp_upf_slice3:
image: oai-upf-vpp:latest
privileged: true
container_name: vpp-upf-slice3
environment:
- NWI_N3=access.oai.org
- NWI_N6=core.oai.org
- GW_ID=1
- MNC03=95
- MCC=208
- REALM=3gppnetwork.org
- NETWORK_UE_IP=12.2.1.0/24
- N3_IPV4_ADDRESS_REMOTE=192.168.72.156 # GNB IP Address
- N4_IPV4_ADDRESS_REMOTE=192.168.70.140 # SMF IP Address
- N6_IPV4_ADDRESS_REMOTE=192.168.73.137 # EXT-DN IP Address
- VPP_MAIN_CORE=0
- VPP_CORE_WORKER=1
- VPP_PLUGIN_PATH=/usr/lib/x86_64-linux-gnu/vpp_plugins/
- INTERFACE_ACCESS=eth1
- INTERFACE_CORE=eth2
- INTERFACE_CP=eth0
- NSSAI_SD_0=4
- SST=4
- DNN=oai.ipv4
- REGISTER_NRF=yes
- NRF_IP_ADDR=192.168.70.137
- NRF_PORT=8080
- HTTP_VERSION=2
depends_on:
- oai_nrf_slice3
healthcheck:
test: /bin/bash -c "pgrep vpp"
interval: 10s
timeout: 5s
retries: 5
networks:
public_net:
ipv4_address: 192.168.70.144
public_net_access:
ipv4_address: 192.168.72.144
public_net_core:
ipv4_address: 192.168.73.144
oai_ext_dn:
image: ubuntu:bionic
privileged: true
container_name: oai-ext-dn
entrypoint: /bin/bash -c \
"apt update; apt install -y iptables iproute2 iperf3 iputils-ping;"\
"iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;"\
"ip route add 12.2.1.2/32 via 192.168.70.142 dev eth0;"\
"ip route add 12.1.1.129/32 via 192.168.70.143 dev eth0;"\
"ip route add 12.1.1.2/32 via 192.168.73.202 dev eth1; sleep infinity"
healthcheck:
test: /bin/bash -c "ip route"
interval: 10s
timeout: 5s
retries: 10
networks:
public_net:
ipv4_address: 192.168.70.145
public_net_core:
ipv4_address: 192.168.73.145
networks:
public_net:
driver: bridge
name: demo-oai-public-net
ipam:
config:
- subnet: 192.168.70.0/24
driver_opts:
com.docker.network.bridge.name: "demo-oai"
public_net_access:
name: oai-public-access
ipam:
config:
- subnet: 192.168.72.0/24
driver_opts:
com.docker.network.bridge.name: "access"
public_net_core:
name: oai-public-core
ipam:
config:
- subnet: 192.168.73.0/24
driver_opts:
com.docker.network.bridge.name: "core"
version: '3.8'
services:
ueransim:
container_name: ueransim
image: ueransim:latest
privileged: true
environment:
# GNB Congig Parameters
- MCC=208
- MNC=95
- NCI=0x000000010
- TAC=0xa000
- LINK_IP=192.168.70.152
- NGAP_IP=192.168.70.152
- GTP_IP=192.168.70.152
- NGAP_PEER_IP=192.168.70.138
- SST=2
- SD=2
- IGNORE_STREAM_IDS=true
# UE Config Parameters
- NUMBER_OF_UE=1
- IMSI=208950000000035
- KEY=0C0A34601D4F07677303652C0462535B
- OP=63bfa50ee6523365ff14c1f45f88737d
- OP_TYPE=OPC
- AMF_VALUE=8000
- IMEI=356938035643803
- IMEI_SV=0035609204079514
- GNB_IP_ADDRESS=192.168.70.152
- PDU_TYPE=IPv4
- APN=default
- SST_C=1
- SD_C=1
- SST_D=1
- SD_D=1
networks:
public_net:
ipv4_address: 192.168.70.152
healthcheck:
test: /bin/bash -c "ifconfig uesimtun0"
interval: 10s
timeout: 5s
retries: 5
oai-gnb:
image: oai-gnb:develop
privileged: true
container_name: rfsim5g-oai-gnb
environment:
RFSIMULATOR: server
USE_SA_TDD_MONO: 'yes'
GNB_NAME: gnb-rfsim
TAC: 40960
MCC: '208'
MNC: '95'
MNC_LENGTH: 2
NSSAI_SST: 3
NSSAI_SD0: 3
NSSAI_SD1: 112233
AMF_IP_ADDRESS: 192.168.70.138
GNB_NGA_IF_NAME: eth0
GNB_NGA_IP_ADDRESS: 192.168.70.153
GNB_NGU_IF_NAME: eth0
GNB_NGU_IP_ADDRESS: 192.168.70.153
USE_ADDITIONAL_OPTIONS: --sa -E --rfsim
networks:
public_net:
ipv4_address: 192.168.70.153
healthcheck:
test: /bin/bash -c "pgrep nr-softmodem"
interval: 10s
timeout: 5s
retries: 5
oai-nr-ue1:
image: oai-nr-ue:develop
privileged: true
container_name: rfsim5g-oai-nr-ue1
environment:
RFSIMULATOR: 192.168.70.153
FULL_IMSI: '208950000000036'
FULL_KEY: '0C0A34601D4F07677303652C0462535B'
OPC: '63bfa50ee6523365ff14c1f45f88737d'
DNN: oai
NSSAI_SST: 3
NSSAI_SD: 3
USE_ADDITIONAL_OPTIONS: -E --sa --rfsim -r 106 --numerology 1 -C 3619200000 --nokrnmod
depends_on:
- oai-gnb
networks:
public_net:
ipv4_address: 192.168.70.154
healthcheck:
test: /bin/bash -c "pgrep nr-uesoftmodem"
interval: 10s
timeout: 5s
retries: 5
# oai-nr-ue2:
# image: oai-nr-ue:develop
# privileged: true
# container_name: rfsim5g-oai-nr-ue2
# environment:
# RFSIMULATOR: 192.168.70.153
# FULL_IMSI: '208950000000037'
# FULL_KEY: '0C0A34601D4F07677303652C0462535B'
# OPC: '63bfa50ee6523365ff14c1f45f88737d'
# DNN: oai
# NSSAI_SST: 3
# NSSAI_SD: 3
# USE_ADDITIONAL_OPTIONS: -E --sa --rfsim -r 106 --numerology 1 -C 3619200000 --nokrnmod
# depends_on:
# - oai-gnb
# networks:
# public_net:
# ipv4_address: 192.168.70.155
# healthcheck:
# test: /bin/bash -c "pgrep nr-uesoftmodem"
# interval: 10s
# timeout: 5s
# retries: 5
gnbsim:
container_name: gnbsim
image: gnbsim:latest
privileged: true
environment:
- MCC=208
- MNC=95
- GNBID=5
- TAC=0x00a000
- SST=4
- SD=000004
- PagingDRX=v32
- RANUENGAPID=0
- IMEISV=35609204079514
- MSIN=0000000037
- RoutingIndicator=1234
- ProtectionScheme=null
- KEY=0C0A34601D4F07677303652C0462535B
- OPc=63bfa50ee6523365ff14c1f45f88737d
- DNN=oai.ipv4
- URL=http://www.asnt.org:8080/
- NRCellID=1
- USE_FQDN=no
- NGAPPeerAddr=192.168.70.138
- GTPuLocalAddr=192.168.70.156
- GTPuIFname=eth0
networks:
public_net:
ipv4_address: 192.168.70.156
public_net_access:
ipv4_address: 192.168.72.156
healthcheck:
test: /bin/bash -c "ifconfig gtp-gnb"
interval: 10s
timeout: 5s
retries: 5
networks:
public_net:
external:
name: demo-oai-public-net
public_net_access:
external:
name: oai-public-access
{
"info": {
"version": "1.0.0",
"description": "OAI-NSSF initial local configuration"
},
"configuration": {
"nsiInfoList": [
{
"snssai": {
"sst": 2,
"sd": "2"
},
"nsiInformationList":{
"nrfId": "http://192.168.70.136:80/nnrf-nfm/v1/nf-instances",
"nsiId": "11"
}
},
{
"snssai": {
"sst": 3,
"sd": "3"
},
"nsiInformationList": {
"nrfId": "http://192.168.70.136:80/nnrf-nfm/v1/nf-instances",
"nsiId": "12"
}
},
{
"snssai": {
"sst": 4,
"sd": "4"
},
"nsiInformationList": {
"nrfId": "http://192.168.70.137:80/nnrf-nfm/v1/nf-instances",
"nsiId": "12"
}
}
],
"taInfoList": [
{
"tai": {
"plmnId": {
"mcc": "208",
"mnc": "95"
},
"tac": "33456"
},
"supportedSnssaiList": [
{
"sst": 222,
"sd": 123
},
{
"sst": 1,
"sd": 2
},
{
"sst": 2
}
]
},
{
"tai": {
"plmnId": {
"mcc": "208",
"mnc": "92"
},
"tac": "33458"
},
"supportedSnssaiList": [
{
"sst": 1
},
{
"sst": 1,
"sd": 1
},
{
"sst": 1,
"sd": 3
},
{
"sst": 2
}
],
"restrictedSnssaiList": [
{
"homePlmnId": {
"mcc": 208,
"mnc": 97
},
"sNssaiList": [
{
"sst": 1,
"sd": 3
}
]
}
]
},
{
"tai": {
"plmnId": {
"mcc": "208",
"mnc": "95"
},
"tac": "33459"
},
"supportedSnssaiList": [
{
"sst": 1
},
{
"sst": 1,
"sd": 1
},
{
"sst": 2
},
{
"sst": 2,
"sd": 1
}
]
}
],
"plmnInfoList": [
{
"operatorName": "OpenairInterface",
"homePlmnId": {
"mcc": 208,
"mnc": 95
}
},
{
"operatorName": "Eurecom",
"homePlmnId": {
"mcc": 208,
"mnc": 96
}
}
]
}
}
......@@ -20,10 +20,11 @@ Welcome to the tutorial home page of OAI 5g Core project. Here you can find lot
- [Using Docker-Compose, perform a `basic` deployment](./DEPLOY_SA5G_BASIC_DS_TESTER_DEPLOYMENT.md)
- [Using Docker-Compose, perform a `basic` deployment with FQDN feature](./DEPLOY_SA5G_BASIC_FQDN_DEPLOYMENT.md)
- [Using Docker-Compose, perform a `basic-vpp` deployment with VPP-implementation of UPF](./DEPLOY_SA5G_WITH_VPP_UPF.md)
- [Using Helm Chart](./DEPLOY_SA5G_HC.md)
- [Using Helm Chart, perform a `basic` deployment](./DEPLOY_SA5G_HC.md)
- [Using Virtual Machine, deploy and test with a Commercial UE](./DEPLOY_SA5G_VM_COTSUE.md)
- [Using Docker-Compose, perform a `minimalist` deployment and test with `gnbsim`](./DEPLOY_SA5G_WITH_GNBSIM.md)
- [Using Docker-Compose, perform a `basic` deployment and test with OAI RF simulator](https://gitlab.eurecom.fr/oai/openairinterface5g/-/tree/develop/ci-scripts/yaml_files/5g_rfsimulator)
- [Using Docker-Compose, perform a `basic` deployment and test with `OAI RF simulator`](https://gitlab.eurecom.fr/oai/openairinterface5g/-/tree/develop/ci-scripts/yaml_files/5g_rfsimulator)
- [Using Docker-Compose, perform a `basic` deployment and test with `UERANSIM`](./DEPLOY_SA5G_WITH_UERANSIM.md)
- [Using Docker-Compose, perform a `basic` deployment and test with `Network Slicing`](./DEPLOY_SA5G_SLICING.md)
- The Developer Corner
- [How to Deploy Developers Core Network and Basic Debugging](./DEBUG_5G_CORE.md)
<table style="border-collapse: collapse; border: none;">
<tr style="border-collapse: collapse; border: none;">
<td style="border-collapse: collapse; border: none;">
<a href="http://www.openairinterface.org/">
<img src="./images/oai_final_logo.png" alt="" border=3 height=50 width=150>
</img>
</a>
</td>
<td style="border-collapse: collapse; border: none; vertical-align: center;">
<b><font size = "5">OpenAirInterface 5G Core Network Deployment and Testing with gnbsim</font></b>
</td>
</tr>
</table>
![SA Slicing Demo](./images/5gcn_slicing.png)
**Reading time: ~ 30mins**
**Tutorial replication time: ~ 1h30mins**
**Compute resource recommendation: ~ 6GB RAM, 4CPU (Based on docker stats)**
Note: In case readers are interested in deploying debuggers/developers core network environment with more logs please follow [this tutorial](./DEBUG_5G_CORE.md)
**TABLE OF CONTENTS**
1. Pre-requisites
2. Building Container Images
3. Configuring Host Machines
4. Configuring OAI 5G Core Network Functions
5. [Deploying OAI 5G Core Network](#5-deploying-oai-5g-core-network)
6. [Getting a `ransim` docker images](#6-getting-a-gnbsim-docker-images)
7. [Executing `ransim` Scenario](#7-executing-the-gnbsim-scenario)
8. [Traffic test](#8-traffic-test)
9. [Analysing Scenario Results](#9-analysing-the-scenario-results)
10. [UE with multiple S-NSSAIs](#10-ue-with-multiple-s-nssais)
11. [Undeploy network](#11-analysing-the-scenario-results)
* In this demo the image tags and commits which were used are listed below, follow the [Building images](./BUILD_IMAGES.md) to build images with below tags.
You can also retrieve the images from `docker-hub`. See [Retrieving images](./RETRIEVE_OFFICIAL_IMAGES.md).
| CNF Name | Branch Name | Tag used at time of writing | Ubuntu 18.04 | RHEL8 |
| ----------- |:-------------- | ----------------------------- | ------------ | ---------------|
| NSSF | `develop` | `v1.3.0` | X | X |
| AMF | `develop` | `v1.3.0` | X | X |
| AUSF | `develop` | `v1.3.0` | X | X |
| NRF | `develop` | `v1.3.0` | X | X |
| SMF | `develop` | `v1.3.0` | X | X |
| UDR | `develop` | `v1.3.0` | X | X |
| UDM | `develop` | `v1.3.0` | X | X |
| SPGWU | `develop` | `v1.1.5` | X | X |
| UPF-VPP | `develop` | `v1.3.0` | X | X |
<br/>
In this tutorial we are going to explore slicing feature of OAI 5G core network. Here we will validate -
* UPF selection based on S-NSSAI
* SMF selection based on S-NSSAI
* NRF selection based on S-NSSAI (With help of NSSF)
* AMF selection based on S-NSSAI (With help of NSSF - Next Release, March 2022)
* Single UE with multiple S-NSSAIs (With the help of commercial tool dsTest)
A Network Slice is defined within a PLMN and it incorporates the 5G Core and 5G RAN components. Network slice is identified as Single Network Slice Selection Assistance Information (S-NSSAI). A S-NSSAI consists of Slice/Service type (SST) and Slice Differentiator (SD). SST is mandatory filed which defines expected slice behavior in terms of features and services. Whereas SD is optional field which can be used to differentiate amongst multiple slices.
Currently 3GPP allows up to eight (8) S-NSSAIs in the NSSAI sent in signaling messages between the UE and the Network, it means a single UE may be served by at most eight Network Slices at a time. SST length is 8 bits; so it can provides 2^8= 256 SST values from which there are reserved values O to 127 for standardized SSTs (e.g. SST 2 = URLCC, SST 3 = MIoT, SST 4 = V2X etc.).
###### Slicing current status in OAI 5G CN -
* Role of NSSF -> NSSF currently supports slice selection during pdu session establishment request. When AMF is not locally configured with NRF information, then with the help of NSSF, it discovers an appropriate NRF based on S-NSSAI provided.
* Role of AMF -> AMF selects first available SMF from the NF instance list (of SMF instances) provided by appropriate NRF.
* Role od SMF -> SMF can associate with multiple UPFs at same time as in slice 2 and 3 from above figure. UPF is selected here based on S-NSSAI and DNN.
As shown in figure above, there are 3 S-NSSAIs configured (Can be differentiated with colors) viz. <br/>
Note:- Here we have used standardised SST values (2,3,4), because rf-simulator only supports SST values 1,2,3,4. Moreover, it only for numerical refernece and does not reflect standrd SST behaviour e.g. URLCC, MIoT, V2X etc.<br/>
###### Slice1: [SST=2,SD=2] => NRF1, SMF1, UPF1, GNB1, UE1
###### Slice2: [SST=3,SD=3] => NRF1, SMF2, UPF2, GNB2, UE2
###### Slice3: [SST=4,SD=4] => NRF2, SMF3, VPP-UPF3, GNB3, UE3
Here AMF, NSSF, UDM, UDR, AUSF are common to all slices. SMF and UPF in S-NSSAI 2 and 3 have same NRF hence both UPFs are discoverable to both SMF. You can verify in the logs that both SMFs are successfullt associated to both UPFs in S-NSSAI 2 and 3. Here number of SMFs/UPFs for registered under single (NSI) NRF is part of operator's network planning.<br/>
###### Let's begin !!
* Steps 1 to 4 are similar as previous tutorials such as [minimalist](./DEPLOY_SA5G_MINI_DS_TESTER_DEPLOYMENT.md) or [basic](./DEPLOY_SA5G_BASIC_DS_TESTER_DEPLOYMENT.md) deployments. Please follow these steps to deploy OAI 5G core network components.
## 5. Deploying OAI 5g Core Network ##
* We deploy `basic` version 5g core with additional component oai-nssf. We will use `docker-compose` to deploy 5g core as below -
```bash
oai-cn5g-fed/docker-compose$ docker-compose -f docker-compose-slicing-basic-nrf.yaml up -d
Creating network "demo-oai-public-net" with driver "bridge"
Creating network "oai-public-access" with the default driver
Creating network "oai-public-core" with the default driver
Creating oai-nrf-slice12 ... done
Creating oai-nssf ... done
Creating oai-ext-dn ... done
Creating mysql ... done
Creating oai-nrf-slice3 ... done
Creating oai-spgwu-slice2 ... done
Creating oai-udr ... done
Creating vpp-upf-slice3 ... done
Creating oai-udm ... done
Creating oai-ausf ... done
Creating oai-amf ... done
Creating oai-smf-slice3 ... done
Creating oai-smf-slice1 ... done
Creating oai-smf-slice2 ... done
Creating oai-spgwu-slice1 ... done
```
* Make sure all services are healthy -
```bash
oai-cn5g-fed/docker-compose$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4b75e9b715d3 oai-spgwu-tiny:develop "/openair-spgwu-tiny…" 46 seconds ago Up 45 seconds (healthy) 2152/udp, 8805/udp oai-spgwu-slice1
5e52b529455f oai-smf:develop "/bin/bash /openair-…" 47 seconds ago Up 46 seconds (healthy) 80/tcp, 9090/tcp, 8805/udp oai-smf-slice2
1da7df33427a oai-smf:develop "/bin/bash /openair-…" 47 seconds ago Up 46 seconds (healthy) 80/tcp, 9090/tcp, 8805/udp oai-smf-slice1
b8c7a13ba869 oai-smf:develop "/bin/bash /openair-…" 47 seconds ago Up 46 seconds (healthy) 80/tcp, 9090/tcp, 8805/udp oai-smf-slice3
fb4ba1055b04 oai-amf:develop "/bin/bash /openair-…" 47 seconds ago Up 47 seconds (healthy) 80/tcp, 9090/tcp, 38412/sctp oai-amf
63e1e7302835 oai-ausf:develop "/bin/bash /openair-…" 48 seconds ago Up 47 seconds (healthy) 80/tcp oai-ausf
c560aaa93b91 oai-udm:develop "/bin/bash /openair-…" 49 seconds ago Up 48 seconds (healthy) 80/tcp oai-udm
f3c4ecfac1db oai-upf-vpp:develop "/openair-upf/bin/en…" 50 seconds ago Up 48 seconds (healthy) 2152/udp, 8085/udp vpp-upf-slice3
80aa4e12169a oai-udr:develop "/bin/bash /openair-…" 50 seconds ago Up 48 seconds (healthy) 80/tcp oai-udr
c509b4711de3 oai-spgwu-tiny:develop "/openair-spgwu-tiny…" 50 seconds ago Up 49 seconds (healthy) 2152/udp, 8805/udp oai-spgwu-slice2
c1bd7b8afb8c mysql:5.7 "docker-entrypoint.s…" 51 seconds ago Up 49 seconds (healthy) 3306/tcp, 33060/tcp mysql
e014638c3e12 oai-nrf:develop "/bin/bash /openair-…" 51 seconds ago Up 49 seconds (healthy) 80/tcp, 9090/tcp oai-nrf-slice3
bf6544a04f1f oai-nssf:develop "/bin/bash /openair-…" 51 seconds ago Up 49 seconds (healthy) 80/tcp, 8080/tcp oai-nssf
33a43a237af6 ubuntu:bionic "/bin/bash -c ' apt …" 51 seconds ago Up 49 seconds (healthy) oai-ext-dn
0459b8ca6490 oai-nrf:develop "/bin/bash /openair-…" 51 seconds ago Up 50 seconds (healthy) 80/tcp, 9090/tcp oai-nrf-slice12
```
## 6. Getting a `ransim` docker images ##
We are using 3 different ran simulators: [ueransim](https://github.com/aligungr/UERANSIM), [rfsimulator](https://gitlab.eurecom.fr/oai/openairinterface5g/-/tree/develop/ci-scripts/yaml_files/5g_rfsimulator) and [gnbsim](https://gitlab.eurecom.fr/kharade/gnbsim) for slice 2, 3 and 4 repectively. Each of them has their own set of features, and one can use as per need basis. Different ran simulator usage mimics here the realistic deployemnt scenario where operator can have multi vendor devices deployed in the network. <br/>
You can pull docker images from official repositories as below -
```bash
$ docker pull rohankharade/gnbsim:latest
$ docker pull rohankharade/ueransim:latest
$ docker pull rdefosseoai/oai-gnb:develop
$ docker pull rdefosseoai/oai-nr-ue:develop
```
And re-tag them for tutorials' docker-compose file to work.
```bash
$ docker image tag rohankharade/gnbsim:latest gnbsim:latest
$ docker image tag rohankharade/ueransim:latest ueransim:latest
$ docker image tag rdefosseoai/oai-gnb:develop oai-gnb:develop
$ docker image tag rdefosseoai/oai-nr-ue:develop oai-nr-ue:develop
```
## 7. Executing `ransim` Scenario ##
We deploy ran simulators with the help of docker-compose as below -
```bash
oai-cn5g-fed/docker-compose$ docker-compose -f docker-compose-slicing-ransim.yaml up -d
Creating gnbsim ... done
Creating ueransim ... done
Creating rfsim5g-oai-gnb ... done
Creating rfsim5g-oai-nr-ue1 ... done
```
Wait a bit
```bash
oai-cn5g-fed/docker-compose$ docker-compose -f docker-compose-slicing-ransim.yaml ps -a
Name Command State Ports
--------------------------------------------------------------------------
gnbsim /gnbsim/bin/entrypoint.sh ... Up (healthy)
rfsim5g-oai-gnb /opt/oai-gnb/bin/entrypoin ... Up (healthy)
rfsim5g-oai-nr-ue1 /opt/oai-nr-ue/bin/entrypo ... Up (healthy)
ueransim /ueransim/bin/entrypoint.sh Up (healthy)
```
After successful deployment we can verify at AMF that all gnbs and ues are successfully registered to network.
```bash
[2021-12-13T20:47:20.265472] [AMF] [amf_app] [info ] |----------------------------------------------------------------------------------------------------------------|
[2021-12-13T20:47:20.265497] [AMF] [amf_app] [info ] |----------------------------------------------------gNBs' information-------------------------------------------|
[2021-12-13T20:47:20.265503] [AMF] [amf_app] [info ] | Index | Status | Global ID | gNB Name | PLMN |
[2021-12-13T20:47:20.265522] [AMF] [amf_app] [info ] | 1 | Connected | 0x1 |UERANSIM-gnb-208-95-1 | 208, 95 |
[2021-12-13T20:47:20.265530] [AMF] [amf_app] [info ] | 2 | Connected | 0x1400 | | 208, 95 |
[2021-12-13T20:47:20.265537] [AMF] [amf_app] [info ] | 3 | Connected | 0xe000 | gnb-rfsim | 208, 95 |
[2021-12-13T20:47:20.265543] [AMF] [amf_app] [info ] |----------------------------------------------------------------------------------------------------------------|
[2021-12-13T20:47:20.265548] [AMF] [amf_app] [info ]
[2021-12-13T20:47:20.265553] [AMF] [amf_app] [info ] |----------------------------------------------------------------------------------------------------------------|
[2021-12-13T20:47:20.265558] [AMF] [amf_app] [info ] |----------------------------------------------------UEs' information--------------------------------------------|
[2021-12-13T20:47:20.265564] [AMF] [amf_app] [info ] | Index | 5GMM state | IMSI | GUTI | RAN UE NGAP ID | AMF UE ID | PLMN |Cell ID|
[2021-12-13T20:47:20.265951] [AMF] [amf_app] [info ] | 1| 5GMM-REGISTERED| 208950000000035| | 1| 2| 208, 95 | 256|
[2021-12-13T20:47:20.265967] [AMF] [amf_app] [info ] | 2| 5GMM-REGISTERED| 208950000000036| | -1441334349| 3| 208, 95 |14680064|
[2021-12-13T20:47:20.265976] [AMF] [amf_app] [info ] | 3| 5GMM-REGISTERED| 208950000000037| | -372062044| 4| 208, 95 |14680064|
```
## 8. Traffic Test ##
In this section we perform traffic test between oai-ext-dn node and Ues <br/>
```bash
$ docker exec oai-ext-dn ping -c 2 12.1.1.2
PING 12.1.1.2 (12.1.1.2) 56(84) bytes of data.
64 bytes from 12.1.1.2: icmp_seq=3 ttl=63 time=0.547 ms
64 bytes from 12.1.1.2: icmp_seq=4 ttl=63 time=0.460 ms
--- 12.1.1.2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.836/1.832/2.828/0.996 ms
$ docker exec oai-ext-dn ping -c 2 docker exec oai-ext-dn ping 12.2.1.2
PING 12.2.1.2 (12.2.1.2) 56(84) bytes of data.
64 bytes from 12.2.1.2: icmp_seq=2 ttl=63 time=0.793 ms
64 bytes from 12.2.1.2: icmp_seq=3 ttl=63 time=0.769 ms
--- 12.2.1.2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 2.772/3.274/3.776/0.502 ms
$ docker exec oai-ext-dn ping -c 2 12.1.1.129
PING 12.1.1.129 (12.1.1.129) 56(84) bytes of data.
64 bytes from 12.1.1.129: icmp_seq=1 ttl=63 time=39.1 ms
64 bytes from 12.1.1.129: icmp_seq=2 ttl=63 time=24.5 ms
--- 12.1.1.129 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 122.181/138.131/154.082/15.954 ms
$
```
## 9. Analysing Scenario Results ##
#### To be explained in detail
| Container | Ip-address |
| ----------------------|:-------------- |
| mysql | 192.168.70.131 |
| oai-nssf | 192.168.70.132 |
| oai-udr | 192.168.70.133 |
| oai-udm | 192.168.70.134 |
| oai-ausf | 192.168.70.135 |
| oai-nrf-slice12 | 192.168.70.136 |
| oai-nrf-slice3 | 192.168.70.137 |
| oai-amf | 192.168.70.138 |
| oai-smf-slice1 | 192.168.70.139 |
| oai-smf-slice2 | 192.168.70.140 |
| oai-smf-slice3 | 192.168.70.141 |
| oai-spgwu-slice1 | 192.168.70.142 |
| oai-spgwu-slice2 | 192.168.70.143 |
| vpp-upf-slice3 (N4) | 192.168.70.144 |
| vpp-upf-slice3 (N3) | 192.168.72.144 |
| vpp-upf-slice3 (N6) | 192.168.73.144 |
| oai-ext-dn | 192.168.70.145 |
| ueransim gNB | 192.168.70.152 |
| rfsim gNB | 192.168.70.153 |
| rfsim UE1 | 192.168.70.154 |
| rfsim UE2 | 192.168.70.155 |
| gnbsim gNB | 192.168.70.156 |
| UE1 | 12.2.1.2 |
| UE2 | 12.1.1.129 |
| UE3 | 12.1.1.2 |
| Pcap/log files |
|:------------------------------------------------------------------------------------------ |
| [5gcn-deployment-slicing.pcap](./results/slicing/pcap/5gcn-deployment-slicing.pcap) |
## 10. UE with multiple S-NSSAIs ##
OAI 5G CN also supports UE with multiple slices, Apparently the ran simulators, that we have validated, do not support UE with multiple slices at once.
Hence, we have validated this feature using commercial testing tool [dsTest](https://www.developingsolutions.com/products/about-dstest/). This test case is integrated in our [CI pipeline for NSSF](https://jenkins-oai.eurecom.fr/view/CN5G/job/OAI-CN5G-NSSF/) and AMF. Pipeline triggers a deployment scenario as shown in figure below with two slices. During PDU session establishment request, AMF queries NSSF for NSI information with appropriate NRF Id. And then again corresponding SMF anf UPF is slected in the NSI, based on S-NSSAI provided. You can verify this scenario from the [pcap](https://jenkins-oai.eurecom.fr/view/CN5G/job/OAI-CN5G-NSSF/lastSuccessfulBuild/artifact/docker_logs.zip).
![Multislice](./images/5gcn_slicing_ue_multislice.png)
## 11. Undeploy network ##
* Use docker-compose down to undeploy network <br/>
### 11.1. Undeploy RAN
```bash
$ docker-compose -f docker-compose-slicing-ransim.yaml down
Stopping ueransim ... done
Stopping rfsim5g-oai-nr-ue1 ... done
Stopping rfsim5g-oai-gnb ... done
Removing ueransim ... done
Removing gnbsim ... done
Removing rfsim5g-oai-nr-ue1 ... done
Removing rfsim5g-oai-gnb ... done
Network demo-oai-public-net is external, skipping
Network oai-public-access is external, skipping
```
### 11.2. Undeploy 5GCN
```bash
$ docker-compose -f docker-compose-slicing-basic-nrf.yaml down
Stopping oai-spgwu-slice1 ... done
Stopping oai-smf-slice3 ... done
Stopping oai-smf-slice1 ... done
Stopping oai-smf-slice2 ... done
Stopping oai-amf ... done
Stopping oai-ausf ... done
Stopping oai-udm ... done
Stopping oai-udr ... done
Stopping vpp-upf-slice3 ... done
Stopping oai-spgwu-slice2 ... done
Stopping oai-nrf-slice12 ... done
Stopping mysql ... done
Stopping oai-nssf ... done
Stopping oai-ext-dn ... done
Stopping oai-nrf-slice3 ... done
Removing oai-spgwu-slice1 ... done
Removing oai-smf-slice3 ... done
Removing oai-smf-slice1 ... done
Removing oai-smf-slice2 ... done
Removing oai-amf ... done
Removing oai-ausf ... done
Removing oai-udm ... done
Removing oai-udr ... done
Removing vpp-upf-slice3 ... done
Removing oai-spgwu-slice2 ... done
Removing oai-nrf-slice12 ... done
Removing mysql ... done
Removing oai-nssf ... done
Removing oai-ext-dn ... done
Removing oai-nrf-slice3 ... done
Removing network demo-oai-public-net
Removing network oai-public-access
Removing network oai-public-core
```
docs/images/5gcn_slicing.png

131 KiB

docs/images/5gcn_slicing_ue_multislice.png

80.3 KiB

File added
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment