fixed --single-thread flag (when not set)
This commit is contained in:
@@ -266,10 +266,7 @@ int dlsch_encoding_2threads0(te_params *tep) {
|
|||||||
unsigned short m=dlsch->harq_processes[harq_pid]->mcs;
|
unsigned short m=dlsch->harq_processes[harq_pid]->mcs;
|
||||||
|
|
||||||
|
|
||||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_ENCODING, VCD_FUNCTION_IN);
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_ENCODING_W, VCD_FUNCTION_IN);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (dlsch->harq_processes[harq_pid]->round == 0) { // this is a new packet
|
if (dlsch->harq_processes[harq_pid]->round == 0) { // this is a new packet
|
||||||
|
|
||||||
@@ -333,7 +330,7 @@ int dlsch_encoding_2threads0(te_params *tep) {
|
|||||||
m); // r
|
m); // r
|
||||||
}
|
}
|
||||||
|
|
||||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_ENCODING, VCD_FUNCTION_OUT);
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_ENCODING_W, VCD_FUNCTION_OUT);
|
||||||
|
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
@@ -425,6 +422,7 @@ int dlsch_encoding_2threads(PHY_VARS_eNB *eNB,
|
|||||||
return(-1);
|
return(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_ENCODING, VCD_FUNCTION_OUT);
|
||||||
++proc->instance_cnt_te;
|
++proc->instance_cnt_te;
|
||||||
|
|
||||||
proc->tep.eNB = eNB;
|
proc->tep.eNB = eNB;
|
||||||
@@ -440,6 +438,7 @@ int dlsch_encoding_2threads(PHY_VARS_eNB *eNB,
|
|||||||
|
|
||||||
pthread_mutex_unlock( &proc->mutex_te );
|
pthread_mutex_unlock( &proc->mutex_te );
|
||||||
|
|
||||||
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_ENCODING, VCD_FUNCTION_IN);
|
||||||
for (r=dlsch->harq_processes[harq_pid]->C>>1; r<dlsch->harq_processes[harq_pid]->C; r++) {
|
for (r=dlsch->harq_processes[harq_pid]->C>>1; r<dlsch->harq_processes[harq_pid]->C; r++) {
|
||||||
|
|
||||||
if (r<dlsch->harq_processes[harq_pid]->Cminus)
|
if (r<dlsch->harq_processes[harq_pid]->Cminus)
|
||||||
@@ -500,7 +499,7 @@ int dlsch_encoding_2threads(PHY_VARS_eNB *eNB,
|
|||||||
// Fill in the "e"-sequence from 36-212, V8.6 2009-03, p. 16-17 (for each "e") and concatenate the
|
// Fill in the "e"-sequence from 36-212, V8.6 2009-03, p. 16-17 (for each "e") and concatenate the
|
||||||
// outputs for each code segment, see Section 5.1.5 p.20
|
// outputs for each code segment, see Section 5.1.5 p.20
|
||||||
|
|
||||||
for (r=0; r<dlsch->harq_processes[harq_pid]->C; r++) {
|
for (r=0,r_offset=0; r<dlsch->harq_processes[harq_pid]->C; r++) {
|
||||||
|
|
||||||
// get information for E for the segments that are handled by the worker thread
|
// get information for E for the segments that are handled by the worker thread
|
||||||
if (r<(dlsch->harq_processes[harq_pid]->C>>1)) {
|
if (r<(dlsch->harq_processes[harq_pid]->C>>1)) {
|
||||||
|
|||||||
@@ -299,6 +299,12 @@ int ulsch_decoding_data_2thread0(td_params* tdp) {
|
|||||||
E = Nl*Q_m * ((GpmodC==0?0:1) + (Gp/C));
|
E = Nl*Q_m * ((GpmodC==0?0:1) + (Gp/C));
|
||||||
|
|
||||||
r_offset += E;
|
r_offset += E;
|
||||||
|
|
||||||
|
if (r==0) {
|
||||||
|
offset = Kr_bytes - (ulsch_harq->F>>3) - ((ulsch_harq->C>1)?3:0);
|
||||||
|
} else {
|
||||||
|
offset += (Kr_bytes- ((ulsch_harq->C>1)?3:0));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// go through second half of segments
|
// go through second half of segments
|
||||||
@@ -393,8 +399,7 @@ int ulsch_decoding_data_2thread0(td_params* tdp) {
|
|||||||
&eNB->ulsch_tc_intl1_stats,
|
&eNB->ulsch_tc_intl1_stats,
|
||||||
&eNB->ulsch_tc_intl2_stats);
|
&eNB->ulsch_tc_intl2_stats);
|
||||||
|
|
||||||
|
// Reassembly of Transport block here
|
||||||
// Reassembly of Transport block here
|
|
||||||
|
|
||||||
if (ret != (1+ulsch->max_turbo_iterations)) {
|
if (ret != (1+ulsch->max_turbo_iterations)) {
|
||||||
if (r<ulsch_harq->Cminus)
|
if (r<ulsch_harq->Cminus)
|
||||||
@@ -404,17 +409,11 @@ int ulsch_decoding_data_2thread0(td_params* tdp) {
|
|||||||
|
|
||||||
Kr_bytes = Kr>>3;
|
Kr_bytes = Kr>>3;
|
||||||
|
|
||||||
if (r==0) {
|
memcpy(ulsch_harq->b+offset,
|
||||||
memcpy(ulsch_harq->b,
|
ulsch_harq->c[r],
|
||||||
&ulsch_harq->c[0][(ulsch_harq->F>>3)],
|
Kr_bytes - ((ulsch_harq->C>1)?3:0));
|
||||||
Kr_bytes - (ulsch_harq->F>>3) - ((ulsch_harq->C>1)?3:0));
|
offset += (Kr_bytes- ((ulsch_harq->C>1)?3:0));
|
||||||
offset = Kr_bytes - (ulsch_harq->F>>3) - ((ulsch_harq->C>1)?3:0);
|
|
||||||
} else {
|
|
||||||
memcpy(ulsch_harq->b+offset,
|
|
||||||
ulsch_harq->c[r],
|
|
||||||
Kr_bytes - ((ulsch_harq->C>1)?3:0));
|
|
||||||
offset += (Kr_bytes- ((ulsch_harq->C>1)?3:0));
|
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -713,12 +713,14 @@ void ue_prach_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin
|
|||||||
if (ue->mac_enabled==1){
|
if (ue->mac_enabled==1){
|
||||||
// ask L2 for RACH transport
|
// ask L2 for RACH transport
|
||||||
if ((mode != rx_calib_ue) && (mode != rx_calib_ue_med) && (mode != rx_calib_ue_byp) && (mode != no_L2_connect) ) {
|
if ((mode != rx_calib_ue) && (mode != rx_calib_ue_med) && (mode != rx_calib_ue_byp) && (mode != no_L2_connect) ) {
|
||||||
|
LOG_D(PHY,"Getting PRACH resources\n");
|
||||||
ue->prach_resources[eNB_id] = mac_xface->ue_get_rach(ue->Mod_id,
|
ue->prach_resources[eNB_id] = mac_xface->ue_get_rach(ue->Mod_id,
|
||||||
ue->CC_id,
|
ue->CC_id,
|
||||||
frame_tx,
|
frame_tx,
|
||||||
eNB_id,
|
eNB_id,
|
||||||
subframe_tx);
|
subframe_tx);
|
||||||
LOG_D(PHY,"Got prach_resources for eNB %d address %d, RRCCommon %d\n",eNB_id,ue->prach_resources[eNB_id],UE_mac_inst[ue->Mod_id].radioResourceConfigCommon);
|
LOG_D(PHY,"Got prach_resources for eNB %d address %d, RRCCommon %d\n",eNB_id,ue->prach_resources[eNB_id],UE_mac_inst[ue->Mod_id].radioResourceConfigCommon);
|
||||||
|
LOG_D(PHY,"Prach resources %p\n",ue->prach_resources[eNB_id]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1005,6 +1005,46 @@ int get_nCCE_offset(int *CCE_table,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void dump_CCE_table(int *CCE_table,const int nCCE,const unsigned short rnti,const int subframe,int L) {
|
||||||
|
|
||||||
|
int nb_candidates = 0,i;
|
||||||
|
unsigned int Yk;
|
||||||
|
|
||||||
|
for (i=0;i<nCCE;i++) {
|
||||||
|
printf("%1d.",CCE_table[i]);
|
||||||
|
if ((i&7) == 0)
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
Yk = (unsigned int)rnti;
|
||||||
|
|
||||||
|
for (i=0; i<=subframe; i++)
|
||||||
|
Yk = (Yk*39827)%65537;
|
||||||
|
|
||||||
|
Yk = Yk % (nCCE/L);
|
||||||
|
|
||||||
|
|
||||||
|
switch (L) {
|
||||||
|
case 1:
|
||||||
|
case 2:
|
||||||
|
nb_candidates = 6;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 4:
|
||||||
|
case 8:
|
||||||
|
nb_candidates = 2;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
DevParam(L, nCCE, rnti);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
printf("rnti %x, Yk*L = %d, nCCE %d (nCCE/L %d),nb_cand*L %d\n",rnti,Yk*L,nCCE,nCCE/L,nb_candidates*L);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// Allocate the CCEs
|
// Allocate the CCEs
|
||||||
int allocate_CCEs(int module_idP,
|
int allocate_CCEs(int module_idP,
|
||||||
int CC_idP,
|
int CC_idP,
|
||||||
@@ -1056,12 +1096,14 @@ try_again:
|
|||||||
subframeP,dci_alloc->rnti);
|
subframeP,dci_alloc->rnti);
|
||||||
for (j=0;j<=i;j++){
|
for (j=0;j<=i;j++){
|
||||||
LOG_I(MAC,"DCI %d/%d (%d,%d) : rnti %x dci format %d, aggreg %d nCCE %d / %d (num_pdcch_symbols %d)\n",
|
LOG_I(MAC,"DCI %d/%d (%d,%d) : rnti %x dci format %d, aggreg %d nCCE %d / %d (num_pdcch_symbols %d)\n",
|
||||||
i,DCI_pdu->Num_common_dci+DCI_pdu->Num_ue_spec_dci,
|
j,DCI_pdu->Num_common_dci+DCI_pdu->Num_ue_spec_dci,
|
||||||
DCI_pdu->Num_common_dci,DCI_pdu->Num_ue_spec_dci,
|
DCI_pdu->Num_common_dci,DCI_pdu->Num_ue_spec_dci,
|
||||||
DCI_pdu->dci_alloc[j].rnti,DCI_pdu->dci_alloc[j].format,
|
DCI_pdu->dci_alloc[j].rnti,DCI_pdu->dci_alloc[j].format,
|
||||||
1<<DCI_pdu->dci_alloc[j].L,
|
1<<DCI_pdu->dci_alloc[j].L,
|
||||||
nCCE,nCCE_max,DCI_pdu->num_pdcch_symbols);
|
nCCE,nCCE_max,DCI_pdu->num_pdcch_symbols);
|
||||||
}
|
}
|
||||||
|
dump_CCE_table(CCE_table,nCCE_max,subframeP,dci_alloc->rnti,dci_alloc->L);
|
||||||
|
|
||||||
goto failed;
|
goto failed;
|
||||||
}
|
}
|
||||||
DCI_pdu->num_pdcch_symbols++;
|
DCI_pdu->num_pdcch_symbols++;
|
||||||
|
|||||||
@@ -291,10 +291,10 @@ mac_rrc_data_req(
|
|||||||
|
|
||||||
#endif //Rel10
|
#endif //Rel10
|
||||||
} else { //This is an UE
|
} else { //This is an UE
|
||||||
#ifdef DEBUG_RRC
|
|
||||||
LOG_D(RRC,"[UE %d] Frame %d Filling CCCH SRB_ID %d\n",Mod_idP,frameP,Srb_id);
|
LOG_D(RRC,"[UE %d] Frame %d Filling CCCH SRB_ID %d\n",Mod_idP,frameP,Srb_id);
|
||||||
LOG_D(RRC,"[UE %d] Frame %d buffer_pP status %d,\n",Mod_idP,frameP, UE_rrc_inst[Mod_idP].Srb0[eNB_index].Tx_buffer.payload_size);
|
LOG_D(RRC,"[UE %d] Frame %d buffer_pP status %d,\n",Mod_idP,frameP, UE_rrc_inst[Mod_idP].Srb0[eNB_index].Tx_buffer.payload_size);
|
||||||
#endif
|
|
||||||
|
|
||||||
if( (UE_rrc_inst[Mod_idP].Srb0[eNB_index].Tx_buffer.payload_size > 0) ) {
|
if( (UE_rrc_inst[Mod_idP].Srb0[eNB_index].Tx_buffer.payload_size > 0) ) {
|
||||||
|
|
||||||
|
|||||||
@@ -272,6 +272,7 @@ const char* eurecomFunctionsNames[] = {
|
|||||||
"phy_ue_ulsch_scrambling",
|
"phy_ue_ulsch_scrambling",
|
||||||
"phy_eNB_dlsch_modulation",
|
"phy_eNB_dlsch_modulation",
|
||||||
"phy_eNB_dlsch_encoding",
|
"phy_eNB_dlsch_encoding",
|
||||||
|
"phy_eNB_dlsch_encoding_w",
|
||||||
"phy_eNB_dlsch_scrambling",
|
"phy_eNB_dlsch_scrambling",
|
||||||
|
|
||||||
/* MAC signals */
|
/* MAC signals */
|
||||||
|
|||||||
@@ -246,6 +246,7 @@ typedef enum {
|
|||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_ULSCH_SCRAMBLING,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_ULSCH_SCRAMBLING,
|
||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_MODULATION,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_MODULATION,
|
||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_ENCODING,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_ENCODING,
|
||||||
|
VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_ENCODING_W,
|
||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_SCRAMBLING,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_SCRAMBLING,
|
||||||
|
|
||||||
/* MAC signals */
|
/* MAC signals */
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ eNBs =
|
|||||||
pucch_nRB_CQI = 1;
|
pucch_nRB_CQI = 1;
|
||||||
pucch_nCS_AN = 0;
|
pucch_nCS_AN = 0;
|
||||||
pucch_n1_AN = 32;
|
pucch_n1_AN = 32;
|
||||||
pdsch_referenceSignalPower = -32;
|
pdsch_referenceSignalPower = -29;
|
||||||
pdsch_p_b = 0;
|
pdsch_p_b = 0;
|
||||||
pusch_n_SB = 1;
|
pusch_n_SB = 1;
|
||||||
pusch_enable64QAM = "DISABLE";
|
pusch_enable64QAM = "DISABLE";
|
||||||
@@ -70,7 +70,7 @@ eNBs =
|
|||||||
|
|
||||||
pusch_p0_Nominal = -96;
|
pusch_p0_Nominal = -96;
|
||||||
pusch_alpha = "AL1";
|
pusch_alpha = "AL1";
|
||||||
pucch_p0_Nominal = -103;
|
pucch_p0_Nominal = -100;
|
||||||
msg3_delta_Preamble = 6;
|
msg3_delta_Preamble = 6;
|
||||||
pucch_deltaF_Format1 = "deltaF2";
|
pucch_deltaF_Format1 = "deltaF2";
|
||||||
pucch_deltaF_Format1b = "deltaF3";
|
pucch_deltaF_Format1b = "deltaF3";
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ eNBs =
|
|||||||
|
|
||||||
pusch_p0_Nominal = -96;
|
pusch_p0_Nominal = -96;
|
||||||
pusch_alpha = "AL1";
|
pusch_alpha = "AL1";
|
||||||
pucch_p0_Nominal = -103;
|
pucch_p0_Nominal = -100;
|
||||||
msg3_delta_Preamble = 6;
|
msg3_delta_Preamble = 6;
|
||||||
pucch_deltaF_Format1 = "deltaF2";
|
pucch_deltaF_Format1 = "deltaF2";
|
||||||
pucch_deltaF_Format1b = "deltaF3";
|
pucch_deltaF_Format1b = "deltaF3";
|
||||||
|
|||||||
+14
-12
@@ -237,7 +237,7 @@ static inline void thread_top_init(char *thread_name,
|
|||||||
}
|
}
|
||||||
|
|
||||||
memset(&sparam, 0, sizeof(sparam));
|
memset(&sparam, 0, sizeof(sparam));
|
||||||
sparam.sched_priority = sched_get_priority_max(SCHED_FIFO)-1;
|
sparam.sched_priority = sched_get_priority_max(SCHED_FIFO);
|
||||||
policy = SCHED_FIFO ;
|
policy = SCHED_FIFO ;
|
||||||
|
|
||||||
s = pthread_setschedparam(pthread_self(), policy, &sparam);
|
s = pthread_setschedparam(pthread_self(), policy, &sparam);
|
||||||
@@ -1566,6 +1566,7 @@ int start_rf(PHY_VARS_eNB *eNB) {
|
|||||||
|
|
||||||
extern void eNB_fep_rru_if5(PHY_VARS_eNB *eNB);
|
extern void eNB_fep_rru_if5(PHY_VARS_eNB *eNB);
|
||||||
extern void eNB_fep_full(PHY_VARS_eNB *eNB);
|
extern void eNB_fep_full(PHY_VARS_eNB *eNB);
|
||||||
|
extern void eNB_fep_full_2thread(PHY_VARS_eNB *eNB);
|
||||||
extern void do_prach(PHY_VARS_eNB *eNB);
|
extern void do_prach(PHY_VARS_eNB *eNB);
|
||||||
|
|
||||||
void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst,eth_params_t *eth_params,int single_thread_flag) {
|
void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst,eth_params_t *eth_params,int single_thread_flag) {
|
||||||
@@ -1613,7 +1614,7 @@ void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst
|
|||||||
break;
|
break;
|
||||||
case NGFI_RRU_IF4p5:
|
case NGFI_RRU_IF4p5:
|
||||||
eNB->do_prach = do_prach;
|
eNB->do_prach = do_prach;
|
||||||
eNB->fep = eNB_fep_full;
|
eNB->fep = (single_thread_flag==1) ? eNB_fep_full_2thread : eNB_fep_full;
|
||||||
eNB->td = NULL;
|
eNB->td = NULL;
|
||||||
eNB->te = NULL;
|
eNB->te = NULL;
|
||||||
eNB->proc_uespec_rx = NULL;
|
eNB->proc_uespec_rx = NULL;
|
||||||
@@ -1642,9 +1643,9 @@ void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst
|
|||||||
break;
|
break;
|
||||||
case eNodeB_3GPP:
|
case eNodeB_3GPP:
|
||||||
eNB->do_prach = do_prach;
|
eNB->do_prach = do_prach;
|
||||||
eNB->fep = eNB_fep_full;
|
eNB->fep = (single_thread_flag==1) ? eNB_fep_full_2thread : eNB_fep_full;
|
||||||
eNB->td = ulsch_decoding_data_2thread;
|
eNB->td = ulsch_decoding_data;//(single_thread_flag==1) ? ulsch_decoding_data_2thread : ulsch_decoding_data;
|
||||||
eNB->te = dlsch_encoding_2threads;
|
eNB->te = dlsch_encoding;//(single_thread_flag==1) ? dlsch_encoding_2threads : dlsch_encoding;
|
||||||
eNB->proc_uespec_rx = phy_procedures_eNB_uespec_RX;
|
eNB->proc_uespec_rx = phy_procedures_eNB_uespec_RX;
|
||||||
eNB->proc_tx = proc_tx_full;
|
eNB->proc_tx = proc_tx_full;
|
||||||
eNB->tx_fh = NULL;
|
eNB->tx_fh = NULL;
|
||||||
@@ -1662,9 +1663,9 @@ void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst
|
|||||||
break;
|
break;
|
||||||
case eNodeB_3GPP_BBU:
|
case eNodeB_3GPP_BBU:
|
||||||
eNB->do_prach = do_prach;
|
eNB->do_prach = do_prach;
|
||||||
eNB->fep = eNB_fep_full;
|
eNB->fep = (single_thread_flag==1) ? eNB_fep_full_2thread : eNB_fep_full;
|
||||||
eNB->td = ulsch_decoding_data_2thread;
|
eNB->td = (single_thread_flag==1) ? ulsch_decoding_data_2thread : ulsch_decoding_data;
|
||||||
eNB->te = dlsch_encoding_2threads;
|
eNB->te = (single_thread_flag==1) ? dlsch_encoding_2threads : dlsch_encoding;
|
||||||
eNB->proc_uespec_rx = phy_procedures_eNB_uespec_RX;
|
eNB->proc_uespec_rx = phy_procedures_eNB_uespec_RX;
|
||||||
eNB->proc_tx = proc_tx_full;
|
eNB->proc_tx = proc_tx_full;
|
||||||
eNB->tx_fh = tx_fh_if5;
|
eNB->tx_fh = tx_fh_if5;
|
||||||
@@ -1687,8 +1688,8 @@ void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst
|
|||||||
case NGFI_RCC_IF4p5:
|
case NGFI_RCC_IF4p5:
|
||||||
eNB->do_prach = do_prach;
|
eNB->do_prach = do_prach;
|
||||||
eNB->fep = NULL;
|
eNB->fep = NULL;
|
||||||
eNB->td = ulsch_decoding_data_2thread;
|
eNB->td = (single_thread_flag==1) ? ulsch_decoding_data_2thread : ulsch_decoding_data;
|
||||||
eNB->te = dlsch_encoding_2threads;
|
eNB->te = (single_thread_flag==1) ? dlsch_encoding_2threads : dlsch_encoding;
|
||||||
eNB->proc_uespec_rx = phy_procedures_eNB_uespec_RX;
|
eNB->proc_uespec_rx = phy_procedures_eNB_uespec_RX;
|
||||||
eNB->proc_tx = proc_tx_high;
|
eNB->proc_tx = proc_tx_high;
|
||||||
eNB->tx_fh = tx_fh_if4p5;
|
eNB->tx_fh = tx_fh_if4p5;
|
||||||
@@ -1710,8 +1711,9 @@ void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst
|
|||||||
case NGFI_RAU_IF4p5:
|
case NGFI_RAU_IF4p5:
|
||||||
eNB->do_prach = do_prach;
|
eNB->do_prach = do_prach;
|
||||||
eNB->fep = NULL;
|
eNB->fep = NULL;
|
||||||
eNB->td = ulsch_decoding_data_2thread;
|
|
||||||
eNB->te = dlsch_encoding_2threads;
|
eNB->td = (single_thread_flag==1) ? ulsch_decoding_data_2thread : ulsch_decoding_data;
|
||||||
|
eNB->te = (single_thread_flag==1) ? dlsch_encoding_2threads : dlsch_encoding;
|
||||||
eNB->proc_uespec_rx = phy_procedures_eNB_uespec_RX;
|
eNB->proc_uespec_rx = phy_procedures_eNB_uespec_RX;
|
||||||
eNB->proc_tx = proc_tx_high;
|
eNB->proc_tx = proc_tx_high;
|
||||||
eNB->tx_fh = tx_fh_if4p5;
|
eNB->tx_fh = tx_fh_if4p5;
|
||||||
|
|||||||
Reference in New Issue
Block a user