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
常顺宇
OpenXG-RAN
Commits
8750aceb
Commit
8750aceb
authored
Nov 07, 2016
by
GabrirelCouturier
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[OAI-UE] fix for issue#14: segmentation fault in turbo decoder
parent
9fbbd067
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
48 additions
and
5 deletions
+48
-5
openair1/PHY/LTE_TRANSPORT/dci_tools.c
openair1/PHY/LTE_TRANSPORT/dci_tools.c
+33
-0
openair1/PHY/LTE_TRANSPORT/dlsch_decoding.c
openair1/PHY/LTE_TRANSPORT/dlsch_decoding.c
+11
-1
openair1/SCHED/phy_procedures_lte_ue.c
openair1/SCHED/phy_procedures_lte_ue.c
+2
-2
openair1/SCHED/pucch_pc.c
openair1/SCHED/pucch_pc.c
+2
-2
No files found.
openair1/PHY/LTE_TRANSPORT/dci_tools.c
View file @
8750aceb
...
...
@@ -1260,6 +1260,11 @@ int generate_eNB_dlsch_params_from_dci(int frame,
dlsch0_harq->TBS = TBStable[get_I_TBS(dlsch0_harq->mcs)][NPRB-1];
}
else
{
LOG_E(PHY,"DL Received HarqReTx round=%d mcs=%d rballoc=%d rv=%d \n",
dlsch0_harq->round,mcs,rballoc,rv);
}
dlsch[0]->current_harq_pid = harq_pid;
...
...
@@ -4143,6 +4148,20 @@ int generate_ue_dlsch_params_from_dci(int frame,
dlsch0_harq->DCINdi = ndi;
// this a retransmission
if(dlsch0_harq->round)
{
// compare old TBS to new TBS
if(dlsch0_harq->TBS != TBStable[get_I_TBS(mcs)][NPRB-1])
{
// this is an eNB issue
// retransmisison but old and new TBS are different !!!
// work around, consider it as a new transmission
LOG_E(PHY,"Format1A Retransmission but TBS are different: consider it as new transmission !!! \n");
dlsch0_harq->round = 0;
}
}
dlsch0_harq->mcs = mcs;
if ((rnti==si_rnti) || (rnti==p_rnti) || (rnti==ra_rnti)) {
dlsch0_harq->TBS = TBStable[mcs][NPRB-1];
...
...
@@ -4452,6 +4471,20 @@ int generate_ue_dlsch_params_from_dci(int frame,
dlsch0_harq->mcs = mcs;
// this a retransmission
if(dlsch0_harq->round)
{
// compare old TBS to new TBS
if(dlsch0_harq->TBS != TBStable[get_I_TBS(mcs)][NPRB-1])
{
// this is an eNB issue
// retransmisison but old and new TBS are different !!!
// work around, consider it as a new transmission
LOG_E(PHY,"Format1 Retransmission but TBS are different: consider it as new transmission !!! \n");
dlsch0_harq->round = 0;
}
}
dlsch0_harq->TBS = TBStable[get_I_TBS(mcs)][NPRB-1];
if (mcs <= 28)
dlsch0_harq->Qm = get_Qm(mcs);
...
...
openair1/PHY/LTE_TRANSPORT/dlsch_decoding.c
View file @
8750aceb
...
...
@@ -249,7 +249,12 @@ uint32_t dlsch_decoding(PHY_VARS_UE *phy_vars_ue,
tc
=
phy_threegpplte_turbo_decoder16
;
}
else
tc
=
phy_threegpplte_turbo_decoder8
;
{
AssertFatal
(
harq_process
->
TBS
>=
256
,
"Mismatch flag nbRB=%d TBS=%d mcs=%d Qm=%d RIV=%d round=%d
\n
"
,
harq_process
->
nb_rb
,
harq_process
->
TBS
,
harq_process
->
mcs
,
harq_process
->
Qm
,
harq_process
->
rvidx
,
harq_process
->
round
);
tc
=
phy_threegpplte_turbo_decoder8
;
}
// nb_rb = dlsch->nb_rb;
...
...
@@ -448,6 +453,11 @@ uint32_t dlsch_decoding(PHY_VARS_UE *phy_vars_ue,
#if 1
if
(
err_flag
==
0
)
{
if
(
llr8_flag
)
{
AssertFatal
(
Kr
>=
256
,
"turbo algo issue Kr=%d cb_cnt=%d C=%d nbRB=%d TBSInput=%d TBSHarq=%d TBSplus24=%d mcs=%d Qm=%d RIV=%d round=%d
\n
"
,
Kr
,
r
,
harq_process
->
C
,
harq_process
->
nb_rb
,
A
,
harq_process
->
TBS
,
harq_process
->
B
,
harq_process
->
mcs
,
harq_process
->
Qm
,
harq_process
->
rvidx
,
harq_process
->
round
);
}
start_meas
(
dlsch_turbo_decoding_stats
);
ret
=
tc
(
&
harq_process
->
d
[
r
][
96
],
...
...
openair1/SCHED/phy_procedures_lte_ue.c
View file @
8750aceb
...
...
@@ -2579,7 +2579,7 @@ int ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint
if
(
generate_ue_dlsch_params_from_dci
(
frame_rx
,
subframe_rx
,
(
void
*
)
&
dci_alloc_rx
[
i
].
dci_pdu
,
SI
_RNTI
,
P
_RNTI
,
dci_alloc_rx
[
i
].
format
,
&
ue
->
dlsch_SI
[
eNB_id
],
&
ue
->
frame_parms
,
...
...
@@ -3072,7 +3072,7 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue,
subframe_rx
,
harq_pid
,
pdsch
==
PDSCH
?
1
:
0
,
dlsch0
->
harq_processes
[
harq_pid
]
->
nb_rb
>
10
?
1
:
0
);
dlsch0
->
harq_processes
[
harq_pid
]
->
TBS
>
256
?
1
:
0
);
stop_meas
(
&
ue
->
dlsch_decoding_stats
);
}
...
...
openair1/SCHED/pucch_pc.c
View file @
8750aceb
...
...
@@ -88,7 +88,7 @@ int8_t pucch_power_cntl(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t subframe,ui
}
if
(
pucch_fmt
!=
pucch_format1
)
{
LOG_
I
(
PHY
,
"[UE %d][PDSCH %x] frame %d, subframe %d: Po_PUCCH %d dBm : Po_NOMINAL_PUCCH %d dBm, PL %d dB, g_pucch %d dB
\n
"
,
LOG_
D
(
PHY
,
"[UE %d][PDSCH %x] frame %d, subframe %d: Po_PUCCH %d dBm : Po_NOMINAL_PUCCH %d dBm, PL %d dB, g_pucch %d dB
\n
"
,
ue
->
Mod_id
,
ue
->
dlsch
[
eNB_id
][
0
]
->
rnti
,
proc
->
frame_tx
,
subframe
,
Po_PUCCH
,
...
...
@@ -96,7 +96,7 @@ int8_t pucch_power_cntl(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t subframe,ui
get_PL
(
ue
->
Mod_id
,
ue
->
CC_id
,
eNB_id
),
ue
->
dlsch
[
eNB_id
][
0
]
->
g_pucch
);
}
else
{
LOG_
I
(
PHY
,
"[UE %d][SR %x] frame %d, subframe %d: Po_PUCCH %d dBm : Po_NOMINAL_PUCCH %d dBm, PL %d dB g_pucch %d dB
\n
"
,
LOG_
D
(
PHY
,
"[UE %d][SR %x] frame %d, subframe %d: Po_PUCCH %d dBm : Po_NOMINAL_PUCCH %d dBm, PL %d dB g_pucch %d dB
\n
"
,
ue
->
Mod_id
,
ue
->
dlsch
[
eNB_id
][
0
]
->
rnti
,
proc
->
frame_tx
,
subframe
,
Po_PUCCH
,
...
...
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