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
dbf3b724
Commit
dbf3b724
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
f0c0a303
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 @
dbf3b724
...
@@ -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 @
dbf3b724
...
@@ -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 @
dbf3b724
...
@@ -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 @
dbf3b724
...
@@ -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