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
zzha zzha
OpenXG-RAN
Commits
b7b13de3
Commit
b7b13de3
authored
Jun 12, 2017
by
Elena_Lukashova
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Making sure llr is indexed per TB, and not per CW.
parent
ce29fca6
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
21 additions
and
18 deletions
+21
-18
openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c
openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c
+3
-1
openair1/SIMULATION/LTE_PHY/dlsim_tm4.c
openair1/SIMULATION/LTE_PHY/dlsim_tm4.c
+18
-17
No files found.
openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c
View file @
b7b13de3
...
...
@@ -144,6 +144,7 @@ int rx_pdsch(PHY_VARS_UE *ue,
case
PDSCH
:
pdsch_vars
=
ue
->
pdsch_vars
[
subframe
&
0x1
];
dlsch
=
ue
->
dlsch
[
subframe
&
0x1
][
eNB_id
];
//printf("status TB0 = %d, status TB1 = %d \n", dlsch[0]->harq_processes[harq_pid]->status, dlsch[1]->harq_processes[harq_pid]->status);
LOG_D
(
PHY
,
"AbsSubframe %d.%d / Sym %d harq_pid %d, harq status %d.%d
\n
"
,
frame
,
subframe
,
symbol
,
harq_pid
,
dlsch
[
0
]
->
harq_processes
[
harq_pid
]
->
status
,
...
...
@@ -198,6 +199,7 @@ int rx_pdsch(PHY_VARS_UE *ue,
DevAssert
(
dlsch0_harq
);
round
=
dlsch0_harq
->
round
;
//printf("round = %d\n", round);
if
(
eNB_id
>
2
)
{
LOG_W
(
PHY
,
"dlsch_demodulation.c: Illegal eNB_id %d
\n
"
,
eNB_id
);
...
...
@@ -238,7 +240,7 @@ int rx_pdsch(PHY_VARS_UE *ue,
if
((
dlsch0_harq
->
mimo_mode
==
LARGE_CDD
)
||
((
dlsch0_harq
->
mimo_mode
>=
DUALSTREAM_UNIFORM_PRECODING1
)
&&
(
dlsch0_harq
->
mimo_mode
<=
DUALSTREAM_PUSCH_PRECODING
)))
{
//
DevAssert(dlsch1_harq);
DevAssert
(
dlsch1_harq
);
if
(
eNB_id
!=
eNB_id_i
)
{
LOG_E
(
PHY
,
"TM3/TM4 requires to set eNB_id==eNB_id_i!
\n
"
);
return
(
-
1
);
...
...
openair1/SIMULATION/LTE_PHY/dlsim_tm4.c
View file @
b7b13de3
...
...
@@ -4297,12 +4297,10 @@ int main(int argc, char **argv)
(
rx_type
==
rx_SIC_dual_stream
))
{
#ifdef DEBUG_HARQ
printf
(
"[DLSIM] Starting SIC procedure
\n
"
);
printf
(
"current round = %d
\n
"
,
PHY_vars_UE
->
dlsch_ue
[
eNB_id
][
0
]
->
harq_processes
[
PHY_vars_UE
->
dlsch_ue
[
eNB_id
][
0
]
->
current_harq_pid
]
->
round
);
printf
(
"
\n
CW 0 is decoded, i go for , round %d
\n
"
,
round
);
printf
(
"
\n
ret[TB0] = %d round %d
\n
"
,
ret
[
TB
],
round
);
#endif
// printf("current round = %d\n", PHY_vars_UE->dlsch_ue[eNB_id][0]->harq_processes[PHY_vars_UE->dlsch_ue[eNB_id][0]->current_harq_pid]->round);
//printf("\n CW 0 is decoded, i go for , round %d\n", round);
//printf("\n ret[TB0] = %d round %d\n", ret[TB], round);
sic_attempt
[
round
]
++
;
for
(
round_sic
=
0
;
round_sic
<
(
round
+
1
);
round_sic
++
)
{
...
...
@@ -4319,26 +4317,29 @@ int main(int argc, char **argv)
dlsch0_eNB_harq
->
rb_alloc
[
0
]
=
dlsch0_ue_harq
->
rb_alloc_even
[
0
];
dlsch0_eNB_harq
->
nb_rb
=
dlsch0_ue_harq
->
nb_rb
;
dlsch0_eNB_harq
->
mcs
=
dlsch0_ue_harq
->
mcs
;
dlsch0_eNB_harq
->
rvidx
=
dlsch0_ue_harq
->
rvidx
;
dlsch0_eNB_harq
->
rvidx
=
round_sic
;
//dlsch0_ue_harq->rvidx;
//printf("dlsch0_eNB_harq->rvidx = %d \n", dlsch0_eNB_harq->rvidx);
dlsch0_eNB_harq
->
Nl
=
dlsch0_ue_harq
->
Nl
;
dlsch0_eNB_harq
->
round
=
dlsch0_ue_harq
->
round
;
dlsch0_eNB_harq
->
round
=
round_sic
;
//
dlsch0_ue_harq->round;
dlsch0_eNB_harq
->
TBS
=
dlsch0_ue_harq
->
TBS
;
dlsch0_eNB_harq
->
dl_power_off
=
dlsch0_ue_harq
->
dl_power_off
;
dlsch0_eNB_harq
->
status
=
dlsch0_ue_harq
->
status
;
UE
->
dlsch_eNB
[
eNB_id
]
->
harq_processes
[
UE
->
dlsch
[
subframe
&
0x1
][
eNB_id
][
1
]
->
current_harq_pid
]
->
rvidx
=
round_sic
;
UE
->
dlsch_eNB
[
eNB_id
]
->
harq_processes
[
UE
->
dlsch
[
subframe
&
0x1
][
eNB_id
][
0
]
->
current_harq_pid
]
->
rvidx
=
round_sic
;
UE
->
dlsch
[
subframe
&
0x1
][
0
][
1
]
->
harq_processes
[
UE
->
dlsch
[
subframe
&
0x1
][
0
][
1
]
->
current_harq_pid
]
->
rvidx
=
round_sic
;
UE
->
dlsch_eNB
[
eNB_id
]
->
harq_processes
[
UE
->
dlsch
[
subframe
&
0x1
][
eNB_id
][
1
]
->
current_harq_pid
]
->
round
=
round_sic
;
UE
->
dlsch_eNB
[
eNB_id
]
->
harq_processes
[
UE
->
dlsch
[
subframe
&
0x1
][
eNB_id
][
0
]
->
current_harq_pid
]
->
round
=
round_sic
;
UE
->
dlsch
[
subframe
&
0x1
][
0
][
1
]
->
harq_processes
[
UE
->
dlsch
[
subframe
&
0x1
][
0
][
1
]
->
current_harq_pid
]
->
round
=
round_sic
;
UE
->
dlsch_eNB
[
eNB_id
]
->
active
=
UE
->
dlsch
[
subframe
&
0x1
][
eNB_id
][
0
]
->
active
;
UE
->
dlsch_eNB
[
eNB_id
]
->
rnti
=
UE
->
dlsch
[
subframe
&
0x1
][
eNB_id
][
0
]
->
rnti
;
UE
->
dlsch_eNB
[
eNB_id
]
->
current_harq_pid
=
UE
->
dlsch
[
subframe
&
0x1
][
eNB_id
][
0
]
->
current_harq_pid
;
#ifdef DEBUG_HARQ
printf
(
"UE->dlsch_eNB[eNB_id]->harq_processes[UE->dlsch[subframe&0x1][eNB_id][0]->current_harq_pid]->round = %d
\n
"
,
UE
->
dlsch_eNB
[
eNB_id
]
->
harq_processes
[
UE
->
dlsch
[
subframe
&
0x1
][
eNB_id
][
0
]
->
current_harq_pid
]
->
round
);
#endif
dlsch_encoding_SIC
(
UE
,
input_buffer0
[
0
],
//UE->dlsch[subframe&0x1][eNB_id][0]->harq_processes[PHY_vars_UE->dlsch_ue[eNB_id][0]->current_harq_pid]->b,,
num_pdcch_symbols
,
UE
->
dlsch_eNB
[
eNB_id
],
&
UE
->
dlsch_eNB
[
0
][
0
],
0
,
subframe
,
&
UE
->
dlsch_rate_matching_stats
,
...
...
@@ -4358,7 +4359,7 @@ int main(int argc, char **argv)
dlsch_scrambling
(
&
UE
->
frame_parms
,
0
,
UE
->
dlsch_eNB
[
eNB_id
],
&
UE
->
dlsch_eNB
[
0
][
0
],
coded_bits_per_codeword
[
0
],
0
,
subframe
<<
1
);
...
...
@@ -4385,7 +4386,7 @@ int main(int argc, char **argv)
UE
->
pdsch_vars
[
subframe
&
0x1
][
eNB_id
]
->
rxdataF_comp1
[
UE
->
dlsch
[
subframe
&
0x1
][
0
][
1
]
->
current_harq_pid
][
round_sic
],
sic_buffer
,
UE
->
pdsch_vars
[
subframe
&
0x1
][
eNB_id
]
->
dl_ch_rho_ext
[
UE
->
dlsch
[
subframe
&
0x1
][
0
][
1
]
->
current_harq_pid
][
round_sic
],
UE
->
pdsch_vars
[
subframe
&
0x1
][
eNB_id
]
->
llr
[
UE
->
dlsch
[
subframe
&
0x1
][
0
][
1
]
->
harq_processes
[
UE
->
dlsch
[
subframe
&
0x1
][
0
][
1
]
->
current_harq_pid
]
->
codeword
],
UE
->
pdsch_vars
[
subframe
&
0x1
][
eNB_id
]
->
llr
[
1
],
num_pdcch_symbols
,
dlsch0_eNB_harq
->
nb_rb
,
subframe
,
...
...
@@ -4399,7 +4400,7 @@ int main(int argc, char **argv)
UE
->
pdsch_vars
[
subframe
&
0x1
][
eNB_id
]
->
rxdataF_comp1
[
UE
->
dlsch
[
subframe
&
0x1
][
0
][
1
]
->
current_harq_pid
][
round_sic
],
sic_buffer
,
UE
->
pdsch_vars
[
subframe
&
0x1
][
eNB_id
]
->
dl_ch_rho_ext
[
UE
->
dlsch
[
subframe
&
0x1
][
0
][
1
]
->
current_harq_pid
][
round_sic
],
UE
->
pdsch_vars
[
subframe
&
0x1
][
eNB_id
]
->
llr
[
UE
->
dlsch
[
subframe
&
0x1
][
0
][
1
]
->
harq_processes
[
UE
->
dlsch
[
subframe
&
0x1
][
0
][
1
]
->
current_harq_pid
]
->
codeword
],
UE
->
pdsch_vars
[
subframe
&
0x1
][
eNB_id
]
->
llr
[
1
],
num_pdcch_symbols
,
UE
->
pdsch_vars
[
subframe
&
0x1
][
eNB_id
]
->
dl_ch_mag1
[
UE
->
dlsch
[
subframe
&
0x1
][
0
][
1
]
->
current_harq_pid
][
round_sic
],
dlsch0_eNB_harq
->
nb_rb
,
...
...
@@ -4412,7 +4413,7 @@ int main(int argc, char **argv)
UE
->
pdsch_vars
[
subframe
&
0x1
][
eNB_id
]
->
rxdataF_comp1
[
UE
->
dlsch
[
subframe
&
0x1
][
0
][
1
]
->
current_harq_pid
][
round_sic
],
sic_buffer
,
UE
->
pdsch_vars
[
subframe
&
0x1
][
eNB_id
]
->
dl_ch_rho_ext
[
UE
->
dlsch
[
subframe
&
0x1
][
0
][
1
]
->
current_harq_pid
][
round_sic
],
UE
->
pdsch_vars
[
subframe
&
0x1
][
eNB_id
]
->
llr
[
UE
->
dlsch
[
subframe
&
0x1
][
0
][
1
]
->
harq_processes
[
UE
->
dlsch
[
subframe
&
0x1
][
0
][
1
]
->
current_harq_pid
]
->
codeword
],
UE
->
pdsch_vars
[
subframe
&
0x1
][
eNB_id
]
->
llr
[
1
],
num_pdcch_symbols
,
UE
->
pdsch_vars
[
subframe
&
0x1
][
eNB_id
]
->
dl_ch_mag1
[
UE
->
dlsch
[
subframe
&
0x1
][
0
][
1
]
->
current_harq_pid
][
round_sic
],
UE
->
pdsch_vars
[
subframe
&
0x1
][
eNB_id
]
->
dl_ch_magb1
[
UE
->
dlsch
[
subframe
&
0x1
][
0
][
1
]
->
current_harq_pid
][
round_sic
],
...
...
@@ -4482,7 +4483,7 @@ int main(int argc, char **argv)
0
,
UE
->
dlsch
[
subframe
&
0x1
][
0
][
1
],
coded_bits_per_codeword
[
1
],
UE
->
pdsch_vars
[
subframe
&
0x1
][
eNB_id
]
->
llr
[
UE
->
dlsch
[
subframe
&
0x1
][
0
][
1
]
->
harq_processes
[
UE
->
dlsch
[
subframe
&
0x1
][
0
][
1
]
->
current_harq_pid
]
->
codeword
],
UE
->
pdsch_vars
[
subframe
&
0x1
][
eNB_id
]
->
llr
[
1
],
1
,
subframe
<<
1
);
stop_meas
(
&
UE
->
dlsch_unscrambling_stats
);
...
...
@@ -4490,7 +4491,7 @@ int main(int argc, char **argv)
start_meas
(
&
UE
->
dlsch_decoding_stats
[
subframe
&
0x1
]);
ret
[
1
]
=
dlsch_decoding
(
UE
,
UE
->
pdsch_vars
[
subframe
&
0x1
][
eNB_id
]
->
llr
[
UE
->
dlsch
[
subframe
&
0x1
][
0
][
1
]
->
harq_processes
[
UE
->
dlsch
[
subframe
&
0x1
][
0
][
1
]
->
current_harq_pid
]
->
codeword
],
UE
->
pdsch_vars
[
subframe
&
0x1
][
eNB_id
]
->
llr
[
1
],
&
UE
->
frame_parms
,
UE
->
dlsch
[
subframe
&
0x1
][
0
][
1
],
UE
->
dlsch
[
subframe
&
0x1
][
0
][
1
]
->
harq_processes
[
UE
->
dlsch
[
subframe
&
0x1
][
0
][
1
]
->
current_harq_pid
],
...
...
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