Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG UE
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
Michael Black
OpenXG UE
Commits
14c059bb
Commit
14c059bb
authored
Feb 23, 2017
by
gabrielC
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix problem in DCI decoding following dci_handling_br branch integration
parent
25b26b7e
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
47 additions
and
7 deletions
+47
-7
openair1/PHY/LTE_TRANSPORT/dci_tools.c
openair1/PHY/LTE_TRANSPORT/dci_tools.c
+47
-7
No files found.
openair1/PHY/LTE_TRANSPORT/dci_tools.c
View file @
14c059bb
...
@@ -4756,7 +4756,6 @@ void extract_dci2A_info(uint8_t N_RB_DL, lte_frame_type_t frame_type, uint8_t nb
...
@@ -4756,7 +4756,6 @@ void extract_dci2A_info(uint8_t N_RB_DL, lte_frame_type_t frame_type, uint8_t nb
pdci_info_extarcted
->
tpmi
=
tpmi
;
pdci_info_extarcted
->
tpmi
=
tpmi
;
}
}
#define DEBUG_DL_DECODING
int
check_dci_format1_1a_coherency
(
DCI_format_t
dci_format
,
int
check_dci_format1_1a_coherency
(
DCI_format_t
dci_format
,
uint8_t
N_RB_DL
,
uint8_t
N_RB_DL
,
uint16_t
rnti
,
uint16_t
rnti
,
...
@@ -4776,7 +4775,19 @@ int check_dci_format1_1a_coherency(DCI_format_t dci_format,
...
@@ -4776,7 +4775,19 @@ int check_dci_format1_1a_coherency(DCI_format_t dci_format,
uint8_t
rah
=
pdci_info_extarcted
->
rah
;
uint8_t
rah
=
pdci_info_extarcted
->
rah
;
uint8_t
NPRB
=
0
;
uint8_t
NPRB
=
0
;
uint32_t
RIV_max
=
0
;
long
long
int
RIV_max
=
0
;
#ifdef DEBUG_DCI
LOG_I
(
PHY
,
"[DCI-FORMAT-1-1A] dci_format %d
\n
"
,
dci_format
);
LOG_I
(
PHY
,
"[DCI-FORMAT-1-1A] rnti %x
\n
"
,
rnti
);
LOG_I
(
PHY
,
"[DCI-FORMAT-1-1A] harq_pid %d
\n
"
,
harq_pid
);
LOG_I
(
PHY
,
"[DCI-FORMAT-1-1A] rah %d
\n
"
,
rah
);
LOG_I
(
PHY
,
"[DCI-FORMAT-1-1A] rballoc %x
\n
"
,
rballoc
);
LOG_I
(
PHY
,
"[DCI-FORMAT-1-1A] mcs1 %d
\n
"
,
mcs1
);
LOG_I
(
PHY
,
"[DCI-FORMAT-1-1A] rv1 %d
\n
"
,
rv1
);
LOG_I
(
PHY
,
"[DCI-FORMAT-1-1A] ndi1 %d
\n
"
,
ndi1
);
LOG_I
(
PHY
,
"[DCI-FORMAT-1-1A] TPC %d
\n
"
,
TPC
);
#endif
// I- check dci content minimum coherency
// I- check dci content minimum coherency
if
(
((
rnti
==
si_rnti
)
||
(
rnti
==
p_rnti
)
||
(
rnti
==
ra_rnti
))
&&
harq_pid
>
0
)
if
(
((
rnti
==
si_rnti
)
||
(
rnti
==
p_rnti
)
||
(
rnti
==
ra_rnti
))
&&
harq_pid
>
0
)
...
@@ -4835,19 +4846,31 @@ int check_dci_format1_1a_coherency(DCI_format_t dci_format,
...
@@ -4835,19 +4846,31 @@ int check_dci_format1_1a_coherency(DCI_format_t dci_format,
switch
(
N_RB_DL
)
{
switch
(
N_RB_DL
)
{
case
6
:
case
6
:
NPRB
=
RIV2nb_rb_LUT6
[
rballoc
];
//NPRB;
NPRB
=
RIV2nb_rb_LUT6
[
rballoc
];
//NPRB;
if
(
rah
)
RIV_max
=
RIV_max6
;
RIV_max
=
RIV_max6
;
else
RIV_max
=
0x3F
;
break
;
break
;
case
25
:
case
25
:
NPRB
=
RIV2nb_rb_LUT25
[
rballoc
];
//NPRB;
NPRB
=
RIV2nb_rb_LUT25
[
rballoc
];
//NPRB;
if
(
rah
)
RIV_max
=
RIV_max25
;
RIV_max
=
RIV_max25
;
else
RIV_max
=
0x1FFF
;
break
;
break
;
case
50
:
case
50
:
NPRB
=
RIV2nb_rb_LUT50
[
rballoc
];
//NPRB;
NPRB
=
RIV2nb_rb_LUT50
[
rballoc
];
//NPRB;
if
(
rah
)
RIV_max
=
RIV_max50
;
RIV_max
=
RIV_max50
;
else
RIV_max
=
0x1FFFF
;
break
;
break
;
case
100
:
case
100
:
NPRB
=
RIV2nb_rb_LUT100
[
rballoc
];
//NPRB;
NPRB
=
RIV2nb_rb_LUT100
[
rballoc
];
//NPRB;
if
(
rah
)
RIV_max
=
RIV_max100
;
RIV_max
=
RIV_max100
;
else
RIV_max
=
0x1FFFFFF
;
break
;
break
;
}
}
}
}
...
@@ -5871,6 +5894,9 @@ int generate_ue_dlsch_params_from_dci(int frame,
...
@@ -5871,6 +5894,9 @@ int generate_ue_dlsch_params_from_dci(int frame,
case
format1A
:
case
format1A
:
{
{
// extract dci infomation
// extract dci infomation
#ifdef DEBUG_DCI
LOG_I
(
PHY
,
"[DCI-FORMAT-1A] AbsSubframe %d.%d extarct dci info
\n
"
,
frame
,
subframe
);
#endif
extract_dci1A_info
(
frame_parms
->
N_RB_DL
,
extract_dci1A_info
(
frame_parms
->
N_RB_DL
,
frame_type
,
frame_type
,
dci_pdu
,
dci_pdu
,
...
@@ -5881,7 +5907,9 @@ int generate_ue_dlsch_params_from_dci(int frame,
...
@@ -5881,7 +5907,9 @@ int generate_ue_dlsch_params_from_dci(int frame,
dlsch0
=
dlsch
[
0
];
dlsch0
=
dlsch
[
0
];
dlsch0
->
active
=
0
;
dlsch0
->
active
=
0
;
dlsch0_harq
=
dlsch
[
0
]
->
harq_processes
[
dci_info_extarcted
.
harq_pid
];
dlsch0_harq
=
dlsch
[
0
]
->
harq_processes
[
dci_info_extarcted
.
harq_pid
];
#ifdef DEBUG_DCI
LOG_I
(
PHY
,
"[DCI-FORMAT-1A] AbsSubframe %d.%d check dci coherency
\n
"
,
frame
,
subframe
);
#endif
status
=
check_dci_format1_1a_coherency
(
format1A
,
status
=
check_dci_format1_1a_coherency
(
format1A
,
frame_parms
->
N_RB_DL
,
frame_parms
->
N_RB_DL
,
rnti
,
rnti
,
...
@@ -5895,6 +5923,9 @@ int generate_ue_dlsch_params_from_dci(int frame,
...
@@ -5895,6 +5923,9 @@ int generate_ue_dlsch_params_from_dci(int frame,
return
(
-
1
);
return
(
-
1
);
// dci is correct ==> update internal structure and prepare dl decoding
// dci is correct ==> update internal structure and prepare dl decoding
#ifdef DEBUG_DCI
LOG_I
(
PHY
,
"[DCI-FORMAT-1A] AbsSubframe %d.%d prepare dl decoding
\n
"
,
frame
,
subframe
);
#endif
prepare_dl_decoding_format1_1A
(
format1A
,
prepare_dl_decoding_format1_1A
(
format1A
,
frame_parms
->
N_RB_DL
,
frame_parms
->
N_RB_DL
,
&
dci_info_extarcted
,
&
dci_info_extarcted
,
...
@@ -5963,6 +5994,9 @@ int generate_ue_dlsch_params_from_dci(int frame,
...
@@ -5963,6 +5994,9 @@ int generate_ue_dlsch_params_from_dci(int frame,
case
format1
:
case
format1
:
{
{
// extract dci infomation
// extract dci infomation
#ifdef DEBUG_DCI
LOG_I
(
PHY
,
"[DCI-FORMAT-1] AbsSubframe %d.%d extarct dci info
\n
"
,
frame
,
subframe
);
#endif
extract_dci1_info
(
frame_parms
->
N_RB_DL
,
extract_dci1_info
(
frame_parms
->
N_RB_DL
,
frame_type
,
frame_type
,
dci_pdu
,
dci_pdu
,
...
@@ -5973,6 +6007,9 @@ int generate_ue_dlsch_params_from_dci(int frame,
...
@@ -5973,6 +6007,9 @@ int generate_ue_dlsch_params_from_dci(int frame,
dlsch0
->
active
=
0
;
dlsch0
->
active
=
0
;
dlsch0_harq
=
dlsch
[
0
]
->
harq_processes
[
dci_info_extarcted
.
harq_pid
];
dlsch0_harq
=
dlsch
[
0
]
->
harq_processes
[
dci_info_extarcted
.
harq_pid
];
#ifdef DEBUG_DCI
LOG_I
(
PHY
,
"[DCI-FORMAT-1] AbsSubframe %d.%d check dci coherency
\n
"
,
frame
,
subframe
);
#endif
status
=
check_dci_format1_1a_coherency
(
format1
,
status
=
check_dci_format1_1a_coherency
(
format1
,
frame_parms
->
N_RB_DL
,
frame_parms
->
N_RB_DL
,
rnti
,
rnti
,
...
@@ -5986,6 +6023,9 @@ int generate_ue_dlsch_params_from_dci(int frame,
...
@@ -5986,6 +6023,9 @@ int generate_ue_dlsch_params_from_dci(int frame,
return
(
-
1
);
return
(
-
1
);
// dci is correct ==> update internal structure and prepare dl decoding
// dci is correct ==> update internal structure and prepare dl decoding
#ifdef DEBUG_DCI
LOG_I
(
PHY
,
"[DCI-FORMAT-1] AbsSubframe %d.%d prepare dl decoding
\n
"
,
frame
,
subframe
);
#endif
prepare_dl_decoding_format1_1A
(
format1
,
prepare_dl_decoding_format1_1A
(
format1
,
frame_parms
->
N_RB_DL
,
frame_parms
->
N_RB_DL
,
&
dci_info_extarcted
,
&
dci_info_extarcted
,
...
...
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