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
679b4978
Commit
679b4978
authored
Oct 27, 2023
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/ci-add-more-ues-rf-sim-test' into integration_2023_w43
parents
3b57e3ba
4cea368a
Changes
6
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
304 additions
and
9 deletions
+304
-9
ci-scripts/ci_ueinfra.yaml
ci-scripts/ci_ueinfra.yaml
+72
-0
ci-scripts/cls_containerize.py
ci-scripts/cls_containerize.py
+3
-0
ci-scripts/cls_oaicitest.py
ci-scripts/cls_oaicitest.py
+17
-5
ci-scripts/xml_files/container_5g_rfsim.xml
ci-scripts/xml_files/container_5g_rfsim.xml
+52
-1
ci-scripts/yaml_files/5g_rfsimulator/docker-compose.yaml
ci-scripts/yaml_files/5g_rfsimulator/docker-compose.yaml
+146
-3
ci-scripts/yaml_files/5g_rfsimulator/oai_db.sql
ci-scripts/yaml_files/5g_rfsimulator/oai_db.sql
+14
-0
No files found.
ci-scripts/ci_ueinfra.yaml
View file @
679b4978
...
...
@@ -161,6 +161,78 @@ rfsim5g_ue2:
DetachScript
:
docker stop rfsim5g-oai-nr-ue2
MTU
:
1500
rfsim5g_ue3
:
Host
:
localhost
NetworkScript
:
docker exec rfsim5g-oai-nr-ue3 ip a show dev oaitun_ue1
CmdPrefix
:
docker exec rfsim5g-oai-nr-ue3
IF
:
oaitun_ue1
AttachScript
:
docker start rfsim5g-oai-nr-ue3
DetachScript
:
docker stop rfsim5g-oai-nr-ue3
MTU
:
1500
rfsim5g_ue4
:
Host
:
localhost
NetworkScript
:
docker exec rfsim5g-oai-nr-ue4 ip a show dev oaitun_ue1
CmdPrefix
:
docker exec rfsim5g-oai-nr-ue4
IF
:
oaitun_ue1
AttachScript
:
docker start rfsim5g-oai-nr-ue4
DetachScript
:
docker stop rfsim5g-oai-nr-ue4
MTU
:
1500
rfsim5g_ue5
:
Host
:
localhost
NetworkScript
:
docker exec rfsim5g-oai-nr-ue5 ip a show dev oaitun_ue1
CmdPrefix
:
docker exec rfsim5g-oai-nr-ue5
IF
:
oaitun_ue1
AttachScript
:
docker start rfsim5g-oai-nr-ue5
DetachScript
:
docker stop rfsim5g-oai-nr-ue5
MTU
:
1500
rfsim5g_ue6
:
Host
:
localhost
NetworkScript
:
docker exec rfsim5g-oai-nr-ue6 ip a show dev oaitun_ue1
CmdPrefix
:
docker exec rfsim5g-oai-nr-ue6
IF
:
oaitun_ue1
AttachScript
:
docker start rfsim5g-oai-nr-ue6
DetachScript
:
docker stop rfsim5g-oai-nr-ue6
MTU
:
1500
rfsim5g_ue7
:
Host
:
localhost
NetworkScript
:
docker exec rfsim5g-oai-nr-ue7 ip a show dev oaitun_ue1
CmdPrefix
:
docker exec rfsim5g-oai-nr-ue7
IF
:
oaitun_ue1
AttachScript
:
docker start rfsim5g-oai-nr-ue7
DetachScript
:
docker stop rfsim5g-oai-nr-ue7
MTU
:
1500
rfsim5g_ue8
:
Host
:
localhost
NetworkScript
:
docker exec rfsim5g-oai-nr-ue8 ip a show dev oaitun_ue1
CmdPrefix
:
docker exec rfsim5g-oai-nr-ue8
IF
:
oaitun_ue1
AttachScript
:
docker start rfsim5g-oai-nr-ue8
DetachScript
:
docker stop rfsim5g-oai-nr-ue8
MTU
:
1500
rfsim5g_ue9
:
Host
:
localhost
NetworkScript
:
docker exec rfsim5g-oai-nr-ue9 ip a show dev oaitun_ue1
CmdPrefix
:
docker exec rfsim5g-oai-nr-ue9
IF
:
oaitun_ue1
AttachScript
:
docker start rfsim5g-oai-nr-ue9
DetachScript
:
docker stop rfsim5g-oai-nr-ue9
MTU
:
1500
rfsim5g_ue10
:
Host
:
localhost
NetworkScript
:
docker exec rfsim5g-oai-nr-ue10 ip a show dev oaitun_ue1
CmdPrefix
:
docker exec rfsim5g-oai-nr-ue10
IF
:
oaitun_ue1
AttachScript
:
docker start rfsim5g-oai-nr-ue10
DetachScript
:
docker stop rfsim5g-oai-nr-ue10
MTU
:
1500
rfsim5g_ext_dn
:
Host
:
localhost
NetworkScript
:
docker exec rfsim5g-oai-ext-dn ip a show dev eth0
...
...
ci-scripts/cls_containerize.py
View file @
679b4978
...
...
@@ -289,6 +289,7 @@ class Containerize():
self
.
proxyCommit
=
None
self
.
eNB_instance
=
0
self
.
eNB_serverId
=
[
''
,
''
,
''
]
self
.
deployKind
=
[
True
,
True
,
True
]
self
.
yamlPath
=
[
''
,
''
,
''
]
self
.
services
=
[
''
,
''
,
''
]
self
.
nb_healthy
=
[
0
,
0
,
0
]
...
...
@@ -835,6 +836,7 @@ class Containerize():
HELP
.
GenericHelp
(
CONST
.
Version
)
sys
.
exit
(
'Insufficient Parameter'
)
logging
.
debug
(
'
\u001B
[1m Deploying OAI Object on server: '
+
lIpAddr
+
'
\u001B
[0m'
)
self
.
deployKind
[
self
.
eNB_instance
]
=
True
mySSH
=
SSH
.
SSHConnection
()
mySSH
.
open
(
lIpAddr
,
lUserName
,
lPassWord
)
...
...
@@ -1037,6 +1039,7 @@ class Containerize():
logging
.
debug
(
'
\u001B
[1m Checking Services to deploy
\u001B
[0m'
)
# Implicitly we are running locally
myCmd
=
cls_cmd
.
LocalCmd
(
d
=
self
.
yamlPath
[
0
])
self
.
deployKind
[
0
]
=
False
cmd
=
'docker-compose config --services'
listServices
=
myCmd
.
run
(
cmd
)
if
listServices
.
returncode
!=
0
:
...
...
ci-scripts/cls_oaicitest.py
View file @
679b4978
...
...
@@ -43,7 +43,7 @@ import logging
import
datetime
import
signal
import
statistics
as
stat
from
multiprocessing
import
SimpleQueue
from
multiprocessing
import
SimpleQueue
,
Lock
import
concurrent.futures
#import our libs
...
...
@@ -494,7 +494,7 @@ class OaiCiTest():
messages
=
[
f
.
result
()
for
f
in
futures
]
HTML
.
CreateHtmlTestRowQueue
(
'NA'
,
'OK'
,
messages
)
def
Ping_common
(
self
,
EPC
,
ue
,
RAN
):
def
Ping_common
(
self
,
EPC
,
ue
,
RAN
,
printLock
):
# Launch ping on the EPC side (true for ltebox and old open-air-cn)
ping_status
=
0
ueIP
=
ue
.
getIP
()
...
...
@@ -551,6 +551,8 @@ class OaiCiTest():
avg_msg
=
f'RTT(Avg) :
{
rtt_avg
}
ms'
max_msg
=
f'RTT(Max) :
{
rtt_max
}
ms'
# adding a lock for cleaner display in command line
printLock
.
acquire
()
logging
.
info
(
f'
\u001B
[1;37;44m ping result for
{
ue_header
}
\u001B
[0m'
)
logging
.
info
(
f'
\u001B
[1;34m
{
pal_msg
}
\u001B
[0m'
)
logging
.
info
(
f'
\u001B
[1;34m
{
min_msg
}
\u001B
[0m'
)
...
...
@@ -563,6 +565,7 @@ class OaiCiTest():
if
float
(
packetloss
)
>
float
(
self
.
ping_packetloss_threshold
):
message
+=
'
\n
Packet Loss too high'
logging
.
error
(
f'
\u001B
[1;37;41m Packet Loss too high; Target:
{
self
.
ping_packetloss_threshold
}
%
\u001B
[0m'
)
printLock
.
release
()
return
(
False
,
message
)
elif
float
(
packetloss
)
>
0
:
message
+=
'
\n
Packet Loss is not 0%'
...
...
@@ -573,7 +576,9 @@ class OaiCiTest():
ping_rttavg_error_msg
=
f'RTT(Avg) too high:
{
rtt_avg
}
ms; Target:
{
self
.
ping_rttavg_threshold
}
ms'
message
+=
f'
\n
{
ping_rttavg_error_msg
}
'
logging
.
error
(
'
\u001B
[1;37;41m'
+
ping_rttavg_error_msg
+
'
\u001B
[0m'
)
printLock
.
release
()
return
(
False
,
message
)
printLock
.
release
()
return
(
True
,
message
)
...
...
@@ -587,8 +592,9 @@ class OaiCiTest():
ues
=
[
cls_module_ue
.
Module_UE
(
n
.
strip
())
for
n
in
self
.
ue_ids
]
logging
.
debug
(
ues
)
pingLock
=
Lock
()
with
concurrent
.
futures
.
ThreadPoolExecutor
()
as
executor
:
futures
=
[
executor
.
submit
(
self
.
Ping_common
,
EPC
,
ue
,
RAN
)
for
ue
in
ues
]
futures
=
[
executor
.
submit
(
self
.
Ping_common
,
EPC
,
ue
,
RAN
,
pingLock
)
for
ue
in
ues
]
results
=
[
f
.
result
()
for
f
in
futures
]
# each result in results is a tuple, first member goes to successes, second to messages
successes
,
messages
=
map
(
list
,
zip
(
*
results
))
...
...
@@ -1358,7 +1364,10 @@ class OaiCiTest():
for
instance
in
range
(
0
,
len
(
CONTAINERS
.
yamlPath
)):
if
CONTAINERS
.
yamlPath
[
instance
]
!=
''
:
CONTAINERS
.
eNB_instance
=
instance
CONTAINERS
.
UndeployObject
(
HTML
,
RAN
)
if
CONTAINERS
.
deployKind
[
instance
]:
CONTAINERS
.
UndeployObject
(
HTML
,
RAN
)
else
:
CONTAINERS
.
UndeployGenObject
(
HTML
,
RAN
,
self
)
RAN
.
prematureExit
=
True
#this function is called only if eNB/gNB fails to start
...
...
@@ -1385,7 +1394,10 @@ class OaiCiTest():
for
instance
in
range
(
0
,
len
(
CONTAINERS
.
yamlPath
)):
if
CONTAINERS
.
yamlPath
[
instance
]
!=
''
:
CONTAINERS
.
eNB_instance
=
instance
CONTAINERS
.
UndeployObject
(
HTML
,
RAN
)
if
CONTAINERS
.
deployKind
[
instance
]:
CONTAINERS
.
UndeployObject
(
HTML
,
RAN
)
else
:
CONTAINERS
.
UndeployGenObject
(
HTML
,
RAN
,
self
)
RAN
.
prematureExit
=
True
def
IdleSleep
(
self
,
HTML
):
...
...
ci-scripts/xml_files/container_5g_rfsim.xml
View file @
679b4978
...
...
@@ -33,10 +33,15 @@
000002
000003
000004
000005
000006
000007
020001
020002
020003
020004
020105
444445
030001
030002
444444
...
...
@@ -44,7 +49,7 @@
020005
444444
333333
02000
5
02000
6
100001
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
...
...
@@ -96,6 +101,30 @@
<nb_healthy>
9
</nb_healthy>
</testCase>
<testCase
id=
"000005"
>
<class>
DeployGenObject
</class>
<desc>
Deploy OAI 5G NR-UEs (#3, #4, #5) RF sim SA
</desc>
<yaml_path>
yaml_files/5g_rfsimulator
</yaml_path>
<services>
oai-nr-ue3 oai-nr-ue4 oai-nr-ue5
</services>
<nb_healthy>
12
</nb_healthy>
</testCase>
<testCase
id=
"000006"
>
<class>
DeployGenObject
</class>
<desc>
Deploy OAI 5G NR-UEs (#6, #7, #8) RF sim SA
</desc>
<yaml_path>
yaml_files/5g_rfsimulator
</yaml_path>
<services>
oai-nr-ue6 oai-nr-ue7 oai-nr-ue8
</services>
<nb_healthy>
15
</nb_healthy>
</testCase>
<testCase
id=
"000007"
>
<class>
DeployGenObject
</class>
<desc>
Deploy OAI 5G NR-UEs (#9, #10) RF sim SA
</desc>
<yaml_path>
yaml_files/5g_rfsimulator
</yaml_path>
<services>
oai-nr-ue9 oai-nr-ue10
</services>
<nb_healthy>
17
</nb_healthy>
</testCase>
<testCase
id=
"020001"
>
<class>
Ping
</class>
<desc>
Ping ext-dn from NR-UE
</desc>
...
...
@@ -136,6 +165,22 @@
<ping_packetloss_threshold>
5
</ping_packetloss_threshold>
</testCase>
<testCase
id=
"020006"
>
<class>
Ping
</class>
<desc>
Ping ext-dn from both UEs
</desc>
<id>
rfsim5g_ue rfsim5g_ue2
</id>
<ping_args>
-c 20 192.168.72.135
</ping_args>
<ping_packetloss_threshold>
5
</ping_packetloss_threshold>
</testCase>
<testCase
id=
"020105"
>
<class>
Ping
</class>
<desc>
Ping ext-dn from all UEs
</desc>
<id>
rfsim5g_ue rfsim5g_ue2 rfsim5g_ue3 rfsim5g_ue4 rfsim5g_ue5 rfsim5g_ue6 rfsim5g_ue7 rfsim5g_ue8 rfsim5g_ue9 rfsim5g_ue10
</id>
<ping_args>
-c 100 192.168.72.135 -i 0.2 -s 1016
</ping_args>
<ping_packetloss_threshold>
5
</ping_packetloss_threshold>
</testCase>
<testCase
id=
"030001"
>
<class>
IperfFromContainer
</class>
<desc>
Iperf UDP Downlink
</desc>
...
...
@@ -166,6 +211,12 @@
<id>
rfsim5g_ue rfsim5g_ue2
</id>
</testCase>
<testCase
id=
"444445"
>
<class>
Detach_UE
</class>
<desc>
Detach OAI UE 2 to 10
</desc>
<id>
rfsim5g_ue3 rfsim5g_ue4 rfsim5g_ue5 rfsim5g_ue6 rfsim5g_ue7 rfsim5g_ue8 rfsim5g_ue9 rfsim5g_ue10
</id>
</testCase>
<testCase
id=
"100001"
>
<class>
UndeployGenObject
</class>
<desc>
Undeploy all OAI 5G stack
</desc>
...
...
ci-scripts/yaml_files/5g_rfsimulator/docker-compose.yaml
View file @
679b4978
...
...
@@ -184,7 +184,7 @@ services:
image
:
oaisoftwarealliance/oai-nr-ue:develop
privileged
:
true
container_name
:
rfsim5g-oai-nr-ue
environment
:
environment
:
USE_ADDITIONAL_OPTIONS
:
-E --sa --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001100 -C 3619200000 --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
depends_on
:
-
oai-gnb
...
...
@@ -198,12 +198,11 @@ services:
interval
:
10s
timeout
:
5s
retries
:
5
oai-nr-ue2
:
image
:
oaisoftwarealliance/oai-nr-ue:develop
privileged
:
true
container_name
:
rfsim5g-oai-nr-ue2
environment
:
environment
:
USE_ADDITIONAL_OPTIONS
:
-E --sa --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001101 -C 3619200000 --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
depends_on
:
-
oai-gnb
...
...
@@ -217,6 +216,150 @@ services:
interval
:
10s
timeout
:
5s
retries
:
5
oai-nr-ue3
:
image
:
oaisoftwarealliance/oai-nr-ue:develop
privileged
:
true
container_name
:
rfsim5g-oai-nr-ue3
environment
:
USE_ADDITIONAL_OPTIONS
:
-E --sa --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001102 -C 3619200000 --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
depends_on
:
-
oai-gnb
networks
:
public_net
:
ipv4_address
:
192.168.71.152
volumes
:
-
../../conf_files/nrue.uicc.conf:/opt/oai-nr-ue/etc/nr-ue.conf
healthcheck
:
test
:
/bin/bash -c "pgrep nr-uesoftmodem"
interval
:
10s
timeout
:
5s
retries
:
5
oai-nr-ue4
:
image
:
oaisoftwarealliance/oai-nr-ue:develop
privileged
:
true
container_name
:
rfsim5g-oai-nr-ue4
environment
:
USE_ADDITIONAL_OPTIONS
:
-E --sa --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001103 -C 3619200000 --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
depends_on
:
-
oai-gnb
networks
:
public_net
:
ipv4_address
:
192.168.71.153
volumes
:
-
../../conf_files/nrue.uicc.conf:/opt/oai-nr-ue/etc/nr-ue.conf
healthcheck
:
test
:
/bin/bash -c "pgrep nr-uesoftmodem"
interval
:
10s
timeout
:
5s
retries
:
5
oai-nr-ue5
:
image
:
oaisoftwarealliance/oai-nr-ue:develop
privileged
:
true
container_name
:
rfsim5g-oai-nr-ue5
environment
:
USE_ADDITIONAL_OPTIONS
:
-E --sa --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001104 -C 3619200000 --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
depends_on
:
-
oai-gnb
networks
:
public_net
:
ipv4_address
:
192.168.71.154
volumes
:
-
../../conf_files/nrue.uicc.conf:/opt/oai-nr-ue/etc/nr-ue.conf
healthcheck
:
test
:
/bin/bash -c "pgrep nr-uesoftmodem"
interval
:
10s
timeout
:
5s
retries
:
5
oai-nr-ue6
:
image
:
oaisoftwarealliance/oai-nr-ue:develop
privileged
:
true
container_name
:
rfsim5g-oai-nr-ue6
environment
:
USE_ADDITIONAL_OPTIONS
:
-E --sa --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001105 -C 3619200000 --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
depends_on
:
-
oai-gnb
networks
:
public_net
:
ipv4_address
:
192.168.71.155
volumes
:
-
../../conf_files/nrue.uicc.conf:/opt/oai-nr-ue/etc/nr-ue.conf
healthcheck
:
test
:
/bin/bash -c "pgrep nr-uesoftmodem"
interval
:
10s
timeout
:
5s
retries
:
5
oai-nr-ue7
:
image
:
oaisoftwarealliance/oai-nr-ue:develop
privileged
:
true
container_name
:
rfsim5g-oai-nr-ue7
environment
:
USE_ADDITIONAL_OPTIONS
:
-E --sa --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001106 -C 3619200000 --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
depends_on
:
-
oai-gnb
networks
:
public_net
:
ipv4_address
:
192.168.71.156
volumes
:
-
../../conf_files/nrue.uicc.conf:/opt/oai-nr-ue/etc/nr-ue.conf
healthcheck
:
test
:
/bin/bash -c "pgrep nr-uesoftmodem"
interval
:
10s
timeout
:
5s
retries
:
5
oai-nr-ue8
:
image
:
oaisoftwarealliance/oai-nr-ue:develop
privileged
:
true
container_name
:
rfsim5g-oai-nr-ue8
environment
:
USE_ADDITIONAL_OPTIONS
:
-E --sa --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001107 -C 3619200000 --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
depends_on
:
-
oai-gnb
networks
:
public_net
:
ipv4_address
:
192.168.71.157
volumes
:
-
../../conf_files/nrue.uicc.conf:/opt/oai-nr-ue/etc/nr-ue.conf
healthcheck
:
test
:
/bin/bash -c "pgrep nr-uesoftmodem"
interval
:
10s
timeout
:
5s
retries
:
5
oai-nr-ue9
:
image
:
oaisoftwarealliance/oai-nr-ue:develop
privileged
:
true
container_name
:
rfsim5g-oai-nr-ue9
environment
:
USE_ADDITIONAL_OPTIONS
:
-E --sa --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001108 -C 3619200000 --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
depends_on
:
-
oai-gnb
networks
:
public_net
:
ipv4_address
:
192.168.71.158
volumes
:
-
../../conf_files/nrue.uicc.conf:/opt/oai-nr-ue/etc/nr-ue.conf
healthcheck
:
test
:
/bin/bash -c "pgrep nr-uesoftmodem"
interval
:
10s
timeout
:
5s
retries
:
5
oai-nr-ue10
:
image
:
oaisoftwarealliance/oai-nr-ue:develop
privileged
:
true
container_name
:
rfsim5g-oai-nr-ue10
environment
:
USE_ADDITIONAL_OPTIONS
:
-E --sa --rfsim -r 106 --numerology 1 --uicc0.imsi 208990100001109 -C 3619200000 --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
depends_on
:
-
oai-gnb
networks
:
public_net
:
ipv4_address
:
192.168.71.159
volumes
:
-
../../conf_files/nrue.uicc.conf:/opt/oai-nr-ue/etc/nr-ue.conf
healthcheck
:
test
:
/bin/bash -c "pgrep nr-uesoftmodem"
interval
:
10s
timeout
:
5s
retries
:
5
networks
:
public_net
:
...
...
ci-scripts/yaml_files/5g_rfsimulator/oai_db.sql
View file @
679b4978
This diff is collapsed.
Click to expand it.
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