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
常顺宇
OpenXG-RAN
Commits
0bd400d1
Commit
0bd400d1
authored
Aug 27, 2018
by
Rajeev Gangula
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'develop' into cqiSchedule
parents
d12a54a7
e469680d
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
109 additions
and
25 deletions
+109
-25
ci-scripts/conf_files/enb.band7.tm1.100PRB.usrpb210.conf
ci-scripts/conf_files/enb.band7.tm1.100PRB.usrpb210.conf
+1
-1
ci-scripts/conf_files/enb.band7.tm1.25PRB.usrpb210.conf
ci-scripts/conf_files/enb.band7.tm1.25PRB.usrpb210.conf
+1
-1
ci-scripts/conf_files/enb.band7.tm1.50PRB.usrpb210.conf
ci-scripts/conf_files/enb.band7.tm1.50PRB.usrpb210.conf
+1
-1
ci-scripts/main.py
ci-scripts/main.py
+77
-17
ci-scripts/xml_files/enb_usrp210_band7.xml
ci-scripts/xml_files/enb_usrp210_band7.xml
+29
-5
No files found.
ci-scripts/conf_files/enb.band7.tm1.100PRB.usrpb210.conf
View file @
0bd400d1
...
...
@@ -33,7 +33,7 @@ eNBs =
tdd_config_s
=
0
;
prefix_type
=
"NORMAL"
;
eutra_band
=
7
;
downlink_frequency
=
268
5
000000
L
;
downlink_frequency
=
268
0
000000
L
;
uplink_frequency_offset
= -
120000000
;
Nid_cell
=
0
;
N_RB_DL
=
100
;
...
...
ci-scripts/conf_files/enb.band7.tm1.25PRB.usrpb210.conf
View file @
0bd400d1
...
...
@@ -33,7 +33,7 @@ eNBs =
tdd_config_s
=
0
;
prefix_type
=
"NORMAL"
;
eutra_band
=
7
;
downlink_frequency
=
268
5
000000
L
;
downlink_frequency
=
268
0
000000
L
;
uplink_frequency_offset
= -
120000000
;
Nid_cell
=
0
;
N_RB_DL
=
25
;
...
...
ci-scripts/conf_files/enb.band7.tm1.50PRB.usrpb210.conf
View file @
0bd400d1
...
...
@@ -33,7 +33,7 @@ eNBs =
tdd_config_s
=
0
;
prefix_type
=
"NORMAL"
;
eutra_band
=
7
;
downlink_frequency
=
268
5
000000
L
;
downlink_frequency
=
268
0
000000
L
;
uplink_frequency_offset
= -
120000000
;
Nid_cell
=
0
;
N_RB_DL
=
50
;
...
...
ci-scripts/main.py
View file @
0bd400d1
...
...
@@ -282,7 +282,13 @@ class SSHConnection():
self
.
command
(
'cd '
+
self
.
eNBSourceCodePath
,
'\$'
,
5
)
# Initialize_eNB_args usually start with -O and followed by the location in repository
full_config_file
=
self
.
Initialize_eNB_args
.
replace
(
'-O '
,
''
)
config_path
,
config_file
=
os
.
path
.
split
(
full_config_file
)
extIdx
=
full_config_file
.
find
(
'.conf'
)
if
(
extIdx
>
0
):
extra_options
=
full_config_file
[
extIdx
+
5
:]
full_config_file
=
full_config_file
[:
extIdx
+
5
]
config_path
,
config_file
=
os
.
path
.
split
(
full_config_file
)
else
:
sys
.
exit
(
'Insufficient Parameter'
)
ci_full_config_file
=
config_path
+
'/ci-'
+
config_file
# Make a copy and adapt to EPC / eNB IP addresses
self
.
command
(
'cp '
+
full_config_file
+
' '
+
ci_full_config_file
,
'\$'
,
5
)
...
...
@@ -292,8 +298,9 @@ class SSHConnection():
# Launch eNB with the modified config file
self
.
command
(
'source oaienv'
,
'\$'
,
5
)
self
.
command
(
'cd cmake_targets'
,
'\$'
,
5
)
self
.
command
(
'echo "./lte_build_oai/build/lte-softmodem -O '
+
self
.
eNBSourceCodePath
+
'/'
+
ci_full_config_file
+
'" > ./my-lte-softmodem-run.sh '
,
'\$'
,
5
)
self
.
command
(
'echo "./lte_build_oai/build/lte-softmodem -O '
+
self
.
eNBSourceCodePath
+
'/'
+
ci_full_config_file
+
extra_options
+
'" > ./my-lte-softmodem-run.sh '
,
'\$'
,
5
)
self
.
command
(
'chmod 775 ./my-lte-softmodem-run.sh '
,
'\$'
,
5
)
self
.
command
(
'echo '
+
self
.
eNBPassword
+
' | sudo -S rm -Rf enb_'
+
SSH
.
testCase_id
+
'.log'
,
'\$'
,
5
)
self
.
command
(
'echo '
+
self
.
eNBPassword
+
' | sudo -S -E daemon --inherit --unsafe --name=enb_daemon --chdir='
+
self
.
eNBSourceCodePath
+
'/cmake_targets -o '
+
self
.
eNBSourceCodePath
+
'/cmake_targets/enb_'
+
SSH
.
testCase_id
+
'.log ./my-lte-softmodem-run.sh'
,
'\$'
,
5
)
time
.
sleep
(
6
)
doLoop
=
True
...
...
@@ -302,19 +309,35 @@ class SSHConnection():
loopCounter
=
loopCounter
-
1
if
(
loopCounter
==
0
):
doLoop
=
False
# Checking if process is still alive
#self.command('stdbuf -o0 ps -aux | grep -v grep | grep --color=never lte-softmodem', '\$', 5)
#result = re.search('lte-softmodem', str(self.ssh.before))
#if result is None:
# self.command('rsync -v enb_' + SSH.testCase_id + '.log enb_' + SSH.testCase_id + '.txt; stdbuf -o0 cat enb_' + SSH.testCase_id + '.log | egrep --color=never -i "segmentation fault"', '\$', 5)
# result = re.search('egmentation fault', str(self.ssh.before))
# logging.debug('\u001B[1;37;41m eNB process is already down \u001B[0m')
# if result is not None:
# logging.debug('\u001B[1;37;41m Segmentation fault \u001B[0m')
# logging.debug(str(self.ssh.before))
# self.CreateHtmlTestRow('-O ' + config_file + extra_options, 'KO', 0)
# self.CreateHtmlFooter()
# self.close()
# sys.exit(1)
logging
.
debug
(
'
\u001B
[1;30;43m eNB logging system did not show got sync! See with attach later
\u001B
[0m'
)
self
.
CreateHtmlTestRow
(
config_file
,
'eNB not showing got sync!'
,
0
)
self
.
CreateHtmlTestRow
(
'-O '
+
config_file
+
extra_options
,
'eNB not showing got sync!'
,
0
)
# Not getting got sync is bypassed for the moment
#sys.exit(1)
self
.
command
(
'stdbuf -o0 cat enb_'
+
SSH
.
testCase_id
+
'.log | grep -i sync'
,
'\$'
,
10
)
result
=
re
.
search
(
'got sync'
,
str
(
self
.
ssh
.
before
))
if
result
is
None
:
time
.
sleep
(
6
)
else
:
doLoop
=
False
self
.
CreateHtmlTestRow
(
config_file
,
'OK'
,
0
)
logging
.
debug
(
'
\u001B
[1m Initialize eNB Completed
\u001B
[0m'
)
self
.
command
(
'rsync -v enb_'
+
SSH
.
testCase_id
+
'.log enb_'
+
SSH
.
testCase_id
+
'.txt; stdbuf -o0 cat enb_'
+
SSH
.
testCase_id
+
'.log | grep --color=never -i sync'
,
'\$'
,
4
)
result
=
re
.
search
(
'got sync'
,
str
(
self
.
ssh
.
before
))
if
result
is
None
:
time
.
sleep
(
6
)
else
:
doLoop
=
False
self
.
CreateHtmlTestRow
(
'-O '
+
config_file
+
extra_options
,
'OK'
,
0
)
logging
.
debug
(
'
\u001B
[1m Initialize eNB Completed
\u001B
[0m'
)
self
.
command
(
'rm -f enb_'
+
SSH
.
testCase_id
+
'.txt'
,
'\$'
,
5
)
self
.
close
()
def
InitializeUE_common
(
self
,
device_id
):
...
...
@@ -644,6 +667,7 @@ class SSHConnection():
if
(
status_queue
.
empty
()):
self
.
CreateHtmlTestRow
(
self
.
ping_args
,
'KO'
,
len
(
self
.
UEDevices
))
self
.
CreateHtmlFooter
()
sys
.
exit
(
1
)
else
:
ping_status
=
True
...
...
@@ -689,14 +713,14 @@ class SSHConnection():
else
:
iperf_bandwidth_new
=
residualBW
iperf_bandwidth_str
=
'-b '
+
iperf_bandwidth
iperf_bandwidth_str_new
=
'-b '
+
str
(
iperf_bandwidth_new
)
iperf_bandwidth_str_new
=
'-b '
+
(
'%.2f'
%
iperf_bandwidth_new
)
result
=
re
.
sub
(
iperf_bandwidth_str
,
iperf_bandwidth_str_new
,
str
(
self
.
iperf_args
))
if
result
is
None
:
logging
.
debug
(
'
\u001B
[1;37;41m Calculate Iperf bandwidth Failed!
\u001B
[0m'
)
sys
.
exit
(
1
)
return
result
def
Iperf_analyzeV2Output
(
self
,
lock
,
UE_IPAddress
,
device_id
,
statusQueue
):
def
Iperf_analyzeV2Output
(
self
,
lock
,
UE_IPAddress
,
device_id
,
statusQueue
,
iperf_real_options
):
result
=
re
.
search
(
'Server Report:'
,
str
(
self
.
ssh
.
before
))
if
result
is
None
:
result
=
re
.
search
(
'read failed: Connection refused'
,
str
(
self
.
ssh
.
before
))
...
...
@@ -705,6 +729,24 @@ class SSHConnection():
else
:
logging
.
debug
(
'
\u001B
[1;37;41m Server Report and Connection refused Not Found!
\u001B
[0m'
)
return
-
1
# Computing the requested bandwidth in float
result
=
re
.
search
(
'-b (?P<iperf_bandwidth>[0-9\.]+)[KMG]'
,
str
(
iperf_real_options
))
if
result
is
not
None
:
req_bandwidth
=
result
.
group
(
'iperf_bandwidth'
)
req_bw
=
float
(
req_bandwidth
)
result
=
re
.
search
(
'-b [0-9\.]+K'
,
str
(
iperf_real_options
))
if
result
is
not
None
:
req_bandwidth
=
'%.1f Kbits/sec'
%
req_bw
req_bw
=
req_bw
*
1000
result
=
re
.
search
(
'-b [0-9\.]+M'
,
str
(
iperf_real_options
))
if
result
is
not
None
:
req_bandwidth
=
'%.1f Mbits/sec'
%
req_bw
req_bw
=
req_bw
*
1000000
result
=
re
.
search
(
'-b [0-9\.]+G'
,
str
(
iperf_real_options
))
if
result
is
not
None
:
req_bandwidth
=
'%.1f Gbits/sec'
%
req_bw
req_bw
=
req_bw
*
1000000000
result
=
re
.
search
(
'Server Report:
\\\\
r
\\\\
n(?:|\[ *\d+\].*) (?P<bitrate>[0-9\.]+ [KMG]bits\/sec) +(?P<jitter>[0-9\.]+ ms) +(\d+\/..\d+) (\((?P<packetloss>[0-9\.]+)%\))'
,
str
(
self
.
ssh
.
before
))
if
result
is
not
None
:
bitrate
=
result
.
group
(
'bitrate'
)
...
...
@@ -713,10 +755,27 @@ class SSHConnection():
lock
.
acquire
()
logging
.
debug
(
'
\u001B
[1;37;44m iperf result ('
+
UE_IPAddress
+
')
\u001B
[0m'
)
iperfStatus
=
True
msg
=
''
msg
=
'Req Bitrate : '
+
req_bandwidth
+
'
\n
'
logging
.
debug
(
'
\u001B
[1;34m Req Bitrate : '
+
req_bandwidth
+
'
\u001B
[0m'
)
if
bitrate
is
not
None
:
msg
+=
'Bitrate : '
+
bitrate
+
'
\n
'
logging
.
debug
(
'
\u001B
[1;34m Bitrate : '
+
bitrate
+
'
\u001B
[0m'
)
result
=
re
.
search
(
'(?P<real_bw>[0-9\.]+) [KMG]bits/sec'
,
str
(
bitrate
))
if
result
is
not
None
:
actual_bw
=
float
(
str
(
result
.
group
(
'real_bw'
)))
result
=
re
.
search
(
'[0-9\.]+ K'
,
bitrate
)
if
result
is
not
None
:
actual_bw
=
actual_bw
*
1000
result
=
re
.
search
(
'[0-9\.]+ M'
,
bitrate
)
if
result
is
not
None
:
actual_bw
=
actual_bw
*
1000000
result
=
re
.
search
(
'[0-9\.]+ G'
,
bitrate
)
if
result
is
not
None
:
actual_bw
=
actual_bw
*
1000000000
br_loss
=
100
*
actual_bw
/
req_bw
bitperf
=
'%.2f '
%
br_loss
msg
+=
'Bitrate Perf: '
+
bitperf
+
'%
\n
'
logging
.
debug
(
'
\u001B
[1;34m Bitrate Perf: '
+
bitperf
+
'%
\u001B
[0m'
)
if
packetloss
is
not
None
:
msg
+=
'Packet Loss : '
+
packetloss
+
'%
\n
'
logging
.
debug
(
'
\u001B
[1;34m Packet Loss : '
+
packetloss
+
'%
\u001B
[0m'
)
...
...
@@ -916,7 +975,7 @@ class SSHConnection():
self
.
command
(
'rm -f iperf_'
+
SSH
.
testCase_id
+
'_'
+
device_id
+
'.log'
,
'\$'
,
5
)
self
.
command
(
'stdbuf -o0 adb -s '
+
device_id
+
' shell "/data/local/tmp/iperf -c '
+
EPC_Iperf_UE_IPAddress
+
' '
+
modified_options
+
' -p '
+
str
(
port
)
+
'" 2>&1 | stdbuf -o0 tee -a iperf_'
+
SSH
.
testCase_id
+
'_'
+
device_id
+
'.log'
,
'\$'
,
int
(
iperf_time
)
*
5.0
)
clientStatus
=
self
.
Iperf_analyzeV2Output
(
lock
,
UE_IPAddress
,
device_id
,
statusQueue
)
clientStatus
=
self
.
Iperf_analyzeV2Output
(
lock
,
UE_IPAddress
,
device_id
,
statusQueue
,
modified_options
)
# Launch iperf server on EPC side
self
.
open
(
self
.
EPCIPAddress
,
self
.
EPCUserName
,
self
.
EPCPassword
)
...
...
@@ -990,7 +1049,7 @@ class SSHConnection():
else
:
self
.
command
(
'stdbuf -o0 iperf -c '
+
UE_IPAddress
+
' '
+
modified_options
+
' 2>&1 | stdbuf -o0 tee -a iperf_'
+
SSH
.
testCase_id
+
'_'
+
device_id
+
'.log'
,
'\$'
,
int
(
iperf_time
)
*
5.0
)
clientStatus
=
self
.
Iperf_analyzeV2Output
(
lock
,
UE_IPAddress
,
device_id
,
statusQueue
)
clientStatus
=
self
.
Iperf_analyzeV2Output
(
lock
,
UE_IPAddress
,
device_id
,
statusQueue
,
modified_options
)
self
.
close
()
self
.
open
(
self
.
ADBIPAddress
,
self
.
ADBUserName
,
self
.
ADBPassword
)
...
...
@@ -1033,6 +1092,7 @@ class SSHConnection():
if
(
status_queue
.
empty
()):
self
.
CreateHtmlTestRow
(
self
.
iperf_args
,
'KO'
,
len
(
self
.
UEDevices
))
self
.
CreateHtmlFooter
()
sys
.
exit
(
1
)
else
:
iperf_status
=
True
...
...
@@ -1455,8 +1515,8 @@ def Usage():
print
(
' --help Show this help.'
)
print
(
' --mode=[Mode]'
)
print
(
' TesteNB'
)
print
(
' TerminateeNB, Terminate
EPC
'
)
print
(
' LogCollectBuild, LogCollecteNB, LogCollect
EPC, LogCollectADB
'
)
print
(
' TerminateeNB, Terminate
UE, TerminateHSS, TerminateMME, TerminateSPGW
'
)
print
(
' LogCollectBuild, LogCollecteNB, LogCollect
HSS, LogCollectMME, LogCollectSPGW, LogCollectPing, LogCollectIperf
'
)
print
(
' --eNBIPAddress=[eNB
\'
s IP Address]'
)
print
(
' --eNBRepository=[eNB
\'
s Repository URL]'
)
print
(
' --eNBBranch=[eNB
\'
s Branch Name]'
)
...
...
ci-scripts/xml_files/enb_usrp210_band7.xml
View file @
0bd400d1
...
...
@@ -21,7 +21,7 @@
-->
<testCaseList>
<TestCaseRequestedList>
010101 050101 060101 070101 040101 030101 040301 040501 040601 040602 040603 040604 040605 040641 040
401 040201 030201 030111 040301 040511 040611 040612 040613 040614 040615 040651 040401 040201 030201 030121 040301 040521 040621 040622 040623
040661 040401 040201 030201
</TestCaseRequestedList>
<TestCaseRequestedList>
010101 050101 060101 070101 040101 030101 040301 040501 040601 040602 040603 040604 040605 040641 040
642 040401 040201 030201 030111 040301 040511 040611 040612 040613 040614 040615 040651 040652 040401 040201 030201 030121 040301 040521 040621 040622 040623 040624 040625 040662
040661 040401 040201 030201
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase
id=
"010101"
>
...
...
@@ -33,19 +33,19 @@
<testCase
id=
"030101"
>
<class>
Initialize_eNB
</class>
<desc>
Initialize eNB (FDD/Band7/5MHz)
</desc>
<Initialize_eNB_args>
-O ci-scripts/conf_files/enb.band7.tm1.25PRB.usrpb210.conf
</Initialize_eNB_args>
<Initialize_eNB_args>
-O ci-scripts/conf_files/enb.band7.tm1.25PRB.usrpb210.conf
--codingw --fepw
</Initialize_eNB_args>
</testCase>
<testCase
id=
"030111"
>
<class>
Initialize_eNB
</class>
<desc>
Initialize eNB (FDD/Band7/10MHz)
</desc>
<Initialize_eNB_args>
-O ci-scripts/conf_files/enb.band7.tm1.50PRB.usrpb210.conf
</Initialize_eNB_args>
<Initialize_eNB_args>
-O ci-scripts/conf_files/enb.band7.tm1.50PRB.usrpb210.conf
--codingw --fepw
</Initialize_eNB_args>
</testCase>
<testCase
id=
"030121"
>
<class>
Initialize_eNB
</class>
<desc>
Initialize eNB (FDD/Band7/20MHz)
</desc>
<Initialize_eNB_args>
-O ci-scripts/conf_files/enb.band7.tm1.100PRB.usrpb210.conf
</Initialize_eNB_args>
<Initialize_eNB_args>
-O ci-scripts/conf_files/enb.band7.tm1.100PRB.usrpb210.conf
--codingw --fepw
</Initialize_eNB_args>
</testCase>
<testCase
id=
"030201"
>
...
...
@@ -138,6 +138,14 @@
<iperf_packetloss_threshold>
50
</iperf_packetloss_threshold>
</testCase>
<testCase
id=
"040642"
>
<class>
Iperf
</class>
<desc>
iperf (5MHz - UL/9Mbps/UDP)(60 sec)(single-ue profile)
</desc>
<iperf_args>
-u -b 9M -t 60 -i 1 -R
</iperf_args>
<iperf_packetloss_threshold>
50
</iperf_packetloss_threshold>
<iperf_profile>
single-ue
</iperf_profile>
</testCase>
<testCase
id=
"040611"
>
<class>
Iperf
</class>
<desc>
iperf (10MHz - DL/10Mbps/UDP)(60 sec)
</desc>
...
...
@@ -182,6 +190,14 @@
<iperf_packetloss_threshold>
50
</iperf_packetloss_threshold>
</testCase>
<testCase
id=
"040652"
>
<class>
Iperf
</class>
<desc>
iperf (10MHz - UL/20Mbps/UDP)(60 sec)(single-ue profile)
</desc>
<iperf_args>
-u -b 20M -t 60 -i 1 -R
</iperf_args>
<iperf_packetloss_threshold>
50
</iperf_packetloss_threshold>
<iperf_profile>
single-ue
</iperf_profile>
</testCase>
<testCase
id=
"040621"
>
<class>
Iperf
</class>
<desc>
iperf (20MHz - DL/20Mbps/UDP)(60 sec)
</desc>
...
...
@@ -211,7 +227,7 @@
<iperf_profile>
single-ue
</iperf_profile>
</testCase>
<testCase
id=
"04062
4
"
>
<testCase
id=
"04062
5
"
>
<class>
Iperf
</class>
<desc>
iperf (20MHz - DL/70Mbps/UDP)(60 sec)(unbalanced profile)
</desc>
<iperf_args>
-u -b 70M -t 60 -i 1
</iperf_args>
...
...
@@ -226,6 +242,14 @@
<iperf_packetloss_threshold>
50
</iperf_packetloss_threshold>
</testCase>
<testCase
id=
"040662"
>
<class>
Iperf
</class>
<desc>
iperf (20MHz - UL/20Mbps/UDP)(60 sec)(single-ue profile)
</desc>
<iperf_args>
-u -b 20M -t 60 -i 1 -R
</iperf_args>
<iperf_packetloss_threshold>
50
</iperf_packetloss_threshold>
<iperf_profile>
single-ue
</iperf_profile>
</testCase>
<testCase
id=
"050101"
>
<class>
Initialize_HSS
</class>
<desc>
Initialize HSS
</desc>
...
...
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