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
0eeb2fc2
Commit
0eeb2fc2
authored
May 20, 2021
by
francescomani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
putting back downlink_harq_process and some other fixes
parent
60f3d721
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
64 additions
and
6 deletions
+64
-6
openair1/SCHED_NR_UE/fapi_nr_ue_l1.c
openair1/SCHED_NR_UE/fapi_nr_ue_l1.c
+2
-0
openair1/SCHED_NR_UE/harq_nr.c
openair1/SCHED_NR_UE/harq_nr.c
+55
-0
openair1/SCHED_NR_UE/harq_nr.h
openair1/SCHED_NR_UE/harq_nr.h
+1
-1
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
+6
-5
No files found.
openair1/SCHED_NR_UE/fapi_nr_ue_l1.c
View file @
0eeb2fc2
...
@@ -122,6 +122,7 @@ int8_t nr_ue_scheduled_response(nr_scheduled_response_t *scheduled_response){
...
@@ -122,6 +122,7 @@ int8_t nr_ue_scheduled_response(nr_scheduled_response_t *scheduled_response){
dlsch0
->
g_pucch
=
dlsch_config_pdu
->
accumulated_delta_PUCCH
;
dlsch0
->
g_pucch
=
dlsch_config_pdu
->
accumulated_delta_PUCCH
;
dlsch0_harq
->
Nl
=
1
;
dlsch0_harq
->
Nl
=
1
;
dlsch0_harq
->
mcs_table
=
dlsch_config_pdu
->
mcs_table
;
dlsch0_harq
->
mcs_table
=
dlsch_config_pdu
->
mcs_table
;
downlink_harq_process
(
dlsch0_harq
,
dlsch0
->
current_harq_pid
,
dlsch_config_pdu
->
ndi
,
dlsch0
->
rnti_type
);
if
(
dlsch0_harq
->
status
!=
ACTIVE
)
{
if
(
dlsch0_harq
->
status
!=
ACTIVE
)
{
// dlsch0_harq->status not ACTIVE may be due to false retransmission. Reset the
// dlsch0_harq->status not ACTIVE may be due to false retransmission. Reset the
// following flag to skip PDSCH procedures in that case.
// following flag to skip PDSCH procedures in that case.
...
@@ -201,6 +202,7 @@ int8_t nr_ue_scheduled_response(nr_scheduled_response_t *scheduled_response){
...
@@ -201,6 +202,7 @@ int8_t nr_ue_scheduled_response(nr_scheduled_response_t *scheduled_response){
if
(
pucch_vars
->
active
[
j
]
==
false
)
{
if
(
pucch_vars
->
active
[
j
]
==
false
)
{
LOG_D
(
PHY
,
"%d.%d Copying pucch pdu to UE PHY
\n
"
,
scheduled_response
->
frame
,
slot
);
LOG_D
(
PHY
,
"%d.%d Copying pucch pdu to UE PHY
\n
"
,
scheduled_response
->
frame
,
slot
);
memcpy
((
void
*
)
&
(
pucch_vars
->
pucch_pdu
[
j
]),
(
void
*
)
pucch_config_pdu
,
sizeof
(
fapi_nr_ul_config_pucch_pdu
));
memcpy
((
void
*
)
&
(
pucch_vars
->
pucch_pdu
[
j
]),
(
void
*
)
pucch_config_pdu
,
sizeof
(
fapi_nr_ul_config_pucch_pdu
));
pucch_vars
->
active
[
j
]
=
true
;
found
=
true
;
found
=
true
;
}
}
}
}
...
...
openair1/SCHED_NR_UE/harq_nr.c
View file @
0eeb2fc2
...
@@ -308,4 +308,59 @@ void init_downlink_harq_status(NR_DL_UE_HARQ_t *dl_harq)
...
@@ -308,4 +308,59 @@ void init_downlink_harq_status(NR_DL_UE_HARQ_t *dl_harq)
dl_harq
->
status
=
SCH_IDLE
;
dl_harq
->
status
=
SCH_IDLE
;
dl_harq
->
first_tx
=
1
;
dl_harq
->
first_tx
=
1
;
dl_harq
->
round
=
0
;
dl_harq
->
round
=
0
;
dl_harq
->
ack
=
DL_ACKNACK_NO_SET
;
}
}
/*******************************************************************
*
* NAME : downlink_harq_process
*
* PARAMETERS : downlink harq context
* harq identifier
* ndi (new data indicator) from DCI
* rnti_type from DCI
*
* RETURN : none
*
* DESCRIPTION : manage downlink information from DCI for downlink transmissions/retransmissions
* TS 38.321 5.3.1 DL Assignment reception
* TS 38.321 5.3.2 HARQ operation
*
*********************************************************************/
void
downlink_harq_process
(
NR_DL_UE_HARQ_t
*
dl_harq
,
int
harq_pid
,
int
ndi
,
uint8_t
rnti_type
)
{
if
(
rnti_type
==
_CS_RNTI_
)
{
LOG_E
(
PHY
,
"Fatal error in HARQ entity due to not supported CS_RNTI at line %d in function %s of file %s
\n
"
,
__LINE__
,
__func__
,
__FILE__
);
return
;
}
else
if
((
rnti_type
!=
_C_RNTI_
)
&&
(
rnti_type
!=
_TC_RNTI_
))
{
/* harq mechanism is not relevant for other rnti */
return
;
}
if
(
dl_harq
->
first_tx
==
1
)
{
dl_harq
->
round
=
0
;
dl_harq
->
status
=
ACTIVE
;
dl_harq
->
DCINdi
=
ndi
;
dl_harq
->
first_tx
=
0
;
LOG_D
(
PHY
,
"[HARQ-DL-PDSCH harqId : %d] first new reception
\n
"
,
harq_pid
);
}
else
if
(
dl_harq
->
DCINdi
!=
ndi
)
{
dl_harq
->
round
=
0
;
dl_harq
->
status
=
ACTIVE
;
dl_harq
->
DCINdi
=
ndi
;
LOG_D
(
PHY
,
"[HARQ-DL-PDSCH harqId : %d] new reception due to toogle of ndi
\n
"
,
harq_pid
);
}
else
{
dl_harq
->
round
++
;
if
(
dl_harq
->
ack
)
dl_harq
->
status
=
SCH_IDLE
;
LOG_D
(
PHY
,
"[HARQ-DL-PDSCH harqId : %d] reception of a retransmission
\n
"
,
harq_pid
);
}
}
openair1/SCHED_NR_UE/harq_nr.h
View file @
0eeb2fc2
...
@@ -120,7 +120,7 @@ void init_downlink_harq_status(NR_DL_UE_HARQ_t *dl_harq);
...
@@ -120,7 +120,7 @@ void init_downlink_harq_status(NR_DL_UE_HARQ_t *dl_harq);
@param rnti_type type of rnti
@param rnti_type type of rnti
@returns retransmission or new transmission */
@returns retransmission or new transmission */
harq_result_t
downlink_harq_process
(
NR_DL_UE_HARQ_t
*
dlsch
,
int
harq_pid
,
int
ndi
,
uint8_t
rnti_type
);
void
downlink_harq_process
(
NR_DL_UE_HARQ_t
*
dlsch
,
int
harq_pid
,
int
ndi
,
uint8_t
rnti_type
);
#undef EXTERN
#undef EXTERN
#undef INIT_VARIABLES_HARQ_NR_H
#undef INIT_VARIABLES_HARQ_NR_H
...
...
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
View file @
0eeb2fc2
...
@@ -1786,6 +1786,7 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,
...
@@ -1786,6 +1786,7 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,
// do procedures for C-RNTI
// do procedures for C-RNTI
int
ret_pdsch
=
0
;
int
ret_pdsch
=
0
;
if
(
ue
->
dlsch
[
proc
->
thread_id
][
gNB_id
][
0
]
->
active
==
1
)
{
if
(
ue
->
dlsch
[
proc
->
thread_id
][
gNB_id
][
0
]
->
active
==
1
)
{
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC_C
,
VCD_FUNCTION_IN
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC_C
,
VCD_FUNCTION_IN
);
ret_pdsch
=
nr_ue_pdsch_procedures
(
ue
,
ret_pdsch
=
nr_ue_pdsch_procedures
(
ue
,
proc
,
proc
,
...
...
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