Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Shweta Shrivastava
openairinterface5G
Commits
6a801ab5
Commit
6a801ab5
authored
Aug 28, 2020
by
Francesco Mani
Browse files
Merge branch 'NR_UL_scheduling' into NR_CSI_reporting
parents
a3466a49
4e8fa97d
Changes
249
Expand all
Hide whitespace changes
Inline
Side-by-side
ci-scripts/Jenkinsfile-gitlab
View file @
6a801ab5
...
...
@@ -66,7 +66,8 @@ pipeline {
"Test-IF4p5-TDD-Band38-Multi-RRU"
,
"Test-eNB-OAI-UE-FDD-Band7"
,
"Test-Mono-FDD-Band13-X2-HO"
,
"Test-TDD-Band78-gNB-NR-UE"
"Test-TDD-Band78-gNB-NR-UE"
,
"Test-OCP-FDD-Band7"
])
ansiColor
(
'xterm'
)
}
...
...
@@ -683,6 +684,25 @@ pipeline {
}
}
}
stage
(
"Test OAI OCP-eNB - FDD - Band 7 - B210"
)
{
steps
{
script
{
triggerSlaveJob
(
'OCPeNB-FDD-Band7-B210'
,
'Test-OCP-FDD-Band7'
)
}
}
post
{
always
{
script
{
finalizeSlaveJob
(
'OCPeNB-FDD-Band7-B210'
)
}
}
failure
{
script
{
currentBuild
.
result
=
'FAILURE'
}
}
}
}
}
post
{
always
{
...
...
ci-scripts/args_parse.py
0 → 100644
View file @
6a801ab5
# * 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
# */
#---------------------------------------------------------------------
# Python for CI of OAI-eNB + COTS-UE
#
# Required Python Version
# Python 3.x
#
# Required Python Package
# pexpect
#---------------------------------------------------------------------
#-----------------------------------------------------------
# Import Libs
#-----------------------------------------------------------
import
sys
# arg
import
re
# reg
import
yaml
#-----------------------------------------------------------
# Parsing Command Line Arguements
#-----------------------------------------------------------
def
ArgsParse
(
argvs
,
CiTestObj
,
RAN
,
HTML
,
EPC
,
ldpc
,
HELP
):
py_param_file_present
=
False
py_params
=
{}
while
len
(
argvs
)
>
1
:
myArgv
=
argvs
.
pop
(
1
)
# 0th is this file's name
#--help
if
re
.
match
(
'^\-\-help$'
,
myArgv
,
re
.
IGNORECASE
):
HELP
.
GenericHelp
(
CONST
.
Version
)
sys
.
exit
(
0
)
#--apply=<filename> as parameters file, to replace inline parameters
elif
re
.
match
(
'^\-\-Apply=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-Apply=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
py_params_file
=
matchReg
.
group
(
1
)
with
open
(
py_params_file
,
'r'
)
as
file
:
# The FullLoader parameter handles the conversion from YAML
# scalar values to Python dictionary format
py_params
=
yaml
.
load
(
file
,
Loader
=
yaml
.
FullLoader
)
py_param_file_present
=
True
#to be removed once validated
#AssignParams(py_params) #to be uncommented once validated
#consider inline parameters
elif
re
.
match
(
'^\-\-mode=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-mode=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
mode
=
matchReg
.
group
(
1
)
elif
re
.
match
(
'^\-\-eNBRepository=(.+)$|^\-\-ranRepository(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
if
re
.
match
(
'^\-\-eNBRepository=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-eNBRepository=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
else
:
matchReg
=
re
.
match
(
'^\-\-ranRepository=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
CiTestObj
.
ranRepository
=
matchReg
.
group
(
1
)
RAN
.
ranRepository
=
matchReg
.
group
(
1
)
HTML
.
ranRepository
=
matchReg
.
group
(
1
)
ldpc
.
ranRepository
=
matchReg
.
group
(
1
)
elif
re
.
match
(
'^\-\-eNB_AllowMerge=(.+)$|^\-\-ranAllowMerge=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
if
re
.
match
(
'^\-\-eNB_AllowMerge=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-eNB_AllowMerge=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
else
:
matchReg
=
re
.
match
(
'^\-\-ranAllowMerge=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
doMerge
=
matchReg
.
group
(
1
)
ldpc
.
ranAllowMerge
=
matchReg
.
group
(
1
)
if
((
doMerge
==
'true'
)
or
(
doMerge
==
'True'
)):
CiTestObj
.
ranAllowMerge
=
True
RAN
.
ranAllowMerge
=
True
HTML
.
ranAllowMerge
=
True
elif
re
.
match
(
'^\-\-eNBBranch=(.+)$|^\-\-ranBranch=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
if
re
.
match
(
'^\-\-eNBBranch=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-eNBBranch=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
else
:
matchReg
=
re
.
match
(
'^\-\-ranBranch=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
CiTestObj
.
ranBranch
=
matchReg
.
group
(
1
)
RAN
.
ranBranch
=
matchReg
.
group
(
1
)
HTML
.
ranBranch
=
matchReg
.
group
(
1
)
ldpc
.
ranBranch
=
matchReg
.
group
(
1
)
elif
re
.
match
(
'^\-\-eNBCommitID=(.*)$|^\-\-ranCommitID=(.*)$'
,
myArgv
,
re
.
IGNORECASE
):
if
re
.
match
(
'^\-\-eNBCommitID=(.*)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-eNBCommitID=(.*)$'
,
myArgv
,
re
.
IGNORECASE
)
else
:
matchReg
=
re
.
match
(
'^\-\-ranCommitID=(.*)$'
,
myArgv
,
re
.
IGNORECASE
)
CiTestObj
.
ranCommitID
=
matchReg
.
group
(
1
)
RAN
.
ranCommitID
=
matchReg
.
group
(
1
)
HTML
.
ranCommitID
=
matchReg
.
group
(
1
)
ldpc
.
ranCommitID
=
matchReg
.
group
(
1
)
elif
re
.
match
(
'^\-\-eNBTargetBranch=(.*)$|^\-\-ranTargetBranch=(.*)$'
,
myArgv
,
re
.
IGNORECASE
):
if
re
.
match
(
'^\-\-eNBTargetBranch=(.*)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-eNBTargetBranch=(.*)$'
,
myArgv
,
re
.
IGNORECASE
)
else
:
matchReg
=
re
.
match
(
'^\-\-ranTargetBranch=(.*)$'
,
myArgv
,
re
.
IGNORECASE
)
CiTestObj
.
ranTargetBranch
=
matchReg
.
group
(
1
)
RAN
.
ranTargetBranch
=
matchReg
.
group
(
1
)
HTML
.
ranTargetBranch
=
matchReg
.
group
(
1
)
ldpc
.
ranTargetBranch
=
matchReg
.
group
(
1
)
elif
re
.
match
(
'^\-\-eNBIPAddress=(.+)$|^\-\-eNB[1-2]IPAddress=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
if
re
.
match
(
'^\-\-eNBIPAddress=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-eNBIPAddress=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
RAN
.
eNBIPAddress
=
matchReg
.
group
(
1
)
ldpc
.
eNBIpAddr
=
matchReg
.
group
(
1
)
elif
re
.
match
(
'^\-\-eNB1IPAddress=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-eNB1IPAddress=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
RAN
.
eNB1IPAddress
=
matchReg
.
group
(
1
)
elif
re
.
match
(
'^\-\-eNB2IPAddress=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-eNB2IPAddress=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
RAN
.
eNB2IPAddress
=
matchReg
.
group
(
1
)
elif
re
.
match
(
'^\-\-eNBUserName=(.+)$|^\-\-eNB[1-2]UserName=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
if
re
.
match
(
'^\-\-eNBUserName=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-eNBUserName=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
RAN
.
eNBUserName
=
matchReg
.
group
(
1
)
ldpc
.
eNBUserName
=
matchReg
.
group
(
1
)
elif
re
.
match
(
'^\-\-eNB1UserName=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-eNB1UserName=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
RAN
.
eNB1UserName
=
matchReg
.
group
(
1
)
elif
re
.
match
(
'^\-\-eNB2UserName=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-eNB2UserName=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
RAN
.
eNB2UserName
=
matchReg
.
group
(
1
)
elif
re
.
match
(
'^\-\-eNBPassword=(.+)$|^\-\-eNB[1-2]Password=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
if
re
.
match
(
'^\-\-eNBPassword=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-eNBPassword=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
RAN
.
eNBPassword
=
matchReg
.
group
(
1
)
ldpc
.
eNBPassWord
=
matchReg
.
group
(
1
)
elif
re
.
match
(
'^\-\-eNB1Password=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-eNB1Password=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
RAN
.
eNB1Password
=
matchReg
.
group
(
1
)
elif
re
.
match
(
'^\-\-eNB2Password=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-eNB2Password=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
RAN
.
eNB2Password
=
matchReg
.
group
(
1
)
elif
re
.
match
(
'^\-\-eNBSourceCodePath=(.+)$|^\-\-eNB[1-2]SourceCodePath=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
if
re
.
match
(
'^\-\-eNBSourceCodePath=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-eNBSourceCodePath=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
RAN
.
eNBSourceCodePath
=
matchReg
.
group
(
1
)
ldpc
.
eNBSourceCodePath
=
matchReg
.
group
(
1
)
elif
re
.
match
(
'^\-\-eNB1SourceCodePath=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-eNB1SourceCodePath=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
RAN
.
eNB1SourceCodePath
=
matchReg
.
group
(
1
)
elif
re
.
match
(
'^\-\-eNB2SourceCodePath=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-eNB2SourceCodePath=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
RAN
.
eNB2SourceCodePath
=
matchReg
.
group
(
1
)
elif
re
.
match
(
'^\-\-EPCIPAddress=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-EPCIPAddress=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
EPC
.
IPAddress
=
matchReg
.
group
(
1
)
elif
re
.
match
(
'^\-\-EPCUserName=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-EPCUserName=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
EPC
.
UserName
=
matchReg
.
group
(
1
)
elif
re
.
match
(
'^\-\-EPCPassword=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-EPCPassword=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
EPC
.
Password
=
matchReg
.
group
(
1
)
elif
re
.
match
(
'^\-\-EPCSourceCodePath=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-EPCSourceCodePath=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
EPC
.
SourceCodePath
=
matchReg
.
group
(
1
)
elif
re
.
match
(
'^\-\-EPCType=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-EPCType=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
if
re
.
match
(
'OAI'
,
matchReg
.
group
(
1
),
re
.
IGNORECASE
)
or
re
.
match
(
'ltebox'
,
matchReg
.
group
(
1
),
re
.
IGNORECASE
)
or
re
.
match
(
'OAI-Rel14-CUPS'
,
matchReg
.
group
(
1
),
re
.
IGNORECASE
)
or
re
.
match
(
'OAI-Rel14-Docker'
,
matchReg
.
group
(
1
),
re
.
IGNORECASE
):
EPC
.
Type
=
matchReg
.
group
(
1
)
else
:
sys
.
exit
(
'Invalid EPC Type: '
+
matchReg
.
group
(
1
)
+
' -- (should be OAI or ltebox or OAI-Rel14-CUPS or OAI-Rel14-Docker)'
)
elif
re
.
match
(
'^\-\-EPCContainerPrefix=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-EPCContainerPrefix=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
EPC
.
ContainerPrefix
=
matchReg
.
group
(
1
)
elif
re
.
match
(
'^\-\-ADBIPAddress=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-ADBIPAddress=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
CiTestObj
.
ADBIPAddress
=
matchReg
.
group
(
1
)
elif
re
.
match
(
'^\-\-ADBUserName=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-ADBUserName=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
CiTestObj
.
ADBUserName
=
matchReg
.
group
(
1
)
elif
re
.
match
(
'^\-\-ADBType=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-ADBType=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
if
re
.
match
(
'centralized'
,
matchReg
.
group
(
1
),
re
.
IGNORECASE
)
or
re
.
match
(
'distributed'
,
matchReg
.
group
(
1
),
re
.
IGNORECASE
):
if
re
.
match
(
'distributed'
,
matchReg
.
group
(
1
),
re
.
IGNORECASE
):
CiTestObj
.
ADBCentralized
=
False
else
:
CiTestObj
.
ADBCentralized
=
True
else
:
sys
.
exit
(
'Invalid ADB Type: '
+
matchReg
.
group
(
1
)
+
' -- (should be centralized or distributed)'
)
elif
re
.
match
(
'^\-\-ADBPassword=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-ADBPassword=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
CiTestObj
.
ADBPassword
=
matchReg
.
group
(
1
)
elif
re
.
match
(
'^\-\-XMLTestFile=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-XMLTestFile=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
CiTestObj
.
testXMLfiles
.
append
(
matchReg
.
group
(
1
))
HTML
.
testXMLfiles
.
append
(
matchReg
.
group
(
1
))
HTML
.
nbTestXMLfiles
=
HTML
.
nbTestXMLfiles
+
1
elif
re
.
match
(
'^\-\-UEIPAddress=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-UEIPAddress=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
CiTestObj
.
UEIPAddress
=
matchReg
.
group
(
1
)
elif
re
.
match
(
'^\-\-UEUserName=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-UEUserName=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
CiTestObj
.
UEUserName
=
matchReg
.
group
(
1
)
elif
re
.
match
(
'^\-\-UEPassword=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-UEPassword=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
CiTestObj
.
UEPassword
=
matchReg
.
group
(
1
)
elif
re
.
match
(
'^\-\-UESourceCodePath=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-UESourceCodePath=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
CiTestObj
.
UESourceCodePath
=
matchReg
.
group
(
1
)
elif
re
.
match
(
'^\-\-finalStatus=(.+)$'
,
myArgv
,
re
.
IGNORECASE
):
matchReg
=
re
.
match
(
'^\-\-finalStatus=(.+)$'
,
myArgv
,
re
.
IGNORECASE
)
finalStatus
=
matchReg
.
group
(
1
)
if
((
finalStatus
==
'true'
)
or
(
finalStatus
==
'True'
)):
CiTestObj
.
finalStatus
=
True
else
:
HELP
.
GenericHelp
(
CONST
.
Version
)
sys
.
exit
(
'Invalid Parameter: '
+
myArgv
)
return
py_param_file_present
,
py_params
,
mode
ci-scripts/cls_cots_ue.py
0 → 100644
View file @
6a801ab5
# * 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
# */
#---------------------------------------------------------------------
# Python for CI of OAI-eNB + COTS-UE
#
# Required Python Version
# Python 3.x
#
# Required Python Package
# pexpect
#---------------------------------------------------------------------
#to use logging.info()
import
logging
#to create a SSH object locally in the methods
import
sshconnection
#time.sleep
import
time
class
CotsUe
:
def
__init__
(
self
,
model
,
UEIPAddr
,
UEUserName
,
UEPassWord
):
self
.
model
=
model
self
.
UEIPAddr
=
UEIPAddr
self
.
UEUserName
=
UEUserName
self
.
UEPassWord
=
UEPassWord
self
.
runargs
=
''
#on of off to toggle airplane mode on/off
self
.
__SetAirplaneRetry
=
3
#-----------------$
#PUBLIC Methods$
#-----------------$
def
Check_Airplane
(
self
):
mySSH
=
sshconnection
.
SSHConnection
()
mySSH
.
open
(
self
.
UEIPAddr
,
self
.
UEUserName
,
self
.
UEPassWord
)
status
=
mySSH
.
cde_check_value
(
'sudo adb shell settings get global airplane_mode_on '
,
[
'0'
,
'1'
],
5
)
mySSH
.
close
()
return
status
def
Set_Airplane
(
self
,
target_state_str
):
mySSH
=
sshconnection
.
SSHConnection
()
mySSH
.
open
(
self
.
UEIPAddr
,
self
.
UEUserName
,
self
.
UEPassWord
)
mySSH
.
command
(
'sudo adb start-server'
,
'$'
,
5
)
logging
.
info
(
"Toggling COTS UE Airplane mode to : "
+
target_state_str
)
current_state
=
self
.
Check_Airplane
()
if
target_state_str
.
lower
()
==
"on"
:
target_state
=
1
else
:
target_state
=
0
if
current_state
!=
target_state
:
#toggle state
retry
=
0
while
(
current_state
!=
target_state
)
and
(
retry
<
self
.
__SetAirplaneRetry
):
mySSH
.
command
(
'sudo adb shell am start -a android.settings.AIRPLANE_MODE_SETTINGS'
,
'\$'
,
5
)
mySSH
.
command
(
'sudo adb shell input keyevent 20'
,
'\$'
,
5
)
mySSH
.
command
(
'sudo adb shell input tap 968 324'
,
'\$'
,
5
)
time
.
sleep
(
1
)
current_state
=
self
.
Check_Airplane
()
retry
+=
1
if
current_state
!=
target_state
:
logging
.
error
(
"ATTENTION : Could not toggle to : "
+
target_state_str
)
logging
.
error
(
"Current state is : "
+
str
(
current_state
))
else
:
print
(
"Airplane mode is already "
+
target_state_str
)
mySSH
.
command
(
'sudo adb kill-server'
,
'$'
,
5
)
mySSH
.
close
()
ci-scripts/conf_files/enb.band17.tm1.25PRB.usrpb210.conf
View file @
6a801ab5
...
...
@@ -105,6 +105,7 @@ eNBs =
ue_TimersAndConstants_n310
=
20
;
ue_TimersAndConstants_n311
=
1
;
ue_TransmissionMode
=
1
;
mbms_dedicated_serving_cell
=
"DISABLE"
//
Parameters
for
SIB18
rxPool_sc_CP_Len
=
"normal"
;
...
...
ci-scripts/conf_files/enb.band17.tm1.mbms.25PRB.usrpb210.conf
View file @
6a801ab5
...
...
@@ -105,6 +105,8 @@ eNBs =
ue_TimersAndConstants_n310
=
20
;
ue_TimersAndConstants_n311
=
1
;
ue_TransmissionMode
=
1
;
mbms_dedicated_serving_cell
=
"DISABLE"
//
Parameters
for
SIB18
rxPool_sc_CP_Len
=
"normal"
;
...
...
@@ -247,7 +249,6 @@ MCEs = (
);
NETWORK_INTERFACES
:
{
MCE_INTERFACE_NAME_FOR_M2_ENB
=
"lo"
;
...
...
@@ -271,12 +272,12 @@ MCEs = (
mcch_update_time
=
10
;
mbms_area_config_list
= (
{
common_sf_allocation_period
=
2
;
#rf4(0) rf8(1) rf16(2) rf32(3) rf64(4) rf128(5) rf256(6)
common_sf_allocation_period
=
1
;
#rf4(0) rf8(1) rf16(2) rf32(3) rf64(4) rf128(5) rf256(6)
mbms_area_id
=
0
;
pmch_config_list
= (
{
allocated_sf_end
=
6
4
;
data_mcs
=
1
0
;
allocated_sf_end
=
4
0
;
data_mcs
=
2
0
;
mch_scheduling_period
=
0
;
#rf8(0)
mbms_session_list
= (
{
...
...
@@ -288,7 +289,7 @@ MCEs = (
mnc_length
=
2
;
}
service_id
=
0
;
lcid
=
5
;
#this must be properly defined lcid:8+service:0 -> rab_id:5
lcid
=
5
;
#this must be properly defined lcid:8+service:0 -> rab_id:5
//with new RLC set lcid either 4 or 5
}
);
}
...
...
@@ -296,10 +297,10 @@ MCEs = (
mbms_sf_config_list
= (
{
radioframe_allocation_period
=
1
;
#n1(0) n2(1) n4(2) n8(3) n16(4) n32(5)
radioframe_allocation_period
=
0
;
#n1(0) n2(1) n4(2) n8(3) n16(4) n32(5)
radioframe_alloocation_offset
=
0
;
num_frame
=
"oneFrame"
;
subframe_allocation
=
57
;
#xx1
00000
subframe_allocation
=
59
;
#xx111011 #
57; #xx1
11001
//
num_frame
=
"fourFrame"
;
//
subframe_allocation
=
14548987
;
#
}
...
...
ci-scripts/conf_files/enb.band7.tm1.fr1.25PRB.usrpb210.conf
0 → 100755
View file @
6a801ab5
Active_eNBs
= (
"eNB-Eurecom-LTEBox"
);
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity
=
"none"
;
eNBs
=
(
{
# real_time choice in {hard, rt-preempt, no}
real_time
=
"no"
;
//////////
Identification
parameters
:
eNB_ID
=
0
xe01
;
cell_type
=
"CELL_MACRO_ENB"
;
eNB_name
=
"eNB-Eurecom-LTEBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
1
;
plmn_list
= (
{
mcc
=
222
;
mnc
=
01
;
mnc_length
=
2
; }
);
tr_s_preference
=
"local_mac"
//////////
Physical
parameters
:
component_carriers
= (
{
node_function
=
"eNodeB_3GPP"
;
node_timing
=
"synch_to_ext_device"
;
node_synch_ref
=
0
;
nb_antenna_ports
=
1
;
ue_TransmissionMode
=
1
;
frame_type
=
"FDD"
;
tdd_config
=
3
;
tdd_config_s
=
0
;
prefix_type
=
"NORMAL"
;
eutra_band
=
7
;
downlink_frequency
=
2680000000
L
;
uplink_frequency_offset
= -
120000000
;
Nid_cell
=
0
;
N_RB_DL
=
25
;
Nid_cell_mbsfn
=
0
;
nb_antennas_tx
=
1
;
nb_antennas_rx
=
1
;
prach_root
=
0
;
tx_gain
=
90
;
rx_gain
=
115
;
pbch_repetition
=
"FALSE"
;
prach_config_index
=
0
;
prach_high_speed
=
"DISABLE"
;
prach_zero_correlation
=
1
;
prach_freq_offset
=
2
;
pucch_delta_shift
=
1
;
pucch_nRB_CQI
=
0
;
pucch_nCS_AN
=
0
;
pucch_n1_AN
=
0
;
pdsch_referenceSignalPower
= -
29
;
pdsch_p_b
=
0
;
pusch_n_SB
=
1
;
pusch_enable64QAM
=
"DISABLE"
;
pusch_hoppingMode
=
"interSubFrame"
;
pusch_hoppingOffset
=
0
;
pusch_groupHoppingEnabled
=
"ENABLE"
;
pusch_groupAssignment
=
0
;
pusch_sequenceHoppingEnabled
=
"DISABLE"
;
pusch_nDMRS1
=
1
;
phich_duration
=
"NORMAL"
;
phich_resource
=
"ONESIXTH"
;
srs_enable
=
"DISABLE"
;
/*
srs_BandwidthConfig
=;
srs_SubframeConfig
=;
srs_ackNackST
=;
srs_MaxUpPts
=;
*/
pusch_p0_Nominal
= -
96
;
pusch_alpha
=
"AL1"
;
pucch_p0_Nominal
= -
96
;
msg3_delta_Preamble
=
6
;
pucch_deltaF_Format1
=
"deltaF2"
;
pucch_deltaF_Format1b
=
"deltaF3"
;
pucch_deltaF_Format2
=
"deltaF0"
;
pucch_deltaF_Format2a
=
"deltaF0"
;
pucch_deltaF_Format2b
=
"deltaF0"
;
rach_numberOfRA_Preambles
=
64
;
rach_preamblesGroupAConfig
=
"DISABLE"
;
/*
rach_sizeOfRA_PreamblesGroupA
= ;
rach_messageSizeGroupA
= ;
rach_messagePowerOffsetGroupB
= ;
*/
rach_powerRampingStep
=
4
;
rach_preambleInitialReceivedTargetPower
= -
108
;
rach_preambleTransMax
=
10
;
rach_raResponseWindowSize
=
10
;
rach_macContentionResolutionTimer
=
48
;
rach_maxHARQ_Msg3Tx
=
4
;
pcch_default_PagingCycle
=
128
;
pcch_nB
=
"oneT"
;
bcch_modificationPeriodCoeff
=
2
;
ue_TimersAndConstants_t300
=
1000
;
ue_TimersAndConstants_t301
=
1000
;
ue_TimersAndConstants_t310
=
1000
;
ue_TimersAndConstants_t311
=
10000
;
ue_TimersAndConstants_n310
=
20
;
ue_TimersAndConstants_n311
=
1
;
//
Parameters
for
SIB18
rxPool_sc_CP_Len
=
"normal"
;
rxPool_sc_Period
=
"sf40"
;
rxPool_data_CP_Len
=
"normal"
;
rxPool_ResourceConfig_prb_Num
=
20
;
rxPool_ResourceConfig_prb_Start
=
5
;
rxPool_ResourceConfig_prb_End
=
44
;
rxPool_ResourceConfig_offsetIndicator_present
=
"prSmall"
;
rxPool_ResourceConfig_offsetIndicator_choice
=
0
;
rxPool_ResourceConfig_subframeBitmap_present
=
"prBs40"
;
rxPool_ResourceConfig_subframeBitmap_choice_bs_buf
=
"00000000000000000000"
;
rxPool_ResourceConfig_subframeBitmap_choice_bs_size
=
5
;
rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused
=
0
;
/*
rxPool_dataHoppingConfig_hoppingParameter
=
0
;
rxPool_dataHoppingConfig_numSubbands
=
"ns1"
;
rxPool_dataHoppingConfig_rbOffset
=
0
;
rxPool_commTxResourceUC
-
ReqAllowed
=
"TRUE"
;
*/
//
Parameters
for
SIB19
discRxPool_cp_Len
=
"normal"
discRxPool_discPeriod
=
"rf32"
discRxPool_numRetx
=
1
;
discRxPool_numRepetition
=
2
;
discRxPool_ResourceConfig_prb_Num
=
5
;
discRxPool_ResourceConfig_prb_Start
=
3
;
discRxPool_ResourceConfig_prb_End
=
21
;
discRxPool_ResourceConfig_offsetIndicator_present
=
"prSmall"
;
discRxPool_ResourceConfig_offsetIndicator_choice
=
0
;
discRxPool_ResourceConfig_subframeBitmap_present
=
"prBs40"
;
discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf
=
"f0ffffffff"
;
discRxPool_ResourceConfig_subframeBitmap_choice_bs_size
=
5
;
discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused
=
0
;
}
);
srb1_parameters
:
{
# timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500]
timer_poll_retransmit
=
80
;
# timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200]
timer_reordering
=
35
;
# timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500]
timer_status_prohibit
=
0
;
# poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)]
poll_pdu
=
4
;
# poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)]
poll_byte
=
99999
;
# max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32]
max_retx_threshold
=
4
;
}
# ------- SCTP definitions
SCTP
:
{
# Number of streams to use in input/output