rebase to develop
This commit is contained in:
@@ -776,12 +776,6 @@ void init_NR_UE_threads(int nb_inst) {
|
|||||||
|
|
||||||
LOG_I(PHY,"Intializing UE Threads for instance %d (%p,%p)...\n",inst,PHY_vars_UE_g[inst],PHY_vars_UE_g[inst][0]);
|
LOG_I(PHY,"Intializing UE Threads for instance %d (%p,%p)...\n",inst,PHY_vars_UE_g[inst],PHY_vars_UE_g[inst][0]);
|
||||||
threadCreate(&threads[inst], UE_thread, (void *)UE, "UEthread", -1, OAI_PRIORITY_RT_MAX);
|
threadCreate(&threads[inst], UE_thread, (void *)UE, "UEthread", -1, OAI_PRIORITY_RT_MAX);
|
||||||
|
|
||||||
if(get_nrUE_params()->nr_dlsch_parallel)
|
|
||||||
{
|
|
||||||
pthread_t dlsch0_threads;
|
|
||||||
threadCreate(&dlsch0_threads, dlsch_thread, (void *)UE, "DLthread", -1, OAI_PRIORITY_RT_MAX-1);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1087,22 +1087,6 @@ uint8_t nr_ue_pusch_common_procedures(PHY_VARS_NR_UE *UE,
|
|||||||
NR_DL_FRAME_PARMS *frame_parms,
|
NR_DL_FRAME_PARMS *frame_parms,
|
||||||
uint8_t Nl);
|
uint8_t Nl);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
uint32_t nr_dlsch_decoding_mthread(PHY_VARS_NR_UE *phy_vars_ue,
|
|
||||||
UE_nr_rxtx_proc_t *proc,
|
|
||||||
int eNB_id,
|
|
||||||
short *dlsch_llr,
|
|
||||||
NR_DL_FRAME_PARMS *frame_parms,
|
|
||||||
NR_UE_DLSCH_t *dlsch,
|
|
||||||
NR_DL_UE_HARQ_t *harq_process,
|
|
||||||
uint32_t frame,
|
|
||||||
uint16_t nb_symb_sch,
|
|
||||||
uint8_t nr_slot_rx,
|
|
||||||
uint8_t harq_pid,
|
|
||||||
uint8_t is_crnti,
|
|
||||||
uint8_t llr8_flag);
|
|
||||||
|
|
||||||
void *nr_dlsch_decoding_2thread0(void *arg);
|
void *nr_dlsch_decoding_2thread0(void *arg);
|
||||||
|
|
||||||
void *nr_dlsch_decoding_2thread1(void *arg);
|
void *nr_dlsch_decoding_2thread1(void *arg);
|
||||||
@@ -1750,8 +1734,6 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue,
|
|||||||
int32_t generate_nr_prach(PHY_VARS_NR_UE *ue, uint8_t gNB_id, uint8_t subframe);
|
int32_t generate_nr_prach(PHY_VARS_NR_UE *ue, uint8_t gNB_id, uint8_t subframe);
|
||||||
|
|
||||||
void dump_nrdlsch(PHY_VARS_NR_UE *ue,uint8_t gNB_id,uint8_t nr_slot_rx,unsigned int *coded_bits_per_codeword,int round, unsigned char harq_pid);
|
void dump_nrdlsch(PHY_VARS_NR_UE *ue,uint8_t gNB_id,uint8_t nr_slot_rx,unsigned int *coded_bits_per_codeword,int round, unsigned char harq_pid);
|
||||||
|
|
||||||
void *dlsch_thread(void *arg);
|
|
||||||
/**@}*/
|
/**@}*/
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -256,6 +256,8 @@ typedef struct {
|
|||||||
int8_t delta_PUCCH;
|
int8_t delta_PUCCH;
|
||||||
/// Number of soft channel bits
|
/// Number of soft channel bits
|
||||||
uint32_t G;
|
uint32_t G;
|
||||||
|
/// Number of segments processed so far
|
||||||
|
uint32_t processedSegments;
|
||||||
/// Start PRB of BWP
|
/// Start PRB of BWP
|
||||||
uint16_t BWPStart;
|
uint16_t BWPStart;
|
||||||
/// Number of PRBs in BWP
|
/// Number of PRBs in BWP
|
||||||
|
|||||||
@@ -1068,7 +1068,7 @@ typedef struct {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
int dl_stats[5];
|
int dl_stats[5];
|
||||||
|
int nbDecode;
|
||||||
} PHY_VARS_NR_UE;
|
} PHY_VARS_NR_UE;
|
||||||
|
|
||||||
/* this structure is used to pass both UE phy vars and
|
/* this structure is used to pass both UE phy vars and
|
||||||
@@ -1081,5 +1081,27 @@ typedef struct nr_rxtx_thread_data_s {
|
|||||||
notifiedFIFO_t txFifo;
|
notifiedFIFO_t txFifo;
|
||||||
} nr_rxtx_thread_data_t;
|
} nr_rxtx_thread_data_t;
|
||||||
|
|
||||||
|
typedef struct LDPCDecode_ue_s {
|
||||||
|
PHY_VARS_NR_UE *phy_vars_ue;
|
||||||
|
NR_DL_UE_HARQ_t *harq_process;
|
||||||
|
t_nrLDPC_dec_params decoderParms;
|
||||||
|
NR_UE_DLSCH_t *dlsch;
|
||||||
|
short* dlsch_llr;
|
||||||
|
int dlsch_id;
|
||||||
|
int harq_pid;
|
||||||
|
int rv_index;
|
||||||
|
int A;
|
||||||
|
int E;
|
||||||
|
int Kc;
|
||||||
|
int Qm;
|
||||||
|
int Kr_bytes;
|
||||||
|
int nbSegments;
|
||||||
|
int segment_r;
|
||||||
|
int r_offset;
|
||||||
|
int offset;
|
||||||
|
int Tbslbrm;
|
||||||
|
int decodeIterations;
|
||||||
|
} ldpcDecode_ue_t;
|
||||||
|
|
||||||
#include "SIMULATION/ETH_TRANSPORT/defs.h"
|
#include "SIMULATION/ETH_TRANSPORT/defs.h"
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -980,37 +980,23 @@ bool nr_ue_dlsch_procedures(PHY_VARS_NR_UE *ue,
|
|||||||
|
|
||||||
start_meas(&ue->dlsch_decoding_stats[proc->thread_id]);
|
start_meas(&ue->dlsch_decoding_stats[proc->thread_id]);
|
||||||
|
|
||||||
|
ret = nr_dlsch_decoding(ue,
|
||||||
|
proc,
|
||||||
|
gNB_id,
|
||||||
|
pdsch_vars->llr[0],
|
||||||
|
&ue->frame_parms,
|
||||||
|
dlsch0,
|
||||||
|
dlsch0->harq_processes[harq_pid],
|
||||||
|
frame_rx,
|
||||||
|
nb_symb_sch,
|
||||||
|
nr_slot_rx,
|
||||||
|
harq_pid,
|
||||||
|
pdsch==PDSCH?1:0,
|
||||||
|
dlsch0->harq_processes[harq_pid]->TBS>256?1:0);
|
||||||
if( dlsch_parallel) {
|
if( dlsch_parallel) {
|
||||||
ret = nr_dlsch_decoding_mthread(ue,
|
|
||||||
proc,
|
|
||||||
gNB_id,
|
|
||||||
pdsch_vars->llr[0],
|
|
||||||
&ue->frame_parms,
|
|
||||||
dlsch0,
|
|
||||||
dlsch0->harq_processes[harq_pid],
|
|
||||||
frame_rx,
|
|
||||||
nb_symb_sch,
|
|
||||||
nr_slot_rx,
|
|
||||||
harq_pid,
|
|
||||||
pdsch==PDSCH?1:0,
|
|
||||||
dlsch0->harq_processes[harq_pid]->TBS>256?1:0);
|
|
||||||
|
|
||||||
LOG_T(PHY,"dlsch decoding is parallelized, ret = %d\n", ret);
|
LOG_T(PHY,"dlsch decoding is parallelized, ret = %d\n", ret);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
ret = nr_dlsch_decoding(ue,
|
|
||||||
proc,
|
|
||||||
gNB_id,
|
|
||||||
pdsch_vars->llr[0],
|
|
||||||
&ue->frame_parms,
|
|
||||||
dlsch0,
|
|
||||||
dlsch0->harq_processes[harq_pid],
|
|
||||||
frame_rx,
|
|
||||||
nb_symb_sch,
|
|
||||||
nr_slot_rx,
|
|
||||||
harq_pid,
|
|
||||||
pdsch==PDSCH?1:0,
|
|
||||||
dlsch0->harq_processes[harq_pid]->TBS>256?1:0);
|
|
||||||
LOG_T(PHY,"Sequential dlsch decoding , ret = %d\n", ret);
|
LOG_T(PHY,"Sequential dlsch decoding , ret = %d\n", ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1082,36 +1068,24 @@ bool nr_ue_dlsch_procedures(PHY_VARS_NR_UE *ue,
|
|||||||
start_meas(&ue->dlsch_decoding_stats[proc->thread_id]);
|
start_meas(&ue->dlsch_decoding_stats[proc->thread_id]);
|
||||||
|
|
||||||
|
|
||||||
|
ret1 = nr_dlsch_decoding(ue,
|
||||||
|
proc,
|
||||||
|
gNB_id,
|
||||||
|
pdsch_vars->llr[1],
|
||||||
|
&ue->frame_parms,
|
||||||
|
dlsch1,
|
||||||
|
dlsch1->harq_processes[harq_pid],
|
||||||
|
frame_rx,
|
||||||
|
nb_symb_sch,
|
||||||
|
nr_slot_rx,
|
||||||
|
harq_pid,
|
||||||
|
pdsch==PDSCH?1:0,//proc->decoder_switch,
|
||||||
|
dlsch1->harq_processes[harq_pid]->TBS>256?1:0);
|
||||||
if(dlsch_parallel) {
|
if(dlsch_parallel) {
|
||||||
ret1 = nr_dlsch_decoding_mthread(ue,
|
|
||||||
proc,
|
|
||||||
gNB_id,
|
|
||||||
pdsch_vars->llr[1],
|
|
||||||
&ue->frame_parms,
|
|
||||||
dlsch1,
|
|
||||||
dlsch1->harq_processes[harq_pid],
|
|
||||||
frame_rx,
|
|
||||||
nb_symb_sch,
|
|
||||||
nr_slot_rx,
|
|
||||||
harq_pid,
|
|
||||||
pdsch==PDSCH?1:0,
|
|
||||||
dlsch1->harq_processes[harq_pid]->TBS>256?1:0);
|
|
||||||
LOG_T(PHY,"CW dlsch decoding is parallelized, ret1 = %d\n", ret1);
|
LOG_T(PHY,"CW dlsch decoding is parallelized, ret1 = %d\n", ret1);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
ret1 = nr_dlsch_decoding(ue,
|
|
||||||
proc,
|
|
||||||
gNB_id,
|
|
||||||
pdsch_vars->llr[1],
|
|
||||||
&ue->frame_parms,
|
|
||||||
dlsch1,
|
|
||||||
dlsch1->harq_processes[harq_pid],
|
|
||||||
frame_rx,
|
|
||||||
nb_symb_sch,
|
|
||||||
nr_slot_rx,
|
|
||||||
harq_pid,
|
|
||||||
pdsch==PDSCH?1:0,//proc->decoder_switch,
|
|
||||||
dlsch1->harq_processes[harq_pid]->TBS>256?1:0);
|
|
||||||
LOG_T(PHY,"CWW sequential dlsch decoding, ret1 = %d\n", ret1);
|
LOG_T(PHY,"CWW sequential dlsch decoding, ret1 = %d\n", ret1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user