Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lizhongxiao
OpenXG-RAN
Commits
284734ba
Commit
284734ba
authored
Feb 01, 2022
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add 5G FDD RFsim test
parent
eb56a40d
Changes
13
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
1304 additions
and
0 deletions
+1304
-0
ci-scripts/conf_files/gnb.sa.band66.fr1.106PRB.usrpn300.conf
ci-scripts/conf_files/gnb.sa.band66.fr1.106PRB.usrpn300.conf
+299
-0
ci-scripts/xml_files/container_5g_fdd_rfsim.xml
ci-scripts/xml_files/container_5g_fdd_rfsim.xml
+116
-0
ci-scripts/xml_files/container_5g_fdd_rfsim_down.xml
ci-scripts/xml_files/container_5g_fdd_rfsim_down.xml
+38
-0
ci-scripts/yaml_files/5g_fdd_rfsimulator/amf-healthcheck.sh
ci-scripts/yaml_files/5g_fdd_rfsimulator/amf-healthcheck.sh
+57
-0
ci-scripts/yaml_files/5g_fdd_rfsimulator/docker-compose.yaml
ci-scripts/yaml_files/5g_fdd_rfsimulator/docker-compose.yaml
+298
-0
ci-scripts/yaml_files/5g_fdd_rfsimulator/mysql-healthcheck.sh
...cripts/yaml_files/5g_fdd_rfsimulator/mysql-healthcheck.sh
+46
-0
ci-scripts/yaml_files/5g_fdd_rfsimulator/nrf-healthcheck.sh
ci-scripts/yaml_files/5g_fdd_rfsimulator/nrf-healthcheck.sh
+20
-0
ci-scripts/yaml_files/5g_fdd_rfsimulator/oai-smf.conf
ci-scripts/yaml_files/5g_fdd_rfsimulator/oai-smf.conf
+133
-0
ci-scripts/yaml_files/5g_fdd_rfsimulator/oai_db.sql
ci-scripts/yaml_files/5g_fdd_rfsimulator/oai_db.sql
+217
-0
ci-scripts/yaml_files/5g_fdd_rfsimulator/smf-healthcheck.sh
ci-scripts/yaml_files/5g_fdd_rfsimulator/smf-healthcheck.sh
+21
-0
ci-scripts/yaml_files/5g_fdd_rfsimulator/spgwu-healthcheck.sh
...cripts/yaml_files/5g_fdd_rfsimulator/spgwu-healthcheck.sh
+28
-0
docker/scripts/gnb_entrypoint.sh
docker/scripts/gnb_entrypoint.sh
+1
-0
docker/scripts/gnb_parameters.yaml
docker/scripts/gnb_parameters.yaml
+30
-0
No files found.
ci-scripts/conf_files/gnb.sa.band66.fr1.106PRB.usrpn300.conf
0 → 100644
View file @
284734ba
This diff is collapsed.
Click to expand it.
ci-scripts/xml_files/container_5g_fdd_rfsim.xml
0 → 100644
View file @
284734ba
<!--
Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The OpenAirInterface Software Alliance licenses this file to You under
the OAI Public License, Version 1.1 (the "License"); you may not use this file
except in compliance with the License.
You may obtain a copy of the License at
http://www.openairinterface.org/?page_id=698
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
For more information about the OpenAirInterface (OAI) Software Alliance:
contact@openairinterface.org
-->
<testCaseList>
<htmlTabRef>
rfsim-5gnr
</htmlTabRef>
<htmlTabName>
Testing 5G NR RF sim - Monolithic gNB
</htmlTabName>
<htmlTabIcon>
wrench
</htmlTabIcon>
<repeatCount>
4
</repeatCount>
<TestCaseRequestedList>
100011
000010
000011
000012
000013
020011
020012
100011
</TestCaseRequestedList>
<!-- Not done yet because of code instability
030011
030012
-->
<TestCaseExclusionList></TestCaseExclusionList>
<testCase
id=
"000010"
>
<class>
DeployGenObject
</class>
<desc>
Deploy MySql Database
</desc>
<yaml_path>
yaml_files/5g_fdd_rfsimulator
</yaml_path>
<services>
mysql
</services>
<nb_healthy>
1
</nb_healthy>
</testCase>
<testCase
id=
"000011"
>
<class>
DeployGenObject
</class>
<desc>
Deploy OAI 5G CoreNetwork
</desc>
<yaml_path>
yaml_files/5g_fdd_rfsimulator
</yaml_path>
<services>
oai-nrf oai-amf oai-smf oai-spgwu oai-ext-dn
</services>
<nb_healthy>
6
</nb_healthy>
</testCase>
<testCase
id=
"000012"
>
<class>
DeployGenObject
</class>
<desc>
Deploy OAI 5G gNB RF sim SA
</desc>
<yaml_path>
yaml_files/5g_fdd_rfsimulator
</yaml_path>
<services>
oai-gnb
</services>
<nb_healthy>
7
</nb_healthy>
</testCase>
<testCase
id=
"000013"
>
<class>
DeployGenObject
</class>
<desc>
Deploy OAI 5G NR-UE RF sim SA
</desc>
<yaml_path>
yaml_files/5g_fdd_rfsimulator
</yaml_path>
<services>
oai-nr-ue
</services>
<nb_healthy>
8
</nb_healthy>
</testCase>
<testCase
id=
"020011"
>
<class>
PingFromContainer
</class>
<desc>
Ping ext-dn from NR-UE
</desc>
<container_name>
rfsim5g-oai-nr-ue
</container_name>
<options>
-I oaitun_ue1 -c 20 192.168.72.135
</options>
<loss_threshold>
5
</loss_threshold>
</testCase>
<testCase
id=
"020012"
>
<class>
PingFromContainer
</class>
<desc>
Ping NR-UE from ext-dn
</desc>
<container_name>
rfsim5g-oai-ext-dn
</container_name>
<options>
-c 20 12.1.1.2
</options>
<loss_threshold>
5
</loss_threshold>
</testCase>
<testCase
id=
"030011"
>
<class>
IperfFromContainer
</class>
<desc>
Iperf UDP Downlink
</desc>
<server_container_name>
rfsim5g-oai-nr-ue
</server_container_name>
<client_container_name>
rfsim5g-oai-ext-dn
</client_container_name>
<server_options>
-B 12.1.1.2 -u -i 1 -s
</server_options>
<client_options>
-c 12.1.1.2 -u -i 1 -t 30 -b 3M
</client_options>
</testCase>
<testCase
id=
"030012"
>
<class>
IperfFromContainer
</class>
<desc>
Iperf UDP Uplink
</desc>
<server_container_name>
rfsim5g-oai-ext-dn
</server_container_name>
<client_container_name>
rfsim5g-oai-nr-ue
</client_container_name>
<server_options>
-u -i 1 -s
</server_options>
<client_options>
-B 12.1.1.2 -c 192.168.72.135 -u -i 1 -t 30 -b 1M
</client_options>
</testCase>
<testCase
id=
"100011"
>
<class>
UndeployGenObject
</class>
<desc>
Undeploy all OAI 5G stack
</desc>
<yaml_path>
yaml_files/5g_fdd_rfsimulator
</yaml_path>
</testCase>
</testCaseList>
ci-scripts/xml_files/container_5g_fdd_rfsim_down.xml
0 → 100644
View file @
284734ba
<!--
Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The OpenAirInterface Software Alliance licenses this file to You under
the OAI Public License, Version 1.1 (the "License"); you may not use this file
except in compliance with the License.
You may obtain a copy of the License at
http://www.openairinterface.org/?page_id=698
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
For more information about the OpenAirInterface (OAI) Software Alliance:
contact@openairinterface.org
-->
<testCaseList>
<htmlTabRef>
rfsim-5gnr-down
</htmlTabRef>
<htmlTabName>
CleanUp 5G RF - Monolithic gNB
</htmlTabName>
<htmlTabIcon>
trash
</htmlTabIcon>
<TestCaseRequestedList>
100012
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase
id=
"100012"
>
<class>
UndeployGenObject
</class>
<desc>
Undeploy all OAI 5G stack
</desc>
<yaml_path>
yaml_files/5g_fdd_rfsimulator
</yaml_path>
</testCase>
</testCaseList>
ci-scripts/yaml_files/5g_fdd_rfsimulator/amf-healthcheck.sh
0 → 100755
View file @
284734ba
#!/bin/bash
set
-eo
pipefail
STATUS
=
0
AMF_PORT_FOR_NGAP
=
38412
AMF_PORT_FOR_N11_HTTP
=
80
AMF_IP_NGAP_INTERFACE
=
$(
ifconfig
$AMF_INTERFACE_NAME_FOR_NGAP
|
grep
inet |
awk
{
'print $2'
}
)
AMF_IP_N11_INTERFACE
=
$(
ifconfig
$AMF_INTERFACE_NAME_FOR_N11
|
grep
inet |
awk
{
'print $2'
}
)
N2_PORT_STATUS
=
$(
netstat
-Snpl
|
grep
-o
"
$AMF_IP_NGAP_INTERFACE
:
$AMF_PORT_FOR_NGAP
"
)
N11_PORT_STATUS
=
$(
netstat
-tnpl
|
grep
-o
"
$AMF_IP_N11_INTERFACE
:
$AMF_PORT_FOR_N11_HTTP
"
)
#Check if entrypoint properly configured the conf file and no parameter is unset (optional)
NB_UNREPLACED_AT
=
`
cat
/openair-amf/etc/
*
.conf |
grep
-v
contact@openairinterface.org |
grep
-c
@
||
true
`
if
[
$NB_UNREPLACED_AT
-ne
0
]
;
then
STATUS
=
1
echo
"Healthcheck error: configuration file is not configured properly"
fi
if
[[
-z
$N2_PORT_STATUS
]]
;
then
STATUS
=
1
echo
"Healthcheck error: N2 SCTP port
$AMF_PORT_FOR_NGAP
is not listening"
fi
if
[[
-z
$N11_PORT_STATUS
]]
;
then
STATUS
=
1
echo
"Healthcheck error: N11/SBI TCP/HTTP port
$AMF_PORT_FOR_N11_HTTP
is not listening"
fi
#host="${MYSQL_SERVER}"
#user="${MYSQL_USER:-root}"
#export MYSQL_PWD="${MYSQL_PASS}"
#args=(
# -h"$host"
# -u"$user"
# --silent
#)
#if ! command -v mysql &> /dev/null; then
# echo "Installing mysql command"
# apt update
# apt-get -y install mysql-client
#else
# if select="$(echo 'SELECT 1' | mysql "${args[@]}")" && [ "$select" = '1' ]; then
# database_check=$(mysql -h$host -u$user -D oai_db --silent -e "SELECT * FROM users;")
# if [[ -z $database_check ]]; then
# echo "Healthcheck error: oai_db not populated"
# STATUS=1
# fi
# STATUS=0
# else
# echo "Healthcheck error: Mysql port inactive"
# STATUS=1
# fi
#fi
exit
$STATUS
ci-scripts/yaml_files/5g_fdd_rfsimulator/docker-compose.yaml
0 → 100644
View file @
284734ba
version
:
'
3.8'
services
:
oai-nrf
:
container_name
:
"
rfsim5g-oai-nrf"
image
:
oai-nrf:latest
environment
:
-
NRF_INTERFACE_NAME_FOR_SBI=eth0
-
NRF_INTERFACE_PORT_FOR_SBI=80
-
NRF_INTERFACE_HTTP2_PORT_FOR_SBI=9090
-
NRF_API_VERSION=v1
-
INSTANCE=0
-
PID_DIRECTORY=/var/run
networks
:
public_net
:
ipv4_address
:
192.168.71.130
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
mysql
:
container_name
:
"
rfsim5g-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
:
ipv4_address
:
192.168.71.131
oai-amf
:
container_name
:
"
rfsim5g-oai-amf"
image
:
oai-amf:latest
environment
:
-
TZ=Europe/paris
-
INSTANCE=0
-
PID_DIRECTORY=/var/run
-
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
-
SST_0=1
-
SD_0=1
-
SST_1=1
-
SD_1=12
-
AMF_INTERFACE_NAME_FOR_NGAP=eth0
-
AMF_INTERFACE_NAME_FOR_N11=eth0
-
SMF_INSTANCE_ID_0=1
-
SMF_FQDN_0=oai-smf
-
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
-
SMF_IPV4_ADDR_1=0.0.0.0
-
SMF_HTTP_VERSION_1=v1
-
SELECTED_1=false
-
MYSQL_SERVER=192.168.71.131
-
MYSQL_USER=root
-
MYSQL_PASS=linux
-
MYSQL_DB=oai_db
-
OPERATOR_KEY=c42449363bbad02b66d16bc975d77cc1
-
NRF_IPV4_ADDRESS=192.168.71.130
-
NRF_PORT=80
-
NF_REGISTRATION=yes
-
SMF_SELECTION=yes
-
USE_FQDN_DNS=yes
-
NRF_API_VERSION=v1
-
NRF_FQDN=oai-nrf
-
EXTERNAL_AUSF=no
-
AUSF_IPV4_ADDRESS=0.0.0.0
-
AUSF_PORT=80
-
AUSF_API_VERSION=v1
-
AUSF_FQDN=localhost
depends_on
:
-
oai-nrf
-
mysql
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.71.132
oai-smf
:
container_name
:
"
rfsim5g-oai-smf"
image
:
oai-smf:latest
entrypoint
:
/bin/bash -c "/openair-smf/bin/oai_smf -c /openair-smf/bin/oai-smf.conf -o"
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=4.4.4.4
-
AMF_IPV4_ADDRESS=0.0.0.0
-
AMF_PORT=80
-
AMF_API_VERSION=v1
-
AMF_FQDN=oai-amf
-
UDM_IPV4_ADDRESS=127.0.0.1
-
UDM_PORT=80
-
UDM_API_VERSION=v1
-
UDM_FQDN=localhost
-
UPF_IPV4_ADDRESS=192.168.71.134
-
UPF_FQDN_0=oai-spgwu
-
NRF_IPV4_ADDRESS=192.168.71.130
-
NRF_PORT=80
-
NRF_API_VERSION=v1
-
NRF_FQDN=oai-nrf
-
REGISTER_NRF=yes
-
DISCOVER_UPF=yes
-
USE_FQDN_DNS=yes
depends_on
:
-
oai-nrf
-
oai-amf
volumes
:
-
./smf-healthcheck.sh:/openair-smf/bin/smf-healthcheck.sh
-
./oai-smf.conf:/openair-smf/bin/oai-smf.conf
healthcheck
:
test
:
/bin/bash -c "/openair-smf/bin/smf-healthcheck.sh"
interval
:
10s
timeout
:
5s
retries
:
5
networks
:
public_net
:
ipv4_address
:
192.168.71.133
oai-spgwu
:
container_name
:
"
rfsim5g-oai-spgwu"
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
-
SPGWC0_IP_ADDRESS=192.168.71.133
-
BYPASS_UL_PFCP_RULES=no
-
MCC=208
-
MNC=99
-
MNC03=099
-
TAC=1
-
GTP_EXTENSION_HEADER_PRESENT=yes
-
GW_ID=1
-
REALM=openairinterface.org
-
ENABLE_5G_FEATURES=yes
-
REGISTER_NRF=yes
-
USE_FQDN_NRF=yes
-
UPF_FQDN_5G=oai-spgwu
-
NRF_IPV4_ADDRESS=192.168.71.130
-
NRF_PORT=80
-
NRF_API_VERSION=v1
-
NRF_FQDN=oai-nrf
-
NSSAI_SST_0=1
-
NSSAI_SD_0=1
-
DNN_0=oai
depends_on
:
-
oai-nrf
-
oai-smf
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.71.134
traffic_net
:
ipv4_address
:
192.168.72.134
oai-ext-dn
:
image
:
ubuntu:bionic
privileged
:
true
container_name
:
rfsim5g-oai-ext-dn
entrypoint
:
/bin/bash -c \
"apt update; apt install -y procps iptables iproute2 iperf iputils-ping;"\
"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-gnb
:
image
:
oai-gnb:develop
privileged
:
true
container_name
:
rfsim5g-oai-gnb
environment
:
RFSIMULATOR
:
server
USE_SA_FDD_MONO
:
'
yes'
GNB_NAME
:
gnb-rfsim
TAC
:
1
MCC
:
'
208'
MNC
:
'
99'
MNC_LENGTH
:
2
NSSAI_SST
:
1
NSSAI_SD0
:
1
NSSAI_SD1
:
112233
AMF_IP_ADDRESS
:
192.168.71.132
GNB_NGA_IF_NAME
:
eth0
GNB_NGA_IP_ADDRESS
:
192.168.71.136
GNB_NGU_IF_NAME
:
eth0
GNB_NGU_IP_ADDRESS
:
192.168.71.136
USE_ADDITIONAL_OPTIONS
:
--sa -E --rfsim --log_config.global_log_options level,nocolor,time
depends_on
:
-
oai-ext-dn
networks
:
public_net
:
ipv4_address
:
192.168.71.136
healthcheck
:
test
:
/bin/bash -c "pgrep nr-softmodem"
interval
:
10s
timeout
:
5s
retries
:
5
oai-nr-ue
:
image
:
oai-nr-ue:develop
privileged
:
true
container_name
:
rfsim5g-oai-nr-ue
environment
:
RFSIMULATOR
:
192.168.71.136
FULL_IMSI
:
'
208990100001100'
FULL_KEY
:
'
fec86ba6eb707ed08905757b1bb44b8f'
OPC
:
'
C42449363BBAD02B66D16BC975D77CC1'
DNN
:
oai
NSSAI_SST
:
1
NSSAI_SD
:
1
USE_ADDITIONAL_OPTIONS
:
-E --sa --rfsim -r 106 --numerology 1 --band 66 -C 2169080000 --CO -400000000 -s 396 --nokrnmod --log_config.global_log_options level,nocolor,time
depends_on
:
-
oai-gnb
networks
:
public_net
:
ipv4_address
:
192.168.71.137
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
ipam
:
config
:
-
subnet
:
192.168.72.128/26
driver_opts
:
com.docker.network.bridge.name
:
"
rfsim5g-traffic"
ci-scripts/yaml_files/5g_fdd_rfsimulator/mysql-healthcheck.sh
0 → 100755
View file @
284734ba
#!/bin/bash
set
-eo
pipefail
if
[
"
$MYSQL_ROOT_PASSWORD
"
]
&&
[
-z
"
$MYSQL_USER
"
]
&&
[
-z
"
$MYSQL_PASSWORD
"
]
;
then
echo
>
&2
'Healthcheck error: cannot determine root password (and MYSQL_USER and MYSQL_PASSWORD were not set)'
exit
0
fi
host
=
"
$(
hostname
--ip-address
||
echo
'127.0.0.1'
)
"
user
=
"
${
MYSQL_USER
:-
root
}
"
export
MYSQL_PWD
=
"
${
MYSQL_PASSWORD
:-
$MYSQL_ROOT_PASSWORD
}
"
args
=(
# force mysql to not use the local "mysqld.sock" (test "external" connectivity)
-h
"
$host
"
-u
"
$user
"
--silent
)
STATUS
=
0
if
command
-v
mysqladmin &> /dev/null
;
then
if
mysqladmin
"
${
args
[@]
}
"
ping
>
/dev/null
;
then
database_check
=
$(
mysql
-u
$user
-D
oai_db
--silent
-e
"SELECT * FROM users;"
)
if
[[
-z
$database_check
]]
;
then
echo
"Healthcheck error: oai_db not populated"
STATUS
=
1
fi
STATUS
=
0
else
echo
"Healthcheck error: Mysql port inactive"
STATUS
=
1
fi
else
if select
=
"
$(
echo
'SELECT 1'
| mysql
"
${
args
[@]
}
"
)
"
&&
[
"
$select
"
=
'1'
]
;
then
database_check
=
$(
mysql
-u
$user
-D
oai_db
--silent
-e
"SELECT * FROM users;"
)
if
[[
-z
$database_check
]]
;
then
echo
"Healthcheck error: oai_db not populated"
STATUS
=
1
fi
STATUS
=
0
else
echo
"Healthcheck error: Mysql port inactive"
STATUS
=
1
fi
fi
exit
$STATUS
ci-scripts/yaml_files/5g_fdd_rfsimulator/nrf-healthcheck.sh
0 → 100755
View file @
284734ba
#!/bin/bash
set
-eo
pipefail
STATUS
=
0
NRF_IP_SBI_INTERFACE
=
$(
ifconfig
$NRF_INTERFACE_NAME_FOR_SBI
|
grep
inet |
awk
{
'print $2'
}
)
NRF_SBI_PORT_STATUS
=
$(
netstat
-tnpl
|
grep
-o
"
$NRF_IP_SBI_INTERFACE
:
$NRF_INTERFACE_PORT_FOR_SBI
"
)
#Check if entrypoint properly configured the conf file and no parameter is unset(optional)
NB_UNREPLACED_AT
=
`
cat
/openair-nrf/etc/
*
.conf |
grep
-v
contact@openairinterface.org |
grep
-c
@
||
true
`
if
[
$NB_UNREPLACED_AT
-ne
0
]
;
then
STATUS
=
1
echo
"Healthcheck error: UNHEALTHY configuration file is not configured properly"
fi
if
[[
-z
$NRF_SBI_PORT_STATUS
]]
;
then
STATUS
=
1
echo
"Healthcheck error: UNHEALTHY SBI TCP/HTTP port
$NRF_INTERFACE_PORT_FOR_SBI
is not listening."
fi
exit
$STATUS
\ No newline at end of file
ci-scripts/yaml_files/5g_fdd_rfsimulator/oai-smf.conf
0 → 100644
View file @
284734ba
################################################################################
# Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The OpenAirInterface Software Alliance licenses this file to You under
# the OAI Public License, Version 1.1 (the "License"); you may not use this file
# except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.openairinterface.org/?page_id=698
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#-------------------------------------------------------------------------------
# For more information about the OpenAirInterface (OAI) Software Alliance:
# contact@openairinterface.org
################################################################################
SMF
=
{
FQDN
=
"oai-smf-svc"
;
INSTANCE
=
0
;
# 0 is the default
PID_DIRECTORY
=
"/var/run"
;
# /var/run is the default
INTERFACES
:
{
N4
:
{
# SMF binded interface for N4 communication (UPF)
INTERFACE_NAME
=
"eth0"
;
# YOUR NETWORK CONFIG HERE
IPV4_ADDRESS
=
"read"
;
};
SBI
:
{
# SMF binded interface for SBI interface (e.g., communication with AMF, UDM)
INTERFACE_NAME
=
"eth0"
;
# YOUR NETWORK CONFIG HERE
IPV4_ADDRESS
=
"read"
;
PORT
=
80
;
# YOUR NETWORK CONFIG HERE (default: 80)
HTTP2_PORT
=
9090
;
# YOUR NETWORK CONFIG HERE
API_VERSION
=
"v1"
;
# YOUR SMF API VERSION CONFIG HERE
};
};
# Pool of UE assigned IP addresses
# Do not make IP pools overlap
# first IPv4 address X.Y.Z.1 is reserved for GTP network device on UPF
IP_ADDRESS_POOL
:
{
IPV4_LIST
= (
{
RANGE
=
"12.1.1.2 - 12.1.1.128"
;},
# STRING, IPv4 RANGE IP_start - IP_end, YOUR NETWORK CONFIG HERE.
{
RANGE
=
"12.1.1.129 - 12.1.1.224"
;},
# STRING, IPv4 RANGE IP_start - IP_end, YOUR NETWORK CONFIG HERE.
{
RANGE
=
"10.10.10.2 - 10.10.10.253"
;}
# STRING, IPv4 RANGE IP_start - IP_end, YOUR NETWORK CONFIG HERE.
);
IPV6_LIST
= (
{
PREFIX
=
"2001:1:2::/64"
;},
# STRING, IPv6 prefix, YOUR NETWORK CONFIG HERE.
{
PREFIX
=
"3001:1:2::/64"
;},
# STRING, IPv6 prefix, YOUR NETWORK CONFIG HERE.
{
PREFIX
=
"4001:1:2::/64"
;}
# STRING, IPv6 prefix, YOUR NETWORK CONFIG HERE.
);
};
DNN_LIST
= (
# IPV4_POOL, IPV6_POOL are index in IPV4_LIST, IPV6_LIST, PDU_SESSION_TYPE choice in {IPv4, IPv6, IPv4v6}
{
DNN_NI
=
"default"
;
PDU_SESSION_TYPE
=
"IPv4"
;
IPV4_POOL
=
2
;
IPV6_POOL
= -
1
},
{
DNN_NI
=
"carrier.com"
;
PDU_SESSION_TYPE
=
"IPv4"
;
IPV4_POOL
=
1
;
IPV6_POOL
= -
1
},
{
DNN_NI
=
"oai"
;
PDU_SESSION_TYPE
=
"IPv4"
;
IPV4_POOL
=
0
;
IPV6_POOL
= -
1
}
);
# DNS address communicated to UEs
DEFAULT_DNS_IPV4_ADDRESS
=
"192.168.18.129"
;
# YOUR DNS CONFIG HERE
DEFAULT_DNS_SEC_IPV4_ADDRESS
=
"192.168.18.129"
;
# YOUR DNS CONFIG HERE
DEFAULT_DNS_IPV6_ADDRESS
=
"2001:4860:4860::8888"
;
# YOUR DNS CONFIG HERE
DEFAULT_DNS_SEC_IPV6_ADDRESS
=
"2001:4860:4860::8844"
;
# YOUR DNS CONFIG HERE
SUPPORT_FEATURES
:
{
# STRING, {"yes", "no"},
REGISTER_NRF
=
"yes"
;
# Set to yes if SMF resgisters to an NRF
DISCOVER_UPF
=
"yes"
;
# Set to yes to enable UPF discovery and selection
FORCE_PUSH_PROTOCOL_CONFIGURATION_OPTIONS
=
"no"
;
# Non standard feature, normally should be set to "no",
# but you may need to set to yes for UE that do not explicitly request a PDN address through NAS signalling
USE_LOCAL_SUBSCRIPTION_INFO
=
"yes"
;
# Set to yes if SMF uses local subscription information instead of from an UDM
USE_FQDN_DNS
=
"yes"
;
# Set to yes if AMF/UDM/NRF/UPF will relying on a DNS to resolve FQDN
}
AMF
:
{
IPV4_ADDRESS
=
"0.0.0.0"
;
# YOUR AMF CONFIG HERE
PORT
=
80
;
# YOUR AMF CONFIG HERE (default: 80)
API_VERSION
=
"v1"
;
# YOUR AMF API VERSION FOR SBI CONFIG HERE
FQDN
=
"oai-amf"
# YOUR AMF FQDN CONFIG HERE
};
UDM
:
{
IPV4_ADDRESS
=
"127.0.0.1"
;
# YOUR UDM CONFIG HERE
PORT
=
80
;
# YOUR UDM CONFIG HERE (default: 80)
API_VERSION
=
"v1"
;
# YOUR UDM API VERSION FOR SBI CONFIG HERE
FQDN
=
"localhost"
# YOUR UDM FQDN CONFIG HERE
};
NRF
:
{
IPV4_ADDRESS
=
"192.168.71.130"
;
# YOUR NRF CONFIG HERE
PORT
=
80
;
# YOUR NRF CONFIG HERE (default: 80)
API_VERSION
=
"v1"
;
# YOUR NRF API VERSION FOR SBI CONFIG HERE
FQDN
=
"oai-nrf"
# YOUR NRF FQDN CONFIG HERE
};
UPF_LIST
= (
{
IPV4_ADDRESS
=
"192.168.71.134"
;
FQDN
=
"oai-spgwu"
}
# YOUR UPF CONFIG HERE
);
LOCAL_CONFIGURATION
:
{
SESSION_MANAGEMENT_SUBSCRIPTION_LIST
= (
{
NSSAI_SST
=
222
,
NSSAI_SD
=
"123"
,
DNN
=
"default"
,
DEFAULT_SESSION_TYPE
=
"IPV4"
,
DEFAULT_SSC_MODE
=
1
,
QOS_PROFILE_5QI
=
7
,
QOS_PROFILE_PRIORITY_LEVEL
=
1
,
QOS_PROFILE_ARP_PRIORITY_LEVEL
=
1
,
QOS_PROFILE_ARP_PREEMPTCAP
=
"NOT_PREEMPT"
,
QOS_PROFILE_ARP_PREEMPTVULN
=
"NOT_PREEMPTABLE"
,
SESSION_AMBR_UL
=
"20Mbps"
,
SESSION_AMBR_DL
=
"22Mbps"
},
{
NSSAI_SST
=
1
;
NSSAI_SD
=
"1"
,
DNN
=
"oai"
,
DEFAULT_SESSION_TYPE
=
"IPV4"
,
DEFAULT_SSC_MODE
=
1
,
QOS_PROFILE_5QI
=
6
,
QOS_PROFILE_PRIORITY_LEVEL
=
1
,
QOS_PROFILE_ARP_PRIORITY_LEVEL
=
1
,
QOS_PROFILE_ARP_PREEMPTCAP
=
"NOT_PREEMPT"
,
QOS_PROFILE_ARP_PREEMPTVULN
=
"NOT_PREEMPTABLE"
,
SESSION_AMBR_UL
=
"20Mbps"
,
SESSION_AMBR_DL
=
"22Mbps"
}
);
};
};
ci-scripts/yaml_files/5g_fdd_rfsimulator/oai_db.sql
0 → 100755
View file @
284734ba
This diff is collapsed.
Click to expand it.
ci-scripts/yaml_files/5g_fdd_rfsimulator/smf-healthcheck.sh
0 → 100755
View file @
284734ba
#!/bin/bash
set
-eo
pipefail
STATUS
=
0
SMF_IP_SBI_INTERFACE
=
$(
ifconfig
$SMF_INTERFACE_NAME_FOR_SBI
|
grep
inet |
awk
{
'print $2'
}
)
SMF_SBI_PORT_STATUS
=
$(
netstat
-tnpl
|
grep
-o
"
$SMF_IP_SBI_INTERFACE
:
$SMF_INTERFACE_PORT_FOR_SBI
"
)
#Check if entrypoint properly configured the conf file and no parameter is unset(optional)
#NB_UNREPLACED_AT=`cat /openair-smf/etc/*.conf | grep -v contact@openairinterface.org | grep -c @ || true`
#if [ $NB_UNREPLACED_AT -ne 0 ]; then
# STATUS=-1
# echo "Healthcheck error: UNHEALTHY configuration file is not configured properly"
#fi
#
if
[[
-z
$SMF_SBI_PORT_STATUS
]]
;
then
STATUS
=
-1
echo
"Healthcheck error: UNHEALTHY SBI TCP/HTTP port
$SMF_INTERFACE_PORT_FOR_SBI
is not listening."
fi
exit
$STATUS
ci-scripts/yaml_files/5g_fdd_rfsimulator/spgwu-healthcheck.sh
0 → 100755
View file @
284734ba
#!/bin/bash
set
-eo
pipefail
STATUS
=
0
SGW_PORT_FOR_S1U_S12_S4_UP
=
2152
SGW_PORT_FOR_SX
=
8805
SGW_IP_S1U_INTERFACE
=
$(
ifconfig
$SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP
|
grep
inet |
awk
{
'print $2'
}
)
SGW_IP_SX_INTERFACE
=
$(
ifconfig
$SGW_INTERFACE_NAME_FOR_SX
|
grep
inet |
awk
{
'print $2'
}
)
S1U_S12_S4_UP_PORT_STATUS
=
$(
netstat
-unpl
|
grep
-o
"
$SGW_IP_S1U_INTERFACE
:
$SGW_PORT_FOR_S1U_S12_S4_UP
"
)
SX_PORT_STATUS
=
$(
netstat
-unpl
|
grep
-o
"
$SGW_IP_SX_INTERFACE
:
$SGW_PORT_FOR_SX
"
)
#Check if entrypoint properly configured the conf file and no parameter is unset (optional)
NB_UNREPLACED_AT
=
`
cat
/openair-spgwu/etc/
*
.conf |
grep
-v
contact@openairinterface.org |
grep
-c
@
||
true
`
if
[
$NB_UNREPLACED_AT
-ne
0
]
;
then
STATUS
=
1
echo
"Healthcheck error: UNHEALTHY configuration file is not configured properly"
fi
if
[[
-z
$S1U_S12_S4_UP_PORT_STATUS
]]
;
then
STATUS
=
1
echo
"Healthcheck error: UNHEALTHY S1U port
$SGW_PORT_FOR_S1U_S12_S4_UP
is not listening."
fi
if
[[
-z
$SX_PORT_STATUS
]]
;
then
STATUS
=
1
echo
"Healthcheck error: UNHEALTHY SX port
$SGW_PORT_FOR_SX
is not listening."
fi
exit
$STATUS
\ No newline at end of file
docker/scripts/gnb_entrypoint.sh
View file @
284734ba
...
...
@@ -10,6 +10,7 @@ THREAD_PARALLEL_CONFIG=${THREAD_PARALLEL_CONFIG:-PARALLEL_SINGLE_THREAD}
if
[[
-v
USE_NSA_TDD_MONO
]]
;
then
cp
$PREFIX
/etc/gnb.nsa.tdd.conf
$PREFIX
/etc/gnb.conf
;
fi
if
[[
-v
USE_SA_TDD_MONO
]]
;
then
cp
$PREFIX
/etc/gnb.sa.tdd.conf
$PREFIX
/etc/gnb.conf
;
fi
if
[[
-v
USE_SA_FDD_MONO
]]
;
then
cp
$PREFIX
/etc/gnb.sa.fdd.conf
$PREFIX
/etc/gnb.conf
;
fi
if
[[
-v
USE_SA_CU
]]
;
then
ln
-s
$PREFIX
/etc/gnb.sa.cu.conf
$PREFIX
/etc/gnb.conf
;
fi
if
[[
-v
USE_SA_TDD_CU
]]
;
then
cp
$PREFIX
/etc/gnb.sa.du.tdd.conf
$PREFIX
/etc/gnb.conf
;
fi
# Sometimes, the templates are not enough. We mount a conf file on $PREFIX/etc. It can be a template itself.
...
...
docker/scripts/gnb_parameters.yaml
View file @
284734ba
...
...
@@ -94,6 +94,36 @@
-
key
:
parallel_config
env
:
"
@THREAD_PARALLEL_CONFIG@"
-
filePrefix
:
gnb.sa.band66.fr1.106PRB.usrpn300.conf
outputfilename
:
"
gnb.sa.fdd.conf"
config
:
-
key
:
Active_gNBs
env
:
"
@GNB_NAME@"
-
key
:
gNB_name
env
:
"
@GNB_NAME@"
-
key
:
mcc
env
:
"
@MCC@"
-
key
:
mnc
env
:
"
@MNC@"
-
key
:
mnc_length
env
:
"
@MNC_LENGTH@"
-
key
:
tracking_area_code
env
:
"
@TAC@"
-
key
:
sst
env
:
"
@NSSAI_SST@"
-
key
:
ipv4
env
:
"
@AMF_IP_ADDRESS@"
-
key
:
GNB_INTERFACE_NAME_FOR_NG_AMF
env
:
"
@GNB_NGA_IF_NAME@"
-
key
:
GNB_IPV4_ADDRESS_FOR_NG_AMF
env
:
"
@GNB_NGA_IP_ADDRESS@"
-
key
:
GNB_INTERFACE_NAME_FOR_NGU
env
:
"
@GNB_NGU_IF_NAME@"
-
key
:
GNB_IPV4_ADDRESS_FOR_NGU
env
:
"
@GNB_NGU_IP_ADDRESS@"
-
key
:
parallel_config
env
:
"
@THREAD_PARALLEL_CONFIG@"
-
filePrefix
:
gNB_SA_CU.conf
outputfilename
:
"
gnb.sa.cu.conf"
config
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment