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
wangwenhui
OpenXG-RAN
Commits
5cd4ad04
Commit
5cd4ad04
authored
Oct 28, 2019
by
Francesco Mani
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'nr-tbs-fixes' of
https://gitlab.eurecom.fr/oai/openairinterface5g
into nr-tbs-fixes
parents
4297beff
5bfbfd9a
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
36 additions
and
32 deletions
+36
-32
cmake_targets/autotests/test_case_list.xml
cmake_targets/autotests/test_case_list.xml
+3
-3
openair1/PHY/NR_TRANSPORT/nr_ulsch_decoding.c
openair1/PHY/NR_TRANSPORT/nr_ulsch_decoding.c
+27
-27
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_coding.c
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_coding.c
+6
-2
No files found.
cmake_targets/autotests/test_case_list.xml
View file @
5cd4ad04
...
@@ -1089,8 +1089,8 @@
...
@@ -1089,8 +1089,8 @@
(Test8: 217 PRB 100 PDSCH-PRBs),
(Test8: 217 PRB 100 PDSCH-PRBs),
(Test9: 217 PRB 80 PDSCH-Offset),
(Test9: 217 PRB 80 PDSCH-Offset),
(Test10: 217 PRB 100 PDSCH-PRBs 80 PDSCH-Offset),-->
(Test10: 217 PRB 100 PDSCH-PRBs 80 PDSCH-Offset),-->
(Test
13
: 106 PRB 0 MCS),
(Test
6
: 106 PRB 0 MCS),
(Test
14
: 273 PRB 28 MCS)
</desc>
(Test
7
: 273 PRB 28 MCS)
</desc>
<pre_compile_prog></pre_compile_prog>
<pre_compile_prog></pre_compile_prog>
<compile_prog>
$OPENAIR_DIR/cmake_targets/build_oai
</compile_prog>
<compile_prog>
$OPENAIR_DIR/cmake_targets/build_oai
</compile_prog>
<compile_prog_args>
--phy_simulators -c
</compile_prog_args>
<compile_prog_args>
--phy_simulators -c
</compile_prog_args>
...
@@ -1109,7 +1109,7 @@
...
@@ -1109,7 +1109,7 @@
-n100 -R217 -a80 -b100-->
-n100 -R217 -a80 -b100-->
-n100 -R106 -e0
-n100 -R106 -e0
-n100 -R273 -e28
</main_exec_args>
-n100 -R273 -e28
</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.test
13 nr_dlsim.test14
</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.test
6 nr_dlsim.test7
</tags>
<search_expr_true>
"PDCCH test OK" "PDSCH test OK"
</search_expr_true>
<search_expr_true>
"PDCCH test OK" "PDSCH test OK"
</search_expr_true>
<search_expr_false>
segmentation fault|assertion|exiting|fatal
</search_expr_false>
<search_expr_false>
segmentation fault|assertion|exiting|fatal
</search_expr_false>
<nruns>
3
</nruns>
<nruns>
3
</nruns>
...
...
openair1/PHY/NR_TRANSPORT/nr_ulsch_decoding.c
View file @
5cd4ad04
...
@@ -310,7 +310,7 @@ uint32_t nr_ulsch_decoding(PHY_VARS_gNB *phy_vars_gNB,
...
@@ -310,7 +310,7 @@ uint32_t nr_ulsch_decoding(PHY_VARS_gNB *phy_vars_gNB,
uint16_t
nb_rb
=
nfapi_ulsch_pdu_rel15
->
number_rbs
;
uint16_t
nb_rb
=
nfapi_ulsch_pdu_rel15
->
number_rbs
;
uint16_t
number_symbols
=
nfapi_ulsch_pdu_rel15
->
number_symbols
;
uint16_t
number_symbols
=
nfapi_ulsch_pdu_rel15
->
number_symbols
;
uint8_t
Qm
=
nfapi_ulsch_pdu_rel15
->
Qm
;
uint8_t
Qm
=
nfapi_ulsch_pdu_rel15
->
Qm
;
uint
8
_t
R
=
nfapi_ulsch_pdu_rel15
->
R
;
uint
16
_t
R
=
nfapi_ulsch_pdu_rel15
->
R
;
uint8_t
mcs
=
nfapi_ulsch_pdu_rel15
->
mcs
;
uint8_t
mcs
=
nfapi_ulsch_pdu_rel15
->
mcs
;
uint8_t
n_layers
=
nfapi_ulsch_pdu_rel15
->
n_layers
;
uint8_t
n_layers
=
nfapi_ulsch_pdu_rel15
->
n_layers
;
uint8_t
nb_re_dmrs
=
nfapi_ulsch_pdu_rel15
->
nb_re_dmrs
;
uint8_t
nb_re_dmrs
=
nfapi_ulsch_pdu_rel15
->
nb_re_dmrs
;
...
@@ -353,33 +353,14 @@ uint32_t nr_ulsch_decoding(PHY_VARS_gNB *phy_vars_gNB,
...
@@ -353,33 +353,14 @@ uint32_t nr_ulsch_decoding(PHY_VARS_gNB *phy_vars_gNB,
// This is a new packet, so compute quantities regarding segmentation
// This is a new packet, so compute quantities regarding segmentation
harq_process
->
B
=
A
+
24
;
harq_process
->
B
=
A
+
24
;
// [hna] Perform nr_segmenation with input and output set to NULL to calculate only (B, C, K, Z, F)
if
(
R
<
1024
)
nr_segmentation
(
NULL
,
Coderate
=
(
float
)
R
/
(
float
)
1024
;
NULL
,
else
harq_process
->
B
,
Coderate
=
(
float
)
R
/
(
float
)
2048
;
&
harq_process
->
C
,
&
harq_process
->
K
,
&
harq_process
->
Z
,
// [hna] Z is Zc
&
harq_process
->
F
,
p_decParams
->
BG
);
#ifdef DEBUG_ULSCH_DECODING
printf
(
"ulsch decoding nr segmentation Z %d
\n
"
,
harq_process
->
Z
);
if
(
!
frame
%
100
)
printf
(
"K %d C %d Z %d nl %d
\n
"
,
harq_process
->
K
,
harq_process
->
C
,
harq_process
->
Z
,
harq_process
->
Nl
);
#endif
}
p_decParams
->
Z
=
harq_process
->
Z
;
if
(
R
<
1024
)
Coderate
=
(
float
)
R
/
(
float
)
1024
;
else
Coderate
=
(
float
)
R
/
(
float
)
2048
;
if
((
A
<=
292
)
||
((
A
<=
3824
)
&&
(
Coderate
<=
0
.
6667
))
||
Coderate
<=
0
.
25
){
if
((
A
<=
292
)
||
((
A
<=
3824
)
&&
(
Coderate
<=
0
.
6667
))
||
Coderate
<=
0
.
25
){
p_decParams
->
BG
=
2
;
p_decParams
->
BG
=
2
;
if
(
Coderate
<
0
.
3333
)
{
if
(
Coderate
<
0
.
3333
)
{
p_decParams
->
R
=
15
;
p_decParams
->
R
=
15
;
kc
=
52
;
kc
=
52
;
}
}
...
@@ -407,6 +388,25 @@ uint32_t nr_ulsch_decoding(PHY_VARS_gNB *phy_vars_gNB,
...
@@ -407,6 +388,25 @@ uint32_t nr_ulsch_decoding(PHY_VARS_gNB *phy_vars_gNB,
}
}
}
}
// [hna] Perform nr_segmenation with input and output set to NULL to calculate only (B, C, K, Z, F)
nr_segmentation
(
NULL
,
NULL
,
harq_process
->
B
,
&
harq_process
->
C
,
&
harq_process
->
K
,
&
harq_process
->
Z
,
// [hna] Z is Zc
&
harq_process
->
F
,
p_decParams
->
BG
);
#ifdef DEBUG_ULSCH_DECODING
printf
(
"ulsch decoding nr segmentation Z %d
\n
"
,
harq_process
->
Z
);
if
(
!
frame
%
100
)
printf
(
"K %d C %d Z %d nl %d
\n
"
,
harq_process
->
K
,
harq_process
->
C
,
harq_process
->
Z
,
harq_process
->
Nl
);
#endif
}
p_decParams
->
Z
=
harq_process
->
Z
;
p_decParams
->
numMaxIter
=
ulsch
->
max_ldpc_iterations
;
p_decParams
->
numMaxIter
=
ulsch
->
max_ldpc_iterations
;
p_decParams
->
outMode
=
0
;
p_decParams
->
outMode
=
0
;
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_coding.c
View file @
5cd4ad04
...
@@ -207,6 +207,7 @@ int nr_ulsch_encoding(NR_UE_ULSCH_t *ulsch,
...
@@ -207,6 +207,7 @@ int nr_ulsch_encoding(NR_UE_ULSCH_t *ulsch,
uint32_t
Tbslbrm
;
uint32_t
Tbslbrm
;
uint8_t
nb_re_dmrs
;
uint8_t
nb_re_dmrs
;
uint16_t
length_dmrs
;
uint16_t
length_dmrs
;
uint16_t
R
;
float
Coderate
;
float
Coderate
;
///////////
///////////
...
@@ -223,6 +224,7 @@ int nr_ulsch_encoding(NR_UE_ULSCH_t *ulsch,
...
@@ -223,6 +224,7 @@ int nr_ulsch_encoding(NR_UE_ULSCH_t *ulsch,
A
=
harq_process
->
TBS
;
A
=
harq_process
->
TBS
;
pz
=
&
Z
;
pz
=
&
Z
;
mod_order
=
nr_get_Qm_ul
(
harq_process
->
mcs
,
0
);
mod_order
=
nr_get_Qm_ul
(
harq_process
->
mcs
,
0
);
R
=
nr_get_code_rate_ul
(
harq_process
->
mcs
,
0
);
Kr
=
0
;
Kr
=
0
;
r_offset
=
0
;
r_offset
=
0
;
BG
=
1
;
BG
=
1
;
...
@@ -284,7 +286,10 @@ int nr_ulsch_encoding(NR_UE_ULSCH_t *ulsch,
...
@@ -284,7 +286,10 @@ int nr_ulsch_encoding(NR_UE_ULSCH_t *ulsch,
///////////////////////// b---->| block segmentation |---->c /////////////////////////
///////////////////////// b---->| block segmentation |---->c /////////////////////////
///////////
///////////
Coderate
=
(
float
)
A
/
(
float
)
G
;
if
(
R
<
1024
)
Coderate
=
(
float
)
R
/
(
float
)
1024
;
else
Coderate
=
(
float
)
R
/
(
float
)
2048
;
if
((
A
<=
292
)
||
((
A
<=
3824
)
&&
(
Coderate
<=
0
.
6667
))
||
Coderate
<=
0
.
25
){
if
((
A
<=
292
)
||
((
A
<=
3824
)
&&
(
Coderate
<=
0
.
6667
))
||
Coderate
<=
0
.
25
){
BG
=
2
;
BG
=
2
;
...
@@ -303,7 +308,6 @@ int nr_ulsch_encoding(NR_UE_ULSCH_t *ulsch,
...
@@ -303,7 +308,6 @@ int nr_ulsch_encoding(NR_UE_ULSCH_t *ulsch,
BG
);
BG
);
F
=
harq_process
->
F
;
F
=
harq_process
->
F
;
Kr
=
harq_process
->
K
;
Kr
=
harq_process
->
K
;
#ifdef DEBUG_DLSCH_CODING
#ifdef DEBUG_DLSCH_CODING
uint16_t
Kr_bytes
;
uint16_t
Kr_bytes
;
...
...
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