Skip to content

Commit

Permalink
Include slicing under custom deployment scenarios
Browse files Browse the repository at this point in the history
  • Loading branch information
herlesupreeth committed Jan 17, 2025
1 parent 661def8 commit cd731f7
Show file tree
Hide file tree
Showing 27 changed files with 1,809 additions and 0 deletions.
156 changes: 156 additions & 0 deletions custom_deployments/slicing/.custom_env
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@
# Set proper timezone to sync times between docker host and containers
#TZ=Europe/Berlin

MCC=001
MNC=01

TEST_NETWORK=172.22.0.0/24
DOCKER_HOST_IP=192.168.1.223

# MONGODB
MONGO_IP=172.22.0.2

# HSS - open5gs
HSS_IP=172.22.0.3

# PCRF
PCRF_IP=172.22.0.4
PCRF_BIND_PORT=3873

# SGW
SGWC_IP=172.22.0.5
SGWU_IP=172.22.0.6
SGWU_ADVERTISE_IP=172.22.0.6

# SMF
SMF_IP=172.22.0.7
SMF_DNS1=8.8.8.8
SMF_DNS2=8.8.4.4
SMF2_IP=172.22.0.100

# UPF
UPF_IP=172.22.0.8
UPF_ADVERTISE_IP=172.22.0.8
UPF2_IP=172.22.0.90
UPF2_ADVERTISE_IP=172.22.0.90

# MME
MME_IP=172.22.0.9

# AMF
AMF_IP=172.22.0.10

# AUSF
AUSF_IP=172.22.0.11

# NRF
NRF_IP=172.22.0.12

# UDM
UDM_IP=172.22.0.13

# UDR
UDR_IP=172.22.0.14

# IMS DNS
DNS_IP=172.22.0.15

# RTPENGINE
RTPENGINE_IP=172.22.0.16

# MYSQL
MYSQL_IP=172.22.0.17

# PYHSS
PYHSS_IP=172.22.0.18
PYHSS_BIND_PORT=3875

# ICSCF
ICSCF_IP=172.22.0.19
ICSCF_BIND_PORT=3869

# SCSCF
SCSCF_IP=172.22.0.20
SCSCF_BIND_PORT=3870

# PCSCF
PCSCF_IP=172.22.0.21
PCSCF_BIND_PORT=3871

# SRSLTE ENB
SRS_ENB_IP=172.22.0.22

# UERANSIM
NR_GNB_IP=172.22.0.23
NR_UE_IP=172.22.0.24
NR_UE2_IP=172.22.0.91

UE1_IMEI=356938035643803
UE1_IMEISV=4370816125816151
UE1_IMSI=001011224567895
UE1_KI=8baf473f2f8fd09487cccbd7097c6862
UE1_OP=11111111111111111111111111111111
UE1_AMF=8000

UE2_IMEI=356938035643804
UE2_IMEISV=4370816125816152
UE2_IMSI=001011224567896
UE2_KI=8baf473f2f8fd09487cccbd7097c6862
UE2_OP=11111111111111111111111111111111
UE2_AMF=8000

# OAI ENB
OAI_ENB_IP=172.22.0.25

# OPEN5GS WEBUI
WEBUI_IP=172.22.0.26

# PCF
PCF_IP=172.22.0.27

# NSSF
NSSF_IP=172.22.0.28

# BSF
BSF_IP=172.22.0.29

# ENTITLEMENT SERVER
ENTITLEMENT_SERVER_IP=172.22.0.30

# OSMOMSC
OSMOMSC_IP=172.22.0.31

# OSMOHLR
OSMOHLR_IP=172.22.0.32

# SMSC
SMSC_IP=172.22.0.33

# SRSLTE UE
SRS_UE_IP=172.22.0.34

# SCP
SCP_IP=172.22.0.35

# METRICS
METRICS_IP=172.22.0.36

# SRSRAN GNB
SRS_GNB_IP=172.22.0.37

# GRAFANA
GRAFANA_IP=172.22.0.39
GRAFANA_USERNAME=open5gs
GRAFANA_PASSWORD=open5gs

# UE IPv4 Subnet Range for APN=internet
UE_IPV4_INTERNET=192.168.100.0/24

# UE IPv4 Subnet Range for APN=ims
UE_IPV4_IMS=192.168.101.0/24

# UE IPv4 Subnet Range for APN=private
UE_IPV4_PRIVATE=192.168.101.0/24

# Maximum Number of UEs
MAX_NUM_UE=1024
45 changes: 45 additions & 0 deletions custom_deployments/slicing/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
## Deployment description

This custom deployment showcases a slicing scenario by deploying two instances of open5gs SMF and UPF each handling an individual slice configuration.

## Additional steps

Most of the steps to be followed are similar to the steps mentioned in the [README in the root folder](../../README.md). However, additional steps mentioned below must be taken into account while deploying this custom deployment scenario.

### Loading environmental variables for custom deployment

