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
wangjie
OpenXG-RAN
Commits
abfeb4ef
Commit
abfeb4ef
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
c17e81b2
Changes
1
Hide 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 @
abfeb4ef
...
@@ -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;
RIV_max
=
RIV_max6
;
if
(
rah
)
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;
RIV_max
=
RIV_max25
;
if
(
rah
)
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;
RIV_max
=
RIV_max50
;
if
(
rah
)
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;
RIV_max
=
RIV_max100
;
if
(
rah
)
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