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
d9ed78ec
Commit
d9ed78ec
authored
Feb 02, 2022
by
luis_pereira87
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/develop' into fix-initialBWP-procedures
parents
c30f478d
8564ed55
Changes
62
Hide whitespace changes
Inline
Side-by-side
Showing
62 changed files
with
1924 additions
and
262 deletions
+1924
-262
ci-scripts/cls_containerize.py
ci-scripts/cls_containerize.py
+33
-11
ci-scripts/cls_oaicitest.py
ci-scripts/cls_oaicitest.py
+93
-3
ci-scripts/cls_physim.py
ci-scripts/cls_physim.py
+1
-1
ci-scripts/cls_static_code_analysis.py
ci-scripts/cls_static_code_analysis.py
+1
-1
ci-scripts/main.py
ci-scripts/main.py
+4
-4
ci-scripts/ran.py
ci-scripts/ran.py
+2
-2
ci-scripts/ran_dashboard/Hdashboard.py
ci-scripts/ran_dashboard/Hdashboard.py
+28
-0
ci-scripts/ran_dashboard/ran_dashboard_cfg.yaml
ci-scripts/ran_dashboard/ran_dashboard_cfg.yaml
+4
-9
ci-scripts/stats_monitor.py
ci-scripts/stats_monitor.py
+17
-12
ci-scripts/xml_files/container_4g_rfsim_fdd_05MHz.xml
ci-scripts/xml_files/container_4g_rfsim_fdd_05MHz.xml
+9
-10
ci-scripts/xml_files/container_4g_rfsim_fdd_05MHz_down.xml
ci-scripts/xml_files/container_4g_rfsim_fdd_05MHz_down.xml
+3
-3
ci-scripts/xml_files/container_4g_rfsim_fdd_05MHz_noS1.xml
ci-scripts/xml_files/container_4g_rfsim_fdd_05MHz_noS1.xml
+109
-0
ci-scripts/xml_files/container_4g_rfsim_fdd_05MHz_noS1_down.xml
...ipts/xml_files/container_4g_rfsim_fdd_05MHz_noS1_down.xml
+38
-0
ci-scripts/xml_files/container_4g_rfsim_fdd_10MHz.xml
ci-scripts/xml_files/container_4g_rfsim_fdd_10MHz.xml
+129
-0
ci-scripts/xml_files/container_4g_rfsim_fdd_10MHz_down.xml
ci-scripts/xml_files/container_4g_rfsim_fdd_10MHz_down.xml
+38
-0
ci-scripts/xml_files/container_4g_rfsim_fdd_20MHz.xml
ci-scripts/xml_files/container_4g_rfsim_fdd_20MHz.xml
+129
-0
ci-scripts/xml_files/container_4g_rfsim_fdd_20MHz_down.xml
ci-scripts/xml_files/container_4g_rfsim_fdd_20MHz_down.xml
+38
-0
ci-scripts/xml_files/container_4g_rfsim_tdd_05MHz.xml
ci-scripts/xml_files/container_4g_rfsim_tdd_05MHz.xml
+130
-0
ci-scripts/xml_files/container_4g_rfsim_tdd_05MHz_down.xml
ci-scripts/xml_files/container_4g_rfsim_tdd_05MHz_down.xml
+38
-0
ci-scripts/xml_files/fr1_nsa_quectel.xml
ci-scripts/xml_files/fr1_nsa_quectel.xml
+10
-0
ci-scripts/xml_files/fr1_sa_quectel.xml
ci-scripts/xml_files/fr1_sa_quectel.xml
+10
-0
ci-scripts/yaml_files/4g_rfsimulator_fdd_05MHz/README.md
ci-scripts/yaml_files/4g_rfsimulator_fdd_05MHz/README.md
+0
-0
ci-scripts/yaml_files/4g_rfsimulator_fdd_05MHz/docker-compose.yml
...ts/yaml_files/4g_rfsimulator_fdd_05MHz/docker-compose.yml
+0
-0
ci-scripts/yaml_files/4g_rfsimulator_fdd_05MHz/oai_db.cql
ci-scripts/yaml_files/4g_rfsimulator_fdd_05MHz/oai_db.cql
+0
-0
ci-scripts/yaml_files/4g_rfsimulator_fdd_05MHz_noS1/docker-compose.yml
...ml_files/4g_rfsimulator_fdd_05MHz_noS1/docker-compose.yml
+75
-0
ci-scripts/yaml_files/4g_rfsimulator_fdd_10MHz/docker-compose.yml
...ts/yaml_files/4g_rfsimulator_fdd_10MHz/docker-compose.yml
+272
-0
ci-scripts/yaml_files/4g_rfsimulator_fdd_20MHz/docker-compose.yml
...ts/yaml_files/4g_rfsimulator_fdd_20MHz/docker-compose.yml
+272
-0
ci-scripts/yaml_files/4g_rfsimulator_tdd_05MHz/docker-compose.yml
...ts/yaml_files/4g_rfsimulator_tdd_05MHz/docker-compose.yml
+271
-0
cmake_targets/CMakeLists.txt
cmake_targets/CMakeLists.txt
+2
-2
cmake_targets/build_oai
cmake_targets/build_oai
+70
-79
cmake_targets/install_external_packages.ubuntu20
cmake_targets/install_external_packages.ubuntu20
+0
-1
cmake_targets/phy_simulators
cmake_targets/phy_simulators
+1
-0
cmake_targets/phy_simulators/CMakeLists.txt
cmake_targets/phy_simulators/CMakeLists.txt
+0
-21
cmake_targets/tools/build_helper
cmake_targets/tools/build_helper
+1
-1
doc/BUILD.md
doc/BUILD.md
+1
-1
docker/Dockerfile.phySim.rhel8.2
docker/Dockerfile.phySim.rhel8.2
+4
-4
openair1/PHY/NR_TRANSPORT/nr_csi_rs.c
openair1/PHY/NR_TRANSPORT/nr_csi_rs.c
+1
-1
openair1/PHY/NR_TRANSPORT/nr_dci.c
openair1/PHY/NR_TRANSPORT/nr_dci.c
+19
-20
openair1/PHY/NR_TRANSPORT/nr_dci.h
openair1/PHY/NR_TRANSPORT/nr_dci.h
+2
-2
openair1/PHY/NR_TRANSPORT/nr_dci_tools.c
openair1/PHY/NR_TRANSPORT/nr_dci_tools.c
+2
-2
openair1/PHY/NR_TRANSPORT/nr_dlsch.c
openair1/PHY/NR_TRANSPORT/nr_dlsch.c
+27
-27
openair1/PHY/NR_TRANSPORT/nr_pbch.c
openair1/PHY/NR_TRANSPORT/nr_pbch.c
+3
-2
openair1/PHY/NR_TRANSPORT/nr_pss.c
openair1/PHY/NR_TRANSPORT/nr_pss.c
+2
-2
openair1/PHY/NR_TRANSPORT/nr_sss.c
openair1/PHY/NR_TRANSPORT/nr_sss.c
+2
-2
openair1/PHY/NR_TRANSPORT/nr_transport_proto.h
openair1/PHY/NR_TRANSPORT/nr_transport_proto.h
+3
-6
openair1/PHY/NR_TRANSPORT/nr_ulsch_decoding.c
openair1/PHY/NR_TRANSPORT/nr_ulsch_decoding.c
+1
-1
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_decoding.c
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_decoding.c
+0
-1
openair1/PHY/defs_gNB.h
openair1/PHY/defs_gNB.h
+0
-4
openair1/PHY/defs_nr_common.h
openair1/PHY/defs_nr_common.h
+10
-1
openair1/SCHED_NR/nr_ru_procedures.c
openair1/SCHED_NR/nr_ru_procedures.c
+3
-3
openair1/SCHED_NR/phy_procedures_nr_gNB.c
openair1/SCHED_NR/phy_procedures_nr_gNB.c
+6
-7
openair1/SCHED_NR_UE/harq_nr.c
openair1/SCHED_NR_UE/harq_nr.c
+2
-2
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
+0
-2
openair1/SIMULATION/NR_PHY/dlschsim.c
openair1/SIMULATION/NR_PHY/dlschsim.c
+1
-2
openair1/SIMULATION/NR_PHY/dlsim.c
openair1/SIMULATION/NR_PHY/dlsim.c
+1
-1
openair1/SIMULATION/NR_PHY/pbchsim.c
openair1/SIMULATION/NR_PHY/pbchsim.c
+1
-2
openair1/SIMULATION/NR_PHY/pucchsim.c
openair1/SIMULATION/NR_PHY/pucchsim.c
+1
-2
openair1/SIMULATION/NR_PHY/ulschsim.c
openair1/SIMULATION/NR_PHY/ulschsim.c
+1
-2
openair1/SIMULATION/NR_PHY/ulsim.c
openair1/SIMULATION/NR_PHY/ulsim.c
+0
-1
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
+1
-0
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
+0
-1
openair2/RRC/NR_UE/rrc_UE.c
openair2/RRC/NR_UE/rrc_UE.c
+2
-1
No files found.
ci-scripts/cls_containerize.py
View file @
d9ed78ec
...
@@ -506,6 +506,7 @@ class Containerize():
...
@@ -506,6 +506,7 @@ class Containerize():
# mySSH.command('sed -i -e "s/FLEXRAN_ENABLED:.*$/FLEXRAN_ENABLED: \'no\'/" ci-docker-compose.yml', '\$', 2)
# mySSH.command('sed -i -e "s/FLEXRAN_ENABLED:.*$/FLEXRAN_ENABLED: \'no\'/" ci-docker-compose.yml', '\$', 2)
# mySSH.command('sed -i -e "s/CI_FLEXRAN_CTL_IP_ADDR/127.0.0.1/" ci-docker-compose.yml', '\$', 2)
# mySSH.command('sed -i -e "s/CI_FLEXRAN_CTL_IP_ADDR/127.0.0.1/" ci-docker-compose.yml', '\$', 2)
# Currently support only one
# Currently support only one
mySSH
.
command
(
'echo '
+
lPassWord
+
' | sudo -S b2xx_fx3_utils --reset-device'
,
'\$'
,
15
)
mySSH
.
command
(
'docker-compose --file ci-docker-compose.yml config --services | sed -e "s@^@service=@" 2>&1'
,
'\$'
,
10
)
mySSH
.
command
(
'docker-compose --file ci-docker-compose.yml config --services | sed -e "s@^@service=@" 2>&1'
,
'\$'
,
10
)
result
=
re
.
search
(
'service=(?P<svc_name>[a-zA-Z0-9\_]+)'
,
mySSH
.
getBefore
())
result
=
re
.
search
(
'service=(?P<svc_name>[a-zA-Z0-9\_]+)'
,
mySSH
.
getBefore
())
if
result
is
not
None
:
if
result
is
not
None
:
...
@@ -715,7 +716,7 @@ class Containerize():
...
@@ -715,7 +716,7 @@ class Containerize():
logging
.
debug
(
cmd
)
logging
.
debug
(
cmd
)
networkNames
=
subprocess
.
check_output
(
cmd
,
shell
=
True
,
stderr
=
subprocess
.
STDOUT
,
universal_newlines
=
True
,
timeout
=
10
)
networkNames
=
subprocess
.
check_output
(
cmd
,
shell
=
True
,
stderr
=
subprocess
.
STDOUT
,
universal_newlines
=
True
,
timeout
=
10
)
def
UndeployGenObject
(
self
,
HTML
,
RAN
):
def
UndeployGenObject
(
self
,
HTML
,
RAN
,
UE
):
self
.
exitStatus
=
0
self
.
exitStatus
=
0
ymlPath
=
self
.
yamlPath
[
0
].
split
(
'/'
)
ymlPath
=
self
.
yamlPath
[
0
].
split
(
'/'
)
logPath
=
'../cmake_targets/log/'
+
ymlPath
[
1
]
logPath
=
'../cmake_targets/log/'
+
ymlPath
[
1
]
...
@@ -751,7 +752,7 @@ class Containerize():
...
@@ -751,7 +752,7 @@ class Containerize():
logging
.
debug
(
cmd
)
logging
.
debug
(
cmd
)
deployStatus
=
subprocess
.
check_output
(
cmd
,
shell
=
True
,
stderr
=
subprocess
.
STDOUT
,
universal_newlines
=
True
,
timeout
=
10
)
deployStatus
=
subprocess
.
check_output
(
cmd
,
shell
=
True
,
stderr
=
subprocess
.
STDOUT
,
universal_newlines
=
True
,
timeout
=
10
)
# Analyzing log file!
# Analyzing log file
(s)
!
listOfPossibleRanContainers
=
[
'enb'
,
'gnb'
,
'cu'
,
'du'
]
listOfPossibleRanContainers
=
[
'enb'
,
'gnb'
,
'cu'
,
'du'
]
for
container
in
listOfPossibleRanContainers
:
for
container
in
listOfPossibleRanContainers
:
filename
=
self
.
yamlPath
[
0
]
+
'/rfsim?g-oai-'
+
container
+
'.log'
filename
=
self
.
yamlPath
[
0
]
+
'/rfsim?g-oai-'
+
container
+
'.log'
...
@@ -766,7 +767,6 @@ class Containerize():
...
@@ -766,7 +767,6 @@ class Containerize():
continue
continue
logging
.
debug
(
'
\u001B
[1m Analyzing xNB logfile '
+
filename
+
'
\u001B
[0m'
)
logging
.
debug
(
'
\u001B
[1m Analyzing xNB logfile '
+
filename
+
'
\u001B
[0m'
)
# For the moment just assume this exists
logStatus
=
RAN
.
AnalyzeLogFile_eNB
(
filename
,
HTML
)
logStatus
=
RAN
.
AnalyzeLogFile_eNB
(
filename
,
HTML
)
if
(
logStatus
<
0
):
if
(
logStatus
<
0
):
fullStatus
=
False
fullStatus
=
False
...
@@ -774,6 +774,27 @@ class Containerize():
...
@@ -774,6 +774,27 @@ class Containerize():
else
:
else
:
HTML
.
CreateHtmlTestRow
(
RAN
.
runtime_stats
,
'OK'
,
CONST
.
ALL_PROCESSES_OK
)
HTML
.
CreateHtmlTestRow
(
RAN
.
runtime_stats
,
'OK'
,
CONST
.
ALL_PROCESSES_OK
)
listOfPossibleUeContainers
=
[
'lte-ue*'
,
'nr-ue*'
]
for
container
in
listOfPossibleUeContainers
:
filename
=
self
.
yamlPath
[
0
]
+
'/rfsim?g-oai-'
+
container
+
'.log'
cmd
=
'ls '
+
filename
containerStatus
=
True
try
:
lsStatus
=
subprocess
.
check_output
(
cmd
,
shell
=
True
,
stderr
=
subprocess
.
STDOUT
,
universal_newlines
=
True
,
timeout
=
10
)
filename
=
str
(
lsStatus
).
strip
()
except
:
containerStatus
=
False
if
not
containerStatus
:
continue
logging
.
debug
(
'
\u001B
[1m Analyzing UE logfile '
+
filename
+
'
\u001B
[0m'
)
logStatus
=
UE
.
AnalyzeLogFile_UE
(
filename
,
HTML
,
RAN
)
if
(
logStatus
<
0
):
fullStatus
=
False
HTML
.
CreateHtmlTestRow
(
'UE log Analysis'
,
'KO'
,
logStatus
)
else
:
HTML
.
CreateHtmlTestRow
(
'UE log Analysis'
,
'OK'
,
CONST
.
ALL_PROCESSES_OK
)
cmd
=
'rm '
+
self
.
yamlPath
[
0
]
+
'/*.log'
cmd
=
'rm '
+
self
.
yamlPath
[
0
]
+
'/*.log'
logging
.
debug
(
cmd
)
logging
.
debug
(
cmd
)
deployStatus
=
subprocess
.
check_output
(
cmd
,
shell
=
True
,
stderr
=
subprocess
.
STDOUT
,
universal_newlines
=
True
,
timeout
=
10
)
deployStatus
=
subprocess
.
check_output
(
cmd
,
shell
=
True
,
stderr
=
subprocess
.
STDOUT
,
universal_newlines
=
True
,
timeout
=
10
)
...
@@ -789,6 +810,7 @@ class Containerize():
...
@@ -789,6 +810,7 @@ class Containerize():
cmd
=
'sudo rm /tmp/capture_'
+
ymlPath
[
1
]
+
'.pcap'
cmd
=
'sudo rm /tmp/capture_'
+
ymlPath
[
1
]
+
'.pcap'
logging
.
debug
(
cmd
)
logging
.
debug
(
cmd
)
copyStatus
=
subprocess
.
check_output
(
cmd
,
shell
=
True
,
stderr
=
subprocess
.
STDOUT
,
universal_newlines
=
True
,
timeout
=
10
)
copyStatus
=
subprocess
.
check_output
(
cmd
,
shell
=
True
,
stderr
=
subprocess
.
STDOUT
,
universal_newlines
=
True
,
timeout
=
10
)
self
.
tsharkStarted
=
False
logging
.
debug
(
'
\u001B
[1m Undeploying
\u001B
[0m'
)
logging
.
debug
(
'
\u001B
[1m Undeploying
\u001B
[0m'
)
cmd
=
'cd '
+
self
.
yamlPath
[
0
]
+
' && docker-compose -f docker-compose-ci.yml down'
cmd
=
'cd '
+
self
.
yamlPath
[
0
]
+
' && docker-compose -f docker-compose-ci.yml down'
...
@@ -814,7 +836,7 @@ class Containerize():
...
@@ -814,7 +836,7 @@ class Containerize():
HTML
.
CreateHtmlTestRow
(
'n/a'
,
'KO'
,
CONST
.
ALL_PROCESSES_OK
)
HTML
.
CreateHtmlTestRow
(
'n/a'
,
'KO'
,
CONST
.
ALL_PROCESSES_OK
)
logging
.
info
(
'
\u001B
[1m Undeploying OAI Object(s) FAIL
\u001B
[0m'
)
logging
.
info
(
'
\u001B
[1m Undeploying OAI Object(s) FAIL
\u001B
[0m'
)
def
PingFromContainer
(
self
,
HTML
):
def
PingFromContainer
(
self
,
HTML
,
RAN
,
UE
):
self
.
exitStatus
=
0
self
.
exitStatus
=
0
ymlPath
=
self
.
yamlPath
[
0
].
split
(
'/'
)
ymlPath
=
self
.
yamlPath
[
0
].
split
(
'/'
)
logPath
=
'../cmake_targets/log/'
+
ymlPath
[
1
]
logPath
=
'../cmake_targets/log/'
+
ymlPath
[
1
]
...
@@ -828,17 +850,17 @@ class Containerize():
...
@@ -828,17 +850,17 @@ class Containerize():
result
=
re
.
search
(
', (?P<packetloss>[0-9\.]+)% packet loss, time [0-9\.]+ms'
,
deployStatus
)
result
=
re
.
search
(
', (?P<packetloss>[0-9\.]+)% packet loss, time [0-9\.]+ms'
,
deployStatus
)
if
result
is
None
:
if
result
is
None
:
self
.
PingExit
(
HTML
,
False
,
'Packet Loss Not Found'
)
self
.
PingExit
(
HTML
,
RAN
,
UE
,
False
,
'Packet Loss Not Found'
)
return
return
packetloss
=
result
.
group
(
'packetloss'
)
packetloss
=
result
.
group
(
'packetloss'
)
if
float
(
packetloss
)
==
100
:
if
float
(
packetloss
)
==
100
:
self
.
PingExit
(
HTML
,
False
,
'Packet Loss is 100%'
)
self
.
PingExit
(
HTML
,
RAN
,
UE
,
False
,
'Packet Loss is 100%'
)
return
return
result
=
re
.
search
(
'rtt min\/avg\/max\/mdev = (?P<rtt_min>[0-9\.]+)\/(?P<rtt_avg>[0-9\.]+)\/(?P<rtt_max>[0-9\.]+)\/[0-9\.]+ ms'
,
deployStatus
)
result
=
re
.
search
(
'rtt min\/avg\/max\/mdev = (?P<rtt_min>[0-9\.]+)\/(?P<rtt_avg>[0-9\.]+)\/(?P<rtt_max>[0-9\.]+)\/[0-9\.]+ ms'
,
deployStatus
)
if
result
is
None
:
if
result
is
None
:
self
.
PingExit
(
HTML
,
False
,
'Ping RTT_Min RTT_Avg RTT_Max Not Found!'
)
self
.
PingExit
(
HTML
,
RAN
,
UE
,
False
,
'Ping RTT_Min RTT_Avg RTT_Max Not Found!'
)
return
return
rtt_min
=
result
.
group
(
'rtt_min'
)
rtt_min
=
result
.
group
(
'rtt_min'
)
...
@@ -860,7 +882,7 @@ class Containerize():
...
@@ -860,7 +882,7 @@ class Containerize():
packetLossOK
=
False
packetLossOK
=
False
elif
float
(
packetloss
)
>
0
:
elif
float
(
packetloss
)
>
0
:
message
+=
'
\n
Packet Loss is not 0%'
message
+=
'
\n
Packet Loss is not 0%'
self
.
PingExit
(
HTML
,
packetLossOK
,
message
)
self
.
PingExit
(
HTML
,
RAN
,
UE
,
packetLossOK
,
message
)
if
packetLossOK
:
if
packetLossOK
:
logging
.
debug
(
'
\u001B
[1;37;44m ping result
\u001B
[0m'
)
logging
.
debug
(
'
\u001B
[1;37;44m ping result
\u001B
[0m'
)
...
@@ -870,7 +892,7 @@ class Containerize():
...
@@ -870,7 +892,7 @@ class Containerize():
logging
.
debug
(
'
\u001B
[1;34m '
+
max_msg
+
'
\u001B
[0m'
)
logging
.
debug
(
'
\u001B
[1;34m '
+
max_msg
+
'
\u001B
[0m'
)
logging
.
info
(
'
\u001B
[1m Ping Test PASS
\u001B
[0m'
)
logging
.
info
(
'
\u001B
[1m Ping Test PASS
\u001B
[0m'
)
def
PingExit
(
self
,
HTML
,
status
,
message
):
def
PingExit
(
self
,
HTML
,
RAN
,
UE
,
status
,
message
):
html_queue
=
SimpleQueue
()
html_queue
=
SimpleQueue
()
html_cell
=
'<pre style="background-color:white">UE
\n
'
+
message
+
'</pre>'
html_cell
=
'<pre style="background-color:white">UE
\n
'
+
message
+
'</pre>'
html_queue
.
put
(
html_cell
)
html_queue
.
put
(
html_cell
)
...
@@ -885,10 +907,10 @@ class Containerize():
...
@@ -885,10 +907,10 @@ class Containerize():
logging
.
debug
(
'----------------------------------------'
)
logging
.
debug
(
'----------------------------------------'
)
HTML
.
testCase_id
=
'AUTO-UNDEPLOY'
HTML
.
testCase_id
=
'AUTO-UNDEPLOY'
HTML
.
desc
=
'Automatic Un-Deployment'
HTML
.
desc
=
'Automatic Un-Deployment'
self
.
UndeployGenObject
(
HTML
)
self
.
UndeployGenObject
(
HTML
,
RAN
,
UE
)
self
.
exitStatus
=
1
self
.
exitStatus
=
1
def
IperfFromContainer
(
self
,
HTML
):
def
IperfFromContainer
(
self
,
HTML
,
RAN
):
self
.
exitStatus
=
0
self
.
exitStatus
=
0
ymlPath
=
self
.
yamlPath
[
0
].
split
(
'/'
)
ymlPath
=
self
.
yamlPath
[
0
].
split
(
'/'
)
...
...
ci-scripts/cls_oaicitest.py
View file @
d9ed78ec
...
@@ -2045,6 +2045,35 @@ class OaiCiTest():
...
@@ -2045,6 +2045,35 @@ class OaiCiTest():
else
:
else
:
return
-
2
return
-
2
def
Iperf_analyzeV2BIDIR
(
self
,
lock
,
UE_IPAddress
,
device_id
,
statusQueue
,
server_filename
,
client_filename
):
#server file is unused for the moment
if
(
not
os
.
path
.
isfile
(
client_filename
)):
self
.
ping_iperf_wrong_exit
(
lock
,
UE_IPAddress
,
device_id
,
statusQueue
,
'Bidir TCP : Could not analyze from client log'
)
return
report
=
[]
report_msg
=
'Client Report:
\n
'
with
open
(
client_filename
,
'r'
)
as
f_client
:
for
line
in
f_client
.
readlines
():
result
=
re
.
search
(
rf'^\[\s+\d+\](?P<direction>\[.+\]).*\s+(?P<bitrate>[0-9\.]+ [KMG]bits\/sec).*\s+(?P<role>\bsender|receiver\b)'
,
str
(
line
))
if
result
is
not
None
:
report
.
append
(
str
(
line
))
report_msg
+=
result
.
group
(
'role'
)
+
' '
+
result
.
group
(
'direction'
)
+
'
\t
= '
+
result
.
group
(
'bitrate'
)
+
'
\n
'
if
len
(
report
)
>
0
:
lock
.
acquire
()
statusQueue
.
put
(
0
)
statusQueue
.
put
(
device_id
)
statusQueue
.
put
(
UE_IPAddress
)
statusQueue
.
put
(
report_msg
)
logging
.
debug
(
'
\u001B
[1;37;45m TCP Bidir Iperf Result ('
+
UE_IPAddress
+
')
\u001B
[0m'
)
logging
.
debug
(
'
\u001B
[1;35m '
+
report_msg
+
'
\u001B
[0m'
)
lock
.
release
()
else
:
self
.
ping_iperf_wrong_exit
(
lock
,
UE_IPAddress
,
device_id
,
statusQueue
,
'Bidir TCP : Could not analyze from client log'
)
def
Iperf_analyzeV2Server
(
self
,
lock
,
UE_IPAddress
,
device_id
,
statusQueue
,
iperf_real_options
,
filename
,
type
):
def
Iperf_analyzeV2Server
(
self
,
lock
,
UE_IPAddress
,
device_id
,
statusQueue
,
iperf_real_options
,
filename
,
type
):
if
(
not
os
.
path
.
isfile
(
filename
)):
if
(
not
os
.
path
.
isfile
(
filename
)):
self
.
ping_iperf_wrong_exit
(
lock
,
UE_IPAddress
,
device_id
,
statusQueue
,
'Could not analyze from server log'
)
self
.
ping_iperf_wrong_exit
(
lock
,
UE_IPAddress
,
device_id
,
statusQueue
,
'Could not analyze from server log'
)
...
@@ -2342,14 +2371,19 @@ class OaiCiTest():
...
@@ -2342,14 +2371,19 @@ class OaiCiTest():
result
=
re
.
search
(
'TRF_IP_ADDR = (?P<trf_ip_addr>[0-9\.]+)'
,
SSH
.
getBefore
())
result
=
re
.
search
(
'TRF_IP_ADDR = (?P<trf_ip_addr>[0-9\.]+)'
,
SSH
.
getBefore
())
if
result
is
not
None
:
if
result
is
not
None
:
trf_gen_IP
=
result
.
group
(
'trf_ip_addr'
)
trf_gen_IP
=
result
.
group
(
'trf_ip_addr'
)
#kill iperf processes on EPC side
SSH
.
command
(
'docker exec -it prod-trf-gen /bin/bash -c "killall --signal SIGKILL iperf"'
,
'\$'
,
5
)
SSH
.
command
(
'docker exec -it prod-trf-gen /bin/bash -c "killall --signal SIGKILL iperf3"'
,
'\$'
,
5
)
SSH
.
close
()
SSH
.
close
()
#kill iperf processes on UE side before (in case there are still some remaining)
#kill iperf processes on UE side before (in case there are still some remaining)
SSH
.
open
(
Module_UE
.
HostIPAddress
,
Module_UE
.
HostUsername
,
Module_UE
.
HostPassword
)
SSH
.
open
(
Module_UE
.
HostIPAddress
,
Module_UE
.
HostUsername
,
Module_UE
.
HostPassword
)
cmd
=
'killall --signal=SIGKILL iperf'
cmd
=
'killall --signal=SIGKILL iperf'
SSH
.
command
(
cmd
,
'\$'
,
5
)
SSH
.
command
(
cmd
,
'\$'
,
5
)
cmd
=
'killall --signal=SIGKILL iperf3'
SSH
.
command
(
cmd
,
'\$'
,
5
)
SSH
.
close
()
SSH
.
close
()
iperf_time
=
self
.
Iperf_ComputeTime
()
iperf_time
=
self
.
Iperf_ComputeTime
()
if
self
.
iperf_direction
==
"DL"
:
if
self
.
iperf_direction
==
"DL"
:
logging
.
debug
(
"Iperf for Module in DL mode detected"
)
logging
.
debug
(
"Iperf for Module in DL mode detected"
)
#server side UE
#server side UE
...
@@ -2363,7 +2397,7 @@ class OaiCiTest():
...
@@ -2363,7 +2397,7 @@ class OaiCiTest():
#client side EPC
#client side EPC
SSH
.
open
(
EPC
.
IPAddress
,
EPC
.
UserName
,
EPC
.
Password
)
SSH
.
open
(
EPC
.
IPAddress
,
EPC
.
UserName
,
EPC
.
Password
)
client_filename
=
'iperf_client_'
+
self
.
testCase_id
+
'_'
+
self
.
ue_id
+
'.log'
client_filename
=
'iperf_client_'
+
self
.
testCase_id
+
'_'
+
self
.
ue_id
+
'.log'
SSH
.
command
(
'docker exec -it prod-trf-gen /bin/bash -c "killall --signal SIGKILL iperf"'
,
'\$'
,
5
)
iperf_cmd
=
'bin/iperf -c '
+
UE_IPAddress
+
' '
+
self
.
iperf_args
+
' 2>&1 > '
+
client_filename
iperf_cmd
=
'bin/iperf -c '
+
UE_IPAddress
+
' '
+
self
.
iperf_args
+
' 2>&1 > '
+
client_filename
cmd
=
'docker exec -it prod-trf-gen /bin/bash -c
\"
'
+
iperf_cmd
+
'
\"
'
cmd
=
'docker exec -it prod-trf-gen /bin/bash -c
\"
'
+
iperf_cmd
+
'
\"
'
SSH
.
command
(
cmd
,
'\$'
,
int
(
iperf_time
)
*
5.0
)
SSH
.
command
(
cmd
,
'\$'
,
int
(
iperf_time
)
*
5.0
)
...
@@ -2382,7 +2416,7 @@ class OaiCiTest():
...
@@ -2382,7 +2416,7 @@ class OaiCiTest():
#server side EPC
#server side EPC
SSH
.
open
(
EPC
.
IPAddress
,
EPC
.
UserName
,
EPC
.
Password
)
SSH
.
open
(
EPC
.
IPAddress
,
EPC
.
UserName
,
EPC
.
Password
)
server_filename
=
'iperf_server_'
+
self
.
testCase_id
+
'_'
+
self
.
ue_id
+
'.log'
server_filename
=
'iperf_server_'
+
self
.
testCase_id
+
'_'
+
self
.
ue_id
+
'.log'
SSH
.
command
(
'docker exec -it prod-trf-gen /bin/bash -c "killall --signal SIGKILL iperf"'
,
'\$'
,
5
)
iperf_cmd
=
'echo $USER; nohup bin/iperf -s -u 2>&1 > '
+
server_filename
iperf_cmd
=
'echo $USER; nohup bin/iperf -s -u 2>&1 > '
+
server_filename
cmd
=
'docker exec -d prod-trf-gen /bin/bash -c
\"
'
+
iperf_cmd
+
'
\"
'
cmd
=
'docker exec -d prod-trf-gen /bin/bash -c
\"
'
+
iperf_cmd
+
'
\"
'
SSH
.
command
(
cmd
,
'\$'
,
5
)
SSH
.
command
(
cmd
,
'\$'
,
5
)
...
@@ -2407,6 +2441,38 @@ class OaiCiTest():
...
@@ -2407,6 +2441,38 @@ class OaiCiTest():
SSH
.
copyin
(
EPC
.
IPAddress
,
EPC
.
UserName
,
EPC
.
Password
,
server_filename
,
'.'
)
SSH
.
copyin
(
EPC
.
IPAddress
,
EPC
.
UserName
,
EPC
.
Password
,
server_filename
,
'.'
)
#send for analysis
#send for analysis
self
.
Iperf_analyzeV2Server
(
lock
,
UE_IPAddress
,
device_id
,
statusQueue
,
self
.
iperf_args
,
server_filename
,
1
)
self
.
Iperf_analyzeV2Server
(
lock
,
UE_IPAddress
,
device_id
,
statusQueue
,
self
.
iperf_args
,
server_filename
,
1
)
elif
self
.
iperf_direction
==
"BIDIR"
:
logging
.
debug
(
"Iperf for Module in BIDIR mode detected"
)
#server side EPC
SSH
.
open
(
EPC
.
IPAddress
,
EPC
.
UserName
,
EPC
.
Password
)
server_filename
=
'iperf_server_'
+
self
.
testCase_id
+
'_'
+
self
.
ue_id
+
'.log'
iperf_cmd
=
'echo $USER; nohup /usr/local/bin/iperf3 -s 2>&1 > '
+
server_filename
cmd
=
'docker exec -d prod-trf-gen /bin/bash -c
\"
'
+
iperf_cmd
+
'
\"
'
SSH
.
command
(
cmd
,
'\$'
,
5
)
SSH
.
close
()
#client side UE
SSH
.
open
(
Module_UE
.
HostIPAddress
,
Module_UE
.
HostUsername
,
Module_UE
.
HostPassword
)
client_filename
=
'iperf_client_'
+
self
.
testCase_id
+
'_'
+
self
.
ue_id
+
'.log'
cmd
=
'rm '
+
client_filename
SSH
.
command
(
cmd
,
'\$'
,
5
)
SSH
.
command
(
'iperf3 -B '
+
UE_IPAddress
+
' -c '
+
trf_gen_IP
+
' '
+
self
.
iperf_args
+
' 2>&1 > '
+
client_filename
,
'\$'
,
int
(
iperf_time
)
*
5.0
)
SSH
.
close
()
#once client is done, retrieve the server file from container to EPC Host
SSH
.
open
(
EPC
.
IPAddress
,
EPC
.
UserName
,
EPC
.
Password
)
SSH
.
command
(
'docker cp prod-trf-gen:/iperf-2.0.13/'
+
server_filename
+
' '
+
EPC
.
SourceCodePath
,
'\$'
,
5
)
SSH
.
copyin
(
EPC
.
IPAddress
,
EPC
.
UserName
,
EPC
.
Password
,
EPC
.
SourceCodePath
+
'/'
+
server_filename
,
'.'
)
SSH
.
close
()
#copy the 2 resulting files locally
SSH
.
copyin
(
Module_UE
.
HostIPAddress
,
Module_UE
.
HostUsername
,
Module_UE
.
HostPassword
,
client_filename
,
'.'
)
SSH
.
copyin
(
EPC
.
IPAddress
,
EPC
.
UserName
,
EPC
.
Password
,
server_filename
,
'.'
)
#send for analysis
self
.
Iperf_analyzeV2BIDIR
(
lock
,
UE_IPAddress
,
device_id
,
statusQueue
,
server_filename
,
client_filename
)
else
:
else
:
logging
.
debug
(
"Incorrect or missing IPERF direction in XML"
)
logging
.
debug
(
"Incorrect or missing IPERF direction in XML"
)
...
@@ -2472,6 +2538,30 @@ class OaiCiTest():
...
@@ -2472,6 +2538,30 @@ class OaiCiTest():
#send for analysis
#send for analysis
filename
=
'iperf_server_'
+
self
.
testCase_id
+
'_'
+
self
.
ue_id
+
'.log'
filename
=
'iperf_server_'
+
self
.
testCase_id
+
'_'
+
self
.
ue_id
+
'.log'
self
.
Iperf_analyzeV2Server
(
lock
,
UE_IPAddress
,
device_id
,
statusQueue
,
self
.
iperf_args
,
filename
,
1
)
self
.
Iperf_analyzeV2Server
(
lock
,
UE_IPAddress
,
device_id
,
statusQueue
,
self
.
iperf_args
,
filename
,
1
)
elif
self
.
iperf_direction
==
"BIDIR"
:
logging
.
debug
(
"Iperf for Module in BIDIR mode detected"
)
#server side EPC
SSH
.
open
(
EPC
.
IPAddress
,
EPC
.
UserName
,
EPC
.
Password
)
server_filename
=
'iperf_server_'
+
self
.
testCase_id
+
'_'
+
self
.
ue_id
+
'.log'
cmd
=
'rm '
+
server_filename
SSH
.
command
(
cmd
,
'\$'
,
5
)
cmd
=
'echo $USER; nohup iperf3 -s 2>&1 > '
+
server_filename
+
' &'
SSH
.
command
(
cmd
,
'\$'
,
5
)
SSH
.
close
()
#client side UE
SSH
.
open
(
Module_UE
.
HostIPAddress
,
Module_UE
.
HostUsername
,
Module_UE
.
HostPassword
)
client_filename
=
'iperf_client_'
+
self
.
testCase_id
+
'_'
+
self
.
ue_id
+
'.log'
cmd
=
'rm '
+
client_filename
SSH
.
command
(
cmd
,
'\$'
,
5
)
SSH
.
command
(
'iperf3 -c 192.172.0.1 '
+
self
.
iperf_args
+
' 2>&1 > '
+
client_filename
,
'\$'
,
int
(
iperf_time
)
*
5.0
)
SSH
.
close
()
#copy the 2 resulting files locally
SSH
.
copyin
(
Module_UE
.
HostIPAddress
,
Module_UE
.
HostUsername
,
Module_UE
.
HostPassword
,
client_filename
,
'.'
)
SSH
.
copyin
(
EPC
.
IPAddress
,
EPC
.
UserName
,
EPC
.
Password
,
server_filename
,
'.'
)
#send for analysis
self
.
Iperf_analyzeV2BIDIR
(
lock
,
UE_IPAddress
,
device_id
,
statusQueue
,
server_filename
,
client_filename
)
else
:
else
:
logging
.
debug
(
"Incorrect or missing IPERF direction in XML"
)
logging
.
debug
(
"Incorrect or missing IPERF direction in XML"
)
...
...
ci-scripts/cls_physim.py
View file @
d9ed78ec
...
@@ -183,7 +183,7 @@ class PhySim:
...
@@ -183,7 +183,7 @@ class PhySim:
mySSH
.
open
(
self
.
eNBIpAddr
,
self
.
eNBUserName
,
self
.
eNBPassWord
)
mySSH
.
open
(
self
.
eNBIpAddr
,
self
.
eNBUserName
,
self
.
eNBPassWord
)
mySSH
.
command
(
'cd '
+
self
.
__workSpacePath
,
'\$'
,
5
)
mySSH
.
command
(
'cd '
+
self
.
__workSpacePath
,
'\$'
,
5
)
#run and redirect the results to a log file
#run and redirect the results to a log file
mySSH
.
command
(
self
.
__workSpacePath
+
'
phy_simulators
/build/ldpctest '
+
self
.
runargs
+
' >> '
+
self
.
__runLogFile
,
'\$'
,
30
)
mySSH
.
command
(
self
.
__workSpacePath
+
'
ran_build
/build/ldpctest '
+
self
.
runargs
+
' >> '
+
self
.
__runLogFile
,
'\$'
,
30
)
mySSH
.
close
()
mySSH
.
close
()
#return updated HTML to main
#return updated HTML to main
lHTML
=
html
.
HTMLManagement
()
lHTML
=
html
.
HTMLManagement
()
...
...
ci-scripts/cls_static_code_analysis.py
View file @
d9ed78ec
...
@@ -121,7 +121,7 @@ class StaticCodeAnalysis():
...
@@ -121,7 +121,7 @@ class StaticCodeAnalysis():
mySSH
.
command
(
'docker build --tag oai-cppcheck:xenial --file ci-scripts/docker/Dockerfile.cppcheck.xenial . > cmake_targets/log/cppcheck-xenial.txt 2>&1'
,
'\$'
,
600
)
mySSH
.
command
(
'docker build --tag oai-cppcheck:xenial --file ci-scripts/docker/Dockerfile.cppcheck.xenial . > cmake_targets/log/cppcheck-xenial.txt 2>&1'
,
'\$'
,
600
)
mySSH
.
command
(
'sed -e "s@xenial@bionic@" ci-scripts/docker/Dockerfile.cppcheck.xenial > ci-scripts/docker/Dockerfile.cppcheck.bionic'
,
'\$'
,
6
)
mySSH
.
command
(
'sed -e "s@xenial@bionic@" ci-scripts/docker/Dockerfile.cppcheck.xenial > ci-scripts/docker/Dockerfile.cppcheck.bionic'
,
'\$'
,
6
)
mySSH
.
command
(
'docker build --tag oai-cppcheck:bionic --file ci-scripts/docker/Dockerfile.cppcheck.bionic . > cmake_targets/log/cppcheck-bionic.txt 2>&1'
,
'\$'
,
600
)
mySSH
.
command
(
'docker build --tag oai-cppcheck:bionic --file ci-scripts/docker/Dockerfile.cppcheck.bionic . > cmake_targets/log/cppcheck-bionic.txt 2>&1'
,
'\$'
,
600
)
mySSH
.
command
(
'docker image rm oai-cppcheck:bionic oai-cppcheck:xenial || true'
,
'\$'
,
6
0
)
mySSH
.
command
(
'docker image rm oai-cppcheck:bionic oai-cppcheck:xenial || true'
,
'\$'
,
3
0
)
# Analyzing the logs
# Analyzing the logs
mySSH
.
command
(
'cd '
+
lSourcePath
+
'/cmake_targets'
,
'\$'
,
5
)
mySSH
.
command
(
'cd '
+
lSourcePath
+
'/cmake_targets'
,
'\$'
,
5
)
...
...
ci-scripts/main.py
View file @
d9ed78ec
...
@@ -313,7 +313,7 @@ def GetParametersFromXML(action):
...
@@ -313,7 +313,7 @@ def GetParametersFromXML(action):
CiTestObj
.
ue_id
=
""
CiTestObj
.
ue_id
=
""
else
:
else
:
CiTestObj
.
ue_id
=
ue_id
CiTestObj
.
ue_id
=
ue_id
CiTestObj
.
iperf_direction
=
test
.
findtext
(
'direction'
)
#used for modules only
CiTestObj
.
iperf_direction
=
test
.
findtext
(
'direction'
)
#used for modules only
CiTestObj
.
iperf_packetloss_threshold
=
test
.
findtext
(
'iperf_packetloss_threshold'
)
CiTestObj
.
iperf_packetloss_threshold
=
test
.
findtext
(
'iperf_packetloss_threshold'
)
iperf_bitrate_threshold
=
test
.
findtext
(
'iperf_bitrate_threshold'
)
iperf_bitrate_threshold
=
test
.
findtext
(
'iperf_bitrate_threshold'
)
if
(
iperf_bitrate_threshold
is
None
):
if
(
iperf_bitrate_threshold
is
None
):
...
@@ -914,15 +914,15 @@ elif re.match('^TesteNB$', mode, re.IGNORECASE) or re.match('^TestUE$', mode, re
...
@@ -914,15 +914,15 @@ elif re.match('^TesteNB$', mode, re.IGNORECASE) or re.match('^TestUE$', mode, re
if
CONTAINERS
.
exitStatus
==
1
:
if
CONTAINERS
.
exitStatus
==
1
:
RAN
.
prematureExit
=
True
RAN
.
prematureExit
=
True
elif
action
==
'UndeployGenObject'
:
elif
action
==
'UndeployGenObject'
:
CONTAINERS
.
UndeployGenObject
(
HTML
,
RAN
)
CONTAINERS
.
UndeployGenObject
(
HTML
,
RAN
,
CiTestObj
)
if
CONTAINERS
.
exitStatus
==
1
:
if
CONTAINERS
.
exitStatus
==
1
:
RAN
.
prematureExit
=
True
RAN
.
prematureExit
=
True
elif
action
==
'PingFromContainer'
:
elif
action
==
'PingFromContainer'
:
CONTAINERS
.
PingFromContainer
(
HTML
)
CONTAINERS
.
PingFromContainer
(
HTML
,
RAN
,
CiTestObj
)
if
CONTAINERS
.
exitStatus
==
1
:
if
CONTAINERS
.
exitStatus
==
1
:
RAN
.
prematureExit
=
True
RAN
.
prematureExit
=
True
elif
action
==
'IperfFromContainer'
:
elif
action
==
'IperfFromContainer'
:
CONTAINERS
.
IperfFromContainer
(
HTML
)
CONTAINERS
.
IperfFromContainer
(
HTML
,
RAN
)
if
CONTAINERS
.
exitStatus
==
1
:
if
CONTAINERS
.
exitStatus
==
1
:
RAN
.
prematureExit
=
True
RAN
.
prematureExit
=
True
else
:
else
:
...
...
ci-scripts/ran.py
View file @
d9ed78ec
...
@@ -493,9 +493,9 @@ class RANManagement():
...
@@ -493,9 +493,9 @@ class RANManagement():
conf_file
=
'../ci-scripts/stats_monitor_conf.yaml'
conf_file
=
'../ci-scripts/stats_monitor_conf.yaml'
if
self
.
eNB_Stats
==
'yes'
:
if
self
.
eNB_Stats
==
'yes'
:
if
(
self
.
air_interface
[
self
.
eNB_instance
]
==
'lte-softmodem'
)
or
(
self
.
air_interface
[
self
.
eNB_instance
]
==
'ocp-enb'
):
if
(
self
.
air_interface
[
self
.
eNB_instance
]
==
'lte-softmodem'
)
or
(
self
.
air_interface
[
self
.
eNB_instance
]
==
'ocp-enb'
):
mySSH
.
command
(
'echo $USER; nohup python3 '
+
monitor_file
+
' '
+
conf_file
+
' enb 2>&1 > enb_stats_monitor_execution.log &'
,
'\$'
,
5
)
mySSH
.
command
(
'echo $USER; nohup python3 '
+
monitor_file
+
' '
+
conf_file
+
'
'
+
self
.
testCase_id
+
'
enb 2>&1 > enb_stats_monitor_execution.log &'
,
'\$'
,
5
)
else
:
else
:
mySSH
.
command
(
'echo $USER; nohup python3 '
+
monitor_file
+
' '
+
conf_file
+
' gnb 2>&1 > gnb_stats_monitor_execution.log &'
,
'\$'
,
5
)
mySSH
.
command
(
'echo $USER; nohup python3 '
+
monitor_file
+
' '
+
conf_file
+
'
'
+
self
.
testCase_id
+
'
gnb 2>&1 > gnb_stats_monitor_execution.log &'
,
'\$'
,
5
)
...
...
ci-scripts/ran_dashboard/Hdashboard.py
View file @
d9ed78ec
...
@@ -544,6 +544,30 @@ class Dashboard:
...
@@ -544,6 +544,30 @@ class Dashboard:
})
})
editable_mr
.
save
()
editable_mr
.
save
()
def
AWSCleanup
(
self
,
mode
):
#first build MR list from aws S3 bucket
if
mode
!=
'report'
and
mode
!=
'delete'
:
print
(
"incorrect mode for awsclean"
)
return
aws_mr_list
=
[]
s3
=
boto3
.
resource
(
's3'
)
my_bucket
=
s3
.
Bucket
(
'oaitestdashboard'
)
for
my_bucket_object
in
my_bucket
.
objects
.
all
():
#MR objects are like MR1407/index.html
res
=
re
.
search
(
r'^MR([0-9]+)'
,
my_bucket_object
.
key
)
if
res
!=
None
:
aws_mr_list
.
append
(
res
.
group
(
1
))
#store MR number as a string
#open MR list from GIt already exists as an attribute of this class self.mr_list
#parse aws MR list and delete those MR that are no longer open
for
aws_mr
in
aws_mr_list
:
if
aws_mr
not
in
self
.
mr_list
:
if
mode
==
"report"
:
print
(
aws_mr
+
' can be deleted from AWS S3'
)
else
:
awspath
=
"MR"
+
aws_mr
+
"/"
print
(
'deleting '
+
aws_mr
)
my_bucket
.
objects
.
filter
(
Prefix
=
awspath
).
delete
()
...
@@ -579,6 +603,10 @@ def main():
...
@@ -579,6 +603,10 @@ def main():
htmlDash
.
PostGitNote
(
mr
,
commit
,
args
)
htmlDash
.
PostGitNote
(
mr
,
commit
,
args
)
else
:
else
:
print
(
"Not a Merge Request => this build is for testing/debug purpose, no report to git"
)
print
(
"Not a Merge Request => this build is for testing/debug purpose, no report to git"
)
elif
sys
.
argv
[
1
]
==
"awsclean"
:
mode
=
sys
.
argv
[
2
]
#report or delete
htmlDash
=
Dashboard
()
htmlDash
.
AWSCleanup
(
mode
)
else
:
else
:
print
(
"Wrong argument at position 1"
)
print
(
"Wrong argument at position 1"
)
...
...
ci-scripts/ran_dashboard/ran_dashboard_cfg.yaml
View file @
d9ed78ec
...
@@ -2,7 +2,7 @@ LTE-2x2 : #short name used in the dashboard
...
@@ -2,7 +2,7 @@ LTE-2x2 : #short name used in the dashboard
job
:
'
RAN-LTE-2x2-Module-OAIEPC'
#job name from Jenkins, used in the database
job
:
'
RAN-LTE-2x2-Module-OAIEPC'
#job name from Jenkins, used in the database
link
:
'
https://jenkins-oai.eurecom.fr/view/RAN/job/RAN-LTE-2x2-Module-OAIEPC'
link
:
'
https://jenkins-oai.eurecom.fr/view/RAN/job/RAN-LTE-2x2-Module-OAIEPC'
bench
:
'
Obelix-N310-OAIEPC-Quectel(nrmodule2)'
bench
:
'
Obelix-N310-OAIEPC-Quectel(nrmodule2)'
test
:
'
TDD,
40MHz,
MCS9,
26Mb
DL,
7Mb
UL'
test
:
'
T
M1
+
TM2,
T
DD,
40MHz,
MCS9,
26Mb
DL,
7Mb
UL'
NSA-B200
:
NSA-B200
:
job
:
'
RAN-NSA-B200-Module-LTEBOX'
job
:
'
RAN-NSA-B200-Module-LTEBOX'
link
:
'
https://jenkins-oai.eurecom.fr/view/RAN/job/RAN-NSA-B200-Module-LTEBOX'
link
:
'
https://jenkins-oai.eurecom.fr/view/RAN/job/RAN-NSA-B200-Module-LTEBOX'
...
@@ -18,14 +18,9 @@ SA-N310 :
...
@@ -18,14 +18,9 @@ SA-N310 :
link
:
'
https://jenkins-oai.eurecom.fr/view/RAN/job/RAN-SA-Module-CN5G'
link
:
'
https://jenkins-oai.eurecom.fr/view/RAN/job/RAN-SA-Module-CN5G'
bench
:
'
Asterix-N310-OAICN5G-Quectel(nrmodule2)'
bench
:
'
Asterix-N310-OAICN5G-Quectel(nrmodule2)'
test
:
'
TDD,
40MHz,
60Mb
DL,
3Mb
UL'
test
:
'
TDD,
40MHz,
60Mb
DL,
3Mb
UL'
SA-OAIUE-B200
:
SA-OAIUE-N310-X300
:
job
:
'
RAN-SA-OAIUE-B200-CN5G'
job
:
'
RAN-SA-OAIUE-N310-X300-CN5G'
link
:
'
https://jenkins-oai.eurecom.fr/view/RAN/job/RAN-SA-OAIUE-B200-CN5G/'
link
:
'
https://jenkins-oai.eurecom.fr/view/RAN/job/RAN-SA-OAIUE-N310-X300-CN5G/'
bench
:
'
Asterix-N310-OAICN5G-OAIUE-B200'
test
:
'
TDD,
40MHz,
Ping,
(to
be
implemented
:
iperf)'
SA-OAIUE-N310
:
job
:
'
RAN-SA-OAIUE-N310-CN5G'
link
:
'
https://jenkins-oai.eurecom.fr/view/RAN/job/RAN-SA-OAIUE-N310-CN5G/'
bench
:
'
Asterix-N310-OAICN5G-OAIUE-N310'
bench
:
'
Asterix-N310-OAICN5G-OAIUE-N310'
test
:
'
TDD,
40MHz,
Ping,
(to
be
implemented
:
iperf)'
test
:
'
TDD,
40MHz,
Ping,
(to
be
implemented
:
iperf)'
ci-scripts/stats_monitor.py
View file @
d9ed78ec
...
@@ -11,6 +11,7 @@ import pickle
...
@@ -11,6 +11,7 @@ import pickle
import
matplotlib.pyplot
as
plt
import
matplotlib.pyplot
as
plt
import
numpy
as
np
import
numpy
as
np
import
yaml
import
yaml
import
os
class
StatMonitor
():
class
StatMonitor
():
...
@@ -59,18 +60,21 @@ class StatMonitor():
...
@@ -59,18 +60,21 @@ class StatMonitor():
self
.
d
[
node_type
][
'mcs'
].
append
(
int
(
result
.
group
(
4
)))
self
.
d
[
node_type
][
'mcs'
].
append
(
int
(
result
.
group
(
4
)))
def
collect
(
self
,
node_type
):
def
collect
(
self
,
testcase_id
,
node_type
):
if
node_type
==
'enb'
:
if
node_type
==
'enb'
:
files
=
[
"L1_stats.log"
,
"MAC_stats.log"
,
"PDCP_stats.log"
,
"RRC_stats.log"
]
files
=
[
"L1_stats.log"
,
"MAC_stats.log"
,
"PDCP_stats.log"
,
"RRC_stats.log"
]
else
:
#'gnb'
else
:
#'gnb'
files
=
[
"nrL1_stats.log"
,
"nrMAC_stats.log"
,
"nrPDCP_stats.log"
,
"nrRRC_stats.log"
]
files
=
[
"nrL1_stats.log"
,
"nrMAC_stats.log"
,
"nrPDCP_stats.log"
,
"nrRRC_stats.log"
]
# append each file's contents to another file (prepended with CI-) for
#append each file's contents to another file (prepended with CI-) for debug
# post-mortem/debugging analysis
for
f
in
files
:
for
f
in
files
:
cmd
=
rf'cat
{
f
}
>> CI-
{
f
}
'
if
os
.
path
.
isfile
(
f
):
subprocess
.
Popen
(
shlex
.
split
(
cmd
))
cmd
=
'cat '
+
f
+
' >> CI-'
+
testcase_id
+
'-'
+
f
# join the files for further processing
subprocess
.
Popen
(
cmd
,
shell
=
True
)
cmd
=
rf'cat
{
shlex
.
join
(
files
)
}
'
#join the files for further processing
cmd
=
'cat '
for
f
in
files
:
if
os
.
path
.
isfile
(
f
):
cmd
+=
f
+
' '
process
=
subprocess
.
Popen
(
shlex
.
split
(
cmd
),
stdout
=
subprocess
.
PIPE
)
process
=
subprocess
.
Popen
(
shlex
.
split
(
cmd
),
stdout
=
subprocess
.
PIPE
)
output
=
process
.
stdout
.
readlines
()
output
=
process
.
stdout
.
readlines
()
if
node_type
==
'enb'
:
if
node_type
==
'enb'
:
...
@@ -79,7 +83,7 @@ class StatMonitor():
...
@@ -79,7 +83,7 @@ class StatMonitor():
self
.
process_gnb
(
node_type
,
output
)
self
.
process_gnb
(
node_type
,
output
)
def
graph
(
self
,
node_type
):
def
graph
(
self
,
testcase_id
,
node_type
):
for
page
in
self
.
d
[
node_type
][
'graph'
]:
#work out a set a graphs per page
for
page
in
self
.
d
[
node_type
][
'graph'
]:
#work out a set a graphs per page
col
=
1
col
=
1
figure
,
axis
=
plt
.
subplots
(
len
(
self
.
d
[
node_type
][
'graph'
][
page
]),
col
,
figsize
=
(
10
,
10
))
figure
,
axis
=
plt
.
subplots
(
len
(
self
.
d
[
node_type
][
'graph'
][
page
]),
col
,
figsize
=
(
10
,
10
))
...
@@ -110,13 +114,14 @@ class StatMonitor():
...
@@ -110,13 +114,14 @@ class StatMonitor():
plt
.
tight_layout
()
plt
.
tight_layout
()
#save as png
#save as png
plt
.
savefig
(
node_type
+
'_stats_monitor_'
+
page
+
'.png'
)
plt
.
savefig
(
node_type
+
'_stats_monitor_'
+
testcase_id
+
'_'
+
page
+
'.png'
)
if
__name__
==
"__main__"
:
if
__name__
==
"__main__"
:
cfg_filename
=
sys
.
argv
[
1
]
#yaml file as metrics config
cfg_filename
=
sys
.
argv
[
1
]
#yaml file as metrics config
node
=
sys
.
argv
[
2
]
#enb or gnb
testcase_id
=
sys
.
argv
[
2
]
#test case id to name files accordingly, especially if we have several tests in a sequence
node
=
sys
.
argv
[
3
]
#enb or gnb
mon
=
StatMonitor
(
cfg_filename
)
mon
=
StatMonitor
(
cfg_filename
)
#collecting stats when modem process is stopped
#collecting stats when modem process is stopped
...
@@ -124,11 +129,11 @@ if __name__ == "__main__":
...
@@ -124,11 +129,11 @@ if __name__ == "__main__":
process
=
subprocess
.
Popen
(
CMD
,
shell
=
True
,
stdout
=
subprocess
.
PIPE
)
process
=
subprocess
.
Popen
(
CMD
,
shell
=
True
,
stdout
=
subprocess
.
PIPE
)
output
=
process
.
stdout
.
readlines
()
output
=
process
.
stdout
.
readlines
()
while
len
(
output
)
!=
0
:
while
len
(
output
)
!=
0
:
mon
.
collect
(
node
)
mon
.
collect
(
testcase_id
,
node
)
process
=
subprocess
.
Popen
(
CMD
,
shell
=
True
,
stdout
=
subprocess
.
PIPE
)
process
=
subprocess
.
Popen
(
CMD
,
shell
=
True
,
stdout
=
subprocess
.
PIPE
)
output
=
process
.
stdout
.
readlines
()
output
=
process
.
stdout
.
readlines
()
time
.
sleep
(
1
)
time
.
sleep
(
1
)
print
(
'Process stopped'
)
print
(
'Process stopped'
)
with
open
(
node
+
'_stats_monitor.pickle'
,
'wb'
)
as
handle
:
with
open
(
node
+
'_stats_monitor.pickle'
,
'wb'
)
as
handle
:
pickle
.
dump
(
mon
.
d
,
handle
,
protocol
=
pickle
.
HIGHEST_PROTOCOL
)
pickle
.
dump
(
mon
.
d
,
handle
,
protocol
=
pickle
.
HIGHEST_PROTOCOL
)
mon
.
graph
(
node
)
mon
.
graph
(
testcase_id
,
node
)
ci-scripts/xml_files/container_4g_rfsim.xml
→
ci-scripts/xml_files/container_4g_rfsim
_fdd_05MHz
.xml
View file @
d9ed78ec
...
@@ -21,10 +21,9 @@
...
@@ -21,10 +21,9 @@
-->
-->
<testCaseList>
<testCaseList>
<htmlTabRef>
rfsim-4glte
</htmlTabRef>
<htmlTabRef>
rfsim-4glte
-fdd05mhz
</htmlTabRef>
<htmlTabName>
Testing 4G LTE RF sim - Monolithic eNB
</htmlTabName>
<htmlTabName>
Monolithic eNB - FDD 05MHz
</htmlTabName>
<htmlTabIcon>
wrench
</htmlTabIcon>
<htmlTabIcon>
wrench
</htmlTabIcon>
<repeatCount>
2
</repeatCount>
<TestCaseRequestedList>
<TestCaseRequestedList>
100011
100011
000011
000011
...
@@ -46,7 +45,7 @@
...
@@ -46,7 +45,7 @@
<testCase
id=
"000011"
>
<testCase
id=
"000011"
>
<class>
DeployGenObject
</class>
<class>
DeployGenObject
</class>
<desc>
Deploy Cassandra Database
</desc>
<desc>
Deploy Cassandra Database
</desc>
<yaml_path>
yaml_files/4g_rfsimulator
</yaml_path>
<yaml_path>
yaml_files/4g_rfsimulator
_fdd_05MHz
</yaml_path>
<services>
cassandra db_init
</services>
<services>
cassandra db_init
</services>
<nb_healthy>
1
</nb_healthy>
<nb_healthy>
1
</nb_healthy>
</testCase>
</testCase>
...
@@ -66,23 +65,23 @@
...
@@ -66,23 +65,23 @@
<testCase
id=
"000012"
>
<testCase
id=
"000012"
>
<class>
DeployGenObject
</class>
<class>
DeployGenObject
</class>
<desc>
Deploy OAI 4G CoreNetwork
</desc>
<desc>
Deploy OAI 4G CoreNetwork
</desc>
<yaml_path>
yaml_files/4g_rfsimulator
</yaml_path>
<yaml_path>
yaml_files/4g_rfsimulator
_fdd_05MHz
</yaml_path>
<services>
oai_hss oai_mme oai_spgwc oai_spgwu trf_gen
</services>
<services>
oai_hss oai_mme oai_spgwc oai_spgwu trf_gen
</services>
<nb_healthy>
6
</nb_healthy>
<nb_healthy>
6
</nb_healthy>
</testCase>
</testCase>
<testCase
id=
"000013"
>
<testCase
id=
"000013"
>
<class>
DeployGenObject
</class>
<class>
DeployGenObject
</class>
<desc>
Deploy OAI 4G eNB RF sim
</desc>
<desc>
Deploy OAI 4G eNB RF sim
(FDD 05MHz)
</desc>
<yaml_path>
yaml_files/4g_rfsimulator
</yaml_path>
<yaml_path>
yaml_files/4g_rfsimulator
_fdd_05MHz
</yaml_path>
<services>
enb
</services>
<services>
enb
</services>
<nb_healthy>
7
</nb_healthy>
<nb_healthy>
7
</nb_healthy>
</testCase>
</testCase>
<testCase
id=
"000014"
>
<testCase
id=
"000014"
>
<class>
DeployGenObject
</class>
<class>
DeployGenObject
</class>
<desc>
Deploy OAI 4G NR-UE RF sim
</desc>
<desc>
Deploy OAI 4G NR-UE RF sim
(FDD 05MHz)
</desc>
<yaml_path>
yaml_files/4g_rfsimulator
</yaml_path>
<yaml_path>
yaml_files/4g_rfsimulator
_fdd_05MHz
</yaml_path>
<services>
oai_ue0
</services>
<services>
oai_ue0
</services>
<nb_healthy>
8
</nb_healthy>
<nb_healthy>
8
</nb_healthy>
</testCase>
</testCase>
...
@@ -124,7 +123,7 @@
...
@@ -124,7 +123,7 @@
<testCase
id=
"100011"
>
<testCase
id=
"100011"
>
<class>
UndeployGenObject
</class>
<class>
UndeployGenObject
</class>
<desc>
Undeploy all OAI 4G stack
</desc>
<desc>
Undeploy all OAI 4G stack
</desc>
<yaml_path>
yaml_files/4g_rfsimulator
</yaml_path>
<yaml_path>
yaml_files/4g_rfsimulator
_fdd_05MHz
</yaml_path>
</testCase>
</testCase>
</testCaseList>
</testCaseList>
ci-scripts/xml_files/container_4g_rfsim_down.xml
→
ci-scripts/xml_files/container_4g_rfsim_
fdd_05MHz_
down.xml
View file @
d9ed78ec
...
@@ -21,8 +21,8 @@
...
@@ -21,8 +21,8 @@
-->
-->
<testCaseList>
<testCaseList>
<htmlTabRef>
rfsim-4glte-down
</htmlTabRef>
<htmlTabRef>
rfsim-4glte-
fdd05mhz-
down
</htmlTabRef>
<htmlTabName>
CleanUp 4G RF
- Monolithic eNB
</htmlTabName>
<htmlTabName>
CleanUp 4G RF
</htmlTabName>
<htmlTabIcon>
trash
</htmlTabIcon>
<htmlTabIcon>
trash
</htmlTabIcon>
<TestCaseRequestedList>
<TestCaseRequestedList>
100011
100011
...
@@ -32,7 +32,7 @@
...
@@ -32,7 +32,7 @@
<testCase
id=
"100011"
>
<testCase
id=
"100011"
>
<class>
UndeployGenObject
</class>
<class>
UndeployGenObject
</class>
<desc>
Undeploy all OAI 4G stack
</desc>
<desc>
Undeploy all OAI 4G stack
</desc>
<yaml_path>
yaml_files/4g_rfsimulator
</yaml_path>
<yaml_path>
yaml_files/4g_rfsimulator
_fdd_05MHz
</yaml_path>
</testCase>
</testCase>
</testCaseList>
</testCaseList>
ci-scripts/xml_files/container_4g_rfsim_fdd_05MHz_noS1.xml
0 → 100644
View file @
d9ed78ec
<!--
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-4glte-fdd05mhz-noS1
</htmlTabRef>
<htmlTabName>
Monolithic eNB - FDD 05MHz - noS1
</htmlTabName>
<htmlTabIcon>
wrench
</htmlTabIcon>
<TestCaseRequestedList>
100011
000013
000001
000014
000002
020011
020012
030011
030012
100011
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase
id=
"000001"
>
<class>
IdleSleep
</class>
<desc>
Sleep
</desc>
<idle_sleep_time_in_sec>
30
</idle_sleep_time_in_sec>
</testCase>
<testCase
id=
"000002"
>
<class>
IdleSleep
</class>
<desc>
Sleep
</desc>
<idle_sleep_time_in_sec>
10
</idle_sleep_time_in_sec>
</testCase>
<testCase
id=
"000013"
>
<class>
DeployGenObject
</class>
<desc>
Deploy OAI 4G eNB RF sim (FDD 05MHz)
</desc>
<yaml_path>
yaml_files/4g_rfsimulator_fdd_05MHz_noS1
</yaml_path>
<services>
enb
</services>
<nb_healthy>
1
</nb_healthy>
</testCase>
<testCase
id=
"000014"
>
<class>
DeployGenObject
</class>
<desc>
Deploy OAI 4G NR-UE RF sim (FDD 05MHz)
</desc>
<yaml_path>
yaml_files/4g_rfsimulator_fdd_05MHz_noS1
</yaml_path>
<services>
oai_ue0
</services>
<nb_healthy>
2
</nb_healthy>
</testCase>
<testCase
id=
"020011"
>
<class>
PingFromContainer
</class>
<desc>
Ping Traffic-Gen from LTE-UE
</desc>
<container_name>
rfsim4g-oai-lte-ue0
</container_name>
<options>
-I oaitun_ue1 -c 20 10.0.1.1
</options>
<loss_threshold>
5
</loss_threshold>
</testCase>
<testCase
id=
"020012"
>
<class>
PingFromContainer
</class>
<desc>
Ping LTE-UE from eNB
</desc>
<container_name>
rfsim4g-oai-enb
</container_name>
<options>
-I oaitun_enb1 -c 20 10.0.1.2
</options>
<loss_threshold>
5
</loss_threshold>
</testCase>
<testCase
id=
"030011"
>
<class>
IperfFromContainer
</class>
<desc>
Iperf UDP Downlink
</desc>
<server_container_name>
rfsim4g-oai-lte-ue0
</server_container_name>
<client_container_name>
rfsim4g-oai-enb
</client_container_name>
<server_options>
-B 10.0.1.2 -u -i 1 -s
</server_options>
<client_options>
-B 10.0.1.1 -c 10.0.1.2 -u -i 1 -t 30 -b 2M
</client_options>
</testCase>
<testCase
id=
"030012"
>
<class>
IperfFromContainer
</class>
<desc>
Iperf UDP Uplink
</desc>
<server_container_name>
rfsim4g-oai-enb
</server_container_name>
<client_container_name>
rfsim4g-oai-lte-ue0
</client_container_name>
<server_options>
-B 10.0.1.1 -u -i 1 -s
</server_options>
<client_options>
-B 10.0.1.2 -c 10.0.1.1 -u -i 1 -t 30 -b 1M
</client_options>
</testCase>
<testCase
id=
"100011"
>
<class>
UndeployGenObject
</class>
<desc>
Undeploy all OAI 4G stack
</desc>
<yaml_path>
yaml_files/4g_rfsimulator_fdd_05MHz_noS1
</yaml_path>
</testCase>
</testCaseList>
ci-scripts/xml_files/container_4g_rfsim_fdd_05MHz_noS1_down.xml
0 → 100644
View file @
d9ed78ec
<!--
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-4glte-fdd05mhz-nos1-down
</htmlTabRef>
<htmlTabName>
CleanUp 4G RF
</htmlTabName>
<htmlTabIcon>
trash
</htmlTabIcon>
<TestCaseRequestedList>
100011
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase
id=
"100011"
>
<class>
UndeployGenObject
</class>
<desc>
Undeploy all OAI 4G stack
</desc>
<yaml_path>
yaml_files/4g_rfsimulator_fdd_05MHz_noS1
</yaml_path>
</testCase>
</testCaseList>
ci-scripts/xml_files/container_4g_rfsim_fdd_10MHz.xml
0 → 100644
View file @
d9ed78ec
<!--
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-4glte-fdd10mhz
</htmlTabRef>
<htmlTabName>
Monolithic eNB - FDD 10MHz
</htmlTabName>
<htmlTabIcon>
wrench
</htmlTabIcon>
<TestCaseRequestedList>
100011
000011
000001
000012
000002
000013
000001
000014
000002
020011
020012
030011
030012
100011
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase
id=
"000011"
>
<class>
DeployGenObject
</class>
<desc>
Deploy Cassandra Database
</desc>
<yaml_path>
yaml_files/4g_rfsimulator_fdd_10MHz
</yaml_path>
<services>
cassandra db_init
</services>
<nb_healthy>
1
</nb_healthy>
</testCase>
<testCase
id=
"000001"
>
<class>
IdleSleep
</class>
<desc>
Sleep
</desc>
<idle_sleep_time_in_sec>
30
</idle_sleep_time_in_sec>
</testCase>
<testCase
id=
"000002"
>
<class>
IdleSleep
</class>
<desc>
Sleep
</desc>
<idle_sleep_time_in_sec>
10
</idle_sleep_time_in_sec>
</testCase>
<testCase
id=
"000012"
>
<class>
DeployGenObject
</class>
<desc>
Deploy OAI 4G CoreNetwork
</desc>
<yaml_path>
yaml_files/4g_rfsimulator_fdd_10MHz
</yaml_path>
<services>
oai_hss oai_mme oai_spgwc oai_spgwu trf_gen
</services>
<nb_healthy>
6
</nb_healthy>
</testCase>
<testCase
id=
"000013"
>
<class>
DeployGenObject
</class>
<desc>
Deploy OAI 4G eNB RF sim (FDD 10MHz)
</desc>
<yaml_path>
yaml_files/4g_rfsimulator_fdd_10MHz
</yaml_path>
<services>
enb
</services>
<nb_healthy>
7
</nb_healthy>
</testCase>
<testCase
id=
"000014"
>
<class>
DeployGenObject
</class>
<desc>
Deploy OAI 4G NR-UE RF sim (FDD 10MHz)
</desc>
<yaml_path>
yaml_files/4g_rfsimulator_fdd_10MHz
</yaml_path>
<services>
oai_ue0
</services>
<nb_healthy>
8
</nb_healthy>
</testCase>
<testCase
id=
"020011"
>
<class>
PingFromContainer
</class>
<desc>
Ping Traffic-Gen from LTE-UE
</desc>
<container_name>
rfsim4g-oai-lte-ue0
</container_name>
<options>
-I oaitun_ue1 -c 20 192.168.61.11
</options>
<loss_threshold>
5
</loss_threshold>
</testCase>
<testCase
id=
"020012"
>
<class>
PingFromContainer
</class>
<desc>
Ping LTE-UE from Traffic-Gen
</desc>
<container_name>
rfsim4g-trf-gen
</container_name>
<options>
-c 20 12.0.0.2
</options>
<loss_threshold>
5
</loss_threshold>
</testCase>
<testCase
id=
"030011"
>
<class>
IperfFromContainer
</class>
<desc>
Iperf UDP Downlink
</desc>
<server_container_name>
rfsim4g-oai-lte-ue0
</server_container_name>
<client_container_name>
rfsim4g-trf-gen
</client_container_name>
<server_options>
-B 12.0.0.2 -u -i 1 -s
</server_options>
<client_options>
-c 12.0.0.2 -u -i 1 -t 30 -b 2M
</client_options>
</testCase>
<testCase
id=
"030012"
>
<class>
IperfFromContainer
</class>
<desc>
Iperf UDP Uplink
</desc>
<server_container_name>
rfsim4g-trf-gen
</server_container_name>
<client_container_name>
rfsim4g-oai-lte-ue0
</client_container_name>
<server_options>
-u -i 1 -s
</server_options>
<client_options>
-B 12.0.0.2 -c 192.168.61.11 -u -i 1 -t 30 -b 1M
</client_options>
</testCase>
<testCase
id=
"100011"
>
<class>
UndeployGenObject
</class>
<desc>
Undeploy all OAI 4G stack
</desc>
<yaml_path>
yaml_files/4g_rfsimulator_fdd_10MHz
</yaml_path>
</testCase>
</testCaseList>
ci-scripts/xml_files/container_4g_rfsim_fdd_10MHz_down.xml
0 → 100644
View file @
d9ed78ec
<!--
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-4glte-fdd10mhz-down
</htmlTabRef>
<htmlTabName>
CleanUp 4G RF
</htmlTabName>
<htmlTabIcon>
trash
</htmlTabIcon>
<TestCaseRequestedList>
100011
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase
id=
"100011"
>
<class>
UndeployGenObject
</class>
<desc>
Undeploy all OAI 4G stack
</desc>
<yaml_path>
yaml_files/4g_rfsimulator_fdd_10MHz
</yaml_path>
</testCase>
</testCaseList>
ci-scripts/xml_files/container_4g_rfsim_fdd_20MHz.xml
0 → 100644
View file @
d9ed78ec
<!--
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-4glte-fdd20mhz
</htmlTabRef>
<htmlTabName>
Monolithic eNB - FDD 20MHz
</htmlTabName>
<htmlTabIcon>
wrench
</htmlTabIcon>
<TestCaseRequestedList>
100011
000011
000001
000012
000002
000013
000001
000014
000002
020011
020012
030011
030012
100011
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase
id=
"000011"
>
<class>
DeployGenObject
</class>
<desc>
Deploy Cassandra Database
</desc>
<yaml_path>
yaml_files/4g_rfsimulator_fdd_20MHz
</yaml_path>
<services>
cassandra db_init
</services>
<nb_healthy>
1
</nb_healthy>
</testCase>
<testCase
id=
"000001"
>
<class>
IdleSleep
</class>
<desc>
Sleep
</desc>
<idle_sleep_time_in_sec>
30
</idle_sleep_time_in_sec>
</testCase>
<testCase
id=
"000002"
>
<class>
IdleSleep
</class>
<desc>
Sleep
</desc>
<idle_sleep_time_in_sec>
10
</idle_sleep_time_in_sec>
</testCase>
<testCase
id=
"000012"
>
<class>
DeployGenObject
</class>
<desc>
Deploy OAI 4G CoreNetwork
</desc>
<yaml_path>
yaml_files/4g_rfsimulator_fdd_20MHz
</yaml_path>
<services>
oai_hss oai_mme oai_spgwc oai_spgwu trf_gen
</services>
<nb_healthy>
6
</nb_healthy>
</testCase>
<testCase
id=
"000013"
>
<class>
DeployGenObject
</class>
<desc>
Deploy OAI 4G eNB RF sim (FDD 20MHz)
</desc>
<yaml_path>
yaml_files/4g_rfsimulator_fdd_20MHz
</yaml_path>
<services>
enb
</services>
<nb_healthy>
7
</nb_healthy>
</testCase>
<testCase
id=
"000014"
>
<class>
DeployGenObject
</class>
<desc>
Deploy OAI 4G NR-UE RF sim (FDD 20MHz)
</desc>
<yaml_path>
yaml_files/4g_rfsimulator_fdd_20MHz
</yaml_path>
<services>
oai_ue0
</services>
<nb_healthy>
8
</nb_healthy>
</testCase>
<testCase
id=
"020011"
>
<class>
PingFromContainer
</class>
<desc>
Ping Traffic-Gen from LTE-UE
</desc>
<container_name>
rfsim4g-oai-lte-ue0
</container_name>
<options>
-I oaitun_ue1 -c 20 192.168.61.11
</options>
<loss_threshold>
5
</loss_threshold>
</testCase>
<testCase
id=
"020012"
>
<class>
PingFromContainer
</class>
<desc>
Ping LTE-UE from Traffic-Gen
</desc>
<container_name>
rfsim4g-trf-gen
</container_name>
<options>
-c 20 12.0.0.2
</options>
<loss_threshold>
5
</loss_threshold>
</testCase>
<testCase
id=
"030011"
>
<class>
IperfFromContainer
</class>
<desc>
Iperf UDP Downlink
</desc>
<server_container_name>
rfsim4g-oai-lte-ue0
</server_container_name>
<client_container_name>
rfsim4g-trf-gen
</client_container_name>
<server_options>
-B 12.0.0.2 -u -i 1 -s
</server_options>
<client_options>
-c 12.0.0.2 -u -i 1 -t 30 -b 2M
</client_options>
</testCase>
<testCase
id=
"030012"
>
<class>
IperfFromContainer
</class>
<desc>
Iperf UDP Uplink
</desc>
<server_container_name>
rfsim4g-trf-gen
</server_container_name>
<client_container_name>
rfsim4g-oai-lte-ue0
</client_container_name>
<server_options>
-u -i 1 -s
</server_options>
<client_options>
-B 12.0.0.2 -c 192.168.61.11 -u -i 1 -t 30 -b 1M
</client_options>
</testCase>
<testCase
id=
"100011"
>
<class>
UndeployGenObject
</class>
<desc>
Undeploy all OAI 4G stack
</desc>
<yaml_path>
yaml_files/4g_rfsimulator_fdd_20MHz
</yaml_path>
</testCase>
</testCaseList>
ci-scripts/xml_files/container_4g_rfsim_fdd_20MHz_down.xml
0 → 100644
View file @
d9ed78ec
<!--
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-4glte-fdd20mhz-down
</htmlTabRef>
<htmlTabName>
CleanUp 4G RF
</htmlTabName>
<htmlTabIcon>
trash
</htmlTabIcon>
<TestCaseRequestedList>
100011
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase
id=
"100011"
>
<class>
UndeployGenObject
</class>
<desc>
Undeploy all OAI 4G stack
</desc>
<yaml_path>
yaml_files/4g_rfsimulator_fdd_20MHz
</yaml_path>
</testCase>
</testCaseList>
ci-scripts/xml_files/container_4g_rfsim_tdd_05MHz.xml
0 → 100644
View file @
d9ed78ec
<!--
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-4glte-tdd05mhz
</htmlTabRef>
<htmlTabName>
Monolithic eNB - TDD 05MHz
</htmlTabName>
<htmlTabIcon>
wrench
</htmlTabIcon>
<repeatCount>
2
</repeatCount>
<TestCaseRequestedList>
100011
000011
000001
000012
000002
000013
000001
000014
000002
020011
020012
030011
030012
100011
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase
id=
"000011"
>
<class>
DeployGenObject
</class>
<desc>
Deploy Cassandra Database
</desc>
<yaml_path>
yaml_files/4g_rfsimulator_tdd_05MHz
</yaml_path>
<services>
cassandra db_init
</services>
<nb_healthy>
1
</nb_healthy>
</testCase>
<testCase
id=
"000001"
>
<class>
IdleSleep
</class>
<desc>
Sleep
</desc>
<idle_sleep_time_in_sec>
30
</idle_sleep_time_in_sec>
</testCase>
<testCase
id=
"000002"
>
<class>
IdleSleep
</class>
<desc>
Sleep
</desc>
<idle_sleep_time_in_sec>
10
</idle_sleep_time_in_sec>
</testCase>
<testCase
id=
"000012"
>
<class>
DeployGenObject
</class>
<desc>
Deploy OAI 4G CoreNetwork
</desc>
<yaml_path>
yaml_files/4g_rfsimulator_tdd_05MHz
</yaml_path>
<services>
oai_hss oai_mme oai_spgwc oai_spgwu trf_gen
</services>
<nb_healthy>
6
</nb_healthy>
</testCase>
<testCase
id=
"000013"
>
<class>
DeployGenObject
</class>
<desc>
Deploy OAI 4G eNB RF sim (TDD 05MHz)
</desc>
<yaml_path>
yaml_files/4g_rfsimulator_tdd_05MHz
</yaml_path>
<services>
enb
</services>
<nb_healthy>
7
</nb_healthy>
</testCase>
<testCase
id=
"000014"
>
<class>
DeployGenObject
</class>
<desc>
Deploy OAI 4G NR-UE RF sim (TDD 05MHz)
</desc>
<yaml_path>
yaml_files/4g_rfsimulator_tdd_05MHz
</yaml_path>
<services>
oai_ue0
</services>
<nb_healthy>
8
</nb_healthy>
</testCase>
<testCase
id=
"020011"
>
<class>
PingFromContainer
</class>
<desc>
Ping Traffic-Gen from LTE-UE
</desc>
<container_name>
rfsim4g-oai-lte-ue0
</container_name>
<options>
-I oaitun_ue1 -c 20 192.168.61.11
</options>
<loss_threshold>
5
</loss_threshold>
</testCase>
<testCase
id=
"020012"
>
<class>
PingFromContainer
</class>
<desc>
Ping LTE-UE from Traffic-Gen
</desc>
<container_name>
rfsim4g-trf-gen
</container_name>
<options>
-c 20 12.0.0.2
</options>
<loss_threshold>
5
</loss_threshold>
</testCase>
<testCase
id=
"030011"
>
<class>
IperfFromContainer
</class>
<desc>
Iperf UDP Downlink
</desc>
<server_container_name>
rfsim4g-oai-lte-ue0
</server_container_name>
<client_container_name>
rfsim4g-trf-gen
</client_container_name>
<server_options>
-B 12.0.0.2 -u -i 1 -s
</server_options>
<client_options>
-c 12.0.0.2 -u -i 1 -t 30 -b 2M
</client_options>
</testCase>
<testCase
id=
"030012"
>
<class>
IperfFromContainer
</class>
<desc>
Iperf UDP Uplink
</desc>
<server_container_name>
rfsim4g-trf-gen
</server_container_name>
<client_container_name>
rfsim4g-oai-lte-ue0
</client_container_name>
<server_options>
-u -i 1 -s
</server_options>
<client_options>
-B 12.0.0.2 -c 192.168.61.11 -u -i 1 -t 30 -b 1M
</client_options>
</testCase>
<testCase
id=
"100011"
>
<class>
UndeployGenObject
</class>
<desc>
Undeploy all OAI 4G stack
</desc>
<yaml_path>
yaml_files/4g_rfsimulator_tdd_05MHz
</yaml_path>
</testCase>
</testCaseList>
ci-scripts/xml_files/container_4g_rfsim_tdd_05MHz_down.xml
0 → 100644
View file @
d9ed78ec
<!--
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-4glte-tdd05mhz-down
</htmlTabRef>
<htmlTabName>
CleanUp 4G RF
</htmlTabName>
<htmlTabIcon>
trash
</htmlTabIcon>
<TestCaseRequestedList>
100011
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase
id=
"100011"
>
<class>
UndeployGenObject
</class>
<desc>
Undeploy all OAI 4G stack
</desc>
<yaml_path>
yaml_files/4g_rfsimulator_tdd_05MHz
</yaml_path>
</testCase>
</testCaseList>
ci-scripts/xml_files/fr1_nsa_quectel.xml
View file @
d9ed78ec
...
@@ -37,6 +37,8 @@
...
@@ -37,6 +37,8 @@
070003
070003
070002
070002
000001
000001
070002
000001
050000
050000
050001
050001
010002
010002
...
@@ -155,6 +157,14 @@
...
@@ -155,6 +157,14 @@
<iperf_profile>
single-ue
</iperf_profile>
<iperf_profile>
single-ue
</iperf_profile>
</testCase>
</testCase>
<testCase
id=
"070002"
>
<class>
Iperf
</class>
<desc>
iperf (BIDIR TCP)(10 sec)(single-ue profile)
</desc>
<iperf_args>
-t 10 --bidir
</iperf_args>
<direction>
BIDIR
</direction>
<id>
idefix
</id>
<iperf_profile>
single-ue
</iperf_profile>
</testCase>
<testCase
id=
"080000"
>
<testCase
id=
"080000"
>
<class>
Terminate_eNB
</class>
<class>
Terminate_eNB
</class>
...
...
ci-scripts/xml_files/fr1_sa_quectel.xml
View file @
d9ed78ec
...
@@ -34,6 +34,7 @@
...
@@ -34,6 +34,7 @@
050001
050001
070000
070000
070001
070001
070002
000001
000001
010002
010002
080000
080000
...
@@ -121,6 +122,15 @@
...
@@ -121,6 +122,15 @@
<iperf_profile>
single-ue
</iperf_profile>
<iperf_profile>
single-ue
</iperf_profile>
</testCase>
</testCase>
<testCase
id=
"070002"
>
<class>
Iperf
</class>
<desc>
iperf (BIDIR TCP)(10 sec)(single-ue profile)
</desc>
<iperf_args>
-t 10 --bidir
</iperf_args>
<direction>
BIDIR
</direction>
<id>
nrmodule2_quectel
</id>
<iperf_profile>
single-ue
</iperf_profile>
</testCase>
<testCase
id=
"080000"
>
<testCase
id=
"080000"
>
<class>
Terminate_eNB
</class>
<class>
Terminate_eNB
</class>
...
...
ci-scripts/yaml_files/4g_rfsimulator/README.md
→
ci-scripts/yaml_files/4g_rfsimulator
_fdd_05MHz
/README.md
View file @
d9ed78ec
File moved
ci-scripts/yaml_files/4g_rfsimulator/docker-compose.yml
→
ci-scripts/yaml_files/4g_rfsimulator
_fdd_05MHz
/docker-compose.yml
View file @
d9ed78ec
File moved
ci-scripts/yaml_files/4g_rfsimulator/oai_db.cql
→
ci-scripts/yaml_files/4g_rfsimulator
_fdd_05MHz
/oai_db.cql
View file @
d9ed78ec
File moved
ci-scripts/yaml_files/4g_rfsimulator_fdd_05MHz_noS1/docker-compose.yml
0 → 100644
View file @
d9ed78ec
version
:
'
3.8'
services
:
enb
:
image
:
oai-enb:develop
privileged
:
true
container_name
:
rfsim4g-oai-enb
networks
:
public_net
:
ipv4_address
:
192.168.61.20
environment
:
TZ
:
Europe/Paris
USE_FDD_MONO
:
'
yes'
RFSIMULATOR
:
enb
ENB_NAME
:
eNB-rf-sim
MCC
:
'
208'
MNC
:
'
96'
MNC_LENGTH
:
2
TAC
:
1
UTRA_BAND_ID
:
7
DL_FREQUENCY_IN_MHZ
:
2680
UL_FREQUENCY_OFFSET_IN_MHZ
:
120
NID_CELL
:
10
NB_PRB
:
25
MME_S1C_IP_ADDRESS
:
192.168.61.3
ENB_S1C_IF_NAME
:
eth0
ENB_S1C_IP_ADDRESS
:
192.168.61.20
ENB_S1U_IF_NAME
:
eth0
ENB_S1U_IP_ADDRESS
:
192.168.61.20
ENB_X2_IP_ADDRESS
:
192.168.61.20
FLEXRAN_ENABLED
:
'
no'
FLEXRAN_INTERFACE_NAME
:
eth0
FLEXRAN_IPV4_ADDRESS
:
192.168.61.10
USE_ADDITIONAL_OPTIONS
:
--rfsim --log_config.global_log_options level,nocolor,time --noS1
healthcheck
:
test
:
/bin/bash -c "pgrep lte-softmodem"
interval
:
10s
timeout
:
5s
retries
:
5
oai_ue0
:
image
:
oai-lte-ue:develop
privileged
:
true
container_name
:
rfsim4g-oai-lte-ue0
networks
:
public_net
:
ipv4_address
:
192.168.61.30
expose
:
-
"
10000"
environment
:
TZ
:
Europe/Paris
HOSTNAME
:
oai_ue0
RFSIMULATOR
:
192.168.61.20
MCC
:
'
208'
MNC
:
'
96'
SHORT_IMSI
:
'
0100000001'
LTE_KEY
:
'
fec86ba6eb707ed08905757b1bb44b8f'
OPC
:
'
c42449363bbad02b66d16bc975d77cc1'
MSISDN
:
'
001011234561010'
HPLMN
:
20896
USE_ADDITIONAL_OPTIONS
:
--rfsim -C 2680000000 -r 25 --ue-rxgain 140 --ue-txgain 120 --nokrnmod 1 --log_config.global_log_options level,nocolor,time --noS1
healthcheck
:
test
:
/bin/bash -c "pgrep lte-uesoftmodem"
interval
:
10s
timeout
:
5s
retries
:
5
networks
:
public_net
:
name
:
rfsim4g-oai-public-net
ipam
:
config
:
-
subnet
:
192.168.61.0/26
driver_opts
:
com.docker.network.bridge.name
:
"
rfsim4g-public"
ci-scripts/yaml_files/4g_rfsimulator_fdd_10MHz/docker-compose.yml
0 → 100644
View file @
d9ed78ec
version
:
'
3.8'
services
:
cassandra
:
image
:
cassandra:2.1
container_name
:
rfsim4g-cassandra
networks
:
private_net
:
ipv4_address
:
192.168.68.2
environment
:
CASSANDRA_CLUSTER_NAME
:
"
OAI
HSS
Cluster"
CASSANDRA_ENDPOINT_SNITCH
:
GossipingPropertyFileSnitch
healthcheck
:
test
:
/bin/bash -c "nodetool status"
interval
:
10s
timeout
:
5s
retries
:
5
db_init
:
image
:
cassandra:2.1
container_name
:
rfsim4g-db-init
depends_on
:
[
cassandra
]
deploy
:
restart_policy
:
condition
:
on-failure
max_attempts
:
10
networks
:
private_net
:
ipv4_address
:
192.168.68.4
volumes
:
-
../4g_rfsimulator_fdd_05MHz/oai_db.cql:/home/oai_db.cql
entrypoint
:
/bin/bash -c "cqlsh --file /home/oai_db.cql 192.168.68.2 && echo 'OK'"
oai_hss
:
image
:
oai-hss:latest
container_name
:
rfsim4g-oai-hss
privileged
:
true
depends_on
:
[
cassandra
]
networks
:
private_net
:
ipv4_address
:
192.168.68.3
public_net
:
ipv4_address
:
192.168.61.2
environment
:
REALM
:
openairinterface.org
HSS_FQDN
:
hss.openairinterface.org
PREFIX
:
/openair-hss/etc
cassandra_Server_IP
:
192.168.68.2
OP_KEY
:
1006020f0a478bf6b699f15c062e42b3
LTE_K
:
fec86ba6eb707ed08905757b1bb44b8f
APN1
:
oai.ipv4
APN2
:
internet
FIRST_IMSI
:
208960100000001
NB_USERS
:
10
healthcheck
:
test
:
/bin/bash -c "pgrep oai_hss"
interval
:
10s
timeout
:
5s
retries
:
5
oai_mme
:
image
:
oai-mme:latest
container_name
:
rfsim4g-oai-mme
privileged
:
true
depends_on
:
[
oai_hss
]
networks
:
public_net
:
ipv4_address
:
192.168.61.3
environment
:
REALM
:
openairinterface.org
PREFIX
:
/openair-mme/etc
INSTANCE
:
1
PID_DIRECTORY
:
/var/run
HSS_IP_ADDR
:
192.168.61.2
HSS_HOSTNAME
:
hss
HSS_FQDN
:
hss.openairinterface.org
HSS_REALM
:
openairinterface.org
MCC
:
'
208'
MNC
:
'
96'
MME_GID
:
32768
MME_CODE
:
3
TAC_0
:
1
TAC_1
:
2
TAC_2
:
3
MME_FQDN
:
mme.openairinterface.org
MME_S6A_IP_ADDR
:
192.168.61.3
MME_INTERFACE_NAME_FOR_S1_MME
:
eth0
MME_IPV4_ADDRESS_FOR_S1_MME
:
192.168.61.3
MME_INTERFACE_NAME_FOR_S11
:
eth0
MME_IPV4_ADDRESS_FOR_S11
:
192.168.61.3
MME_INTERFACE_NAME_FOR_S10
:
lo
MME_IPV4_ADDRESS_FOR_S10
:
127.0.0.10
OUTPUT
:
CONSOLE
SGW_IPV4_ADDRESS_FOR_S11_0
:
192.168.61.4
PEER_MME_IPV4_ADDRESS_FOR_S10_0
:
0.0.0.0
PEER_MME_IPV4_ADDRESS_FOR_S10_1
:
0.0.0.0
MCC_SGW_0
:
'
208'
MNC3_SGW_0
:
'
096'
TAC_LB_SGW_0
:
'
01'
TAC_HB_SGW_0
:
'
00'
MCC_MME_0
:
'
208'
MNC3_MME_0
:
'
096'
TAC_LB_MME_0
:
'
02'
TAC_HB_MME_0
:
'
00'
MCC_MME_1
:
'
208'
MNC3_MME_1
:
'
096'
TAC_LB_MME_1
:
'
03'
TAC_HB_MME_1
:
'
00'
TAC_LB_SGW_TEST_0
:
'
03'
TAC_HB_SGW_TEST_0
:
'
00'
SGW_IPV4_ADDRESS_FOR_S11_TEST_0
:
0.0.0.0
healthcheck
:
test
:
/bin/bash -c "pgrep oai_mme"
interval
:
10s
timeout
:
5s
retries
:
5
oai_spgwc
:
image
:
oai-spgwc:latest
privileged
:
true
depends_on
:
[
oai_mme
]
container_name
:
rfsim4g-oai-spgwc
networks
:
public_net
:
ipv4_address
:
192.168.61.4
environment
:
TZ
:
Europe/Paris
SGW_INTERFACE_NAME_FOR_S11
:
eth0
PGW_INTERFACE_NAME_FOR_SX
:
eth0
DEFAULT_DNS_IPV4_ADDRESS
:
192.168.18.129
DEFAULT_DNS_SEC_IPV4_ADDRESS
:
8.8.4.4
PUSH_PROTOCOL_OPTION
:
'
true'
APN_NI_1
:
oai.ipv4
APN_NI_2
:
oai.ipv4_2
DEFAULT_APN_NI_1
:
oai.ipv4
UE_IP_ADDRESS_POOL_1
:
'
12.0.0.2
-
12.0.0.254'
UE_IP_ADDRESS_POOL_2
:
'
12.1.1.2
-
12.1.1.254'
MCC
:
'
208'
MNC
:
'
96'
MNC03
:
'
096'
TAC
:
1
GW_ID
:
1
REALM
:
openairinterface.org
healthcheck
:
test
:
/bin/bash -c "pgrep oai_spgwc"
interval
:
10s
timeout
:
5s
retries
:
5
oai_spgwu
:
image
:
oai-spgwu-tiny:latest
privileged
:
true
container_name
:
rfsim4g-oai-spgwu-tiny
depends_on
:
[
oai_spgwc
]
networks
:
public_net
:
ipv4_address
:
192.168.61.5
environment
:
TZ
:
Europe/Paris
PID_DIRECTORY
:
/var/run
INSTANCE
:
1
SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP
:
eth0
PGW_INTERFACE_NAME_FOR_SGI
:
eth0
SGW_INTERFACE_NAME_FOR_SX
:
eth0
SPGWC0_IP_ADDRESS
:
192.168.61.4
NETWORK_UE_IP
:
'
12.0.0.0/24'
NETWORK_UE_NAT_OPTION
:
'
yes'
MCC
:
'
208'
MNC
:
'
96'
MNC03
:
'
096'
TAC
:
1
GW_ID
:
1
REALM
:
openairinterface.org
healthcheck
:
test
:
/bin/bash -c "pgrep oai_spgwu"
interval
:
10s
timeout
:
5s
retries
:
5
trf_gen
:
image
:
trf-gen:production
privileged
:
true
container_name
:
rfsim4g-trf-gen
networks
:
public_net
:
ipv4_address
:
192.168.61.11
entrypoint
:
/bin/bash -c "ip route add 12.0.0.0/24 via 192.168.61.5 dev eth0; sleep infinity"
healthcheck
:
test
:
/bin/bash -c "ping -c 2 192.168.61.5"
interval
:
10s
timeout
:
5s
retries
:
5
enb
:
image
:
oai-enb:develop
privileged
:
true
container_name
:
rfsim4g-oai-enb
networks
:
public_net
:
ipv4_address
:
192.168.61.20
environment
:
TZ
:
Europe/Paris
USE_FDD_MONO
:
'
yes'
RFSIMULATOR
:
enb
ENB_NAME
:
eNB-rf-sim
MCC
:
'
208'
MNC
:
'
96'
MNC_LENGTH
:
2
TAC
:
1
UTRA_BAND_ID
:
7
DL_FREQUENCY_IN_MHZ
:
2680
UL_FREQUENCY_OFFSET_IN_MHZ
:
120
NID_CELL
:
10
NB_PRB
:
50
MME_S1C_IP_ADDRESS
:
192.168.61.3
ENB_S1C_IF_NAME
:
eth0
ENB_S1C_IP_ADDRESS
:
192.168.61.20
ENB_S1U_IF_NAME
:
eth0
ENB_S1U_IP_ADDRESS
:
192.168.61.20
ENB_X2_IP_ADDRESS
:
192.168.61.20
FLEXRAN_ENABLED
:
'
no'
FLEXRAN_INTERFACE_NAME
:
eth0
FLEXRAN_IPV4_ADDRESS
:
192.168.61.10
USE_ADDITIONAL_OPTIONS
:
--rfsim --log_config.global_log_options level,nocolor,time
healthcheck
:
test
:
/bin/bash -c "pgrep lte-softmodem"
interval
:
10s
timeout
:
5s
retries
:
5
oai_ue0
:
image
:
oai-lte-ue:develop
privileged
:
true
container_name
:
rfsim4g-oai-lte-ue0
networks
:
public_net
:
ipv4_address
:
192.168.61.30
expose
:
-
"
10000"
environment
:
TZ
:
Europe/Paris
HOSTNAME
:
oai_ue0
RFSIMULATOR
:
192.168.61.20
MCC
:
'
208'
MNC
:
'
96'
SHORT_IMSI
:
'
0100000001'
LTE_KEY
:
'
fec86ba6eb707ed08905757b1bb44b8f'
OPC
:
'
c42449363bbad02b66d16bc975d77cc1'
MSISDN
:
'
001011234561010'
HPLMN
:
20896
USE_ADDITIONAL_OPTIONS
:
--rfsim -C 2680000000 -r 50 --ue-rxgain 140 --ue-txgain 120 --nokrnmod 1 --log_config.global_log_options level,nocolor,time
healthcheck
:
test
:
/bin/bash -c "pgrep lte-uesoftmodem"
interval
:
10s
timeout
:
5s
retries
:
5
networks
:
private_net
:
name
:
rfsim4g-oai-private-net
ipam
:
config
:
-
subnet
:
192.168.68.0/26
driver_opts
:
com.docker.network.bridge.name
:
"
rfsim4g-private"
public_net
:
name
:
rfsim4g-oai-public-net
ipam
:
config
:
-
subnet
:
192.168.61.0/26
driver_opts
:
com.docker.network.bridge.name
:
"
rfsim4g-public"
ci-scripts/yaml_files/4g_rfsimulator_fdd_20MHz/docker-compose.yml
0 → 100644
View file @
d9ed78ec
version
:
'
3.8'
services
:
cassandra
:
image
:
cassandra:2.1
container_name
:
rfsim4g-cassandra
networks
:
private_net
:
ipv4_address
:
192.168.68.2
environment
:
CASSANDRA_CLUSTER_NAME
:
"
OAI
HSS
Cluster"
CASSANDRA_ENDPOINT_SNITCH
:
GossipingPropertyFileSnitch
healthcheck
:
test
:
/bin/bash -c "nodetool status"
interval
:
10s
timeout
:
5s
retries
:
5
db_init
:
image
:
cassandra:2.1
container_name
:
rfsim4g-db-init
depends_on
:
[
cassandra
]
deploy
:
restart_policy
:
condition
:
on-failure
max_attempts
:
10
networks
:
private_net
:
ipv4_address
:
192.168.68.4
volumes
:
-
../4g_rfsimulator_fdd_05MHz/oai_db.cql:/home/oai_db.cql
entrypoint
:
/bin/bash -c "cqlsh --file /home/oai_db.cql 192.168.68.2 && echo 'OK'"
oai_hss
:
image
:
oai-hss:latest
container_name
:
rfsim4g-oai-hss
privileged
:
true
depends_on
:
[
cassandra
]
networks
:
private_net
:
ipv4_address
:
192.168.68.3
public_net
:
ipv4_address
:
192.168.61.2
environment
:
REALM
:
openairinterface.org
HSS_FQDN
:
hss.openairinterface.org
PREFIX
:
/openair-hss/etc
cassandra_Server_IP
:
192.168.68.2
OP_KEY
:
1006020f0a478bf6b699f15c062e42b3
LTE_K
:
fec86ba6eb707ed08905757b1bb44b8f
APN1
:
oai.ipv4
APN2
:
internet
FIRST_IMSI
:
208960100000001
NB_USERS
:
10
healthcheck
:
test
:
/bin/bash -c "pgrep oai_hss"
interval
:
10s
timeout
:
5s
retries
:
5
oai_mme
:
image
:
oai-mme:latest
container_name
:
rfsim4g-oai-mme
privileged
:
true
depends_on
:
[
oai_hss
]
networks
:
public_net
:
ipv4_address
:
192.168.61.3
environment
:
REALM
:
openairinterface.org
PREFIX
:
/openair-mme/etc
INSTANCE
:
1
PID_DIRECTORY
:
/var/run
HSS_IP_ADDR
:
192.168.61.2
HSS_HOSTNAME
:
hss
HSS_FQDN
:
hss.openairinterface.org
HSS_REALM
:
openairinterface.org
MCC
:
'
208'
MNC
:
'
96'
MME_GID
:
32768
MME_CODE
:
3
TAC_0
:
1
TAC_1
:
2
TAC_2
:
3
MME_FQDN
:
mme.openairinterface.org
MME_S6A_IP_ADDR
:
192.168.61.3
MME_INTERFACE_NAME_FOR_S1_MME
:
eth0
MME_IPV4_ADDRESS_FOR_S1_MME
:
192.168.61.3
MME_INTERFACE_NAME_FOR_S11
:
eth0
MME_IPV4_ADDRESS_FOR_S11
:
192.168.61.3
MME_INTERFACE_NAME_FOR_S10
:
lo
MME_IPV4_ADDRESS_FOR_S10
:
127.0.0.10
OUTPUT
:
CONSOLE
SGW_IPV4_ADDRESS_FOR_S11_0
:
192.168.61.4
PEER_MME_IPV4_ADDRESS_FOR_S10_0
:
0.0.0.0
PEER_MME_IPV4_ADDRESS_FOR_S10_1
:
0.0.0.0
MCC_SGW_0
:
'
208'
MNC3_SGW_0
:
'
096'
TAC_LB_SGW_0
:
'
01'
TAC_HB_SGW_0
:
'
00'
MCC_MME_0
:
'
208'
MNC3_MME_0
:
'
096'
TAC_LB_MME_0
:
'
02'
TAC_HB_MME_0
:
'
00'
MCC_MME_1
:
'
208'
MNC3_MME_1
:
'
096'
TAC_LB_MME_1
:
'
03'
TAC_HB_MME_1
:
'
00'
TAC_LB_SGW_TEST_0
:
'
03'
TAC_HB_SGW_TEST_0
:
'
00'
SGW_IPV4_ADDRESS_FOR_S11_TEST_0
:
0.0.0.0
healthcheck
:
test
:
/bin/bash -c "pgrep oai_mme"
interval
:
10s
timeout
:
5s
retries
:
5
oai_spgwc
:
image
:
oai-spgwc:latest
privileged
:
true
depends_on
:
[
oai_mme
]
container_name
:
rfsim4g-oai-spgwc
networks
:
public_net
:
ipv4_address
:
192.168.61.4
environment
:
TZ
:
Europe/Paris
SGW_INTERFACE_NAME_FOR_S11
:
eth0
PGW_INTERFACE_NAME_FOR_SX
:
eth0
DEFAULT_DNS_IPV4_ADDRESS
:
192.168.18.129
DEFAULT_DNS_SEC_IPV4_ADDRESS
:
8.8.4.4
PUSH_PROTOCOL_OPTION
:
'
true'
APN_NI_1
:
oai.ipv4
APN_NI_2
:
oai.ipv4_2
DEFAULT_APN_NI_1
:
oai.ipv4
UE_IP_ADDRESS_POOL_1
:
'
12.0.0.2
-
12.0.0.254'
UE_IP_ADDRESS_POOL_2
:
'
12.1.1.2
-
12.1.1.254'
MCC
:
'
208'
MNC
:
'
96'
MNC03
:
'
096'
TAC
:
1
GW_ID
:
1
REALM
:
openairinterface.org
healthcheck
:
test
:
/bin/bash -c "pgrep oai_spgwc"
interval
:
10s
timeout
:
5s
retries
:
5
oai_spgwu
:
image
:
oai-spgwu-tiny:latest
privileged
:
true
container_name
:
rfsim4g-oai-spgwu-tiny
depends_on
:
[
oai_spgwc
]
networks
:
public_net
:
ipv4_address
:
192.168.61.5
environment
:
TZ
:
Europe/Paris
PID_DIRECTORY
:
/var/run
INSTANCE
:
1
SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP
:
eth0
PGW_INTERFACE_NAME_FOR_SGI
:
eth0
SGW_INTERFACE_NAME_FOR_SX
:
eth0
SPGWC0_IP_ADDRESS
:
192.168.61.4
NETWORK_UE_IP
:
'
12.0.0.0/24'
NETWORK_UE_NAT_OPTION
:
'
yes'
MCC
:
'
208'
MNC
:
'
96'
MNC03
:
'
096'
TAC
:
1
GW_ID
:
1
REALM
:
openairinterface.org
healthcheck
:
test
:
/bin/bash -c "pgrep oai_spgwu"
interval
:
10s
timeout
:
5s
retries
:
5
trf_gen
:
image
:
trf-gen:production
privileged
:
true
container_name
:
rfsim4g-trf-gen
networks
:
public_net
:
ipv4_address
:
192.168.61.11
entrypoint
:
/bin/bash -c "ip route add 12.0.0.0/24 via 192.168.61.5 dev eth0; sleep infinity"
healthcheck
:
test
:
/bin/bash -c "ping -c 2 192.168.61.5"
interval
:
10s
timeout
:
5s
retries
:
5
enb
:
image
:
oai-enb:develop
privileged
:
true
container_name
:
rfsim4g-oai-enb
networks
:
public_net
:
ipv4_address
:
192.168.61.20
environment
:
TZ
:
Europe/Paris
USE_FDD_MONO
:
'
yes'
RFSIMULATOR
:
enb
ENB_NAME
:
eNB-rf-sim
MCC
:
'
208'
MNC
:
'
96'
MNC_LENGTH
:
2
TAC
:
1
UTRA_BAND_ID
:
7
DL_FREQUENCY_IN_MHZ
:
2680
UL_FREQUENCY_OFFSET_IN_MHZ
:
120
NID_CELL
:
10
NB_PRB
:
100
MME_S1C_IP_ADDRESS
:
192.168.61.3
ENB_S1C_IF_NAME
:
eth0
ENB_S1C_IP_ADDRESS
:
192.168.61.20
ENB_S1U_IF_NAME
:
eth0
ENB_S1U_IP_ADDRESS
:
192.168.61.20
ENB_X2_IP_ADDRESS
:
192.168.61.20
FLEXRAN_ENABLED
:
'
no'
FLEXRAN_INTERFACE_NAME
:
eth0
FLEXRAN_IPV4_ADDRESS
:
192.168.61.10
USE_ADDITIONAL_OPTIONS
:
--rfsim --log_config.global_log_options level,nocolor,time
healthcheck
:
test
:
/bin/bash -c "pgrep lte-softmodem"
interval
:
10s
timeout
:
5s
retries
:
5
oai_ue0
:
image
:
oai-lte-ue:develop
privileged
:
true
container_name
:
rfsim4g-oai-lte-ue0
networks
:
public_net
:
ipv4_address
:
192.168.61.30
expose
:
-
"
10000"
environment
:
TZ
:
Europe/Paris
HOSTNAME
:
oai_ue0
RFSIMULATOR
:
192.168.61.20
MCC
:
'
208'
MNC
:
'
96'
SHORT_IMSI
:
'
0100000001'
LTE_KEY
:
'
fec86ba6eb707ed08905757b1bb44b8f'
OPC
:
'
c42449363bbad02b66d16bc975d77cc1'
MSISDN
:
'
001011234561010'
HPLMN
:
20896
USE_ADDITIONAL_OPTIONS
:
--rfsim -C 2680000000 -r 100 --ue-rxgain 140 --ue-txgain 120 --nokrnmod 1 --log_config.global_log_options level,nocolor,time
healthcheck
:
test
:
/bin/bash -c "pgrep lte-uesoftmodem"
interval
:
10s
timeout
:
5s
retries
:
5
networks
:
private_net
:
name
:
rfsim4g-oai-private-net
ipam
:
config
:
-
subnet
:
192.168.68.0/26
driver_opts
:
com.docker.network.bridge.name
:
"
rfsim4g-private"
public_net
:
name
:
rfsim4g-oai-public-net
ipam
:
config
:
-
subnet
:
192.168.61.0/26
driver_opts
:
com.docker.network.bridge.name
:
"
rfsim4g-public"
ci-scripts/yaml_files/4g_rfsimulator_tdd_05MHz/docker-compose.yml
0 → 100644
View file @
d9ed78ec
version
:
'
3.8'
services
:
cassandra
:
image
:
cassandra:2.1
container_name
:
rfsim4g-cassandra
networks
:
private_net
:
ipv4_address
:
192.168.68.2
environment
:
CASSANDRA_CLUSTER_NAME
:
"
OAI
HSS
Cluster"
CASSANDRA_ENDPOINT_SNITCH
:
GossipingPropertyFileSnitch
healthcheck
:
test
:
/bin/bash -c "nodetool status"
interval
:
10s
timeout
:
5s
retries
:
5
db_init
:
image
:
cassandra:2.1
container_name
:
rfsim4g-db-init
depends_on
:
[
cassandra
]
deploy
:
restart_policy
:
condition
:
on-failure
max_attempts
:
10
networks
:
private_net
:
ipv4_address
:
192.168.68.4
volumes
:
-
../4g_rfsimulator_fdd_05MHz/oai_db.cql:/home/oai_db.cql
entrypoint
:
/bin/bash -c "cqlsh --file /home/oai_db.cql 192.168.68.2 && echo 'OK'"
oai_hss
:
image
:
oai-hss:latest
container_name
:
rfsim4g-oai-hss
privileged
:
true
depends_on
:
[
cassandra
]
networks
:
private_net
:
ipv4_address
:
192.168.68.3
public_net
:
ipv4_address
:
192.168.61.2
environment
:
REALM
:
openairinterface.org
HSS_FQDN
:
hss.openairinterface.org
PREFIX
:
/openair-hss/etc
cassandra_Server_IP
:
192.168.68.2
OP_KEY
:
1006020f0a478bf6b699f15c062e42b3
LTE_K
:
fec86ba6eb707ed08905757b1bb44b8f
APN1
:
oai.ipv4
APN2
:
internet
FIRST_IMSI
:
208960100000001
NB_USERS
:
10
healthcheck
:
test
:
/bin/bash -c "pgrep oai_hss"
interval
:
10s
timeout
:
5s
retries
:
5
oai_mme
:
image
:
oai-mme:latest
container_name
:
rfsim4g-oai-mme
privileged
:
true
depends_on
:
[
oai_hss
]
networks
:
public_net
:
ipv4_address
:
192.168.61.3
environment
:
REALM
:
openairinterface.org
PREFIX
:
/openair-mme/etc
INSTANCE
:
1
PID_DIRECTORY
:
/var/run
HSS_IP_ADDR
:
192.168.61.2
HSS_HOSTNAME
:
hss
HSS_FQDN
:
hss.openairinterface.org
HSS_REALM
:
openairinterface.org
MCC
:
'
208'
MNC
:
'
96'
MME_GID
:
32768
MME_CODE
:
3
TAC_0
:
1
TAC_1
:
2
TAC_2
:
3
MME_FQDN
:
mme.openairinterface.org
MME_S6A_IP_ADDR
:
192.168.61.3
MME_INTERFACE_NAME_FOR_S1_MME
:
eth0
MME_IPV4_ADDRESS_FOR_S1_MME
:
192.168.61.3
MME_INTERFACE_NAME_FOR_S11
:
eth0
MME_IPV4_ADDRESS_FOR_S11
:
192.168.61.3
MME_INTERFACE_NAME_FOR_S10
:
lo
MME_IPV4_ADDRESS_FOR_S10
:
127.0.0.10
OUTPUT
:
CONSOLE
SGW_IPV4_ADDRESS_FOR_S11_0
:
192.168.61.4
PEER_MME_IPV4_ADDRESS_FOR_S10_0
:
0.0.0.0
PEER_MME_IPV4_ADDRESS_FOR_S10_1
:
0.0.0.0
MCC_SGW_0
:
'
208'
MNC3_SGW_0
:
'
096'
TAC_LB_SGW_0
:
'
01'
TAC_HB_SGW_0
:
'
00'
MCC_MME_0
:
'
208'
MNC3_MME_0
:
'
096'
TAC_LB_MME_0
:
'
02'
TAC_HB_MME_0
:
'
00'
MCC_MME_1
:
'
208'
MNC3_MME_1
:
'
096'
TAC_LB_MME_1
:
'
03'
TAC_HB_MME_1
:
'
00'
TAC_LB_SGW_TEST_0
:
'
03'
TAC_HB_SGW_TEST_0
:
'
00'
SGW_IPV4_ADDRESS_FOR_S11_TEST_0
:
0.0.0.0
healthcheck
:
test
:
/bin/bash -c "pgrep oai_mme"
interval
:
10s
timeout
:
5s
retries
:
5
oai_spgwc
:
image
:
oai-spgwc:latest
privileged
:
true
depends_on
:
[
oai_mme
]
container_name
:
rfsim4g-oai-spgwc
networks
:
public_net
:
ipv4_address
:
192.168.61.4
environment
:
TZ
:
Europe/Paris
SGW_INTERFACE_NAME_FOR_S11
:
eth0
PGW_INTERFACE_NAME_FOR_SX
:
eth0
DEFAULT_DNS_IPV4_ADDRESS
:
192.168.18.129
DEFAULT_DNS_SEC_IPV4_ADDRESS
:
8.8.4.4
PUSH_PROTOCOL_OPTION
:
'
true'
APN_NI_1
:
oai.ipv4
APN_NI_2
:
oai.ipv4_2
DEFAULT_APN_NI_1
:
oai.ipv4
UE_IP_ADDRESS_POOL_1
:
'
12.0.0.2
-
12.0.0.254'
UE_IP_ADDRESS_POOL_2
:
'
12.1.1.2
-
12.1.1.254'
MCC
:
'
208'
MNC
:
'
96'
MNC03
:
'
096'
TAC
:
1
GW_ID
:
1
REALM
:
openairinterface.org
healthcheck
:
test
:
/bin/bash -c "pgrep oai_spgwc"
interval
:
10s
timeout
:
5s
retries
:
5
oai_spgwu
:
image
:
oai-spgwu-tiny:latest
privileged
:
true
container_name
:
rfsim4g-oai-spgwu-tiny
depends_on
:
[
oai_spgwc
]
networks
:
public_net
:
ipv4_address
:
192.168.61.5
environment
:
TZ
:
Europe/Paris
PID_DIRECTORY
:
/var/run
INSTANCE
:
1
SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP
:
eth0
PGW_INTERFACE_NAME_FOR_SGI
:
eth0
SGW_INTERFACE_NAME_FOR_SX
:
eth0
SPGWC0_IP_ADDRESS
:
192.168.61.4
NETWORK_UE_IP
:
'
12.0.0.0/24'
NETWORK_UE_NAT_OPTION
:
'
yes'
MCC
:
'
208'
MNC
:
'
96'
MNC03
:
'
096'
TAC
:
1
GW_ID
:
1
REALM
:
openairinterface.org
healthcheck
:
test
:
/bin/bash -c "pgrep oai_spgwu"
interval
:
10s
timeout
:
5s
retries
:
5
trf_gen
:
image
:
trf-gen:production
privileged
:
true
container_name
:
rfsim4g-trf-gen
networks
:
public_net
:
ipv4_address
:
192.168.61.11
entrypoint
:
/bin/bash -c "ip route add 12.0.0.0/24 via 192.168.61.5 dev eth0; sleep infinity"
healthcheck
:
test
:
/bin/bash -c "ping -c 2 192.168.61.5"
interval
:
10s
timeout
:
5s
retries
:
5
enb
:
image
:
oai-enb:develop
privileged
:
true
container_name
:
rfsim4g-oai-enb
networks
:
public_net
:
ipv4_address
:
192.168.61.20
environment
:
TZ
:
Europe/Paris
USE_TDD_MONO
:
'
yes'
RFSIMULATOR
:
enb
ENB_NAME
:
eNB-rf-sim
MCC
:
'
208'
MNC
:
'
96'
MNC_LENGTH
:
2
TAC
:
1
UTRA_BAND_ID
:
38
DL_FREQUENCY_IN_MHZ
:
2605
UL_FREQUENCY_OFFSET_IN_MHZ
:
0
NID_CELL
:
10
NB_PRB
:
25
MME_S1C_IP_ADDRESS
:
192.168.61.3
S1C_IF_NAME
:
eth0
F1_CU_IP_ADDRESS
:
192.168.61.20
S1U_IF_NAME
:
eth0
F1_CU_IP_ADDRESS
:
192.168.61.20
FLEXRAN_ENABLED
:
'
no'
FLEXRAN_INTERFACE_NAME
:
eth0
FLEXRAN_IPV4_ADDRESS
:
192.168.61.10
USE_ADDITIONAL_OPTIONS
:
--rfsim --log_config.global_log_options level,nocolor,time
healthcheck
:
test
:
/bin/bash -c "pgrep lte-softmodem"
interval
:
10s
timeout
:
5s
retries
:
5
oai_ue0
:
image
:
oai-lte-ue:develop
privileged
:
true
container_name
:
rfsim4g-oai-lte-ue0
networks
:
public_net
:
ipv4_address
:
192.168.61.30
expose
:
-
"
10000"
environment
:
TZ
:
Europe/Paris
HOSTNAME
:
oai_ue0
RFSIMULATOR
:
192.168.61.20
MCC
:
'
208'
MNC
:
'
96'
SHORT_IMSI
:
'
0100000001'
LTE_KEY
:
'
fec86ba6eb707ed08905757b1bb44b8f'
OPC
:
'
c42449363bbad02b66d16bc975d77cc1'
MSISDN
:
'
001011234561010'
HPLMN
:
20896
USE_ADDITIONAL_OPTIONS
:
--rfsim -T -C 2605000000 -r 25 --ue-rxgain 140 --ue-txgain 120 --nokrnmod 1 --log_config.global_log_options level,nocolor,time
healthcheck
:
test
:
/bin/bash -c "pgrep lte-uesoftmodem"
interval
:
10s
timeout
:
5s
retries
:
5
networks
:
private_net
:
name
:
rfsim4g-oai-private-net
ipam
:
config
:
-
subnet
:
192.168.68.0/26
driver_opts
:
com.docker.network.bridge.name
:
"
rfsim4g-private"
public_net
:
name
:
rfsim4g-oai-public-net
ipam
:
config
:
-
subnet
:
192.168.61.0/26
driver_opts
:
com.docker.network.bridge.name
:
"
rfsim4g-public"
cmake_targets/CMakeLists.txt
View file @
d9ed78ec
...
@@ -343,8 +343,8 @@ set(CMAKE_CXX_FLAGS
...
@@ -343,8 +343,8 @@ set(CMAKE_CXX_FLAGS
if
(
SANITIZE_ADDRESS
)
if
(
SANITIZE_ADDRESS
)
set
(
CMAKE_C_FLAGS
"
${
CMAKE_C_FLAGS
}
-fsanitize=address -fno-common"
)
set
(
CMAKE_C_FLAGS
"
${
CMAKE_C_FLAGS
}
-fsanitize=address -fno-
omit-frame-pointer -static-libasan -fno-
common"
)
set
(
CMAKE_CXX_FLAGS
"
${
CMAKE_CXX_FLAGS
}
-fsanitize=address -fno-common"
)
set
(
CMAKE_CXX_FLAGS
"
${
CMAKE_CXX_FLAGS
}
-fsanitize=address -fno-
omit-frame-pointer -static-libasan -fno-
common"
)
endif
()
endif
()
add_definitions
(
"-DASN_DISABLE_OER_SUPPORT"
)
add_definitions
(
"-DASN_DISABLE_OER_SUPPORT"
)
...
...
cmake_targets/build_oai
View file @
d9ed78ec
...
@@ -57,7 +57,7 @@ BUILD_DOXYGEN=0
...
@@ -57,7 +57,7 @@ BUILD_DOXYGEN=0
BUILD_COVERITY_SCAN
=
0
BUILD_COVERITY_SCAN
=
0
T_TRACER
=
"True"
T_TRACER
=
"True"
DISABLE_HARDWARE_DEPENDENCY
=
"False"
DISABLE_HARDWARE_DEPENDENCY
=
"False"
CMAKE_BUILD_TYPE
=
""
CMAKE_BUILD_TYPE
=
"
RelWithDebInfo
"
CMAKE_CMD
=
"
$CMAKE
"
CMAKE_CMD
=
"
$CMAKE
"
UE_AUTOTEST_TRACE
=
"False"
UE_AUTOTEST_TRACE
=
"False"
UE_DEBUG_TRACE
=
"False"
UE_DEBUG_TRACE
=
"False"
...
@@ -585,15 +585,12 @@ function main() {
...
@@ -585,15 +585,12 @@ function main() {
echo_info
"3. building the compilation directives ..."
echo_info
"3. building the compilation directives ..."
DIR
=
$OPENAIR_DIR
/cmake_targets
DIR
=
$OPENAIR_DIR
/cmake_targets
if
[
"
$SIMUS_PHY
"
=
"1"
-o
"
$SIMUS_CORE
"
=
"1"
]
;
then
if
[
"
$T_TRACER
"
=
"False"
]
;
then
build_dir
=
phy_simulators
else
if
[
"
$T_TRACER
"
=
"False"
]
;
then
build_dir
=
ran_build_noLOG
build_dir
=
ran_build_noLOG
else
else
build_dir
=
ran_build
build_dir
=
ran_build
fi
fi
fi
[
"
$CLEAN
"
=
"1"
]
&&
rm
-rf
$DIR
/
$build_dir
/build
[
"
$CLEAN
"
=
"1"
]
&&
rm
-rf
$DIR
/
$build_dir
/build
mkdir
-p
$DIR
/
$build_dir
/build
mkdir
-p
$DIR
/
$build_dir
/build
...
@@ -601,84 +598,81 @@ function main() {
...
@@ -601,84 +598,81 @@ function main() {
config_libconfig_shlib
=
params_libconfig
config_libconfig_shlib
=
params_libconfig
# first generate the CMakefile in the right directory
# first generate the CMakefile in the right directory
if
[
"
$eNB
"
=
"1"
-o
"
$eNBocp
"
=
"1"
-o
"
$UE
"
=
"1"
-o
"
$gNB
"
=
"1"
-o
"
$RU
"
=
"1"
-o
"
$nrUE
"
=
"1"
-o
"
$HW
"
=
"EXMIMO"
-o
"
$ittiSIM
"
=
"1"
-o
"
$rfsimNas
"
=
"1"
]
;
then
# softmodem compilation
# softmodem compilation
cmake_file
=
$DIR
/
$build_dir
/CMakeLists.txt
echo
"cmake_minimum_required(VERSION 2.8)"
>
$cmake_file
cmake_file
=
$DIR
/
$build_dir
/CMakeLists.txt
echo
"project (OpenAirInterface)"
>>
$cmake_file
echo
"cmake_minimum_required(VERSION 2.8)"
>
$cmake_file
echo
"set ( CMAKE_BUILD_TYPE
$CMAKE_BUILD_TYPE
)"
>>
$cmake_file
echo
"project (OpenAirInterface)"
>>
$cmake_file
echo
"set ( CFLAGS_PROCESSOR_USER
\"
$CFLAGS_PROCESSOR_USER
\"
)"
>>
$cmake_file
echo
"set ( CMAKE_BUILD_TYPE
$CMAKE_BUILD_TYPE
)"
>>
$cmake_file
echo
"set ( UE_EXPANSION
$UE_EXPANSION
)"
>>
$cmake_file
echo
"set ( CFLAGS_PROCESSOR_USER
\"
$CFLAGS_PROCESSOR_USER
\"
)"
>>
$cmake_file
# echo "set ( PHY_TX_THREAD $UE_EXPANSION )" >> $cmake_file
echo
"set ( UE_EXPANSION
$UE_EXPANSION
)"
>>
$cmake_file
echo
"set ( PRE_SCD_THREAD
$UE_EXPANSION
)"
>>
$cmake_file
# echo "set ( PHY_TX_THREAD $UE_EXPANSION )" >> $cmake_file
echo
"set ( ENABLE_VCD_FIFO
$VCD_TIMING
)"
>>
$cmake_file
echo
"set ( PRE_SCD_THREAD
$UE_EXPANSION
)"
>>
$cmake_file
echo
"set ( RF_BOARD
\"
${
HW
}
\"
)"
>>
$cmake_file
echo
"set ( ENABLE_VCD_FIFO
$VCD_TIMING
)"
>>
$cmake_file
echo
"set ( TRANSP_PRO
\"
${
TP
}
\"
)"
>>
$cmake_file
echo
"set ( RF_BOARD
\"
${
HW
}
\"
)"
>>
$cmake_file
echo
"set ( PACKAGE_NAME
\"
${
exec
}
\"
)"
>>
$cmake_file
echo
"set ( TRANSP_PRO
\"
${
TP
}
\"
)"
>>
$cmake_file
echo
"set ( DEADLINE_SCHEDULER
\"
${
DEADLINE_SCHEDULER_FLAG_USER
}
\"
)"
>>
$cmake_file
echo
"set ( PACKAGE_NAME
\"
${
exec
}
\"
)"
>>
$cmake_file
echo
"set ( CPU_AFFINITY
\"
${
CPU_AFFINITY_FLAG_USER
}
\"
)"
>>
$cmake_file
echo
"set ( DEADLINE_SCHEDULER
\"
${
DEADLINE_SCHEDULER_FLAG_USER
}
\"
)"
>>
$cmake_file
echo
"set ( T_TRACER
$T_TRACER
)"
>>
$cmake_file
echo
"set ( CPU_AFFINITY
\"
${
CPU_AFFINITY_FLAG_USER
}
\"
)"
>>
$cmake_file
echo
"set ( UE_AUTOTEST_TRACE
$UE_AUTOTEST_TRACE
)"
>>
$cmake_file
echo
"set ( T_TRACER
$T_TRACER
)"
>>
$cmake_file
echo
"set ( UE_DEBUG_TRACE
$UE_DEBUG_TRACE
)"
>>
$cmake_file
echo
"set ( UE_AUTOTEST_TRACE
$UE_AUTOTEST_TRACE
)"
>>
$cmake_file
echo
"set ( UE_TIMING_TRACE
$UE_TIMING_TRACE
)"
>>
$cmake_file
echo
"set ( UE_DEBUG_TRACE
$UE_DEBUG_TRACE
)"
>>
$cmake_file
echo
"set ( USRP_REC_PLAY
$USRP_REC_PLAY
)"
>>
$cmake_file
echo
"set ( UE_TIMING_TRACE
$UE_TIMING_TRACE
)"
>>
$cmake_file
echo
"set ( SKIP_SHARED_LIB_FLAG
$SKIP_SHARED_LIB_FLAG
)"
>>
$cmake_file
echo
"set ( USRP_REC_PLAY
$USRP_REC_PLAY
)"
>>
$cmake_file
echo
"set ( ITTI_SIM
$ITTI_SIM
)"
>>
$cmake_file
echo
"set ( SKIP_SHARED_LIB_FLAG
$SKIP_SHARED_LIB_FLAG
)"
>>
$cmake_file
echo
"set ( SANITIZE_ADDRESS
$SANITIZE_ADDRESS
)"
>>
$cmake_file
echo
"set ( ITTI_SIM
$ITTI_SIM
)"
>>
$cmake_file
echo
'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)'
>>
$cmake_file
echo
"set ( SANITIZE_ADDRESS
$SANITIZE_ADDRESS
)"
>>
$cmake_file
cd
$DIR
/
$build_dir
/build
echo
'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)'
>>
$cmake_file
eval
$CMAKE_CMD
cd
$DIR
/
$build_dir
/build
eval
$CMAKE_CMD
execlist
=
""
if
[
"
$eNB
"
=
"1"
]
;
then
execlist
=
""
if
[
"
$eNB
"
=
"1"
]
;
then
execlist
=
"
$execlist
lte-softmodem"
execlist
=
"
$execlist
lte-softmodem"
fi
fi
if
[
"
$eNBocp
"
=
"1"
]
;
then
if
[
"
$eNBocp
"
=
"1"
]
;
then
execlist
=
"
$execlist
ocp-enb"
execlist
=
"
$execlist
ocp-enb"
fi
fi
if
[
"
$gNB
"
=
"1"
]
;
then
if
[
"
$gNB
"
=
"1"
]
;
then
execlist
=
"
$execlist
nr-softmodem"
execlist
=
"
$execlist
nr-softmodem"
fi
fi
if
[
"
$RU
"
=
"1"
]
;
then
if
[
"
$RU
"
=
"1"
]
;
then
execlist
=
"
$execlist
oairu"
execlist
=
"
$execlist
oairu"
fi
fi
if
[
"
$UE
"
=
1
]
;
then
if
[
"
$UE
"
=
1
]
;
then
execlist
=
"
$execlist
lte-uesoftmodem"
execlist
=
"
$execlist
lte-uesoftmodem"
fi
fi
if
[
"
$nrUE
"
=
1
]
;
then
if
[
"
$nrUE
"
=
1
]
;
then
execlist
=
"
$execlist
nr-uesoftmodem"
execlist
=
"
$execlist
nr-uesoftmodem"
fi
fi
if
[
"
$ittiSIM
"
=
"1"
]
;
then
if
[
"
$ittiSIM
"
=
"1"
]
;
then
execlist
=
"
$execlist
nr-ittisim"
execlist
=
"
$execlist
nr-ittisim"
fi
fi
for
f
in
$execlist
;
do
for
f
in
$execlist
;
do
echo_info
"Compiling
$f
..."
echo_info
"Compiling
$f
..."
compilations
\
compilations
\
$build_dir
$f
\
$build_dir
$f
\
$f
$dbin
/
$f
.
$REL
$f
$dbin
/
$f
.
$REL
done
done
# mandatory shared libraries common to UE and (e/g)NB
# mandatory shared libraries common to UE and (e/g)NB
if
[
"
$SKIP_SHARED_LIB_FLAG
"
=
"False"
]
;
then
if
[
"
$SKIP_SHARED_LIB_FLAG
"
=
"False"
]
;
then
echo_info
"Building shared libraries common to UE and gNB"
echo_info
"Building shared libraries common to UE and gNB"
compilations
\
$build_dir
$config_libconfig_shlib
\
lib
$config_libconfig_shlib
.so
$dbin
/lib
$config_libconfig_shlib
.so
compilations
\
compilations
\
$build_dir
$config_libconfig_shlib
\
lib
$config_libconfig_shlib
.so
$dbin
/lib
$config_libconfig_shlib
.so
compilations
\
$build_dir
coding
\
$build_dir
coding
\
libcoding.so
$dbin
/libcoding.so
libcoding.so
$dbin
/libcoding.so
fi
fi
fi
if
[
"
$UE
"
=
1
]
;
then
if
[
"
$UE
"
=
1
]
;
then
echo_info
"Compiling UE specific part"
echo_info
"Compiling UE specific part"
...
@@ -727,11 +721,8 @@ function main() {
...
@@ -727,11 +721,8 @@ function main() {
fi
fi
fi
fi
if
[
"
$SIMUS_PHY
"
=
"1"
-o
"
$SIMUS_CORE
"
=
"1"
]
;
then
cd
$DIR
/
$build_dir
/build
cd
$DIR
/
$build_dir
/build
eval
$CMAKE_CMD
fi
##################
##################
# PHY simulators #
# PHY simulators #
##################
##################
...
@@ -742,11 +733,11 @@ function main() {
...
@@ -742,11 +733,11 @@ function main() {
# simlist="ldpctest"
# simlist="ldpctest"
for
f
in
$simlist
;
do
for
f
in
$simlist
;
do
compilations
\
compilations
\
phy_simulators
$f
\
ran_build
$f
\
$f
$dbin
/
$f
.
$REL
$f
$dbin
/
$f
.
$REL
done
done
compilations
\
compilations
\
phy_simulators
coding
\
ran_build
coding
\
libcoding.so
$dbin
/libcoding.so
libcoding.so
$dbin
/libcoding.so
# compilations \
# compilations \
# lte-simulators $config_libconfig_shlib \
# lte-simulators $config_libconfig_shlib \
...
@@ -761,7 +752,7 @@ function main() {
...
@@ -761,7 +752,7 @@ function main() {
simlist
=
"secu_knas_encrypt_eia1 secu_kenb aes128_ctr_encrypt aes128_ctr_decrypt secu_knas_encrypt_eea2 secu_knas secu_knas_encrypt_eea1 kdf aes128_cmac_encrypt secu_knas_encrypt_eia2"
simlist
=
"secu_knas_encrypt_eia1 secu_kenb aes128_ctr_encrypt aes128_ctr_decrypt secu_knas_encrypt_eea2 secu_knas secu_knas_encrypt_eea1 kdf aes128_cmac_encrypt secu_knas_encrypt_eia2"
for
f
in
$simlist
;
do
for
f
in
$simlist
;
do
compilations
\
compilations
\
phy_simulators
test_
$f
\
ran_build
test_
$f
\
test_
$f
$dbin
/test_
$f
.
$REL
test_
$f
$dbin
/test_
$f
.
$REL
done
done
fi
fi
...
...
cmake_targets/install_external_packages.ubuntu20
View file @
d9ed78ec
...
@@ -135,7 +135,6 @@ clean_all_files() {
...
@@ -135,7 +135,6 @@ clean_all_files() {
rm
-rf
"
$dir
"
/ran_build/build
rm
-rf
"
$dir
"
/ran_build/build
rm
-rf
"
$dir
"
/ran_build_noLOG/build
rm
-rf
"
$dir
"
/ran_build_noLOG/build
rm
-rf
"
$dir
"
/lte-simulators/build
rm
-rf
"
$dir
"
/lte-simulators/build
rm
-rf
"
$dir
"
/phy_simulators/build
rm
-rf
"
$dir
"
/nas_sim_tools/build
rm
-rf
"
$dir
"
/nas_sim_tools/build
rm
-rf
"
$dir
"
/oaisim_build_oai/build
rm
-rf
"
$dir
"
/oaisim_build_oai/build
rm
-rf
"
$dir
"
/oaisim_build_oai/CMakeLists.txt
rm
-rf
"
$dir
"
/oaisim_build_oai/CMakeLists.txt
...
...
cmake_targets/phy_simulators
0 → 120000
View file @
d9ed78ec
ran_build/
\ No newline at end of file
cmake_targets/phy_simulators/CMakeLists.txt
deleted
100755 → 0
View file @
c30f478d
cmake_minimum_required
(
VERSION 2.8
)
project
(
OpenAirInterface
)
set
(
CMAKE_BUILD_TYPE
)
set
(
CFLAGS_PROCESSOR_USER
""
)
set
(
UE_EXPANSION False
)
set
(
PRE_SCD_THREAD False
)
set
(
ENABLE_VCD_FIFO False
)
set
(
RF_BOARD
"None"
)
set
(
TRANSP_PRO
"None"
)
set
(
PACKAGE_NAME
""
)
set
(
DEADLINE_SCHEDULER
"False"
)
set
(
CPU_AFFINITY
"False"
)
set
(
T_TRACER True
)
set
(
UE_AUTOTEST_TRACE False
)
set
(
UE_DEBUG_TRACE False
)
set
(
UE_TIMING_TRACE False
)
set
(
USRP_REC_PLAY False
)
set
(
SKIP_SHARED_LIB_FLAG False
)
set
(
PHYSIM True
)
set
(
RU 0
)
include
(
${
CMAKE_CURRENT_SOURCE_DIR
}
/../CMakeLists.txt
)
cmake_targets/tools/build_helper
View file @
d9ed78ec
...
@@ -168,7 +168,7 @@ clean_all_files() {
...
@@ -168,7 +168,7 @@ clean_all_files() {
rm -rf $dir/log $OPENAIR_DIR/targets/bin/*
rm -rf $dir/log $OPENAIR_DIR/targets/bin/*
rm -rf $dir/ran_build $dir/ran_build_noLOG
rm -rf $dir/ran_build $dir/ran_build_noLOG
rm -rf $dir/lte-simulators/build
rm -rf $dir/lte-simulators/build
rm -rf $dir/
phy_simulators/build $dir/
nas_sim_tools/build
rm -rf $dir/nas_sim_tools/build
rm -rf $dir/oaisim_build_oai/build $dir/oaisim_build_oai/CMakeLists.txt
rm -rf $dir/oaisim_build_oai/build $dir/oaisim_build_oai/CMakeLists.txt
rm -rf $dir/autotests/bin $dir/autotests/log $dir/autotests/*/build
rm -rf $dir/autotests/bin $dir/autotests/log $dir/autotests/*/build
}
}
...
...
doc/BUILD.md
View file @
d9ed78ec
...
@@ -60,7 +60,7 @@ cd cmake_targets/
...
@@ -60,7 +60,7 @@ cd cmake_targets/
./build_oai -I --phy_simulators
./build_oai -I --phy_simulators
```
```
After completing the build, the binaries are available in the cmake_targets/
phy_simulators
/build directory.
After completing the build, the binaries are available in the cmake_targets/
ran_build
/build directory.
A copy is also available in the target/bin directory, with all binaries suffixed by the 3GPP release number, today
**.Rel15**
.
A copy is also available in the target/bin directory, with all binaries suffixed by the 3GPP release number, today
**.Rel15**
.
...
...
docker/Dockerfile.phySim.rhel8.2
View file @
d9ed78ec
...
@@ -85,10 +85,10 @@ COPY --from=phy-sim-build \
...
@@ -85,10 +85,10 @@ COPY --from=phy-sim-build \
/lib64/liblapack.so.3 \
/lib64/liblapack.so.3 \
/lib64/libexslt.so.0 \
/lib64/libexslt.so.0 \
/lib64/libxslt.so.1 \
/lib64/libxslt.so.1 \
/oai-ran/cmake_targets/
phy_simulators
/build/libdfts.so \
/oai-ran/cmake_targets/
ran_build
/build/libdfts.so \
/oai-ran/cmake_targets/
phy_simulators
/build/libSIMU.so \
/oai-ran/cmake_targets/
ran_build
/build/libSIMU.so \
/oai-ran/cmake_targets/
phy_simulators
/build/libldpc.so \
/oai-ran/cmake_targets/
ran_build
/build/libldpc.so \
/oai-ran/cmake_targets/
phy_simulators
/build/libldpc_orig.so \
/oai-ran/cmake_targets/
ran_build
/build/libldpc_orig.so \
/usr/local/lib/
/usr/local/lib/
RUN ldconfig
RUN ldconfig
...
...
openair1/PHY/NR_TRANSPORT/nr_csi_rs.c
View file @
d9ed78ec
...
@@ -35,7 +35,7 @@ void nr_generate_csi_rs(PHY_VARS_gNB *gNB,
...
@@ -35,7 +35,7 @@ void nr_generate_csi_rs(PHY_VARS_gNB *gNB,
NR_DL_FRAME_PARMS
frame_parms
=
gNB
->
frame_parms
;
NR_DL_FRAME_PARMS
frame_parms
=
gNB
->
frame_parms
;
int32_t
**
txdataF
=
gNB
->
common_vars
.
txdataF
;
int32_t
**
txdataF
=
gNB
->
common_vars
.
txdataF
;
int
txdataF_offset
=
(
slot
%
2
)
*
frame_parms
.
samples_per_slot_wCP
;
int
txdataF_offset
=
slot
*
frame_parms
.
samples_per_slot_wCP
;
uint32_t
**
gold_csi_rs
=
gNB
->
nr_gold_csi_rs
[
slot
];
uint32_t
**
gold_csi_rs
=
gNB
->
nr_gold_csi_rs
[
slot
];
int16_t
mod_csi
[
frame_parms
.
symbols_per_slot
][
NR_MAX_CSI_RS_LENGTH
>>
1
]
__attribute__
((
aligned
(
16
)));;
int16_t
mod_csi
[
frame_parms
.
symbols_per_slot
][
NR_MAX_CSI_RS_LENGTH
>>
1
]
__attribute__
((
aligned
(
16
)));;
uint16_t
b
=
csi_params
.
freq_domain
;
uint16_t
b
=
csi_params
.
freq_domain
;
...
...
openair1/PHY/NR_TRANSPORT/nr_dci.c
View file @
d9ed78ec
...
@@ -66,12 +66,11 @@ void nr_pdcch_scrambling(uint32_t *in,
...
@@ -66,12 +66,11 @@ void nr_pdcch_scrambling(uint32_t *in,
}
}
}
}
void
nr_generate_dci
(
PHY_VARS_gNB
*
gNB
,
void
nr_generate_dci
(
nfapi_nr_dl_tti_pdcch_pdu_rel15_t
*
pdcch_pdu_rel15
,
nfapi_nr_dl_tti_pdcch_pdu_rel15_t
*
pdcch_pdu_rel15
,
uint32_t
**
gold_pdcch_dmrs
,
uint32_t
**
gold_pdcch_dmrs
,
int32_t
*
txdataF
,
int32_t
*
txdataF
,
int16_t
amp
,
int16_t
amp
,
NR_DL_FRAME_PARMS
*
frame_parms
)
{
NR_DL_FRAME_PARMS
*
frame_parms
)
{
int16_t
mod_dmrs
[
NR_MAX_CSET_DURATION
][
NR_MAX_PDCCH_DMRS_LENGTH
>>
1
]
__attribute__
((
aligned
(
16
)));
// 3 for the max coreset duration
int16_t
mod_dmrs
[
NR_MAX_CSET_DURATION
][
NR_MAX_PDCCH_DMRS_LENGTH
>>
1
]
__attribute__
((
aligned
(
16
)));
// 3 for the max coreset duration
uint16_t
cset_start_sc
;
uint16_t
cset_start_sc
;
...
@@ -84,7 +83,8 @@ void nr_generate_dci(PHY_VARS_gNB *gNB,
...
@@ -84,7 +83,8 @@ void nr_generate_dci(PHY_VARS_gNB *gNB,
int
n_rb
;
int
n_rb
;
// compute rb_offset and n_prb based on frequency allocation
// compute rb_offset and n_prb based on frequency allocation
nr_fill_cce_list
(
gNB
,
0
,
pdcch_pdu_rel15
);
nr_cce_t
cce_list
[
MAX_DCI_CORESET
][
NR_MAX_PDCCH_AGG_LEVEL
];
nr_fill_cce_list
(
cce_list
,
0
,
pdcch_pdu_rel15
);
get_coreset_rballoc
(
pdcch_pdu_rel15
->
FreqDomainResource
,
&
n_rb
,
&
rb_offset
);
get_coreset_rballoc
(
pdcch_pdu_rel15
->
FreqDomainResource
,
&
n_rb
,
&
rb_offset
);
cset_start_sc
=
frame_parms
->
first_carrier_offset
+
(
pdcch_pdu_rel15
->
BWPStart
+
rb_offset
)
*
NR_NB_SC_PER_RB
;
cset_start_sc
=
frame_parms
->
first_carrier_offset
+
(
pdcch_pdu_rel15
->
BWPStart
+
rb_offset
)
*
NR_NB_SC_PER_RB
;
...
@@ -175,7 +175,7 @@ void nr_generate_dci(PHY_VARS_gNB *gNB,
...
@@ -175,7 +175,7 @@ void nr_generate_dci(PHY_VARS_gNB *gNB,
int
reg_list_order
[
NR_MAX_PDCCH_AGG_LEVEL
]
=
{};
int
reg_list_order
[
NR_MAX_PDCCH_AGG_LEVEL
]
=
{};
for
(
int
p
=
0
;
p
<
NR_MAX_PDCCH_AGG_LEVEL
;
p
++
)
{
for
(
int
p
=
0
;
p
<
NR_MAX_PDCCH_AGG_LEVEL
;
p
++
)
{
for
(
int
p2
=
0
;
p2
<
dci_pdu
->
AggregationLevel
;
p2
++
)
{
for
(
int
p2
=
0
;
p2
<
dci_pdu
->
AggregationLevel
;
p2
++
)
{
if
(
gNB
->
cce_list
[
d
][
p2
].
reg_list
[
0
].
reg_idx
==
p
*
NR_NB_REG_PER_CCE
)
{
if
(
cce_list
[
d
][
p2
].
reg_list
[
0
].
reg_idx
==
p
*
NR_NB_REG_PER_CCE
)
{
reg_list_order
[
reg_list_index
]
=
p2
;
reg_list_order
[
reg_list_index
]
=
p2
;
reg_list_index
++
;
reg_list_index
++
;
break
;
break
;
...
@@ -191,7 +191,7 @@ void nr_generate_dci(PHY_VARS_gNB *gNB,
...
@@ -191,7 +191,7 @@ void nr_generate_dci(PHY_VARS_gNB *gNB,
for
(
int
reg_in_cce_idx
=
0
;
reg_in_cce_idx
<
NR_NB_REG_PER_CCE
;
reg_in_cce_idx
++
)
{
for
(
int
reg_in_cce_idx
=
0
;
reg_in_cce_idx
<
NR_NB_REG_PER_CCE
;
reg_in_cce_idx
++
)
{
k
=
cset_start_sc
+
gNB
->
cce_list
[
d
][
cce_idx
].
reg_list
[
reg_in_cce_idx
].
start_sc_idx
;
k
=
cset_start_sc
+
cce_list
[
d
][
cce_idx
].
reg_list
[
reg_in_cce_idx
].
start_sc_idx
;
if
(
k
>=
frame_parms
->
ofdm_symbol_size
)
if
(
k
>=
frame_parms
->
ofdm_symbol_size
)
k
-=
frame_parms
->
ofdm_symbol_size
;
k
-=
frame_parms
->
ofdm_symbol_size
;
...
@@ -200,9 +200,9 @@ void nr_generate_dci(PHY_VARS_gNB *gNB,
...
@@ -200,9 +200,9 @@ void nr_generate_dci(PHY_VARS_gNB *gNB,
// dmrs index depends on reference point for k according to 38.211 7.4.1.3.2
// dmrs index depends on reference point for k according to 38.211 7.4.1.3.2
if
(
pdcch_pdu_rel15
->
CoreSetType
==
NFAPI_NR_CSET_CONFIG_PDCCH_CONFIG
)
if
(
pdcch_pdu_rel15
->
CoreSetType
==
NFAPI_NR_CSET_CONFIG_PDCCH_CONFIG
)
dmrs_idx
=
(
gNB
->
cce_list
[
d
][
cce_idx
].
reg_list
[
reg_in_cce_idx
].
reg_idx
)
*
3
;
dmrs_idx
=
(
cce_list
[
d
][
cce_idx
].
reg_list
[
reg_in_cce_idx
].
reg_idx
)
*
3
;
else
else
dmrs_idx
=
(
gNB
->
cce_list
[
d
][
cce_idx
].
reg_list
[
reg_in_cce_idx
].
reg_idx
+
rb_offset
)
*
3
;
dmrs_idx
=
(
cce_list
[
d
][
cce_idx
].
reg_list
[
reg_in_cce_idx
].
reg_idx
+
rb_offset
)
*
3
;
k_prime
=
0
;
k_prime
=
0
;
...
@@ -250,21 +250,20 @@ void nr_generate_dci(PHY_VARS_gNB *gNB,
...
@@ -250,21 +250,20 @@ void nr_generate_dci(PHY_VARS_gNB *gNB,
}
// for (int d=0;d<pdcch_pdu_rel15->numDlDci;d++)
}
// for (int d=0;d<pdcch_pdu_rel15->numDlDci;d++)
}
}
void
nr_generate_dci_top
(
PHY_VARS_gNB
*
gNB
,
void
nr_generate_dci_top
(
nfapi_nr_dl_tti_pdcch_pdu
*
pdcch_pdu
,
nfapi_nr_dl_tti_pdcch_pdu
*
pdcch_pdu
,
nfapi_nr_dl_tti_pdcch_pdu
*
ul_dci_pdu
,
nfapi_nr_dl_tti_pdcch_pdu
*
ul_dci_pdu
,
uint32_t
**
gold_pdcch_dmrs
,
uint32_t
**
gold_pdcch_dmrs
,
int32_t
*
txdataF
,
int32_t
*
txdataF
,
int16_t
amp
,
int16_t
amp
,
NR_DL_FRAME_PARMS
*
frame_parms
)
{
NR_DL_FRAME_PARMS
*
frame_parms
)
{
AssertFatal
(
pdcch_pdu
!=
NULL
||
ul_dci_pdu
!=
NULL
,
"At least one pointer has to be !NULL
\n
"
);
AssertFatal
(
pdcch_pdu
!=
NULL
||
ul_dci_pdu
!=
NULL
,
"At least one pointer has to be !NULL
\n
"
);
if
(
pdcch_pdu
)
{
if
(
pdcch_pdu
)
{
nr_generate_dci
(
gNB
,
&
pdcch_pdu
->
pdcch_pdu_rel15
,
gold_pdcch_dmrs
,
txdataF
,
amp
,
frame_parms
);
nr_generate_dci
(
&
pdcch_pdu
->
pdcch_pdu_rel15
,
gold_pdcch_dmrs
,
txdataF
,
amp
,
frame_parms
);
}
}
if
(
ul_dci_pdu
)
{
if
(
ul_dci_pdu
)
{
nr_generate_dci
(
gNB
,
&
ul_dci_pdu
->
pdcch_pdu_rel15
,
gold_pdcch_dmrs
,
txdataF
,
amp
,
frame_parms
);
nr_generate_dci
(
&
ul_dci_pdu
->
pdcch_pdu_rel15
,
gold_pdcch_dmrs
,
txdataF
,
amp
,
frame_parms
);
}
}
}
}
openair1/PHY/NR_TRANSPORT/nr_dci.h
View file @
d9ed78ec
...
@@ -29,7 +29,7 @@ uint16_t nr_get_dci_size(nfapi_nr_dci_format_e format,
...
@@ -29,7 +29,7 @@ uint16_t nr_get_dci_size(nfapi_nr_dci_format_e format,
nfapi_nr_rnti_type_e
rnti_type
,
nfapi_nr_rnti_type_e
rnti_type
,
uint16_t
N_RB
);
uint16_t
N_RB
);
void
nr_generate_dci_top
(
PHY_VARS_gNB
*
gNB
,
void
nr_generate_dci_top
(
nfapi_nr_dl_tti_pdcch_pdu
*
pdcch_pdu
,
nfapi_nr_dl_tti_pdcch_pdu
*
pdcch_pdu
,
nfapi_nr_dl_tti_pdcch_pdu
*
ul_pdcch_pdu
,
nfapi_nr_dl_tti_pdcch_pdu
*
ul_pdcch_pdu
,
uint32_t
**
gold_pdcch_dmrs
,
uint32_t
**
gold_pdcch_dmrs
,
...
@@ -57,6 +57,6 @@ void nr_fill_ul_dci(PHY_VARS_gNB *gNB,
...
@@ -57,6 +57,6 @@ void nr_fill_ul_dci(PHY_VARS_gNB *gNB,
int
slot
,
int
slot
,
nfapi_nr_ul_dci_request_pdus_t
*
pdcch_pdu
);
nfapi_nr_ul_dci_request_pdus_t
*
pdcch_pdu
);
void
nr_fill_cce_list
(
PHY_VARS_gNB
*
gNB
,
uint8_t
m
,
nfapi_nr_dl_tti_pdcch_pdu_rel15_t
*
);
void
nr_fill_cce_list
(
nr_cce_t
cce_list
[
MAX_DCI_CORESET
][
NR_MAX_PDCCH_AGG_LEVEL
],
uint8_t
m
,
nfapi_nr_dl_tti_pdcch_pdu_rel15_t
*
pdcch_pdu_rel15
);
#endif //__PHY_NR_TRANSPORT_DCI__H
#endif //__PHY_NR_TRANSPORT_DCI__H
openair1/PHY/NR_TRANSPORT/nr_dci_tools.c
View file @
d9ed78ec
...
@@ -119,7 +119,7 @@ void nr_fill_cce_list(PHY_VARS_gNB *gNB, uint16_t n_shift, uint8_t m) {
...
@@ -119,7 +119,7 @@ void nr_fill_cce_list(PHY_VARS_gNB *gNB, uint16_t n_shift, uint8_t m) {
*/
*/
void
nr_fill_cce_list
(
PHY_VARS_gNB
*
gNB
,
uint8_t
m
,
nfapi_nr_dl_tti_pdcch_pdu_rel15_t
*
pdcch_pdu_rel15
)
{
void
nr_fill_cce_list
(
nr_cce_t
cce_list
[
MAX_DCI_CORESET
][
NR_MAX_PDCCH_AGG_LEVEL
]
,
uint8_t
m
,
nfapi_nr_dl_tti_pdcch_pdu_rel15_t
*
pdcch_pdu_rel15
)
{
nr_cce_t
*
cce
;
nr_cce_t
*
cce
;
nr_reg_t
*
reg
;
nr_reg_t
*
reg
;
...
@@ -156,7 +156,7 @@ void nr_fill_cce_list(PHY_VARS_gNB *gNB, uint8_t m, nfapi_nr_dl_tti_pdcch_pdu_r
...
@@ -156,7 +156,7 @@ void nr_fill_cce_list(PHY_VARS_gNB *gNB, uint8_t m, nfapi_nr_dl_tti_pdcch_pdu_r
if
(
pdcch_pdu_rel15
->
dci_pdu
[
d
].
RNTI
!=
0xFFFF
)
LOG_D
(
PHY
,
"CCE list generation for candidate %d: bundle size %d ilv size %d CceIndex %d
\n
"
,
m
,
bsize
,
R
,
pdcch_pdu_rel15
->
dci_pdu
[
d
].
CceIndex
);
if
(
pdcch_pdu_rel15
->
dci_pdu
[
d
].
RNTI
!=
0xFFFF
)
LOG_D
(
PHY
,
"CCE list generation for candidate %d: bundle size %d ilv size %d CceIndex %d
\n
"
,
m
,
bsize
,
R
,
pdcch_pdu_rel15
->
dci_pdu
[
d
].
CceIndex
);
for
(
uint8_t
cce_idx
=
0
;
cce_idx
<
L
;
cce_idx
++
)
{
for
(
uint8_t
cce_idx
=
0
;
cce_idx
<
L
;
cce_idx
++
)
{
cce
=
&
gNB
->
cce_list
[
d
][
cce_idx
];
cce
=
&
cce_list
[
d
][
cce_idx
];
cce
->
cce_idx
=
pdcch_pdu_rel15
->
dci_pdu
[
d
].
CceIndex
+
cce_idx
;
cce
->
cce_idx
=
pdcch_pdu_rel15
->
dci_pdu
[
d
].
CceIndex
+
cce_idx
;
LOG_D
(
PHY
,
"cce_idx %d
\n
"
,
cce
->
cce_idx
);
LOG_D
(
PHY
,
"cce_idx %d
\n
"
,
cce
->
cce_idx
);
...
...
openair1/PHY/NR_TRANSPORT/nr_dlsch.c
View file @
d9ed78ec
...
@@ -276,7 +276,7 @@ void nr_generate_pdsch(processingData_L1tx_t *msgTx,
...
@@ -276,7 +276,7 @@ void nr_generate_pdsch(processingData_L1tx_t *msgTx,
if
(
start_sc
>=
frame_parms
->
ofdm_symbol_size
)
if
(
start_sc
>=
frame_parms
->
ofdm_symbol_size
)
start_sc
-=
frame_parms
->
ofdm_symbol_size
;
start_sc
-=
frame_parms
->
ofdm_symbol_size
;
int
txdataF_offset
=
(
slot
%
2
)
*
frame_parms
->
samples_per_slot_wCP
;
int
txdataF_offset
=
slot
*
frame_parms
->
samples_per_slot_wCP
;
#ifdef DEBUG_DLSCH_MAPPING
#ifdef DEBUG_DLSCH_MAPPING
printf
(
"PDSCH resource mapping started (start SC %d
\t
start symbol %d
\t
N_PRB %d
\t
nb_re %d,nb_layers %d)
\n
"
,
printf
(
"PDSCH resource mapping started (start SC %d
\t
start symbol %d
\t
N_PRB %d
\t
nb_re %d,nb_layers %d)
\n
"
,
...
@@ -375,12 +375,12 @@ void nr_generate_pdsch(processingData_L1tx_t *msgTx,
...
@@ -375,12 +375,12 @@ void nr_generate_pdsch(processingData_L1tx_t *msgTx,
/* Map DMRS Symbol */
/* Map DMRS Symbol */
if
(
(
dmrs_symbol_map
&
(
1
<<
l
))
&&
if
(
(
dmrs_symbol_map
&
(
1
<<
l
))
&&
(
k
==
((
start_sc
+
get_dmrs_freq_idx
(
n
,
k_prime
,
delta
,
dmrs_Type
))
%
(
frame_parms
->
ofdm_symbol_size
))))
{
(
k
==
((
start_sc
+
get_dmrs_freq_idx
(
n
,
k_prime
,
delta
,
dmrs_Type
))
%
(
frame_parms
->
ofdm_symbol_size
))))
{
txdataF_precoding
[
ap
][((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
(
2
*
txdataF_offset
)
]
=
(
Wt
[
l_prime
]
*
Wf
[
k_prime
]
*
amp
*
mod_dmrs
[
dmrs_idx
<<
1
])
>>
15
;
txdataF_precoding
[
ap
][((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
]
=
(
Wt
[
l_prime
]
*
Wf
[
k_prime
]
*
amp
*
mod_dmrs
[
dmrs_idx
<<
1
])
>>
15
;
txdataF_precoding
[
ap
][((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
1
+
(
2
*
txdataF_offset
)
]
=
(
Wt
[
l_prime
]
*
Wf
[
k_prime
]
*
amp
*
mod_dmrs
[(
dmrs_idx
<<
1
)
+
1
])
>>
15
;
txdataF_precoding
[
ap
][((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
1
]
=
(
Wt
[
l_prime
]
*
Wf
[
k_prime
]
*
amp
*
mod_dmrs
[(
dmrs_idx
<<
1
)
+
1
])
>>
15
;
#ifdef DEBUG_DLSCH_MAPPING
#ifdef DEBUG_DLSCH_MAPPING
printf
(
"dmrs_idx %d
\t
l %d
\t
k %d
\t
k_prime %d
\t
n %d
\t
txdataF: %d %d
\n
"
,
printf
(
"dmrs_idx %d
\t
l %d
\t
k %d
\t
k_prime %d
\t
n %d
\t
txdataF: %d %d
\n
"
,
dmrs_idx
,
l
,
k
,
k_prime
,
n
,
txdataF_precoding
[
ap
][((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
(
2
*
txdataF_offset
)
],
dmrs_idx
,
l
,
k
,
k_prime
,
n
,
txdataF_precoding
[
ap
][((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)],
txdataF_precoding
[
ap
][((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
1
+
(
2
*
txdataF_offset
)
]);
txdataF_precoding
[
ap
][((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
1
]);
#endif
#endif
dmrs_idx
++
;
dmrs_idx
++
;
k_prime
++
;
k_prime
++
;
...
@@ -388,8 +388,8 @@ void nr_generate_pdsch(processingData_L1tx_t *msgTx,
...
@@ -388,8 +388,8 @@ void nr_generate_pdsch(processingData_L1tx_t *msgTx,
n
+=
(
k_prime
)
?
0
:
1
;
n
+=
(
k_prime
)
?
0
:
1
;
}
}
else
if
(
is_ptrs_re
){
else
if
(
is_ptrs_re
){
txdataF_precoding
[
ap
][((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
(
2
*
txdataF_offset
)
]
=
(
beta_ptrs
*
amp
*
mod_ptrs
[
ptrs_idx
<<
1
])
>>
15
;
txdataF_precoding
[
ap
][((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
]
=
(
beta_ptrs
*
amp
*
mod_ptrs
[
ptrs_idx
<<
1
])
>>
15
;
txdataF_precoding
[
ap
][((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
1
+
(
2
*
txdataF_offset
)
]
=
(
beta_ptrs
*
amp
*
mod_ptrs
[(
ptrs_idx
<<
1
)
+
1
])
>>
15
;
txdataF_precoding
[
ap
][((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
1
]
=
(
beta_ptrs
*
amp
*
mod_ptrs
[(
ptrs_idx
<<
1
)
+
1
])
>>
15
;
#ifdef DEBUG_DLSCH_MAPPING
#ifdef DEBUG_DLSCH_MAPPING
printf
(
"ptrs_idx %d
\t
l %d
\t
k %d
\t
k_prime %d
\t
n %d
\t
txdataF: %d %d, mod_ptrs: %d %d
\n
"
,
printf
(
"ptrs_idx %d
\t
l %d
\t
k %d
\t
k_prime %d
\t
n %d
\t
txdataF: %d %d, mod_ptrs: %d %d
\n
"
,
ptrs_idx
,
l
,
k
,
k_prime
,
n
,
((
int16_t
*
)
txdataF
[
ap
])[((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
(
2
*
txdataF_offset
)],
ptrs_idx
,
l
,
k
,
k_prime
,
n
,
((
int16_t
*
)
txdataF
[
ap
])[((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
(
2
*
txdataF_offset
)],
...
@@ -399,19 +399,19 @@ void nr_generate_pdsch(processingData_L1tx_t *msgTx,
...
@@ -399,19 +399,19 @@ void nr_generate_pdsch(processingData_L1tx_t *msgTx,
}
}
/* Map DATA Symbol */
/* Map DATA Symbol */
else
if
(
ptrs_symbol
||
allowed_xlsch_re_in_dmrs_symbol
(
k
,
start_sc
,
frame_parms
->
ofdm_symbol_size
,
rel15
->
numDmrsCdmGrpsNoData
,
dmrs_Type
))
{
else
if
(
ptrs_symbol
||
allowed_xlsch_re_in_dmrs_symbol
(
k
,
start_sc
,
frame_parms
->
ofdm_symbol_size
,
rel15
->
numDmrsCdmGrpsNoData
,
dmrs_Type
))
{
txdataF_precoding
[
ap
][((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
(
2
*
txdataF_offset
)
]
=
(
amp
*
tx_layers
[
ap
][
m
<<
1
])
>>
15
;
txdataF_precoding
[
ap
][((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
]
=
(
amp
*
tx_layers
[
ap
][
m
<<
1
])
>>
15
;
txdataF_precoding
[
ap
][((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
1
+
(
2
*
txdataF_offset
)
]
=
(
amp
*
tx_layers
[
ap
][(
m
<<
1
)
+
1
])
>>
15
;
txdataF_precoding
[
ap
][((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
1
]
=
(
amp
*
tx_layers
[
ap
][(
m
<<
1
)
+
1
])
>>
15
;
#ifdef DEBUG_DLSCH_MAPPING
#ifdef DEBUG_DLSCH_MAPPING
printf
(
"m %d
\t
l %d
\t
k %d
\t
txdataF: %d %d
\n
"
,
printf
(
"m %d
\t
l %d
\t
k %d
\t
txdataF: %d %d
\n
"
,
m
,
l
,
k
,
txdataF_precoding
[
ap
][((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
(
2
*
txdataF_offset
)
],
m
,
l
,
k
,
txdataF_precoding
[
ap
][((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)],
txdataF_precoding
[
ap
][((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
1
+
(
2
*
txdataF_offset
)
]);
txdataF_precoding
[
ap
][((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
1
]);
#endif
#endif
m
++
;
m
++
;
}
}
/* mute RE */
/* mute RE */
else
{
else
{
txdataF_precoding
[
ap
][((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
(
2
*
txdataF_offset
)
]
=
0
;
txdataF_precoding
[
ap
][((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
]
=
0
;
txdataF_precoding
[
ap
][((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
1
+
(
2
*
txdataF_offset
)
]
=
0
;
txdataF_precoding
[
ap
][((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
1
]
=
0
;
}
}
if
(
++
k
>=
frame_parms
->
ofdm_symbol_size
)
if
(
++
k
>=
frame_parms
->
ofdm_symbol_size
)
k
-=
frame_parms
->
ofdm_symbol_size
;
k
-=
frame_parms
->
ofdm_symbol_size
;
...
@@ -427,7 +427,7 @@ void nr_generate_pdsch(processingData_L1tx_t *msgTx,
...
@@ -427,7 +427,7 @@ void nr_generate_pdsch(processingData_L1tx_t *msgTx,
}
}
// fix the alignment issues later, use 64-bit SIMD below instead of 128.
// fix the alignment issues later, use 64-bit SIMD below instead of 128.
if
(
0
/*(frame_parms->N_RB_DL&1)==0*/
)
{
if
(
0
/*(frame_parms->N_RB_DL&1)==0*/
)
{
__m128i
*
txF
=
(
__m128i
*
)
&
txdataF_precoding
[
ap
][((
l
*
frame_parms
->
ofdm_symbol_size
+
start_sc
+
txdataF_offset
)
<<
1
)];
__m128i
*
txF
=
(
__m128i
*
)
&
txdataF_precoding
[
ap
][((
l
*
frame_parms
->
ofdm_symbol_size
+
start_sc
)
<<
1
)];
__m128i
*
txl
=
(
__m128i
*
)
&
tx_layers
[
ap
][
m
<<
1
];
__m128i
*
txl
=
(
__m128i
*
)
&
tx_layers
[
ap
][
m
<<
1
];
__m128i
amp128
=
_mm_set1_epi16
(
amp
);
__m128i
amp128
=
_mm_set1_epi16
(
amp
);
...
@@ -436,7 +436,7 @@ void nr_generate_pdsch(processingData_L1tx_t *msgTx,
...
@@ -436,7 +436,7 @@ void nr_generate_pdsch(processingData_L1tx_t *msgTx,
}
//RE loop, first part
}
//RE loop, first part
m
+=
upper_limit
;
m
+=
upper_limit
;
if
(
remaining_re
>
0
)
{
if
(
remaining_re
>
0
)
{
txF
=
(
__m128i
*
)
&
txdataF_precoding
[
ap
][((
l
*
frame_parms
->
ofdm_symbol_size
+
txdataF_offset
)
<<
1
)];
txF
=
(
__m128i
*
)
&
txdataF_precoding
[
ap
][((
l
*
frame_parms
->
ofdm_symbol_size
)
<<
1
)];
txl
=
(
__m128i
*
)
&
tx_layers
[
ap
][
m
<<
1
];
txl
=
(
__m128i
*
)
&
tx_layers
[
ap
][
m
<<
1
];
for
(
int
i
=
0
;
i
<
(
remaining_re
>>
2
);
i
++
)
{
for
(
int
i
=
0
;
i
<
(
remaining_re
>>
2
);
i
++
)
{
txF
[
i
]
=
_mm_mulhrs_epi16
(
amp128
,
txl
[
i
]);
txF
[
i
]
=
_mm_mulhrs_epi16
(
amp128
,
txl
[
i
]);
...
@@ -444,7 +444,7 @@ void nr_generate_pdsch(processingData_L1tx_t *msgTx,
...
@@ -444,7 +444,7 @@ void nr_generate_pdsch(processingData_L1tx_t *msgTx,
}
}
}
}
else
{
else
{
__m64
*
txF
=
(
__m64
*
)
&
txdataF_precoding
[
ap
][((
l
*
frame_parms
->
ofdm_symbol_size
+
start_sc
+
txdataF_offset
)
<<
1
)];
__m64
*
txF
=
(
__m64
*
)
&
txdataF_precoding
[
ap
][((
l
*
frame_parms
->
ofdm_symbol_size
+
start_sc
)
<<
1
)];
__m64
*
txl
=
(
__m64
*
)
&
tx_layers
[
ap
][
m
<<
1
];
__m64
*
txl
=
(
__m64
*
)
&
tx_layers
[
ap
][
m
<<
1
];
__m64
amp64
=
_mm_set1_pi16
(
amp
);
__m64
amp64
=
_mm_set1_pi16
(
amp
);
...
@@ -454,31 +454,31 @@ void nr_generate_pdsch(processingData_L1tx_t *msgTx,
...
@@ -454,31 +454,31 @@ void nr_generate_pdsch(processingData_L1tx_t *msgTx,
#ifdef DEBUG_DLSCH_MAPPING
#ifdef DEBUG_DLSCH_MAPPING
if
((
i
&
1
)
>
0
)
if
((
i
&
1
)
>
0
)
printf
(
"m %d
\t
l %d
\t
k %d
\t
txdataF: %d %d
\n
"
,
printf
(
"m %d
\t
l %d
\t
k %d
\t
txdataF: %d %d
\n
"
,
m
,
l
,
start_sc
+
(
i
>>
1
),
txdataF_precoding
[
ap
][((
l
*
frame_parms
->
ofdm_symbol_size
+
start_sc
+
(
i
>>
1
))
<<
1
)
+
(
2
*
txdataF_offset
)
],
m
,
l
,
start_sc
+
(
i
>>
1
),
txdataF_precoding
[
ap
][((
l
*
frame_parms
->
ofdm_symbol_size
+
start_sc
+
(
i
>>
1
))
<<
1
)],
txdataF_precoding
[
ap
][((
l
*
frame_parms
->
ofdm_symbol_size
+
start_sc
+
(
i
>>
1
))
<<
1
)
+
1
+
(
2
*
txdataF_offset
)
]);
txdataF_precoding
[
ap
][((
l
*
frame_parms
->
ofdm_symbol_size
+
start_sc
+
(
i
>>
1
))
<<
1
)
+
1
]);
#endif
#endif
/* handle this, mute RE */
/* handle this, mute RE */
/*else {
/*else {
txdataF_precoding[ap][((l*frame_parms->ofdm_symbol_size + k)<<1)
+ (2*txdataF_offset)
] = 0;
txdataF_precoding[ap][((l*frame_parms->ofdm_symbol_size + k)<<1) ] = 0;
txdataF_precoding[ap][((l*frame_parms->ofdm_symbol_size + k)<<1) + 1
+ (2*txdataF_offset)
] = 0;
txdataF_precoding[ap][((l*frame_parms->ofdm_symbol_size + k)<<1) + 1] = 0;
}*/
}*/
}
//RE loop, first part
}
//RE loop, first part
m
+=
upper_limit
;
m
+=
upper_limit
;
if
(
remaining_re
>
0
)
{
if
(
remaining_re
>
0
)
{
txF
=
(
__m64
*
)
&
txdataF_precoding
[
ap
][((
l
*
frame_parms
->
ofdm_symbol_size
+
txdataF_offset
)
<<
1
)];
txF
=
(
__m64
*
)
&
txdataF_precoding
[
ap
][((
l
*
frame_parms
->
ofdm_symbol_size
)
<<
1
)];
txl
=
(
__m64
*
)
&
tx_layers
[
ap
][
m
<<
1
];
txl
=
(
__m64
*
)
&
tx_layers
[
ap
][
m
<<
1
];
for
(
int
i
=
0
;
i
<
(
remaining_re
>>
1
);
i
++
)
{
for
(
int
i
=
0
;
i
<
(
remaining_re
>>
1
);
i
++
)
{
txF
[
i
]
=
_mm_mulhrs_pi16
(
amp64
,
txl
[
i
]);
txF
[
i
]
=
_mm_mulhrs_pi16
(
amp64
,
txl
[
i
]);
#ifdef DEBUG_DLSCH_MAPPING
#ifdef DEBUG_DLSCH_MAPPING
if
((
i
&
1
)
>
0
)
if
((
i
&
1
)
>
0
)
printf
(
"m %d
\t
l %d
\t
k %d
\t
txdataF: %d %d
\n
"
,
printf
(
"m %d
\t
l %d
\t
k %d
\t
txdataF: %d %d
\n
"
,
m
,
l
,
i
>>
1
,
txdataF_precoding
[
ap
][((
l
*
frame_parms
->
ofdm_symbol_size
+
(
i
>>
1
))
<<
1
)
+
(
2
*
txdataF_offset
)
],
m
,
l
,
i
>>
1
,
txdataF_precoding
[
ap
][((
l
*
frame_parms
->
ofdm_symbol_size
+
(
i
>>
1
))
<<
1
)
],
txdataF_precoding
[
ap
][((
l
*
frame_parms
->
ofdm_symbol_size
+
(
i
>>
1
))
<<
1
)
+
1
+
(
2
*
txdataF_offset
)
]);
txdataF_precoding
[
ap
][((
l
*
frame_parms
->
ofdm_symbol_size
+
(
i
>>
1
))
<<
1
)
+
1
]);
#endif
#endif
/* handle this, mute RE */
/* handle this, mute RE */
/*else {
/*else {
txdataF_precoding[ap][((l*frame_parms->ofdm_symbol_size + k)<<1)
+ (2*txdataF_offset)
] = 0;
txdataF_precoding[ap][((l*frame_parms->ofdm_symbol_size + k)<<1)
] = 0;
txdataF_precoding[ap][((l*frame_parms->ofdm_symbol_size + k)<<1) + 1
+ (2*txdataF_offset)
] = 0;
txdataF_precoding[ap][((l*frame_parms->ofdm_symbol_size + k)<<1) + 1] = 0;
}*/
}*/
}
//RE loop, second part
}
//RE loop, second part
}
//
}
//
...
@@ -515,7 +515,7 @@ void nr_generate_pdsch(processingData_L1tx_t *msgTx,
...
@@ -515,7 +515,7 @@ void nr_generate_pdsch(processingData_L1tx_t *msgTx,
if
(
pmi
==
0
)
{
//unitary Precoding
if
(
pmi
==
0
)
{
//unitary Precoding
if
(
ap
<
rel15
->
nrOfLayers
)
if
(
ap
<
rel15
->
nrOfLayers
)
memcpy
((
void
*
)
&
txdataF
[
ap
][
l
*
frame_parms
->
ofdm_symbol_size
+
txdataF_offset
+
k
],
memcpy
((
void
*
)
&
txdataF
[
ap
][
l
*
frame_parms
->
ofdm_symbol_size
+
txdataF_offset
+
k
],
(
void
*
)
&
txdataF_precoding
[
ap
][
2
*
(
l
*
frame_parms
->
ofdm_symbol_size
+
txdataF_offset
+
k
)],
(
void
*
)
&
txdataF_precoding
[
ap
][
2
*
(
l
*
frame_parms
->
ofdm_symbol_size
+
k
)],
NR_NB_SC_PER_RB
*
sizeof
(
int32_t
));
NR_NB_SC_PER_RB
*
sizeof
(
int32_t
));
else
else
memset
((
void
*
)
&
txdataF
[
ap
][
l
*
frame_parms
->
ofdm_symbol_size
+
txdataF_offset
+
k
],
memset
((
void
*
)
&
txdataF
[
ap
][
l
*
frame_parms
->
ofdm_symbol_size
+
txdataF_offset
+
k
],
...
@@ -556,7 +556,7 @@ void nr_generate_pdsch(processingData_L1tx_t *msgTx,
...
@@ -556,7 +556,7 @@ void nr_generate_pdsch(processingData_L1tx_t *msgTx,
}
}
for
(
int
i
=
0
;
i
<
NR_NB_SC_PER_RB
;
i
++
)
{
for
(
int
i
=
0
;
i
<
NR_NB_SC_PER_RB
;
i
++
)
{
int32_t
re_offset
=
l
*
frame_parms
->
ofdm_symbol_size
+
k
;
int32_t
re_offset
=
l
*
frame_parms
->
ofdm_symbol_size
+
k
;
int32_t
precodatatx_F
=
nr_layer_precoder
(
txdataF_precoding
,
W_prec
,
rel15
->
nrOfLayers
,
re_offset
+
txdataF_offset
);
int32_t
precodatatx_F
=
nr_layer_precoder
(
txdataF_precoding
,
W_prec
,
rel15
->
nrOfLayers
,
re_offset
);
((
int16_t
*
)
txdataF
[
ap
])[(
re_offset
<<
1
)
+
(
2
*
txdataF_offset
)]
=
((
int16_t
*
)
&
precodatatx_F
)[
0
];
((
int16_t
*
)
txdataF
[
ap
])[(
re_offset
<<
1
)
+
(
2
*
txdataF_offset
)]
=
((
int16_t
*
)
&
precodatatx_F
)[
0
];
((
int16_t
*
)
txdataF
[
ap
])[(
re_offset
<<
1
)
+
1
+
(
2
*
txdataF_offset
)]
=
((
int16_t
*
)
&
precodatatx_F
)[
1
];
((
int16_t
*
)
txdataF
[
ap
])[(
re_offset
<<
1
)
+
1
+
(
2
*
txdataF_offset
)]
=
((
int16_t
*
)
&
precodatatx_F
)[
1
];
#ifdef DEBUG_DLSCH_MAPPING
#ifdef DEBUG_DLSCH_MAPPING
...
...
openair1/PHY/NR_TRANSPORT/nr_pbch.c
View file @
d9ed78ec
...
@@ -219,8 +219,7 @@ void nr_init_pbch_interleaver(uint8_t *interleaver) {
...
@@ -219,8 +219,7 @@ void nr_init_pbch_interleaver(uint8_t *interleaver) {
*
(
interleaver
+
i
)
=
*
(
nr_pbch_payload_interleaving_pattern
+
j_ssb
++
);
*
(
interleaver
+
i
)
=
*
(
nr_pbch_payload_interleaving_pattern
+
j_ssb
++
);
}
}
int
nr_generate_pbch
(
NR_gNB_PBCH
*
pbch
,
int
nr_generate_pbch
(
nfapi_nr_dl_tti_ssb_pdu
*
ssb_pdu
,
nfapi_nr_dl_tti_ssb_pdu
*
ssb_pdu
,
uint8_t
*
interleaver
,
uint8_t
*
interleaver
,
int32_t
*
txdataF
,
int32_t
*
txdataF
,
int16_t
amp
,
int16_t
amp
,
...
@@ -239,6 +238,8 @@ int nr_generate_pbch(NR_gNB_PBCH *pbch,
...
@@ -239,6 +238,8 @@ int nr_generate_pbch(NR_gNB_PBCH *pbch,
uint64_t
a_reversed
=
0
;
uint64_t
a_reversed
=
0
;
LOG_D
(
PHY
,
"PBCH generation started
\n
"
);
LOG_D
(
PHY
,
"PBCH generation started
\n
"
);
///Payload generation
///Payload generation
NR_gNB_PBCH
m_pbch
;
NR_gNB_PBCH
*
pbch
=
&
m_pbch
;
memset
((
void
*
)
pbch
,
0
,
sizeof
(
NR_gNB_PBCH
));
memset
((
void
*
)
pbch
,
0
,
sizeof
(
NR_gNB_PBCH
));
pbch
->
pbch_a
=
0
;
pbch
->
pbch_a
=
0
;
uint8_t
ssb_index
=
ssb_pdu
->
ssb_pdu_rel15
.
SsbBlockIndex
;
uint8_t
ssb_index
=
ssb_pdu
->
ssb_pdu_rel15
.
SsbBlockIndex
;
...
...
openair1/PHY/NR_TRANSPORT/nr_pss.c
View file @
d9ed78ec
...
@@ -24,8 +24,7 @@
...
@@ -24,8 +24,7 @@
//#define NR_PSS_DEBUG
//#define NR_PSS_DEBUG
int
nr_generate_pss
(
int16_t
*
d_pss
,
int
nr_generate_pss
(
int32_t
*
txdataF
,
int32_t
*
txdataF
,
int16_t
amp
,
int16_t
amp
,
uint8_t
ssb_start_symbol
,
uint8_t
ssb_start_symbol
,
nfapi_nr_config_request_scf_t
*
config
,
nfapi_nr_config_request_scf_t
*
config
,
...
@@ -33,6 +32,7 @@ int nr_generate_pss( int16_t *d_pss,
...
@@ -33,6 +32,7 @@ int nr_generate_pss( int16_t *d_pss,
{
{
int
i
,
k
,
l
,
m
;
int
i
,
k
,
l
,
m
;
int16_t
a
;
int16_t
a
;
int16_t
d_pss
[
NR_PSS_LENGTH
];
int16_t
x
[
NR_PSS_LENGTH
];
int16_t
x
[
NR_PSS_LENGTH
];
const
int
x_initial
[
7
]
=
{
0
,
1
,
1
,
0
,
1
,
1
,
1
};
const
int
x_initial
[
7
]
=
{
0
,
1
,
1
,
0
,
1
,
1
,
1
};
...
...
openair1/PHY/NR_TRANSPORT/nr_sss.c
View file @
d9ed78ec
...
@@ -23,8 +23,7 @@
...
@@ -23,8 +23,7 @@
//#define NR_SSS_DEBUG
//#define NR_SSS_DEBUG
int
nr_generate_sss
(
int16_t
*
d_sss
,
int
nr_generate_sss
(
int32_t
*
txdataF
,
int32_t
*
txdataF
,
int16_t
amp
,
int16_t
amp
,
uint8_t
ssb_start_symbol
,
uint8_t
ssb_start_symbol
,
nfapi_nr_config_request_scf_t
*
config
,
nfapi_nr_config_request_scf_t
*
config
,
...
@@ -34,6 +33,7 @@ int nr_generate_sss( int16_t *d_sss,
...
@@ -34,6 +33,7 @@ int nr_generate_sss( int16_t *d_sss,
int
m0
,
m1
;
int
m0
,
m1
;
int
Nid
,
Nid1
,
Nid2
;
int
Nid
,
Nid1
,
Nid2
;
//int16_t a;
//int16_t a;
int16_t
d_sss
[
NR_SSS_LENGTH
];
int16_t
x0
[
NR_SSS_LENGTH
],
x1
[
NR_SSS_LENGTH
];
int16_t
x0
[
NR_SSS_LENGTH
],
x1
[
NR_SSS_LENGTH
];
const
int
x0_initial
[
7
]
=
{
1
,
0
,
0
,
0
,
0
,
0
,
0
};
const
int
x0_initial
[
7
]
=
{
1
,
0
,
0
,
0
,
0
,
0
,
0
};
const
int
x1_initial
[
7
]
=
{
1
,
0
,
0
,
0
,
0
,
0
,
0
};
const
int
x1_initial
[
7
]
=
{
1
,
0
,
0
,
0
,
0
,
0
,
0
};
...
...
openair1/PHY/NR_TRANSPORT/nr_transport_proto.h
View file @
d9ed78ec
...
@@ -44,8 +44,7 @@
...
@@ -44,8 +44,7 @@
@param
@param
@returns 0 on success
@returns 0 on success
*/
*/
int
nr_generate_pss
(
int16_t
*
d_pss
,
int
nr_generate_pss
(
int32_t
*
txdataF
,
int32_t
*
txdataF
,
int16_t
amp
,
int16_t
amp
,
uint8_t
ssb_start_symbol
,
uint8_t
ssb_start_symbol
,
nfapi_nr_config_request_scf_t
*
config
,
nfapi_nr_config_request_scf_t
*
config
,
...
@@ -57,8 +56,7 @@ int nr_generate_pss(int16_t *d_pss,
...
@@ -57,8 +56,7 @@ int nr_generate_pss(int16_t *d_pss,
@param
@param
@returns 0 on success
@returns 0 on success
*/
*/
int
nr_generate_sss
(
int16_t
*
d_sss
,
int
nr_generate_sss
(
int32_t
*
txdataF
,
int32_t
*
txdataF
,
int16_t
amp
,
int16_t
amp
,
uint8_t
ssb_start_symbol
,
uint8_t
ssb_start_symbol
,
nfapi_nr_config_request_scf_t
*
config
,
nfapi_nr_config_request_scf_t
*
config
,
...
@@ -83,8 +81,7 @@ int nr_generate_pbch_dmrs(uint32_t *gold_pbch_dmrs,
...
@@ -83,8 +81,7 @@ int nr_generate_pbch_dmrs(uint32_t *gold_pbch_dmrs,
@param
@param
@returns 0 on success
@returns 0 on success
*/
*/
int
nr_generate_pbch
(
NR_gNB_PBCH
*
pbch
,
int
nr_generate_pbch
(
nfapi_nr_dl_tti_ssb_pdu
*
ssb_pdu
,
nfapi_nr_dl_tti_ssb_pdu
*
ssb_pdu
,
uint8_t
*
interleaver
,
uint8_t
*
interleaver
,
int32_t
*
txdataF
,
int32_t
*
txdataF
,
int16_t
amp
,
int16_t
amp
,
...
...
openair1/PHY/NR_TRANSPORT/nr_ulsch_decoding.c
View file @
d9ed78ec
...
@@ -463,7 +463,7 @@ uint32_t nr_ulsch_decoding(PHY_VARS_gNB *phy_vars_gNB,
...
@@ -463,7 +463,7 @@ uint32_t nr_ulsch_decoding(PHY_VARS_gNB *phy_vars_gNB,
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_gNB_ULSCH_DECODING
,
1
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_gNB_ULSCH_DECODING
,
1
);
harq_process
->
TBS
=
pusch_pdu
->
pusch_data
.
tb_size
;
harq_process
->
TBS
=
pusch_pdu
->
pusch_data
.
tb_size
;
harq_process
->
round
=
nr_rv_
round_map
[
pusch_pdu
->
pusch_data
.
rv_index
]
;
harq_process
->
round
=
nr_rv_
to_round
(
pusch_pdu
->
pusch_data
.
rv_index
)
;
harq_process
->
new_rx
=
false
;
// flag to indicate if this is a new reception for this harq (initialized to false)
harq_process
->
new_rx
=
false
;
// flag to indicate if this is a new reception for this harq (initialized to false)
if
(
harq_process
->
round
==
0
)
{
if
(
harq_process
->
round
==
0
)
{
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_decoding.c
View file @
d9ed78ec
...
@@ -271,7 +271,6 @@ bool nr_ue_postDecode(PHY_VARS_NR_UE *phy_vars_ue, notifiedFIFO_elt_t *req, bool
...
@@ -271,7 +271,6 @@ bool nr_ue_postDecode(PHY_VARS_NR_UE *phy_vars_ue, notifiedFIFO_elt_t *req, bool
//LOG_D(PHY,"[UE %d] DLSCH: Setting NAK for SFN/SF %d/%d (pid %d, status %d, round %d, TBS %d, mcs %d) Kr %d r %d harq_process->round %d\n",
//LOG_D(PHY,"[UE %d] DLSCH: Setting NAK for SFN/SF %d/%d (pid %d, status %d, round %d, TBS %d, mcs %d) Kr %d r %d harq_process->round %d\n",
// phy_vars_ue->Mod_id, frame, nr_slot_rx, harq_pid,harq_process->status, harq_process->round,harq_process->TBS,harq_process->mcs,Kr,r,harq_process->round);
// phy_vars_ue->Mod_id, frame, nr_slot_rx, harq_pid,harq_process->status, harq_process->round,harq_process->TBS,harq_process->mcs,Kr,r,harq_process->round);
harq_process
->
ack
=
0
;
harq_process
->
ack
=
0
;
harq_process
->
round
++
;
if
(
harq_process
->
round
>=
dlsch
->
Mlimit
)
{
if
(
harq_process
->
round
>=
dlsch
->
Mlimit
)
{
harq_process
->
status
=
SCH_IDLE
;
harq_process
->
status
=
SCH_IDLE
;
harq_process
->
round
=
0
;
harq_process
->
round
=
0
;
...
...
openair1/PHY/defs_gNB.h
View file @
d9ed78ec
...
@@ -753,7 +753,6 @@ typedef struct PHY_VARS_gNB_s {
...
@@ -753,7 +753,6 @@ typedef struct PHY_VARS_gNB_s {
// nfapi_nr_ul_dci_request_pdus_t *ul_dci_pdu;
// nfapi_nr_ul_dci_request_pdus_t *ul_dci_pdu;
uint16_t
num_pdsch_rnti
[
80
];
uint16_t
num_pdsch_rnti
[
80
];
NR_gNB_PBCH
pbch
;
NR_gNB_PBCH
pbch
;
nr_cce_t
cce_list
[
MAX_DCI_CORESET
][
NR_MAX_PDCCH_AGG_LEVEL
];
NR_gNB_COMMON
common_vars
;
NR_gNB_COMMON
common_vars
;
NR_gNB_PRACH
prach_vars
;
NR_gNB_PRACH
prach_vars
;
NR_gNB_PUSCH
*
pusch_vars
[
NUMBER_OF_NR_ULSCH_MAX
];
NR_gNB_PUSCH
*
pusch_vars
[
NUMBER_OF_NR_ULSCH_MAX
];
...
@@ -776,9 +775,6 @@ typedef struct PHY_VARS_gNB_s {
...
@@ -776,9 +775,6 @@ typedef struct PHY_VARS_gNB_s {
// PUCCH0 Look-up table for cyclic-shifts
// PUCCH0 Look-up table for cyclic-shifts
NR_gNB_PUCCH0_LUT_t
pucch0_lut
;
NR_gNB_PUCCH0_LUT_t
pucch0_lut
;
/// NR synchronization sequences
int16_t
d_pss
[
NR_PSS_LENGTH
];
int16_t
d_sss
[
NR_SSS_LENGTH
];
/// PBCH DMRS sequence
/// PBCH DMRS sequence
uint32_t
nr_gold_pbch_dmrs
[
2
][
64
][
NR_PBCH_DMRS_LENGTH_DWORD
];
uint32_t
nr_gold_pbch_dmrs
[
2
][
64
][
NR_PBCH_DMRS_LENGTH_DWORD
];
...
...
openair1/PHY/defs_nr_common.h
View file @
d9ed78ec
...
@@ -113,7 +113,16 @@
...
@@ -113,7 +113,16 @@
#define NR_NB_TH_SLOT 2
#define NR_NB_TH_SLOT 2
extern
const
uint8_t
nr_rv_round_map
[
4
];
extern
const
uint8_t
nr_rv_round_map
[
4
];
extern
const
uint8_t
nr_rv_round_map_ue
[
4
];
static
inline
uint8_t
nr_rv_to_round
(
uint8_t
rv
)
{
for
(
uint8_t
round
=
0
;
round
<
4
;
round
++
)
{
if
(
nr_rv_round_map
[
round
]
==
rv
)
return
round
;
}
return
0
;
}
typedef
enum
{
typedef
enum
{
NR_MU_0
=
0
,
NR_MU_0
=
0
,
...
...
openair1/SCHED_NR/nr_ru_procedures.c
View file @
d9ed78ec
...
@@ -155,7 +155,7 @@ void nr_feptx_ofdm_2thread(RU_t *ru,int frame_tx,int tti_tx) {
...
@@ -155,7 +155,7 @@ void nr_feptx_ofdm_2thread(RU_t *ru,int frame_tx,int tti_tx) {
int
aa
=
0
;
//physical antenna number
int
aa
=
0
;
//physical antenna number
int
ret
=
0
;
int
ret
=
0
;
int
ofdm_mask_full
=
(
1
<<
(
ru
->
nb_tx
*
2
))
-
1
;
int
ofdm_mask_full
=
(
1
<<
(
ru
->
nb_tx
*
2
))
-
1
;
int
txdataF_offset
=
(
(
tti_tx
%
2
)
*
fp
->
samples_per_slot_wCP
);
int
txdataF_offset
=
(
tti_tx
*
fp
->
samples_per_slot_wCP
);
if
(
nr_slot_select
(
cfg
,
frame_tx
,
slot
)
==
NR_UPLINK_SLOT
)
return
;
if
(
nr_slot_select
(
cfg
,
frame_tx
,
slot
)
==
NR_UPLINK_SLOT
)
return
;
for
(
aa
=
0
;
aa
<
ru
->
nb_tx
;
aa
++
)
memset
(
ru
->
common
.
txdataF
[
aa
],
0
,
fp
->
samples_per_slot_wCP
*
sizeof
(
int32_t
));
for
(
aa
=
0
;
aa
<
ru
->
nb_tx
;
aa
++
)
memset
(
ru
->
common
.
txdataF
[
aa
],
0
,
fp
->
samples_per_slot_wCP
*
sizeof
(
int32_t
));
...
@@ -300,7 +300,7 @@ static void *nr_feptx_thread(void *param) {
...
@@ -300,7 +300,7 @@ static void *nr_feptx_thread(void *param) {
ofdm_mask_full
=
(
1
<<
(
ru
->
nb_tx
*
2
))
-
1
;
ofdm_mask_full
=
(
1
<<
(
ru
->
nb_tx
*
2
))
-
1
;
if
(
ru
->
num_gNB
!=
0
){
if
(
ru
->
num_gNB
!=
0
){
txdataF_offset
=
(
(
slot
%
2
)
*
fp
->
samples_per_slot_wCP
);
txdataF_offset
=
(
slot
*
fp
->
samples_per_slot_wCP
);
////////////precoding////////////
////////////precoding////////////
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_PREC
+
feptx
->
index
+
1
,
1
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_PREC
+
feptx
->
index
+
1
,
1
);
...
@@ -464,7 +464,7 @@ void nr_feptx_prec(RU_t *ru,int frame_tx,int tti_tx) {
...
@@ -464,7 +464,7 @@ void nr_feptx_prec(RU_t *ru,int frame_tx,int tti_tx) {
int32_t
***
bw
;
int32_t
***
bw
;
int
i
=
0
;
int
i
=
0
;
int
slot_tx
=
tti_tx
;
int
slot_tx
=
tti_tx
;
int
txdataF_offset
=
(
(
tti_tx
%
2
)
*
fp
->
samples_per_slot_wCP
);
int
txdataF_offset
=
(
tti_tx
*
fp
->
samples_per_slot_wCP
);
start_meas
(
&
ru
->
precoding_stats
);
start_meas
(
&
ru
->
precoding_stats
);
AssertFatal
(
ru
->
nb_log_antennas
>
0
,
"ru->nb_log_antennas is 0!
\n
"
);
AssertFatal
(
ru
->
nb_log_antennas
>
0
,
"ru->nb_log_antennas is 0!
\n
"
);
...
...
openair1/SCHED_NR/phy_procedures_nr_gNB.c
View file @
d9ed78ec
...
@@ -74,7 +74,7 @@ void nr_common_signal_procedures (PHY_VARS_gNB *gNB,int frame,int slot,nfapi_nr_
...
@@ -74,7 +74,7 @@ void nr_common_signal_procedures (PHY_VARS_gNB *gNB,int frame,int slot,nfapi_nr_
int
**
txdataF
=
gNB
->
common_vars
.
txdataF
;
int
**
txdataF
=
gNB
->
common_vars
.
txdataF
;
uint8_t
ssb_index
,
n_hf
;
uint8_t
ssb_index
,
n_hf
;
uint16_t
ssb_start_symbol
;
uint16_t
ssb_start_symbol
;
int
txdataF_offset
=
(
slot
%
2
)
*
fp
->
samples_per_slot_wCP
;
int
txdataF_offset
=
slot
*
fp
->
samples_per_slot_wCP
;
uint16_t
slots_per_hf
=
(
fp
->
slots_per_frame
)
>>
1
;
uint16_t
slots_per_hf
=
(
fp
->
slots_per_frame
)
>>
1
;
if
(
slot
<
slots_per_hf
)
if
(
slot
<
slots_per_hf
)
...
@@ -91,8 +91,8 @@ void nr_common_signal_procedures (PHY_VARS_gNB *gNB,int frame,int slot,nfapi_nr_
...
@@ -91,8 +91,8 @@ void nr_common_signal_procedures (PHY_VARS_gNB *gNB,int frame,int slot,nfapi_nr_
nr_set_ssb_first_subcarrier
(
cfg
,
fp
);
// setting the first subcarrier
nr_set_ssb_first_subcarrier
(
cfg
,
fp
);
// setting the first subcarrier
LOG_D
(
PHY
,
"SS TX: frame %d, slot %d, start_symbol %d
\n
"
,
frame
,
slot
,
ssb_start_symbol
);
LOG_D
(
PHY
,
"SS TX: frame %d, slot %d, start_symbol %d
\n
"
,
frame
,
slot
,
ssb_start_symbol
);
nr_generate_pss
(
gNB
->
d_pss
,
&
txdataF
[
0
][
txdataF_offset
],
AMP
,
ssb_start_symbol
,
cfg
,
fp
);
nr_generate_pss
(
&
txdataF
[
0
][
txdataF_offset
],
AMP
,
ssb_start_symbol
,
cfg
,
fp
);
nr_generate_sss
(
gNB
->
d_sss
,
&
txdataF
[
0
][
txdataF_offset
],
AMP
,
ssb_start_symbol
,
cfg
,
fp
);
nr_generate_sss
(
&
txdataF
[
0
][
txdataF_offset
],
AMP
,
ssb_start_symbol
,
cfg
,
fp
);
if
(
cfg
->
carrier_config
.
num_tx_ant
.
value
<=
4
)
if
(
cfg
->
carrier_config
.
num_tx_ant
.
value
<=
4
)
nr_generate_pbch_dmrs
(
gNB
->
nr_gold_pbch_dmrs
[
n_hf
][
ssb_index
&
7
],
&
txdataF
[
0
][
txdataF_offset
],
AMP
,
ssb_start_symbol
,
cfg
,
fp
);
nr_generate_pbch_dmrs
(
gNB
->
nr_gold_pbch_dmrs
[
n_hf
][
ssb_index
&
7
],
&
txdataF
[
0
][
txdataF_offset
],
AMP
,
ssb_start_symbol
,
cfg
,
fp
);
...
@@ -114,8 +114,7 @@ void nr_common_signal_procedures (PHY_VARS_gNB *gNB,int frame,int slot,nfapi_nr_
...
@@ -114,8 +114,7 @@ void nr_common_signal_procedures (PHY_VARS_gNB *gNB,int frame,int slot,nfapi_nr_
gNB
->
common_vars
.
beam_id
[
0
][
slot
*
fp
->
symbols_per_slot
+
j
]
=
cfg
->
ssb_table
.
ssb_beam_id_list
[
ssb_index
].
beam_id
.
value
;
gNB
->
common_vars
.
beam_id
[
0
][
slot
*
fp
->
symbols_per_slot
+
j
]
=
cfg
->
ssb_table
.
ssb_beam_id_list
[
ssb_index
].
beam_id
.
value
;
}
}
nr_generate_pbch
(
&
gNB
->
pbch
,
nr_generate_pbch
(
&
ssb_pdu
,
&
ssb_pdu
,
gNB
->
nr_pbch_interleaver
,
gNB
->
nr_pbch_interleaver
,
&
txdataF
[
0
][
txdataF_offset
],
&
txdataF
[
0
][
txdataF_offset
],
AMP
,
AMP
,
...
@@ -134,7 +133,7 @@ void phy_procedures_gNB_TX(processingData_L1tx_t *msgTx,
...
@@ -134,7 +133,7 @@ void phy_procedures_gNB_TX(processingData_L1tx_t *msgTx,
NR_DL_FRAME_PARMS
*
fp
=&
gNB
->
frame_parms
;
NR_DL_FRAME_PARMS
*
fp
=&
gNB
->
frame_parms
;
nfapi_nr_config_request_scf_t
*
cfg
=
&
gNB
->
gNB_config
;
nfapi_nr_config_request_scf_t
*
cfg
=
&
gNB
->
gNB_config
;
int
offset
=
gNB
->
CC_id
;
int
offset
=
gNB
->
CC_id
;
int
txdataF_offset
=
(
slot
%
2
)
*
fp
->
samples_per_slot_wCP
;
int
txdataF_offset
=
slot
*
fp
->
samples_per_slot_wCP
;
if
((
cfg
->
cell_config
.
frame_duplex_type
.
value
==
TDD
)
&&
if
((
cfg
->
cell_config
.
frame_duplex_type
.
value
==
TDD
)
&&
(
nr_slot_select
(
cfg
,
frame
,
slot
)
==
NR_UPLINK_SLOT
))
return
;
(
nr_slot_select
(
cfg
,
frame
,
slot
)
==
NR_UPLINK_SLOT
))
return
;
...
@@ -168,7 +167,7 @@ void phy_procedures_gNB_TX(processingData_L1tx_t *msgTx,
...
@@ -168,7 +167,7 @@ void phy_procedures_gNB_TX(processingData_L1tx_t *msgTx,
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_gNB_PDCCH_TX
,
1
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_gNB_PDCCH_TX
,
1
);
nr_generate_dci_top
(
gNB
,
nr_generate_dci_top
(
num_dl_dci
>
0
?
&
msgTx
->
pdcch_pdu
:
NULL
,
num_dl_dci
>
0
?
&
msgTx
->
pdcch_pdu
:
NULL
,
num_ul_dci
>
0
?
&
msgTx
->
ul_pdcch_pdu
.
pdcch_pdu
:
NULL
,
num_ul_dci
>
0
?
&
msgTx
->
ul_pdcch_pdu
.
pdcch_pdu
:
NULL
,
gNB
->
nr_gold_pdcch_dmrs
[
slot
],
gNB
->
nr_gold_pdcch_dmrs
[
slot
],
...
...
openair1/SCHED_NR_UE/harq_nr.c
View file @
d9ed78ec
...
@@ -349,7 +349,7 @@ void downlink_harq_process(NR_DL_UE_HARQ_t *dl_harq, int harq_pid, int ndi, int
...
@@ -349,7 +349,7 @@ void downlink_harq_process(NR_DL_UE_HARQ_t *dl_harq, int harq_pid, int ndi, int
dl_harq
->
DCINdi
=
ndi
;
dl_harq
->
DCINdi
=
ndi
;
break
;
break
;
case
1
:
case
1
:
dl_harq
->
round
=
2
;
dl_harq
->
round
=
3
;
dl_harq
->
status
=
ACTIVE
;
dl_harq
->
status
=
ACTIVE
;
dl_harq
->
first_rx
=
0
;
dl_harq
->
first_rx
=
0
;
if
(
dl_harq
->
DCINdi
!=
ndi
)
{
if
(
dl_harq
->
DCINdi
!=
ndi
)
{
...
@@ -373,7 +373,7 @@ void downlink_harq_process(NR_DL_UE_HARQ_t *dl_harq, int harq_pid, int ndi, int
...
@@ -373,7 +373,7 @@ void downlink_harq_process(NR_DL_UE_HARQ_t *dl_harq, int harq_pid, int ndi, int
dl_harq
->
status
=
SCH_IDLE
;
dl_harq
->
status
=
SCH_IDLE
;
break
;
break
;
case
3
:
case
3
:
dl_harq
->
round
=
3
;
dl_harq
->
round
=
2
;
dl_harq
->
status
=
ACTIVE
;
dl_harq
->
status
=
ACTIVE
;
dl_harq
->
first_rx
=
0
;
dl_harq
->
first_rx
=
0
;
if
(
dl_harq
->
DCINdi
!=
ndi
)
{
if
(
dl_harq
->
DCINdi
!=
ndi
)
{
...
...
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
View file @
d9ed78ec
...
@@ -78,8 +78,6 @@ fifo_dump_emos_UE emos_dump_UE;
...
@@ -78,8 +78,6 @@ fifo_dump_emos_UE emos_dump_UE;
char
nr_mode_string
[
NUM_UE_MODE
][
20
]
=
{
"NOT SYNCHED"
,
"PRACH"
,
"RAR"
,
"RA_WAIT_CR"
,
"PUSCH"
,
"RESYNCH"
};
char
nr_mode_string
[
NUM_UE_MODE
][
20
]
=
{
"NOT SYNCHED"
,
"PRACH"
,
"RAR"
,
"RA_WAIT_CR"
,
"PUSCH"
,
"RESYNCH"
};
const
uint8_t
nr_rv_round_map_ue
[
4
]
=
{
0
,
2
,
1
,
3
};
#if defined(EXMIMO) || defined(OAI_USRP) || defined(OAI_BLADERF) || defined(OAI_LMSSDR) || defined(OAI_ADRV9371_ZC706)
#if defined(EXMIMO) || defined(OAI_USRP) || defined(OAI_BLADERF) || defined(OAI_LMSSDR) || defined(OAI_ADRV9371_ZC706)
extern
uint64_t
downlink_frequency
[
MAX_NUM_CCs
][
4
];
extern
uint64_t
downlink_frequency
[
MAX_NUM_CCs
][
4
];
#endif
#endif
...
...
openair1/SIMULATION/NR_PHY/dlschsim.c
View file @
d9ed78ec
...
@@ -59,8 +59,7 @@ double cpuf;
...
@@ -59,8 +59,7 @@ double cpuf;
//uint8_t nfapi_mode = 0;
//uint8_t nfapi_mode = 0;
uint16_t
NB_UE_INST
=
1
;
uint16_t
NB_UE_INST
=
1
;
uint8_t
const
nr_rv_round_map
[
4
]
=
{
0
,
2
,
1
,
3
};
uint8_t
const
nr_rv_round_map
[
4
]
=
{
0
,
2
,
3
,
1
};
uint8_t
const
nr_rv_round_map_ue
[
4
]
=
{
0
,
2
,
1
,
3
};
// needed for some functions
// needed for some functions
PHY_VARS_NR_UE
*
PHY_vars_UE_g
[
1
][
1
]
=
{
{
NULL
}
};
PHY_VARS_NR_UE
*
PHY_vars_UE_g
[
1
][
1
]
=
{
{
NULL
}
};
...
...
openair1/SIMULATION/NR_PHY/dlsim.c
View file @
d9ed78ec
...
@@ -1105,7 +1105,7 @@ int main(int argc, char **argv)
...
@@ -1105,7 +1105,7 @@ int main(int argc, char **argv)
else
else
phy_procedures_gNB_TX
(
msgDataTx
,
frame
,
slot
,
1
);
phy_procedures_gNB_TX
(
msgDataTx
,
frame
,
slot
,
1
);
int
txdataF_offset
=
(
slot
%
2
)
*
frame_parms
->
samples_per_slot_wCP
;
int
txdataF_offset
=
slot
*
frame_parms
->
samples_per_slot_wCP
;
if
(
n_trials
==
1
)
{
if
(
n_trials
==
1
)
{
LOG_M
(
"txsigF0.m"
,
"txsF0="
,
&
gNB
->
common_vars
.
txdataF
[
0
][
txdataF_offset
+
2
*
frame_parms
->
ofdm_symbol_size
],
frame_parms
->
ofdm_symbol_size
,
1
,
1
);
LOG_M
(
"txsigF0.m"
,
"txsF0="
,
&
gNB
->
common_vars
.
txdataF
[
0
][
txdataF_offset
+
2
*
frame_parms
->
ofdm_symbol_size
],
frame_parms
->
ofdm_symbol_size
,
1
,
1
);
...
...
openair1/SIMULATION/NR_PHY/pbchsim.c
View file @
d9ed78ec
...
@@ -63,8 +63,7 @@ uint16_t NB_UE_INST = 1;
...
@@ -63,8 +63,7 @@ uint16_t NB_UE_INST = 1;
// needed for some functions
// needed for some functions
openair0_config_t
openair0_cfg
[
MAX_CARDS
];
openair0_config_t
openair0_cfg
[
MAX_CARDS
];
uint8_t
const
nr_rv_round_map
[
4
]
=
{
0
,
2
,
1
,
3
};
uint8_t
const
nr_rv_round_map
[
4
]
=
{
0
,
2
,
3
,
1
};
uint8_t
const
nr_rv_round_map_ue
[
4
]
=
{
0
,
2
,
1
,
3
};
uint64_t
get_softmodem_optmask
(
void
)
{
return
0
;}
uint64_t
get_softmodem_optmask
(
void
)
{
return
0
;}
softmodem_params_t
*
get_softmodem_params
(
void
)
{
return
0
;}
softmodem_params_t
*
get_softmodem_params
(
void
)
{
return
0
;}
...
...
openair1/SIMULATION/NR_PHY/pucchsim.c
View file @
d9ed78ec
...
@@ -56,8 +56,7 @@ int32_t uplink_frequency_offset[MAX_NUM_CCs][4];
...
@@ -56,8 +56,7 @@ int32_t uplink_frequency_offset[MAX_NUM_CCs][4];
double
cpuf
;
double
cpuf
;
//uint8_t nfapi_mode = 0;
//uint8_t nfapi_mode = 0;
uint16_t
NB_UE_INST
=
1
;
uint16_t
NB_UE_INST
=
1
;
uint8_t
const
nr_rv_round_map
[
4
]
=
{
0
,
2
,
1
,
3
};
uint8_t
const
nr_rv_round_map
[
4
]
=
{
0
,
2
,
3
,
1
};
uint8_t
const
nr_rv_round_map_ue
[
4
]
=
{
0
,
2
,
1
,
3
};
// needed for some functions
// needed for some functions
PHY_VARS_NR_UE
*
PHY_vars_UE_g
[
1
][
1
]
=
{{
NULL
}};
PHY_VARS_NR_UE
*
PHY_vars_UE_g
[
1
][
1
]
=
{{
NULL
}};
...
...
openair1/SIMULATION/NR_PHY/ulschsim.c
View file @
d9ed78ec
...
@@ -56,8 +56,7 @@ int32_t uplink_frequency_offset[MAX_NUM_CCs][4];
...
@@ -56,8 +56,7 @@ int32_t uplink_frequency_offset[MAX_NUM_CCs][4];
void
init_downlink_harq_status
(
NR_DL_UE_HARQ_t
*
dl_harq
)
{}
void
init_downlink_harq_status
(
NR_DL_UE_HARQ_t
*
dl_harq
)
{}
uint8_t
const
nr_rv_round_map
[
4
]
=
{
0
,
2
,
1
,
3
};
uint8_t
const
nr_rv_round_map
[
4
]
=
{
0
,
2
,
3
,
1
};
uint8_t
const
nr_rv_round_map_ue
[
4
]
=
{
0
,
2
,
1
,
3
};
double
cpuf
;
double
cpuf
;
//uint8_t nfapi_mode = 0;
//uint8_t nfapi_mode = 0;
...
...
openair1/SIMULATION/NR_PHY/ulsim.c
View file @
d9ed78ec
...
@@ -244,7 +244,6 @@ nrUE_params_t *get_nrUE_params(void) {
...
@@ -244,7 +244,6 @@ nrUE_params_t *get_nrUE_params(void) {
// needed for some functions
// needed for some functions
uint16_t
n_rnti
=
0x1234
;
uint16_t
n_rnti
=
0x1234
;
openair0_config_t
openair0_cfg
[
MAX_CARDS
];
openair0_config_t
openair0_cfg
[
MAX_CARDS
];
//const uint8_t nr_rv_round_map[4] = {0, 2, 1, 3};
channel_desc_t
*
UE2gNB
[
NUMBER_OF_UE_MAX
][
NUMBER_OF_gNB_MAX
];
channel_desc_t
*
UE2gNB
[
NUMBER_OF_UE_MAX
][
NUMBER_OF_gNB_MAX
];
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
View file @
d9ed78ec
...
@@ -55,6 +55,7 @@
...
@@ -55,6 +55,7 @@
#include <errno.h>
#include <errno.h>
#include <string.h>
#include <string.h>
const
uint8_t
nr_rv_round_map
[
4
]
=
{
0
,
2
,
3
,
1
};
uint16_t
nr_pdcch_order_table
[
6
]
=
{
31
,
31
,
511
,
2047
,
2047
,
8191
};
uint16_t
nr_pdcch_order_table
[
6
]
=
{
31
,
31
,
511
,
2047
,
2047
,
8191
};
uint8_t
vnf_first_sched_entry
=
1
;
uint8_t
vnf_first_sched_entry
=
1
;
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
View file @
d9ed78ec
...
@@ -53,7 +53,6 @@
...
@@ -53,7 +53,6 @@
//#define UL_HARQ_PRINT
//#define UL_HARQ_PRINT
extern
RAN_CONTEXT_t
RC
;
extern
RAN_CONTEXT_t
RC
;
const
uint8_t
nr_rv_round_map
[
4
]
=
{
0
,
2
,
3
,
1
};
//#define ENABLE_MAC_PAYLOAD_DEBUG 1
//#define ENABLE_MAC_PAYLOAD_DEBUG 1
//uint8_t mac_pdu[MAX_NR_DLSCH_PAYLOAD_BYTES];
//uint8_t mac_pdu[MAX_NR_DLSCH_PAYLOAD_BYTES];
...
...
openair2/RRC/NR_UE/rrc_UE.c
View file @
d9ed78ec
...
@@ -2180,7 +2180,8 @@ nr_rrc_ue_establish_srb2(
...
@@ -2180,7 +2180,8 @@ nr_rrc_ue_establish_srb2(
NULL
,
NULL
,
radioBearerConfig
->
drb_ToAddModList
,
radioBearerConfig
->
drb_ToAddModList
,
NULL
,
NULL
,
0
,
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
cipheringAlgorithm
|
(
NR_UE_rrc_inst
[
ctxt_pP
->
module_id
].
integrityProtAlgorithm
<<
4
),
NULL
,
NULL
,
NULL
,
NULL
,
kUPenc
,
kUPenc
,
...
...
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