Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
spbro
OpenXG-RAN
Commits
3a78c66e
Commit
3a78c66e
authored
Dec 28, 2021
by
francescomani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add 256qam test case to dlsim
parent
62e540e6
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
79 additions
and
18 deletions
+79
-18
cmake_targets/autotests/test_case_list.xml
cmake_targets/autotests/test_case_list.xml
+16
-14
openair1/SIMULATION/NR_PHY/dlsim.c
openair1/SIMULATION/NR_PHY/dlsim.c
+14
-4
openair2/RRC/NR/nr_rrc_config.c
openair2/RRC/NR/nr_rrc_config.c
+44
-0
openair2/RRC/NR/nr_rrc_config.h
openair2/RRC/NR/nr_rrc_config.h
+5
-0
No files found.
cmake_targets/autotests/test_case_list.xml
View file @
3a78c66e
...
...
@@ -1093,17 +1093,18 @@
(Test8: 217 PRB 100 PDSCH-PRBs 110 PDSCH-Offset),
(Test9: 106 PRBs 50 PDSCH-PRBs MCS Index 27),
(Test10: 106 PRBs 50 PDSCH-PRBs MCS Index 16),
(Test11: HARQ test 25% TP (4 rounds),
(Test12: HARQ test 33% TP (3 rounds),
(Test13: HARQ test 50% TP (2 rounds),
(Test14: 3 PTRS, 8 Interpolated Symbols),
(Test15: 6 PTRS, 5 Interpolated Symbols),
(Test16: 11 PTRS, 0 Interpolated Symbols),
(Test17: Mapping type A, 2 DMRS Symbols),
(Test18: Mapping type A, 3 DMRS Symbols),
(Test19: Mapping type B, 4 DMRS Symbols),
(Test20: 4x4 MIMO, 1 Layer),
(Test21: 4x4 MIMO, 2 Layers)
</desc>
(Test11: 106 MCS-TABLE 256 QAM MCS Index 26),
(Test12: HARQ test 25% TP (4 rounds),
(Test13: HARQ test 33% TP (3 rounds),
(Test14: HARQ test 50% TP (2 rounds),
(Test15: 3 PTRS, 8 Interpolated Symbols),
(Test16: 6 PTRS, 5 Interpolated Symbols),
(Test17: 11 PTRS, 0 Interpolated Symbols),
(Test18: Mapping type A, 2 DMRS Symbols),
(Test19: Mapping type A, 3 DMRS Symbols),
(Test20: Mapping type B, 4 DMRS Symbols),
(Test21: 4x4 MIMO, 1 Layer),
(Test22: 4x4 MIMO, 2 Layers)
</desc>
<pre_compile_prog></pre_compile_prog>
<compile_prog>
$OPENAIR_DIR/cmake_targets/build_oai
</compile_prog>
<compile_prog_args>
--phy_simulators -c
</compile_prog_args>
...
...
@@ -1118,8 +1119,9 @@
-n100 -R217 -b100 -s5
-n100 -R217 -a80 -s5
-n100 -R217 -a110 -s5 -b100
-n100 -e27 -s30
-n100 -e16 -s10
-n100 -e27 -s30
-n100 -e16 -s10
-n100 -q1 -e26 -s30
-n100 -s1 -t25
-n100 -s1 -t33
-n100 -s1 -t50
...
...
@@ -1131,7 +1133,7 @@
-n100 -s2 -U 2 1 3
-n10 -s20 -U 3 0 0 2 -gR -x1 -y4 -z4
-n10 -s20 -U 3 0 0 2 -gR -x2 -y4 -z4
</main_exec_args>
<tags>
nr_dlsim.test1 nr_dlsim.test2 nr_dlsim.test3 nr_dlsim.test4 nr_dlsim.test5 nr_dlsim.test6 nr_dlsim.test7 nr_dlsim.test8 nr_dlsim.test9 nr_dlsim.test10 nr_dlsim.test11 nr_dlsim.test12 nr_dlsim.test13 nr_dlsim.test14 nr_dlsim.test15 nr_dlsim.test16 nr_dlsim.test17 nr_dlsim.test18 nr_dlsim.test19 nr_dlsim.test20 nr_dlsim.test21
</tags>
<tags>
nr_dlsim.test1 nr_dlsim.test2 nr_dlsim.test3 nr_dlsim.test4 nr_dlsim.test5 nr_dlsim.test6 nr_dlsim.test7 nr_dlsim.test8 nr_dlsim.test9 nr_dlsim.test10 nr_dlsim.test11 nr_dlsim.test12 nr_dlsim.test13 nr_dlsim.test14 nr_dlsim.test15 nr_dlsim.test16 nr_dlsim.test17 nr_dlsim.test18 nr_dlsim.test19 nr_dlsim.test20 nr_dlsim.test21
nr_dlsim.test22
</tags>
<search_expr_true>
PDSCH test OK
</search_expr_true>
<search_expr_false>
segmentation fault|assertion|exiting|fatal
</search_expr_false>
<nruns>
3
</nruns>
...
...
openair1/SIMULATION/NR_PHY/dlsim.c
View file @
3a78c66e
...
...
@@ -431,7 +431,7 @@ int main(int argc, char **argv)
FILE
*
scg_fd
=
NULL
;
while
((
c
=
getopt
(
argc
,
argv
,
"f:hA:pf:g:in:s:S:t:x:y:z:M:N:F:GR:dPIL:Ea:b:D:e:
m:w:T:U:q
"
))
!=
-
1
)
{
while
((
c
=
getopt
(
argc
,
argv
,
"f:hA:pf:g:in:s:S:t:x:y:z:M:N:F:GR:dPIL:Ea:b:D:e:
q:m:w:T:U
"
))
!=
-
1
)
{
switch
(
c
)
{
case
'f'
:
...
...
@@ -598,13 +598,19 @@ int main(int argc, char **argv)
case
'b'
:
g_rbSize
=
atoi
(
optarg
);
break
;
case
'D'
:
dlsch_threads
=
atoi
(
optarg
);
break
;
break
;
case
'e'
:
g_mcsIndex
=
atoi
(
optarg
);
break
;
case
'q'
:
g_mcsTableIdx
=
atoi
(
optarg
);
break
;
case
'm'
:
mu
=
atoi
(
optarg
);
break
;
...
...
@@ -660,6 +666,7 @@ int main(int argc, char **argv)
printf
(
"-c Start symbol for PDSCH (fixed for now)
\n
"
);
printf
(
"-j Number of symbols for PDSCH (fixed for now)
\n
"
);
printf
(
"-e MSC index
\n
"
);
printf
(
"-q MCS Table index
\n
"
);
printf
(
"-t Acceptable effective throughput (in percentage)
\n
"
);
printf
(
"-T Enable PTRS, arguments list L_PTRS{0,1,2} K_PTRS{2,4}, e.g. -T 2 0 2
\n
"
);
printf
(
"-U Change DMRS Config, arguments list DMRS TYPE{0=A,1=B} DMRS AddPos{0:2} DMRS ConfType{1:2}, e.g. -U 3 0 2 1
\n
"
);
...
...
@@ -759,11 +766,14 @@ int main(int argc, char **argv)
fill_scc_sim
(
rrc
.
carrier
.
servingcellconfigcommon
,
&
ssb_bitmap
,
N_RB_DL
,
N_RB_DL
,
mu
,
mu
);
ssb_bitmap
=
1
;
// Enable only first SSB with index ssb_indx=0
fix_scc
(
scc
,
ssb_bitmap
);
prepare_scd
(
scd
);
NR_UE_NR_Capability_t
*
UE_Capability_nr
=
CALLOC
(
1
,
sizeof
(
NR_UE_NR_Capability_t
));
prepare_sim_uecap
(
UE_Capability_nr
,
scc
,
mu
,
N_RB_DL
,
g_mcsTableIdx
);
// TODO do a UECAP for phy-sim
fill_default_secondaryCellGroup
(
scc
,
scd
,
secondaryCellGroup
,
NULL
,
0
,
1
,
n_tx
,
6
,
0
,
0
,
0
);
fill_default_secondaryCellGroup
(
scc
,
scd
,
secondaryCellGroup
,
UE_Capability_nr
,
0
,
1
,
n_tx
,
6
,
0
,
0
,
0
);
/* RRC parameter validation for secondaryCellGroup */
fix_scd
(
scd
);
...
...
openair2/RRC/NR/nr_rrc_config.c
View file @
3a78c66e
...
...
@@ -31,6 +31,50 @@
#include "nr_rrc_config.h"
#include "common/utils/nr/nr_common.h"
void
prepare_sim_uecap
(
NR_UE_NR_Capability_t
*
cap
,
NR_ServingCellConfigCommon_t
*
scc
,
int
numerology
,
int
rbsize
,
int
mcs_table
)
{
int
band
=
*
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
frequencyBandList
.
list
.
array
[
0
];
NR_BandNR_t
*
nr_bandnr
=
CALLOC
(
1
,
sizeof
(
NR_BandNR_t
));
nr_bandnr
->
bandNR
=
band
;
ASN_SEQUENCE_ADD
(
&
cap
->
rf_Parameters
.
supportedBandListNR
.
list
,
nr_bandnr
);
if
(
mcs_table
==
1
)
{
int
bw
=
get_supported_band_index
(
numerology
,
band
,
rbsize
);
if
(
band
>
256
)
{
NR_BandNR_t
*
bandNRinfo
=
cap
->
rf_Parameters
.
supportedBandListNR
.
list
.
array
[
0
];
bandNRinfo
->
pdsch_256QAM_FR2
=
CALLOC
(
1
,
sizeof
(
*
bandNRinfo
->
pdsch_256QAM_FR2
));
*
bandNRinfo
->
pdsch_256QAM_FR2
=
NR_BandNR__pdsch_256QAM_FR2_supported
;
}
else
{
cap
->
phy_Parameters
.
phy_ParametersFR1
=
CALLOC
(
1
,
sizeof
(
*
cap
->
phy_Parameters
.
phy_ParametersFR1
));
NR_Phy_ParametersFR1_t
*
phy_fr1
=
cap
->
phy_Parameters
.
phy_ParametersFR1
;
phy_fr1
->
pdsch_256QAM_FR1
=
CALLOC
(
1
,
sizeof
(
*
phy_fr1
->
pdsch_256QAM_FR1
));
*
phy_fr1
->
pdsch_256QAM_FR1
=
NR_Phy_ParametersFR1__pdsch_256QAM_FR1_supported
;
}
cap
->
featureSets
=
CALLOC
(
1
,
sizeof
(
*
cap
->
featureSets
));
NR_FeatureSets_t
*
fs
=
cap
->
featureSets
;
fs
->
featureSetsDownlinkPerCC
=
CALLOC
(
1
,
sizeof
(
*
fs
->
featureSetsDownlinkPerCC
));
NR_FeatureSetDownlinkPerCC_t
*
fs_cc
=
CALLOC
(
1
,
sizeof
(
NR_FeatureSetDownlinkPerCC_t
));
fs_cc
->
supportedSubcarrierSpacingDL
=
numerology
;
if
(
band
>
256
)
{
fs_cc
->
supportedBandwidthDL
.
present
=
NR_SupportedBandwidth_PR_fr2
;
fs_cc
->
supportedBandwidthDL
.
choice
.
fr2
=
bw
;
}
else
{
fs_cc
->
supportedBandwidthDL
.
present
=
NR_SupportedBandwidth_PR_fr1
;
fs_cc
->
supportedBandwidthDL
.
choice
.
fr1
=
bw
;
}
fs_cc
->
supportedModulationOrderDL
=
CALLOC
(
1
,
sizeof
(
*
fs_cc
->
supportedModulationOrderDL
));
*
fs_cc
->
supportedModulationOrderDL
=
NR_ModulationOrder_qam256
;
ASN_SEQUENCE_ADD
(
&
fs
->
featureSetsDownlinkPerCC
->
list
,
fs_cc
);
}
}
void
nr_rrc_config_dl_tda
(
NR_ServingCellConfigCommon_t
*
scc
){
lte_frame_type_t
frame_type
=
get_frame_type
(
*
scc
->
downlinkConfigCommon
->
frequencyInfoDL
->
frequencyBandList
.
list
.
array
[
0
],
*
scc
->
ssbSubcarrierSpacing
);
...
...
openair2/RRC/NR/nr_rrc_config.h
View file @
3a78c66e
...
...
@@ -114,6 +114,11 @@ typedef struct physicalcellgroup_s{
void
nr_rrc_config_dl_tda
(
NR_ServingCellConfigCommon_t
*
scc
);
void
nr_rrc_config_ul_tda
(
NR_ServingCellConfigCommon_t
*
scc
,
int
min_fb_delay
);
void
set_dl_mcs_table
(
NR_BWP_Downlink_t
*
bwp
,
NR_ServingCellConfigCommon_t
*
scc
,
NR_UE_NR_Capability_t
*
cap
);
void
prepare_sim_uecap
(
NR_UE_NR_Capability_t
*
cap
,
NR_ServingCellConfigCommon_t
*
scc
,
int
numerology
,
int
rbsize
,
int
mcs_table
);
#endif
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