Commit 577bd82b authored by Raphael Defosseux's avatar Raphael Defosseux
Browse files

Merge branch 'vpp-upf' into 'master'

5gcn validation with VPP_UPF

See merge request !10
parents 4641a818 e4099402
## Author: Sagar Arora
## Revised by: Rohan
#!/bin/bash
# Functioning of the script
# 1. Start
# 1.1 Start the core network components (Mysql ---> NRF ---> AMF ---> SMF --> SPGWU)
# 1.2 Check if the components started properly (skip)
# 1.3 Check if the components are healthy, calculate individual time
# 1.4 Check if the components are connected and core network is configured properly
# 1.5 Green light
# 1.1.1 Start the core network components (Mysql ---> NRF ---> AMF ---> SMF --> VPP-UPF)
# 1.2 Check if the components are healthy, calculate individual time
# 1.3 Check if the components are connected and core network is configured properly
# 1.4 Green light
# 2. Stop
RED='\033[0;31m'
NC='\033[0m'
GREEN='\033[0;32m'
BLUE='\033[0;34m'
WHITE='\033[0;97m'
STATUS=0 #STATUS 0 exit safe STATUS 1 exit with an error
if [[ $1 == 'start' ]]; then
start_time=$(date +%s%N | cut -b1-13)
if [[ $2 == 'nrf' ]]; then
echo -e "${BLUE}Starting 5gcn components in the order nrf, mysql, amf, smf, spgwu${NC}..."
docker-compose -f docker-compose.yaml -p 5gcn up -d
elif [[ $2 == 'gnbsim' ]]; then
echo -e "${BLUE}Starting gnbsim ${NC}..."
docker-compose -f docker-compose-gnbsim.yaml up -d gnbsim$3
else
echo -e "${BLUE}Starting 5gcn components in the order mysql, amf, smf, spgwu${NC}..."
docker-compose -f docker-compose-no-nrf.yaml -p 5gcn up -d
fi
echo -e "${GREEN}Checking the health status of the containers${NC}..."
for loop in $(seq 1 25); do
mysql_health=$(docker inspect --format='{{json .State.Health.Status}}' mysql)
if [[ $2 == 'nrf' ]]; then
nrf_health=$(docker inspect --format='{{json .State.Health.Status}}' oai-nrf)
elif [[ $2 == 'gnbsim' ]]; then
gnbsim_health=$(docker inspect --format='{{json .State.Health.Status}}' gnbsim)
fi
amf_health=$(docker inspect --format='{{json .State.Health.Status}}' oai-amf)
smf_health=$(docker inspect --format='{{json .State.Health.Status}}' oai-smf)
spgwu_health=$(docker inspect --format='{{json .State.Health.Status}}' oai-spgwu)
if [[ ${mysql_health} == '"healthy"' && ${amf_health} == '"healthy"' && ${smf_health} == '"healthy"' && ${spgwu_health} == '"healthy"' && $2 != 'nrf' && $2 != 'gnbsim' ]]; then
echo -e "\n${GREEN}All components are healthy${NC}..."
STATUS=0
break
elif [[ $2 == 'gnbsim' ]]; then
echo -ne "gnbsim : $gnbsim_health\033[0K\r"
if [[ ${gnbsim_health} == '"healthy"' ]]; then
STATUS=0
break
fi
sleep 2
elif [[ ${mysql_health} == '"healthy"' && ${amf_health} == '"healthy"' && ${smf_health} == '"healthy"' && ${spgwu_health} == '"healthy"' && ${nrf_health} == '"healthy"' && $2 == 'nrf' ]]; then
echo -e "\n${GREEN}All components are healthy${NC}..."
STATUS=0
break
elif [[ $2 != 'nrf' ]]; then
echo -ne "here mysql : $mysql_health, oai-amf : $amf_health, oai-smf : $smf_health, oai-spgwu : $spgwu_health\033[0K\r"
STATUS=1
sleep 2
else
echo -ne "oai-nrf : $nrf_health, mysql : $mysql_health, oai-amf : $amf_health, oai-smf : $smf_health, oai-spgwu : $spgwu_health\033[0K\r"
STATUS=1
sleep 2
fi
done
if [[ $2 == 'nrf' && $STATUS == 0 ]]; then
echo -e "\nChecking if SMF and UPF registered with nrf core network"
smf_registration_nrf=$(curl -s -X GET http://192.168.70.130/nnrf-nfm/v1/nf-instances?nf-type="SMF" | grep -o '192.168.70.133')
upf_registration_nrf=$(curl -s -X GET http://192.168.70.130/nnrf-nfm/v1/nf-instances?nf-type="UPF" | grep -o '192.168.66.134')
sample_registration=$(curl -s -X GET http://192.168.70.130/nnrf-nfm/v1/nf-instances?nf-type="SMF")
echo -e "\n${BLUE}For example: oai-smf Registration with oai-nrf can be checked on this url /nnrf-nfm/v1/nf-instances?nf-type='SMF' $sample_registration${NC}"
if [[ -z $smf_registration_nrf && -z $upf_registration_nrf ]]; then
echo -e "${RED}Registration problem with NRF, check the reason manually${NC}..."
STATUS=1
else
echo -e "${GREEN}SMF and UPF are registered to NRF${NC}..."
fi
elif [[ $2 == 'gnbsim' && $STATUS == 0 ]]; then
echo -e "${GREEN}#### gnbsim is healthy - gnb & ue is conncted to core network now !! #####${NC}"
else
echo -e "${BLUE}Checking if SMF is able to connect with UPF${NC}"
upf_logs=$(docker logs oai-spgwu | grep 'Received SX HEARTBEAT RESPONSE')
if [[ -z $upf_logs && $STATUS == 0 ]]; then
echo -e "\n${RED}UPF not receiving heartbeats from SMF${NC}..."
STATUS=1
else
echo -e "\n${GREEN}UPF receiving heathbeats from SMF${NC}..."
fi
fi
end_time=$(date +%s%N | cut -b1-13)
final_time=$(expr $(expr $end_time - $start_time))
if [[ $STATUS == 0 ]]; then
echo -e "\n${GREEN}Core network is configured and healthy, total time taken $final_time milli seconds${NC}"
exit $STATUS
else
echo -e "\n${RED}Core network is un-healthy, total time taken $final_time milli seconds\ndebug using docker inspect command...${NC}"
exit $STATUS
fi
start_time=$(date +%s%N | cut -b1-13)
if [[ $2 == 'nrf' ]]; then
echo -e "${BLUE}Starting 5gcn components in the order nrf, mysql, amf, smf, spgwu${NC}..."
docker-compose -f docker-compose.yaml -p 5gcn up -d
elif [[ $2 == 'no-nrf' ]]; then
if [[ $3 == 'vpp-upf' ]]; then
echo -e "${BLUE}Starting 5gcn components in the order mysql, amf, smf, vpp-upf${NC}..."
docker-compose -f docker-compose-vpp-upf.yaml -p 5gcn up -d oai-amf
sleep 5
docker-compose -f docker-compose-vpp-upf.yaml -p 5gcn up -d oai-smf
elif [[ $3 == 'spgwu' ]]; then
echo -e "${BLUE}Starting 5gcn components in the order mysql, amf, smf, spgwu${NC}..."
docker-compose -f docker-compose-no-nrf.yaml -p 5gcn up -d
fi
fi
echo -e "${GREEN}Core network started, checking the health status of the containers${NC}..."
# 25 is a interval it can be increased or decreased
for loop in $(seq 1 25); do
mysql_health=$(docker inspect --format='{{json .State.Health.Status}}' mysql)
if [[ $2 == 'nrf' ]]; then
nrf_health=$(docker inspect --format='{{json .State.Health.Status}}' oai-nrf)
fi
amf_health=$(docker inspect --format='{{json .State.Health.Status}}' oai-amf)
smf_health=$(docker inspect --format='{{json .State.Health.Status}}' oai-smf)
if [[ $3 == 'vpp-upf' ]];then
vpp_upf_health=$(docker inspect --format='{{json .State.Health.Status}}' vpp-upf)
else
spgwu_health=$(docker inspect --format='{{json .State.Health.Status}}' oai-spgwu)
fi
if [[ ${mysql_health} == '"healthy"' && ${amf_health} == '"healthy"' && ${smf_health} == '"healthy"' && ${spgwu_health} == '"healthy"' && $2 != 'nrf' && $3 != 'vpp-upf' ]]; then
echo -e "\n${GREEN}All components are healthy${NC}..."
STATUS=0
break
elif [[ ${mysql_health} == '"healthy"' && ${amf_health} == '"healthy"' && ${smf_health} == '"healthy"' && ${spgwu_health} == '"healthy"' && ${nrf_health} == '"healthy"' && $2 == 'nrf' && $3 != 'vpp-upf' ]]; then
echo -e "\n${GREEN}All components are healthy${NC}..."
STATUS=0
break
elif [[ ${mysql_health} == '"healthy"' && ${amf_health} == '"healthy"' && ${smf_health} == '"healthy"' && ${vpp_upf_health} == '"healthy"' && $2 != 'nrf' && $3 == 'vpp-upf' ]]; then
echo -e "\n${GREEN}All components are healthy${NC}..."
STATUS=0
break
elif [[ $2 != 'nrf' && $3 == 'spgwu' ]]; then
echo -ne "mysql : $mysql_health, oai-amf : $amf_health, oai-smf : $smf_health, oai-spgwu : $spgwu_health\033[0K\r"
STATUS=1
sleep 2
elif [[ $2 != 'nrf' && $3 == 'vpp-upf' ]]; then
echo -ne "mysql : $mysql_health, oai-amf : $amf_health, oai-smf : $smf_health, vpp-upf : $vpp_upf_health\033[0K\r"
STATUS=1
sleep 2
elif [[ $2 == 'nrf' && $3 == 'spgwu' ]]; then
echo -ne "oai-nrf : $nrf_health, mysql : $mysql_health, oai-amf : $amf_health, oai-smf : $smf_health, oai-spgwu : $spgwu_health\033[0K\r"
STATUS=1
sleep 2
fi
done
echo -e "${BLUE}Checking the if the containers are configured${NC}..."
if [[ $2 == 'nrf' && $3 != 'vpp-upf' && $STATUS == 0 ]]; then
echo -e "\nChecking if SMF and UPF registered with nrf core network"
smf_registration_nrf=$(curl -s -X GET http://192.168.70.130/nnrf-nfm/v1/nf-instances?nf-type="SMF" | grep -o '192.168.70.133')
upf_registration_nrf=$(curl -s -X GET http://192.168.70.130/nnrf-nfm/v1/nf-instances?nf-type="UPF" | grep -o '192.168.70.134')
sample_registration=$(curl -s -X GET http://192.168.70.130/nnrf-nfm/v1/nf-instances?nf-type="SMF")
echo -e "\n${BLUE}For example: oai-smf Registration with oai-nrf can be checked on this url /nnrf-nfm/v1/nf-instances?nf-type='SMF' $sample_registration${NC}"
if [[ -z $smf_registration_nrf && -z $upf_registration_nrf ]]; then
echo -e "${RED}Registration problem with NRF, check the reason manually${NC}..."
STATUS=1
else
echo -e "${GREEN}SMF and UPF are registered to NRF${NC}..."
fi
else
echo -e "${BLUE}Checking if SMF is able to connect with UPF${NC}"
if [[ $3 == 'vpp-upf' ]];then
upf_logs=$(docker logs oai-smf | grep 'handle_receive(16 bytes)')
else
upf_logs=$(docker logs oai-spgwu | grep 'Received SX HEARTBEAT RESPONSE')
fi
if [[ -z $upf_logs && $STATUS == 0 ]]; then
echo -e "\n${RED}UPF not receiving heartbeats from SMF${NC}..."
STATUS=1
else
echo -e "\n${GREEN}UPF receiving heathbeats from SMF${NC}..."
fi
fi
end_time=$(date +%s%N | cut -b1-13)
final_time=$(expr $(expr $end_time - $start_time))
if [[ $STATUS == 0 ]]; then
echo -e "\n${GREEN}Core network is configured and healthy, total time taken $final_time milli seconds${NC}"
exit $STATUS
else
echo -e "\n${RED}Core network is un-healthy, total time taken $final_time milli seconds\ndebug using docker inspect command...${NC}"
exit $STATUS
fi
elif [[ $1 == 'stop' ]]; then
echo -e "${RED}Stopping service $2 ${NC}..."
if [[ $2 == 'nrf' ]]; then
docker-compose -f docker-compose.yaml -p 5gcn down
elif [[ $2 == 'gnbsim' ]]; then
docker-compose -f docker-compose-gnbsim.yaml down
else
docker-compose -f docker-compose-no-nrf.yaml -p 5gcn down
fi
echo -e "${GREEN}Service $2 is stopped${NC}"
echo -e "${RED}Stopping service $2 ${NC}..."
if [[ $2 == 'nrf' && $3 == 'spgwu' ]]; then
docker-compose -f docker-compose.yaml -p 5gcn down
elif [[ $2 != 'nrf' && $3 == 'vpp-upf' ]]; then
docker-compose -f docker-compose-vpp-upf.yaml -p 5gcn down
elif [[ $2 = 'no-nrf' && $3 == 'spgwu' ]]; then
docker-compose -f docker-compose-no-nrf.yaml -p 5gcn down
fi
echo -e "${GREEN}Service $2 is stopped${NC}"
else
echo -e "Only use the following options\n\n${RED}start${NC}: start the 5gCN\n${RED}stop${NC}: stops the 5gCN\n${RED}nrf${NC}: nrf should be used\n${RED}no-nrf${NC}: nrf should not be used\nExample: ./core-network.sh start nrf"
echo -e "\nOnly use the following options\n
${RED}start ${WHITE}[option1]${NC} ${WHITE}[option2]${NC}: start the 5gCN\n\
${RED}stop ${WHITE}[option1]${NC} ${WHITE}[option2]${NC}: stops the 5gCN\n\
\n--option1\n\
${RED}nrf${NC}: nrf should be used\n\
${RED}no-nrf${NC}: nrf should not be used\n\
\n--option2\n\
${RED}vpp-upf${NC}: vpp-upf should be used (only works without nrf, no-nrf option1)\n\
${RED}spgwu${NC} : spgwu should be used as upf (works with or without nrf, nrf or no-nrf option1)\n\n\
Example 1 : ./core-network.sh start nrf spgwu\n\
Example 2: ./core-network.sh start no-nrf vpp-upf\n\
Example 1 : ./core-network.sh stop nrf spgwu\n\
Example 2: ./core-network.sh stop no-nrf vpp-upf"
fi
......@@ -33,7 +33,6 @@ services:
interval: 10s
timeout: 5s
retries: 5
gnbsim2:
container_name: gnbsim2
image: gnbsim:develop
......@@ -67,7 +66,6 @@ services:
interval: 10s
timeout: 5s
retries: 5
gnbsim3:
container_name: gnbsim3
image: gnbsim:develop
......@@ -101,7 +99,6 @@ services:
interval: 10s
timeout: 5s
retries: 5
gnbsim4:
container_name: gnbsim4
image: gnbsim:develop
......@@ -135,7 +132,6 @@ services:
interval: 10s
timeout: 5s
retries: 5
gnbsim5:
container_name: gnbsim5
image: gnbsim:develop
......@@ -169,11 +165,55 @@ services:
interval: 10s
timeout: 5s
retries: 5
gnbsim-vpp:
container_name: gnbsim-vpp
image: gnbsim:develop
privileged: true
environment:
- MCC=208
- MNC=95
- GNBID=5
- TAC=0x00a000
- SST=222
- SD=00007b
- PagingDRX=v32
- RANUENGAPID=0
- IMEISV=35609204079514
- MSIN=0000000035
- RoutingIndicator=1234
- ProtectionScheme=null
- KEY=0C0A34601D4F07677303652C0462535B
- OPc=63bfa50ee6523365ff14c1f45f88737d
- DNN=default
- URL=http://www.asnt.org:8080/
- NRCellID=1
- NGAPPeerAddr=192.168.71.132
- GTPuLocalAddr=192.168.72.141
- GTPuIFname=eth0
networks:
public_net_core:
ipv4_address: 192.168.71.141
public_net_access:
ipv4_address: 192.168.72.141
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_core:
name: oai-public-core
ipam:
config:
- subnet: 192.168.71.0/24
public_net_access:
name: oai-public-access
ipam:
config:
- subnet: 192.168.72.0/24
# Incase the user wants docker-compose to create a bridge rather than creating the bridge manually then uncomment the below lines
# public_net:
# driver: bridge
......
version: '3.8'
services:
mysql:
container_name: "mysql"
image: mysql:5.7
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
retries: 5
networks:
public_net_core:
ipv4_address: 192.168.71.131
oai-amf:
container_name: "oai-amf"
image: oai-amf:develop
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=222
- SD_0=123
- SST_1=1
- SD_1=12
- AMF_INTERFACE_NAME_FOR_NGAP=eth0
- AMF_INTERFACE_NAME_FOR_N11=eth0
- SMF_INSTANCE_ID_0=1
- SMF_IPV4_ADDR_0=192.168.71.133
- SMF_HTTP_VERSION_0=v1
- SMF_INSTANCE_ID_1=2
- SMF_IPV4_ADDR_1=0.0.0.0
- SMF_HTTP_VERSION_1=v1
- MYSQL_SERVER=192.168.71.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=no
- NRF_API_VERSION=v1
- AUSF_IPV4_ADDRESS=127.0.0.1
- AUSF_PORT=80
- AUSF_API_VERSION=v1
depends_on:
- mysql
- vpp-upf
- oai-ext-dn
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_core:
ipv4_address: 192.168.71.132
oai-smf:
container_name: "oai-smf"
image: oai-smf:nwi
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=9090
- SMF_API_VERSION=v1
- DEFAULT_DNS_IPV4_ADDRESS=192.168.18.129
- DEFAULT_DNS_SEC_IPV4_ADDRESS=8.8.8.8
- AMF_IPV4_ADDRESS=192.168.71.132
- AMF_PORT=80
- AMF_API_VERSION=v1
- UDM_IPV4_ADDRESS=127.0.0.1
- UDM_PORT=80
- UDM_API_VERSION=v1
- UPF_IPV4_ADDRESS=192.168.71.202
- NRF_IPV4_ADDRESS=0.0.0.0
- NRF_PORT=80
- NRF_API_VERSION=v1
- REGISTER_NRF=no
- DISCOVER_UPF=no
- USE_NETWORK_INSTANCE=yes
extra_hosts:
- "gw1.vppupf.node.5gcn.mnc95.mcc208.3gppnetwork.org:192.168.71.202"
depends_on:
- oai-amf
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_core:
ipv4_address: 192.168.71.133
vpp-upf:
image: vpp-upg:develop
privileged: true
container_name: vpp-upf
environment:
- NWI_CORE=core.oai.org
- NWI_ACCESS=access.oai.org
- NWI_SGI=sgi.oai.org
- GW_ID=1
- MNC03=95
- MCC=208
- REALM=3gppnetwork.org
- NETWORK_UE_IP=12.1.1.0/24
- N3_IPV4_ADDRESS_REMOTE=192.168.72.141
- N3_IPV4_ADDRESS_LOCAL=192.168.72.202
- N4_IPV4_ADDRESS_REMOTE=192.168.71.133
- N4_IPV4_ADDRESS_LOCAL=192.168.71.202
- N6_IPV4_ADDRESS_REMOTE=192.168.73.135
- N6_IPV4_ADDRESS_LOCAL=192.168.73.202
- VPP_MAIN_CORE=0
- VPP_CORE_WORKER=1
# - VPP_PLUGIN_PATH=/usr/lib64/vpp_plugins/ # RHEL7
- VPP_PLUGIN_PATH=/usr/lib/x86_64-linux-gnu/vpp_plugins/ # Ubntu18.04
- INTERFACE_ACCESS=eth0
- INTERFACE_CORE=eth1
- INTERFACE_SGI=eth2
healthcheck:
test: /bin/bash -c "pgrep vpp"
interval: 10s
timeout: 5s
retries: 5
networks:
public_net_core:
ipv4_address: 192.168.71.134
public_net_access:
ipv4_address: 192.168.72.134
public_net_sgi_lan:
ipv4_address: 192.168.73.134
oai-ext-dn:
image: ubuntu:bionic
privileged: true
container_name: oai-ext-dn
entrypoint: /bin/bash -c \
"apt update; apt install -y iptables iproute2 iputils-ping;"\
"iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;"\
"ip route add 12.1.1.0/24 via 192.168.73.202 dev eth0; sleep infinity"
command: ["/bin/bash", "-c", "trap : TERM INT; sleep infinity & wait"]
depends_on:
- vpp-upf
networks:
public_net_sgi_lan:
ipv4_address: 192.168.73.135
networks:
public_net_core:
name: oai-public-core
ipam:
config:
- subnet: 192.168.71.0/24
public_net_access:
name: oai-public-access
ipam:
config:
- subnet: 192.168.72.0/24
public_net_sgi_lan:
name: oai-public-sgi-lan
ipam:
config:
- subnet: 192.168.73.0/24
# Incase the user wants docker-compose to create a bridge rather than creating the bridge manually then uncomment the below lines
# public_net:
# driver: bridge
# name: demo-oai-public-net
# ipam:
# config:
# - subnet: 192.168.71.128/26
# driver_opts:
# com.docker.network.bridge.name: "demo-oai"
......@@ -17,4 +17,4 @@ if [[ -z $SMF_SBI_PORT_STATUS ]]; then
echo "Healthcheck error: UNHEALTHY SBI TCP/HTTP port $SMF_INTERFACE_PORT_FOR_SBI is not listening."
fi
exit $STATUS
\ No newline at end of file
exit $STATUS
......@@ -22,3 +22,4 @@
5. [Tutorial: 5G Core Network Deployment using Helm Charts](./DEPLOY_SA5G_HC.md)
6. [Tutorial: 5G Core Network Deployment and Testing with gnbsim](./DEPLOY_SA5G_WITH_GNBSIM.md)
7. [Tutorial: 5G Core Network Deployment in Virtual Machines and Testing with COTSUE](./DEPLOY_SA5G_VM_COTSUE.md)
8. [Tutorial: 5G Core Network Deployment and Testing with VPP-UPF (Travelping)](./DEPLOY_SA5G_WITH_VPP_UPF.md)
......@@ -166,4 +166,4 @@ mysql oai-5g-develop 1 2021-05-12 11:09:32.597525506 +0200 CEST deploy
nrf oai-5g-develop 1 2021-05-12 11:32:43.648706741 +0200 CEST deployed oai-nrf-0.1.0 0.1.0
smf oai-5g-develop 1 2021-05-12 12:05:38.251220635 +0200 CEST deployed oai-smf-0.1.0 0.1.0
spgwu oai-5g-develop 1 2021-05-12 12:08:31.408369994 +0200 CEST deployed oai-spgwu-tiny-0.1.1 0.1.1
```
\ No newline at end of file
```
......@@ -198,13 +198,24 @@ To know how to configure the machine with the above requirements vist [pre-requi
(docker-compose-host)$ pwd
/home/<docker-compose-host>/oai/oai-cn-fed/docker-compose
(docker-compose-host)$ ./core-network
Only use the following options
start: start the 5gCN
stop: stops the 5gCN
start [option1] [option2]: start the 5gCN
stop [option1] [option2]: stops the 5gCN
--option1
nrf: nrf should be used
no-nrf: nrf should not be used
Example: ./core-network.sh start nrf
--option2
vpp-upf: vpp-upf should be used (only works without nrf, no-nrf option1)
spgwu : spgwu should be used as upf (works with or without nrf, nrf or no-nrf option1)
Example 1 : ./core-network.sh start nrf spgwu
Example 2: ./core-network.sh start no-nrf vpp-upf
Example 1 : ./core-network.sh stop nrf spgwu
Example 2: ./core-network.sh stop no-nrf vpp-upf
```
- Before executing the script it is better to start capturing packets to see the message flow between smf <--> nrf <--> upf. The packets will be captured on **demo-oai** bridge which should be configured on the `docker-compose-host` machine.
......@@ -214,7 +225,7 @@ To know how to configure the machine with the above requirements vist [pre-requi
- Starting the core network components,
```bash
(docker-compose-host)$ ./core-network start nrf
(docker-compose-host)$ ./core-network start nrf spgwu
Starting 5gcn components in the order nrf, mysql, amf, smf, spgwu...
Creating mysql ... done
Creating oai-nrf ... done
......
......@@ -48,6 +48,28 @@ Let's begin !!
we did for dsTest-host.
* Before we procced further for end to end SA5G test, make sure you have healthy docker services for OAI cn5g -
```bash
oai-cn5g-fed/docker-compose$ ./core-network.sh start nrf spgwu
Starting 5gcn components in the order nrf, mysql, amf, smf, spgwu...
Creating mysql ... done
Creating oai-nrf ... done
Creating oai-amf ... done
Creating oai-spgwu ... done
Creating oai-smf ... done
Creating oai-ext-dn ... done
Core network started, checking the health status of the containers...
oai-nrf : "healthy", mysql : "starting", oai-amf : "healthy", oai-smf : "healthy", oai-spgwu : "healthy"
All components are healthy...
Checking the if the containers are configured...
Checking if SMF and UPF registered with nrf core network