**Warning**
For custom deployments, you must modify/use only the [**.custom_env**](.custom_env) file rather than the [**.env** in the root folder](../../.env).

```
set -a
source .custom_env
set +a
```

### Scenario deployment

Deploy the 5G SA network consisting of two slices.

```
cd custom_deployments/slicing
docker compose -f sa-deploy.yaml up
```

Deploy UERANSIM gNB (RF simulated).

```
docker compose -f nr-gnb.yaml up -d && docker container attach nr_gnb
```

Deploy UERANSIM NR-UE (RF simulated) for first slice.

```
docker compose -f nr-ue.yaml up -d && docker container attach nr_ue
```

Deploy UERANSIM NR-UE (RF simulated) for second slice.

```
docker compose -f nr-ue2.yaml up -d && docker container attach nr_ue2
```
62 changes: 62 additions & 0 deletions custom_deployments/slicing/amf/amf.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
logger:
file:
path: /open5gs/install/var/log/open5gs/amf.log

sbi:
server:
no_tls: true
client:
no_tls: true

global:
max:
ue: MAX_NUM_UE

amf:
sbi:
server:
- address: AMF_IP
port: 7777
client:
nrf:
- uri: http://NRF_IP:7777
scp:
- uri: http://SCP_IP:7777
ngap:
server:
- address: AMF_IP
guami:
- plmn_id:
mcc: MCC
mnc: MNC
amf_id:
region: 2
set: 1
tai:
- plmn_id:
mcc: MCC
mnc: MNC
tac: 1
plmn_support:
- plmn_id:
mcc: MCC
mnc: MNC
s_nssai:
- sst: 1
sd: 000001
- sst: 1
sd: 000002
security:
integrity_order : [ NIA2, NIA1, NIA0 ]
ciphering_order : [ NEA0, NEA1, NEA2 ]
network_name:
full: Open5GS
amf_name: open5gs-amf0
metrics:
server:
- address: AMF_IP
port: 9091
time:
t3512:
value: 540

38 changes: 38 additions & 0 deletions custom_deployments/slicing/amf/amf_init.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
#!/bin/bash

# BSD 2-Clause License

# Copyright (c) 2020, Supreeth Herle
# All rights reserved.

# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:

# 1. Redistributions of source code must retain the above copyright notice, this
# list of conditions and the following disclaimer.

# 2. Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.

# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

cp /mnt/amf/amf.yaml install/etc/open5gs
sed -i 's|AMF_IP|'$AMF_IP'|g' install/etc/open5gs/amf.yaml
sed -i 's|SCP_IP|'$SCP_IP'|g' install/etc/open5gs/amf.yaml
sed -i 's|NRF_IP|'$NRF_IP'|g' install/etc/open5gs/amf.yaml
sed -i 's|MNC|'$MNC'|g' install/etc/open5gs/amf.yaml
sed -i 's|MCC|'$MCC'|g' install/etc/open5gs/amf.yaml
sed -i 's|MAX_NUM_UE|'$MAX_NUM_UE'|g' install/etc/open5gs/amf.yaml

# Sync docker time
#ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
29 changes: 29 additions & 0 deletions custom_deployments/slicing/nr-gnb.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
version: '3'
services:
nr_gnb:
image: docker_ueransim
container_name: nr_gnb
stdin_open: true
tty: true
volumes:
- ./ueransim:/mnt/ueransim
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
env_file:
- .custom_env
environment:
- COMPONENT_NAME=ueransim-gnb
expose:
- "38412/sctp"
- "2152/udp"
- "4997/udp"
cap_add:
- NET_ADMIN
privileged: true
networks:
default:
ipv4_address: ${NR_GNB_IP}
networks:
default:
external:
name: docker_open5gs_default
27 changes: 27 additions & 0 deletions custom_deployments/slicing/nr-ue.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
version: '3'
services:
nr_ue:
image: docker_ueransim
container_name: nr_ue
stdin_open: true
tty: true
volumes:
- ./ueransim:/mnt/ueransim
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
env_file:
- .custom_env
environment:
- COMPONENT_NAME=ueransim-ue
expose:
- "4997/udp"
cap_add:
- NET_ADMIN
privileged: true
networks:
default:
ipv4_address: ${NR_UE_IP}
networks:
default:
external:
name: docker_open5gs_default
27 changes: 27 additions & 0 deletions custom_deployments/slicing/nr-ue2.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
version: '3'
services:
nr_ue2:
image: docker_ueransim
container_name: nr_ue2
stdin_open: true
tty: true
volumes:
- ./ueransim:/mnt/ueransim
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
env_file:
- .custom_env
environment:
- COMPONENT_NAME=ueransim-ue2
expose:
- "4997/udp"
cap_add:
- NET_ADMIN
privileged: true
networks:
default:
ipv4_address: ${NR_UE2_IP}
networks:
default:
external:
name: docker_open5gs_default
Loading

0 comments on commit cd731f7

Please sign in to comment.