fix execution of nr_ue_pdsch_procedures() only once per slot for SI_PDSCH, P_PDSCH and RA_PDSCH
This commit is contained in:
@@ -1813,24 +1813,48 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,
|
|||||||
if ((ue->dlsch_SI[gNB_id]) && (ue->dlsch_SI[gNB_id]->active == 1)) {
|
if ((ue->dlsch_SI[gNB_id]) && (ue->dlsch_SI[gNB_id]->active == 1)) {
|
||||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC_SI, VCD_FUNCTION_IN);
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC_SI, VCD_FUNCTION_IN);
|
||||||
nr_ue_pdsch_procedures(ue,
|
nr_ue_pdsch_procedures(ue,
|
||||||
proc,
|
proc,
|
||||||
gNB_id,
|
gNB_id,
|
||||||
SI_PDSCH,
|
SI_PDSCH,
|
||||||
ue->dlsch_SI[gNB_id],
|
ue->dlsch_SI[gNB_id],
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
|
nr_ue_dlsch_procedures(ue,
|
||||||
|
proc,
|
||||||
|
gNB_id,
|
||||||
|
SI_PDSCH,
|
||||||
|
ue->dlsch_SI[gNB_id],
|
||||||
|
NULL,
|
||||||
|
&ue->dlsch_SI_errors[gNB_id],
|
||||||
|
mode);
|
||||||
|
|
||||||
|
// deactivate dlsch once dlsch proc is done
|
||||||
|
ue->dlsch_SI[gNB_id]->active = 0;
|
||||||
|
|
||||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC_SI, VCD_FUNCTION_OUT);
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC_SI, VCD_FUNCTION_OUT);
|
||||||
}
|
}
|
||||||
|
|
||||||
// do procedures for SI-RNTI
|
// do procedures for P-RNTI
|
||||||
if ((ue->dlsch_p[gNB_id]) && (ue->dlsch_p[gNB_id]->active == 1)) {
|
if ((ue->dlsch_p[gNB_id]) && (ue->dlsch_p[gNB_id]->active == 1)) {
|
||||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC_P, VCD_FUNCTION_IN);
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC_P, VCD_FUNCTION_IN);
|
||||||
nr_ue_pdsch_procedures(ue,
|
nr_ue_pdsch_procedures(ue,
|
||||||
proc,
|
proc,
|
||||||
gNB_id,
|
gNB_id,
|
||||||
P_PDSCH,
|
P_PDSCH,
|
||||||
ue->dlsch_p[gNB_id],
|
ue->dlsch_p[gNB_id],
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
|
nr_ue_dlsch_procedures(ue,
|
||||||
|
proc,
|
||||||
|
gNB_id,
|
||||||
|
P_PDSCH,
|
||||||
|
ue->dlsch_p[gNB_id],
|
||||||
|
NULL,
|
||||||
|
&ue->dlsch_p_errors[gNB_id],
|
||||||
|
mode);
|
||||||
|
|
||||||
|
// deactivate dlsch once dlsch proc is done
|
||||||
|
ue->dlsch_p[gNB_id]->active = 0;
|
||||||
|
|
||||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC_P, VCD_FUNCTION_OUT);
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC_P, VCD_FUNCTION_OUT);
|
||||||
}
|
}
|
||||||
@@ -1839,15 +1863,11 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,
|
|||||||
if ((ue->dlsch_ra[gNB_id]) && (ue->dlsch_ra[gNB_id]->active == 1)) {
|
if ((ue->dlsch_ra[gNB_id]) && (ue->dlsch_ra[gNB_id]->active == 1)) {
|
||||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC_RA, VCD_FUNCTION_IN);
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC_RA, VCD_FUNCTION_IN);
|
||||||
nr_ue_pdsch_procedures(ue,
|
nr_ue_pdsch_procedures(ue,
|
||||||
proc,
|
proc,
|
||||||
gNB_id,
|
gNB_id,
|
||||||
RA_PDSCH,
|
RA_PDSCH,
|
||||||
ue->dlsch_ra[gNB_id],
|
ue->dlsch_ra[gNB_id],
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
// #if UE_TIMING_TRACE
|
|
||||||
// start_meas(&ue->dlsch_procedures_stat[ue->current_thread_id[nr_tti_rx]]);
|
|
||||||
// #endif
|
|
||||||
|
|
||||||
nr_ue_dlsch_procedures(ue,
|
nr_ue_dlsch_procedures(ue,
|
||||||
proc,
|
proc,
|
||||||
@@ -1858,18 +1878,10 @@ int phy_procedures_nrUE_RX(PHY_VARS_NR_UE *ue,
|
|||||||
&ue->dlsch_ra_errors[gNB_id],
|
&ue->dlsch_ra_errors[gNB_id],
|
||||||
mode);
|
mode);
|
||||||
|
|
||||||
// #if UE_TIMING_TRACE
|
// deactivate dlsch once dlsch proc is done
|
||||||
// stop_meas(&ue->dlsch_procedures_stat[ue->current_thread_id[nr_tti_rx]]);
|
ue->dlsch_ra[gNB_id]->active = 0;
|
||||||
#if DISABLE_LOG_X
|
|
||||||
printf("[SFN %d] Slot1: Pdsch Proc %5.2f\n", nr_tti_rx, ue->pdsch_procedures_stat[ue->current_thread_id[nr_tti_rx]].p_time/(cpuf*1000.0));
|
|
||||||
printf("[SFN %d] Slot0 Slot1: Dlsch Proc %5.2f\n", nr_tti_rx, ue->dlsch_procedures_stat[ue->current_thread_id[ nr_tti_rx]].p_time/(cpuf*1000.0));
|
|
||||||
#else
|
|
||||||
LOG_D(PHY, "[SFN %d] Slot1: Pdsch Proc %5.2f\n", nr_tti_rx, ue->pdsch_procedures_stat[ue->current_thread_id[ nr_tti_rx]].p_time/(cpuf*1000.0));
|
|
||||||
LOG_D(PHY, "[SFN %d] Slot0 Slot1: Dlsch Proc %5.2f\n", nr_tti_rx, ue->dlsch_procedures_stat[ue->current_thread_id[ nr_tti_rx]].p_time/(cpuf*1000.0));
|
|
||||||
#endif
|
|
||||||
// #endif
|
|
||||||
|
|
||||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC_RA, VCD_FUNCTION_OUT);
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC_RA, VCD_FUNCTION_OUT);
|
||||||
}
|
}
|
||||||
|
|
||||||
// do procedures for C-RNTI
|
// do procedures for C-RNTI
|
||||||
@@ -1936,71 +1948,8 @@ start_meas(&ue->generic_stat);
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// do procedures for SI-RNTI
|
|
||||||
if ((ue->dlsch_SI[gNB_id]) && (ue->dlsch_SI[gNB_id]->active == 1)) {
|
|
||||||
nr_ue_pdsch_procedures(ue,
|
|
||||||
proc,
|
|
||||||
gNB_id,
|
|
||||||
SI_PDSCH,
|
|
||||||
ue->dlsch_SI[gNB_id],
|
|
||||||
NULL);
|
|
||||||
|
|
||||||
/*ue_dlsch_procedures(ue,
|
|
||||||
proc,
|
|
||||||
gNB_id,
|
|
||||||
SI_PDSCH,
|
|
||||||
ue->dlsch_SI[gNB_id],
|
|
||||||
NULL,
|
|
||||||
&ue->dlsch_SI_errors[gNB_id],
|
|
||||||
mode,
|
|
||||||
abstraction_flag);
|
|
||||||
ue->dlsch_SI[gNB_id]->active = 0;*/
|
|
||||||
}
|
|
||||||
|
|
||||||
// do procedures for P-RNTI
|
|
||||||
if ((ue->dlsch_p[gNB_id]) && (ue->dlsch_p[gNB_id]->active == 1)) {
|
|
||||||
nr_ue_pdsch_procedures(ue,
|
|
||||||
proc,
|
|
||||||
gNB_id,
|
|
||||||
P_PDSCH,
|
|
||||||
ue->dlsch_p[gNB_id],
|
|
||||||
NULL);
|
|
||||||
|
|
||||||
|
|
||||||
/*ue_dlsch_procedures(ue,
|
|
||||||
proc,
|
|
||||||
gNB_id,
|
|
||||||
P_PDSCH,
|
|
||||||
ue->dlsch_p[gNB_id],
|
|
||||||
NULL,
|
|
||||||
&ue->dlsch_p_errors[gNB_id],
|
|
||||||
mode,
|
|
||||||
abstraction_flag);*/
|
|
||||||
ue->dlsch_p[gNB_id]->active = 0;
|
|
||||||
}
|
|
||||||
// do procedures for RA-RNTI
|
|
||||||
if ((ue->dlsch_ra[gNB_id]) && (ue->dlsch_ra[gNB_id]->active == 1)) {
|
|
||||||
nr_ue_pdsch_procedures(ue,
|
|
||||||
proc,
|
|
||||||
gNB_id,
|
|
||||||
RA_PDSCH,
|
|
||||||
ue->dlsch_ra[gNB_id],
|
|
||||||
NULL);
|
|
||||||
|
|
||||||
/*ue_dlsch_procedures(ue,
|
|
||||||
proc,
|
|
||||||
gNB_id,
|
|
||||||
RA_PDSCH,
|
|
||||||
ue->dlsch_ra[gNB_id],
|
|
||||||
NULL,
|
|
||||||
&ue->dlsch_ra_errors[gNB_id],
|
|
||||||
mode,
|
|
||||||
abstraction_flag);*/
|
|
||||||
ue->dlsch_ra[gNB_id]->active = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// duplicate harq structure
|
// duplicate harq structure
|
||||||
/*
|
/*
|
||||||
uint8_t current_harq_pid = ue->dlsch[ue->current_thread_id[nr_tti_rx]][gNB_id][0]->current_harq_pid;
|
uint8_t current_harq_pid = ue->dlsch[ue->current_thread_id[nr_tti_rx]][gNB_id][0]->current_harq_pid;
|
||||||
NR_DL_UE_HARQ_t *current_harq_processes = ue->dlsch[ue->current_thread_id[nr_tti_rx]][gNB_id][0]->harq_processes[current_harq_pid];
|
NR_DL_UE_HARQ_t *current_harq_processes = ue->dlsch[ue->current_thread_id[nr_tti_rx]][gNB_id][0]->harq_processes[current_harq_pid];
|
||||||
NR_DL_UE_HARQ_t *harq_processes_dest = ue->dlsch[next1_thread_id][gNB_id][0]->harq_processes[current_harq_pid];
|
NR_DL_UE_HARQ_t *harq_processes_dest = ue->dlsch[next1_thread_id][gNB_id][0]->harq_processes[current_harq_pid];
|
||||||
|
|||||||
Reference in New Issue
Block a user