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
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
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
OpenXG
OpenXG-RAN
Commits
99226fc6
Commit
99226fc6
authored
Sep 17, 2024
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Remove unused Initialize_OAI_UE XML step: no XML uses this
parent
aeb6442f
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
0 additions
and
236 deletions
+0
-236
ci-scripts/cls_oaicitest.py
ci-scripts/cls_oaicitest.py
+0
-214
ci-scripts/main.py
ci-scripts/main.py
+0
-21
ci-scripts/xml_class_list.yml
ci-scripts/xml_class_list.yml
+0
-1
No files found.
ci-scripts/cls_oaicitest.py
View file @
99226fc6
...
...
@@ -275,7 +275,6 @@ class OaiCiTest():
self
.
UE_instance
=
0
self
.
UESourceCodePath
=
''
self
.
UELogFile
=
''
self
.
Initialize_OAI_UE_args
=
''
self
.
clean_repository
=
True
self
.
air_interface
=
''
self
.
ue_ids
=
[]
...
...
@@ -295,211 +294,6 @@ class OaiCiTest():
[
f
.
result
()
for
f
in
futures
]
HTML
.
CreateHtmlTestRowQueue
(
'N/A'
,
'OK'
,
messages
)
def
InitializeOAIUE
(
self
,
HTML
,
RAN
,
EPC
,
CONTAINERS
):
if
self
.
UEIPAddress
==
''
or
self
.
UEUserName
==
''
or
self
.
UEPassword
==
''
or
self
.
UESourceCodePath
==
''
:
HELP
.
GenericHelp
(
CONST
.
Version
)
sys
.
exit
(
'Insufficient Parameter'
)
if
self
.
air_interface
==
'lte-uesoftmodem'
:
result
=
re
.
search
(
'--no-L2-connect'
,
str
(
self
.
Initialize_OAI_UE_args
))
if
result
is
None
:
check_eNB
=
True
check_OAI_UE
=
False
UE_prefix
=
''
else
:
UE_prefix
=
'NR '
SSH
=
sshconnection
.
SSHConnection
()
SSH
.
open
(
self
.
UEIPAddress
,
self
.
UEUserName
,
self
.
UEPassword
)
SSH
.
command
(
f'cd
{
self
.
UESourceCodePath
}
'
,
'\$'
,
5
)
# Initialize_OAI_UE_args usually start with -C and followed by the location in repository
SSH
.
command
(
'source oaienv'
,
'\$'
,
5
)
SSH
.
command
(
'cd cmake_targets/ran_build/build'
,
'\$'
,
5
)
if
self
.
air_interface
==
'lte-uesoftmodem'
:
result
=
re
.
search
(
'--no-L2-connect'
,
str
(
self
.
Initialize_OAI_UE_args
))
# We may have to regenerate the .u* files
if
result
is
None
:
SSH
.
command
(
'ls /tmp/*.sed'
,
'\$'
,
5
)
result
=
re
.
search
(
'adapt_usim_parameters'
,
SSH
.
getBefore
())
if
result
is
not
None
:
SSH
.
command
(
'sed -f /tmp/adapt_usim_parameters.sed ../../../openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf > ../../../openair3/NAS/TOOLS/ci-ue_eurecom_test_sfr.conf'
,
'\$'
,
5
)
else
:
SSH
.
command
(
'sed -e "s#93#92#" -e "s#8baf473f2f8fd09487cccbd7097c6862#fec86ba6eb707ed08905757b1bb44b8f#" -e "s#e734f8734007d6c5ce7a0508809e7e9c#C42449363BBAD02B66D16BC975D77CC1#" ../../../openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf > ../../../openair3/NAS/TOOLS/ci-ue_eurecom_test_sfr.conf'
,
'\$'
,
5
)
SSH
.
command
(
f'echo
{
self
.
UEPassword
}
| sudo -S rm -Rf .u*'
,
'\$'
,
5
)
SSH
.
command
(
f'echo
{
self
.
UEPassword
}
| sudo -S ../../nas_sim_tools/build/conf2uedata -c ../../../openair3/NAS/TOOLS/ci-ue_eurecom_test_sfr.conf -o .'
,
'\$'
,
5
)
else
:
SSH
.
command
(
f'if [ -e rbconfig.raw ]; then echo
{
self
.
UEPassword
}
| sudo -S rm rbconfig.raw; fi'
,
'\$'
,
5
)
SSH
.
command
(
f'if [ -e reconfig.raw ]; then echo
{
self
.
UEPassword
}
| sudo -S rm reconfig.raw; fi'
,
'\$'
,
5
)
# Copy the RAW files from gNB running directory (maybe on another machine)
copyin_res
=
SSH
.
copyin
(
RAN
.
eNBIPAddress
,
RAN
.
eNBUserName
,
RAN
.
eNBPassword
,
RAN
.
eNBSourceCodePath
+
'/cmake_targets/rbconfig.raw'
,
'.'
)
if
(
copyin_res
==
0
):
SSH
.
copyout
(
self
.
UEIPAddress
,
self
.
UEUserName
,
self
.
UEPassword
,
'./rbconfig.raw'
,
self
.
UESourceCodePath
+
'/cmake_targets/ran_build/build'
)
copyin_res
=
SSH
.
copyin
(
RAN
.
eNBIPAddress
,
RAN
.
eNBUserName
,
RAN
.
eNBPassword
,
RAN
.
eNBSourceCodePath
+
'/cmake_targets/reconfig.raw'
,
'.'
)
if
(
copyin_res
==
0
):
SSH
.
copyout
(
self
.
UEIPAddress
,
self
.
UEUserName
,
self
.
UEPassword
,
'./reconfig.raw'
,
self
.
UESourceCodePath
+
'/cmake_targets/ran_build/build'
)
SSH
.
command
(
f'echo "ulimit -c unlimited &&
{
self
.
cmd_prefix
}
./
{
self
.
air_interface
}
{
self
.
Initialize_OAI_UE_args
}
" > ./my-lte-uesoftmodem-run
{
self
.
UE_instance
}
.sh'
,
'\$'
,
5
)
SSH
.
command
(
f'chmod 775 ./my-lte-uesoftmodem-run
{
self
.
UE_instance
}
.sh'
,
'\$'
,
5
)
SSH
.
command
(
f'echo
{
self
.
UEPassword
}
| sudo -S rm -Rf
{
self
.
UESourceCodePath
}
/cmake_targets/ue_
{
self
.
testCase_id
}
.log'
,
'\$'
,
5
)
self
.
UELogFile
=
f'ue_
{
self
.
testCase_id
}
.log'
# We are now looping several times to hope we really sync w/ an eNB
doOutterLoop
=
True
outterLoopCounter
=
5
gotSyncStatus
=
True
fullSyncStatus
=
True
while
(
doOutterLoop
):
SSH
.
command
(
f'cd
{
self
.
UESourceCodePath
}
/cmake_targets/ran_build/build'
,
'\$'
,
5
)
SSH
.
command
(
f'echo
{
self
.
UEPassword
}
| sudo -S rm -Rf
{
self
.
UESourceCodePath
}
/cmake_targets/ue_
{
self
.
testCase_id
}
.log'
,
'\$'
,
5
)
SSH
.
command
(
f'echo $USER; nohup sudo -E stdbuf -o0 ./my-lte-uesoftmodem-run
{
self
.
UE_instance
}
.sh >
{
self
.
UESourceCodePath
}
/cmake_targets/ue_
{
self
.
testCase_id
}
.log 2>&1 &'
,
self
.
UEUserName
,
5
)
time
.
sleep
(
6
)
SSH
.
command
(
'cd ../..'
,
'\$'
,
5
)
doLoop
=
True
loopCounter
=
10
gotSyncStatus
=
True
# the 'got sync' message is for the UE threads synchronization
while
(
doLoop
):
loopCounter
=
loopCounter
-
1
if
(
loopCounter
==
0
):
# Here should never occur
logging
.
error
(
'"got sync" message never showed!'
)
gotSyncStatus
=
False
doLoop
=
False
continue
SSH
.
command
(
f'stdbuf -o0 cat ue_
{
self
.
testCase_id
}
.log | egrep --text --color=never -i "wait|sync"'
,
'\$'
,
4
)
if
self
.
air_interface
==
'nr-uesoftmodem'
:
result
=
re
.
search
(
'Starting sync detection'
,
SSH
.
getBefore
())
else
:
result
=
re
.
search
(
'got sync'
,
SSH
.
getBefore
())
if
result
is
None
:
time
.
sleep
(
10
)
else
:
doLoop
=
False
logging
.
debug
(
'Found "got sync" message!'
)
if
gotSyncStatus
==
False
:
# we certainly need to stop the lte-uesoftmodem process if it is still running!
SSH
.
command
(
'ps -aux | grep --text --color=never softmodem | grep -v grep'
,
'\$'
,
4
)
result
=
re
.
search
(
'-uesoftmodem'
,
SSH
.
getBefore
())
if
result
is
not
None
:
SSH
.
command
(
f'echo
{
self
.
UEPassword
}
| sudo -S killall --signal=SIGINT -r *-uesoftmodem'
,
'\$'
,
4
)
time
.
sleep
(
3
)
outterLoopCounter
=
outterLoopCounter
-
1
if
(
outterLoopCounter
==
0
):
doOutterLoop
=
False
continue
# We are now checking if sync w/ eNB DOES NOT OCCUR
# Usually during the cell synchronization stage, the UE returns with No cell synchronization message
# That is the case for LTE
# In NR case, it's a positive message that will show if synchronization occurs
doLoop
=
True
if
self
.
air_interface
==
'nr-uesoftmodem'
:
loopCounter
=
10
else
:
# We are now checking if sync w/ eNB DOES NOT OCCUR
# Usually during the cell synchronization stage, the UE returns with No cell synchronization message
loopCounter
=
10
while
(
doLoop
):
loopCounter
=
loopCounter
-
1
if
(
loopCounter
==
0
):
if
self
.
air_interface
==
'nr-uesoftmodem'
:
# Here we do have great chances that UE did NOT cell-sync w/ gNB
doLoop
=
False
fullSyncStatus
=
False
logging
.
debug
(
'Never seen the NR-Sync message (Measured Carrier Frequency) --> try again'
)
time
.
sleep
(
6
)
# Stopping the NR-UE
SSH
.
command
(
'ps -aux | grep --text --color=never softmodem | grep -v grep'
,
'\$'
,
4
)
result
=
re
.
search
(
'nr-uesoftmodem'
,
SSH
.
getBefore
())
if
result
is
not
None
:
SSH
.
command
(
f'echo
{
self
.
UEPassword
}
| sudo -S killall --signal=SIGINT nr-uesoftmodem'
,
'\$'
,
4
)
time
.
sleep
(
6
)
else
:
# Here we do have a great chance that the UE did cell-sync w/ eNB
doLoop
=
False
doOutterLoop
=
False
fullSyncStatus
=
True
continue
SSH
.
command
(
f'stdbuf -o0 cat ue_
{
self
.
testCase_id
}
.log | egrep --text --color=never -i "wait|sync|Frequency"'
,
'\$'
,
4
)
if
self
.
air_interface
==
'nr-uesoftmodem'
:
# Positive messaging -->
result
=
re
.
search
(
'Measured Carrier Frequency'
,
SSH
.
getBefore
())
if
result
is
not
None
:
doLoop
=
False
doOutterLoop
=
False
fullSyncStatus
=
True
else
:
time
.
sleep
(
6
)
else
:
# Negative messaging -->
result
=
re
.
search
(
'No cell synchronization found'
,
SSH
.
getBefore
())
if
result
is
None
:
time
.
sleep
(
6
)
else
:
doLoop
=
False
fullSyncStatus
=
False
logging
.
debug
(
'Found: "No cell synchronization" message! --> try again'
)
time
.
sleep
(
6
)
SSH
.
command
(
'ps -aux | grep --text --color=never softmodem | grep -v grep'
,
'\$'
,
4
)
result
=
re
.
search
(
'lte-uesoftmodem'
,
SSH
.
getBefore
())
if
result
is
not
None
:
SSH
.
command
(
f'echo
{
self
.
UEPassword
}
| sudo -S killall --signal=SIGINT lte-uesoftmodem'
,
'\$'
,
4
)
outterLoopCounter
=
outterLoopCounter
-
1
if
(
outterLoopCounter
==
0
):
doOutterLoop
=
False
if
fullSyncStatus
and
gotSyncStatus
:
doInterfaceCheck
=
False
if
self
.
air_interface
==
'lte-uesoftmodem'
:
result
=
re
.
search
(
'--no-L2-connect'
,
str
(
self
.
Initialize_OAI_UE_args
))
if
result
is
None
:
doInterfaceCheck
=
True
# For the moment, only in explicit noS1 without kernel module (ie w/ tunnel interface)
if
self
.
air_interface
==
'nr-uesoftmodem'
:
result
=
re
.
search
(
'--noS1'
,
str
(
self
.
Initialize_OAI_UE_args
))
if
result
is
not
None
:
doInterfaceCheck
=
True
if
doInterfaceCheck
:
SSH
.
command
(
'ifconfig oaitun_ue1'
,
'\$'
,
4
)
SSH
.
command
(
'ifconfig oaitun_ue1'
,
'\$'
,
4
)
# ifconfig output is different between ubuntu 16 and ubuntu 18
result
=
re
.
search
(
'inet addr:[0-9]|inet [0-9]'
,
SSH
.
getBefore
())
if
result
is
not
None
:
logging
.
debug
(
'
\u001B
[1m oaitun_ue1 interface is mounted and configured
\u001B
[0m'
)
tunnelInterfaceStatus
=
True
else
:
logging
.
debug
(
SSH
.
getBefore
())
logging
.
error
(
'
\u001B
[1m oaitun_ue1 interface is either NOT mounted or NOT configured
\u001B
[0m'
)
tunnelInterfaceStatus
=
False
if
RAN
.
eNBmbmsEnables
[
0
]:
SSH
.
command
(
'ifconfig oaitun_uem1'
,
'\$'
,
4
)
result
=
re
.
search
(
'inet addr'
,
SSH
.
getBefore
())
if
result
is
not
None
:
logging
.
debug
(
'
\u001B
[1m oaitun_uem1 interface is mounted and configured
\u001B
[0m'
)
tunnelInterfaceStatus
=
tunnelInterfaceStatus
and
True
else
:
logging
.
error
(
'
\u001B
[1m oaitun_uem1 interface is either NOT mounted or NOT configured
\u001B
[0m'
)
tunnelInterfaceStatus
=
False
else
:
tunnelInterfaceStatus
=
True
else
:
tunnelInterfaceStatus
=
True
SSH
.
close
()
if
fullSyncStatus
and
gotSyncStatus
and
tunnelInterfaceStatus
:
HTML
.
CreateHtmlTestRow
(
self
.
air_interface
+
' '
+
self
.
Initialize_OAI_UE_args
,
'OK'
,
CONST
.
ALL_PROCESSES_OK
,
'OAI UE'
)
logging
.
debug
(
'
\u001B
[1m Initialize OAI UE Completed
\u001B
[0m'
)
else
:
if
self
.
air_interface
==
'lte-uesoftmodem'
:
if
RAN
.
eNBmbmsEnables
[
0
]:
HTML
.
htmlUEFailureMsg
=
'oaitun_ue1/oaitun_uem1 interfaces are either NOT mounted or NOT configured'
else
:
HTML
.
htmlUEFailureMsg
=
'oaitun_ue1 interface is either NOT mounted or NOT configured'
HTML
.
CreateHtmlTestRow
(
self
.
air_interface
+
' '
+
self
.
Initialize_OAI_UE_args
,
'KO'
,
CONST
.
OAI_UE_PROCESS_NO_TUNNEL_INTERFACE
,
'OAI UE'
)
else
:
HTML
.
htmlUEFailureMsg
=
'nr-uesoftmodem did NOT synced'
HTML
.
CreateHtmlTestRow
(
self
.
air_interface
+
' '
+
self
.
Initialize_OAI_UE_args
,
'KO'
,
CONST
.
OAI_UE_PROCESS_COULD_NOT_SYNC
,
'OAI UE'
)
logging
.
error
(
'
\033
[91mInitialize OAI UE Failed!
\033
[0m'
)
self
.
AutoTerminateUEandeNB
(
HTML
,
RAN
,
EPC
,
CONTAINERS
)
def
AttachUE
(
self
,
HTML
,
RAN
,
EPC
,
CONTAINERS
):
ues
=
[
cls_module
.
Module_UE
(
ue_id
,
server_name
)
for
ue_id
,
server_name
in
zip
(
self
.
ue_ids
,
self
.
nodes
)]
with
concurrent
.
futures
.
ThreadPoolExecutor
()
as
executor
:
...
...
@@ -1134,14 +928,6 @@ class OaiCiTest():
HTML
.
CreateHtmlTestRow
(
'N/A'
,
'OK'
,
CONST
.
ALL_PROCESSES_OK
)
def
AutoTerminateUEandeNB
(
self
,
HTML
,
RAN
,
EPC
,
CONTAINERS
):
# TODO: terminate UE?
if
(
self
.
Initialize_OAI_UE_args
!=
''
):
self
.
testCase_id
=
'AUTO-KILL-OAI-UE'
HTML
.
testCase_id
=
self
.
testCase_id
self
.
desc
=
'Automatic Termination of OAI-UE'
HTML
.
desc
=
self
.
desc
self
.
ShowTestID
()
self
.
TerminateOAIUE
(
HTML
,
RAN
,
EPC
,
CONTAINERS
)
if
(
RAN
.
Initialize_eNB_args
!=
''
):
self
.
testCase_id
=
'AUTO-KILL-RAN'
HTML
.
testCase_id
=
self
.
testCase_id
...
...
ci-scripts/main.py
View file @
99226fc6
...
...
@@ -225,25 +225,6 @@ def GetParametersFromXML(action):
else
:
CiTestObj
.
nodes
=
[
None
]
*
len
(
CiTestObj
.
ue_ids
)
elif
action
==
'Initialize_OAI_UE'
:
CiTestObj
.
Initialize_OAI_UE_args
=
test
.
findtext
(
'Initialize_OAI_UE_args'
)
UE_instance
=
test
.
findtext
(
'UE_instance'
)
if
(
UE_instance
is
None
):
CiTestObj
.
UE_instance
=
0
else
:
CiTestObj
.
UE_instance
=
UE_instance
#local variable air_interface
air_interface
=
test
.
findtext
(
'air_interface'
)
if
(
air_interface
is
None
)
or
(
air_interface
.
lower
()
not
in
[
'nr'
,
'lte'
]):
CiTestObj
.
air_interface
=
'lte-uesoftmodem'
elif
(
air_interface
.
lower
()
in
[
'nr'
,
'lte'
]):
CiTestObj
.
air_interface
=
air_interface
.
lower
()
+
'-uesoftmodem'
else
:
logging
.
error
(
'OCP UE -- NOT SUPPORTED'
)
CiTestObj
.
cmd_prefix
=
test
.
findtext
(
'cmd_prefix'
)
or
""
elif
action
==
'Terminate_OAI_UE'
:
UE_instance
=
test
.
findtext
(
'UE_instance'
)
if
(
UE_instance
is
None
):
...
...
@@ -772,8 +753,6 @@ elif re.match('^TesteNB$', mode, re.IGNORECASE) or re.match('^TestUE$', mode, re
CiTestObj
.
DataEnableUE
(
HTML
)
elif
action
==
'CheckStatusUE'
:
CiTestObj
.
CheckStatusUE
(
HTML
)
elif
action
==
'Initialize_OAI_UE'
:
CiTestObj
.
InitializeOAIUE
(
HTML
,
RAN
,
EPC
,
CONTAINERS
)
elif
action
==
'Terminate_OAI_UE'
:
CiTestObj
.
TerminateOAIUE
(
HTML
,
RAN
,
EPC
,
CONTAINERS
)
elif
action
==
'Ping'
:
...
...
ci-scripts/xml_class_list.yml
View file @
99226fc6
...
...
@@ -13,7 +13,6 @@
-
Terminate_UE
-
Attach_UE
-
Detach_UE
-
Initialize_OAI_UE
-
Terminate_OAI_UE
-
DataDisable_UE
-
DataEnable_UE
...
...
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