Merge remote-tracking branch 'origin/nr_fix_easycppcheck' into integration-develop-nr-2020w02
This commit is contained in:
+2
-4
@@ -806,7 +806,6 @@ static void *ru_thread_asynch_rxtx( void *param ) {
|
||||
printf( "devices ok (ru_thread_asynch_rx)\n");
|
||||
|
||||
while (!oai_exit) {
|
||||
if (oai_exit) break;
|
||||
|
||||
if (subframe==9) {
|
||||
subframe=0;
|
||||
@@ -854,7 +853,7 @@ static void *ru_thread_prach( void *param ) {
|
||||
LOG_I(PHY,"%s() RU configured - RACH processing thread running\n", __FUNCTION__);
|
||||
|
||||
while (!oai_exit) {
|
||||
if (oai_exit) break;
|
||||
|
||||
|
||||
if (wait_on_condition(&proc->mutex_prach,&proc->cond_prach,&proc->instance_cnt_prach,"ru_prach_thread") < 0) break;
|
||||
|
||||
@@ -1159,7 +1158,7 @@ int setup_RU_buffers(RU_t *ru) {
|
||||
frame_parms = ru->nr_frame_parms;
|
||||
printf("setup_RU_buffers: frame_parms = %p\n",frame_parms);
|
||||
} else {
|
||||
printf("RU[%d] not initialized\n", ru->idx);
|
||||
printf("ru pointer is NULL\n");
|
||||
return(-1);
|
||||
}
|
||||
|
||||
@@ -1259,7 +1258,6 @@ static void *ru_thread_tx( void *param ) {
|
||||
}
|
||||
|
||||
while (!oai_exit) {
|
||||
if (oai_exit) break;
|
||||
|
||||
LOG_D(PHY,"ru_thread_tx: Waiting for TX processing\n");
|
||||
// wait until eNBs are finished subframe RX n and TX n+4
|
||||
|
||||
@@ -317,6 +317,7 @@ int test_ldpc(short No_iteration,
|
||||
for (i = 0; i < block_length+(nrows-no_punctured_columns) * Zc - removed_bit; i++)
|
||||
if (channel_input[j][i]!=channel_input_optim[j][i]) {
|
||||
printf("differ in seg %u pos %u (%u,%u)\n", j, i, channel_input[j][i], channel_input_optim[j][i]);
|
||||
free(channel_output);
|
||||
return (-1);
|
||||
}
|
||||
//else{
|
||||
|
||||
@@ -215,6 +215,8 @@ if (logFlag){
|
||||
free(encoder_outputByte);
|
||||
free(channel_output);
|
||||
free(modulated_input);
|
||||
if (logFlag)
|
||||
fclose(logFile);
|
||||
return 0;
|
||||
#endif
|
||||
|
||||
@@ -317,13 +319,13 @@ if (logFlag){
|
||||
if (nBitError>0) blockErrorState=1;
|
||||
#ifdef DEBUG_POLARTEST
|
||||
for (int i = 0; i < testArrayLength; i++)
|
||||
printf("[polartest/decoderState=%d] testInput[%d]=0x%08x, estimatedOutput[%d]=0x%08x\n",decoderState, i, testInput[i], i, estimatedOutput[i]);
|
||||
printf("[polartest/decoderState=%u] testInput[%d]=0x%08x, estimatedOutput[%d]=0x%08x\n",decoderState, i, testInput[i], i, estimatedOutput[i]);
|
||||
#endif
|
||||
|
||||
//Iteration times are in microseconds.
|
||||
timeEncoderCumulative+=(timeEncoder.diff/(cpu_freq_GHz*1000.0));
|
||||
timeDecoderCumulative+=(timeDecoder.diff/(cpu_freq_GHz*1000.0));
|
||||
if (logFlag) fprintf(logFile,",%f,%d,%d,%f,%f\n", SNR, nBitError, blockErrorState, (timeEncoder.diff/(cpu_freq_GHz*1000.0)), (timeDecoder.diff/(cpu_freq_GHz*1000.0)));
|
||||
if (logFlag) fprintf(logFile,",%f,%d,%u,%f,%f\n", SNR, nBitError, blockErrorState, (timeEncoder.diff/(cpu_freq_GHz*1000.0)), (timeDecoder.diff/(cpu_freq_GHz*1000.0)));
|
||||
|
||||
if (nBitError<0) {
|
||||
blockErrorCumulative++;
|
||||
|
||||
@@ -494,7 +494,8 @@ int ldpc_encoder_orig(unsigned char *test_input,unsigned char *channel_input,int
|
||||
fprintf(fd," int i2;\n");
|
||||
fprintf(fd2," int i2;\n");
|
||||
fprintf(fd," for (i2=0; i2<%d; i2++) {\n",Zc>>shift);
|
||||
fprintf(fd2," for (i2=0; i2<%d; i2++) {\n",Zc>>(shift-1));
|
||||
if (shift > 0)
|
||||
fprintf(fd2," for (i2=0; i2<%d; i2++) {\n",Zc>>(shift-1));
|
||||
for (i2=0; i2 < 1; i2++)
|
||||
{
|
||||
//t=Kb*Zc+i2;
|
||||
|
||||
@@ -252,6 +252,7 @@ int8_t polar_decoder(double *input,
|
||||
nr_free_uint8_3D_array(bit, polarParams->N, (polarParams->n+1));
|
||||
nr_free_double_3D_array(llr, polarParams->N, (polarParams->n+1));
|
||||
nr_free_uint8_2D_array(crcChecksum, polarParams->crcParityBits);
|
||||
free(tempECGM);
|
||||
return(-1);
|
||||
}
|
||||
|
||||
@@ -522,6 +523,7 @@ int8_t polar_decoder_dci(double *input,
|
||||
nr_free_uint8_3D_array(bit, polarParams->N, (polarParams->n+1));
|
||||
nr_free_double_3D_array(llr, polarParams->N, (polarParams->n+1));
|
||||
nr_free_uint8_2D_array(crcChecksum, polarParams->crcParityBits);
|
||||
free(tempECGM);
|
||||
return(-1);
|
||||
}
|
||||
|
||||
|
||||
@@ -470,7 +470,7 @@ void computeBeta(const t_nrPolar_params *pp,decoder_node_t *node) {
|
||||
int ssr4len = node->Nv/2/8;
|
||||
register __m128i allones=*((__m128i*)all1);
|
||||
for (int i=0;i<sse4len;i++) {
|
||||
((__m256i*)betav)[i] = _mm_or_si128(_mm_cmpeq_epi16(((__m128i*)betar)[i], ((__m128i*)betal)[i]),allones));
|
||||
((__m256i*)betav)[i] = _mm_or_si128(_mm_cmpeq_epi16(((__m128i*)betar)[i], ((__m128i*)betal)[i]),allones);
|
||||
}
|
||||
}
|
||||
else if (sse4mod == 4) {
|
||||
|
||||
@@ -103,7 +103,11 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
|
||||
break;
|
||||
|
||||
default:
|
||||
printf("pusch_channel_estimation: nushift=%d -> ERROR\n",nushift);
|
||||
#ifdef DEBUG_CH
|
||||
if (debug_ch_est)
|
||||
fclose(debug_ch_est);
|
||||
|
||||
#endif
|
||||
return(-1);
|
||||
break;
|
||||
}
|
||||
@@ -193,7 +197,7 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
|
||||
ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15);
|
||||
ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15);
|
||||
#ifdef DEBUG_CH
|
||||
fprintf(debug_ch_est, "pilot %d : rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",pilot_cnt,rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]);
|
||||
fprintf(debug_ch_est, "pilot %u : rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",pilot_cnt,rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]);
|
||||
//printf("pilot %d : rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",pilot_cnt,rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]);
|
||||
#endif
|
||||
multadd_real_vector_complex_scalar(fm,
|
||||
@@ -208,7 +212,7 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
|
||||
ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15);
|
||||
ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15);
|
||||
#ifdef DEBUG_PUSCH
|
||||
printf("pilot %d : rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",pilot_cnt+1,rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]);
|
||||
printf("pilot %u : rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",pilot_cnt+1,rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]);
|
||||
#endif
|
||||
multadd_real_vector_complex_scalar(fmm,
|
||||
ch,
|
||||
@@ -225,7 +229,7 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
|
||||
ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15);
|
||||
ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15);
|
||||
#ifdef DEBUG_PUSCH
|
||||
printf("pilot %d : rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",pilot_cnt,rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]);
|
||||
printf("pilot %u : rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",pilot_cnt,rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]);
|
||||
#endif
|
||||
multadd_real_vector_complex_scalar(fm,
|
||||
ch,
|
||||
@@ -243,7 +247,7 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
|
||||
ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15);
|
||||
#ifdef DEBUG_PUSCH
|
||||
printf("ch 0 %d\n",((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1]));
|
||||
printf("pilot %d: rxF - > (%d,%d) addr %p ch -> (%d,%d), pil -> (%d,%d) \n",pilot_cnt+1,rxF[0],rxF[1],&rxF[0],ch[0],ch[1],pil[0],pil[1]);
|
||||
printf("pilot %u: rxF - > (%d,%d) addr %p ch -> (%d,%d), pil -> (%d,%d) \n",pilot_cnt+1,rxF[0],rxF[1],&rxF[0],ch[0],ch[1],pil[0],pil[1]);
|
||||
#endif
|
||||
multadd_real_vector_complex_scalar(fmr,
|
||||
ch,
|
||||
@@ -258,7 +262,7 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
|
||||
ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15);
|
||||
ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15);
|
||||
#ifdef DEBUG_PUSCH
|
||||
printf("pilot %d: rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",pilot_cnt+2,rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]);
|
||||
printf("pilot %u: rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",pilot_cnt+2,rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]);
|
||||
#endif
|
||||
multadd_real_vector_complex_scalar(fr,
|
||||
ch,
|
||||
|
||||
@@ -80,7 +80,7 @@ uint8_t nr_generate_pdsch(NR_gNB_DLSCH_t *dlsch,
|
||||
time_stats_t *dlsch_modulation_stats);
|
||||
|
||||
|
||||
void free_gNB_dlsch(NR_gNB_DLSCH_t *dlsch);
|
||||
void free_gNB_dlsch(NR_gNB_DLSCH_t **dlschptr);
|
||||
|
||||
void clean_gNB_dlsch(NR_gNB_DLSCH_t *dlsch);
|
||||
|
||||
|
||||
@@ -48,11 +48,12 @@
|
||||
//#define DEBUG_DLSCH_CODING
|
||||
//#define DEBUG_DLSCH_FREE 1
|
||||
|
||||
void free_gNB_dlsch(NR_gNB_DLSCH_t *dlsch)
|
||||
void free_gNB_dlsch(NR_gNB_DLSCH_t **dlschptr)
|
||||
{
|
||||
int i;
|
||||
int r;
|
||||
|
||||
|
||||
NR_gNB_DLSCH_t *dlsch = *dlschptr;
|
||||
if (dlsch) {
|
||||
#ifdef DEBUG_DLSCH_FREE
|
||||
printf("Freeing dlsch %p\n",dlsch);
|
||||
@@ -232,7 +233,7 @@ NR_gNB_DLSCH_t *new_gNB_dlsch(unsigned char Kmimo,
|
||||
|
||||
LOG_D(PHY,"new_gNB_dlsch exit flag %d, size of %ld\n",
|
||||
exit_flag, sizeof(NR_gNB_DLSCH_t));
|
||||
free_gNB_dlsch(dlsch);
|
||||
free_gNB_dlsch(&dlsch);
|
||||
return(NULL);
|
||||
|
||||
|
||||
@@ -278,7 +279,7 @@ int nr_dlsch_encoding(unsigned char *a,
|
||||
|
||||
unsigned int G;
|
||||
unsigned int crc=1;
|
||||
uint8_t harq_pid = dlsch->harq_ids[frame%2][slot];
|
||||
uint8_t harq_pid = dlsch->harq_ids[frame&2][slot];
|
||||
AssertFatal(harq_pid<8 && harq_pid>=0,"illegal harq_pid %d\b",harq_pid);
|
||||
nfapi_nr_dl_config_dlsch_pdu_rel15_t rel15 = dlsch->harq_processes[harq_pid]->dlsch_pdu.dlsch_pdu_rel15;
|
||||
uint16_t nb_rb = rel15.n_prb;
|
||||
@@ -458,7 +459,7 @@ int nr_dlsch_encoding(unsigned char *a,
|
||||
|
||||
#ifdef DEBUG_DLSCH_CODING
|
||||
for (int i =0; i<16; i++)
|
||||
printf("output ratematching e[%d]= %d r_offset %d\n", i,dlsch->harq_processes[harq_pid]->e[i+r_offset], r_offset);
|
||||
printf("output ratematching e[%d]= %d r_offset %u\n", i,dlsch->harq_processes[harq_pid]->e[i+r_offset], r_offset);
|
||||
#endif
|
||||
|
||||
nr_interleaving_ldpc(E,
|
||||
@@ -469,7 +470,7 @@ int nr_dlsch_encoding(unsigned char *a,
|
||||
|
||||
#ifdef DEBUG_DLSCH_CODING
|
||||
for (int i =0; i<16; i++)
|
||||
printf("output interleaving f[%d]= %d r_offset %d\n", i,dlsch->harq_processes[harq_pid]->f[i+r_offset], r_offset);
|
||||
printf("output interleaving f[%d]= %d r_offset %u\n", i,dlsch->harq_processes[harq_pid]->f[i+r_offset], r_offset);
|
||||
|
||||
if (r==dlsch->harq_processes[harq_pid]->C-1)
|
||||
write_output("enc_output.m","enc",dlsch->harq_processes[harq_pid]->f,G,1,4);
|
||||
|
||||
@@ -438,6 +438,7 @@ void cic_decimator(int16_t *input_buffer, int16_t *output_buffer, int length, in
|
||||
fir_filter_basic(input, output, new_length, FIR_TAPS_NUMBER, filter_taps, SHARPENED_FIR_SCALING_ACC);
|
||||
|
||||
#endif
|
||||
free(filter_taps_fixed_point);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -253,6 +253,7 @@ void pdcch_channel_level(int32_t **dl_ch_estimates_ext,
|
||||
avg128P = _mm_setzero_si128();
|
||||
dl_ch128=(__m128i *)&dl_ch_estimates_ext[aarx][0];
|
||||
#elif defined(__arm__)
|
||||
dl_ch128=(int16x8_t *)&dl_ch_estimates_ext[aarx][0];
|
||||
#endif
|
||||
|
||||
for (rb=0; rb<(nb_rb*3)>>2; rb++) {
|
||||
@@ -375,7 +376,7 @@ void nr_pdcch_extract_rbs_single(int32_t **rxdataF,
|
||||
* then the IQ symbol is going to be found at the position 0+c_rb-N_RB_DL/2 in rxdataF and
|
||||
* we have to point the pointer at (1+c_rb-N_RB_DL/2) in rxdataF
|
||||
*/
|
||||
LOG_DDD("n_BWP_start=%d, coreset_nbr_rb=%d\n",n_BWP_start,coreset_nbr_rb);
|
||||
LOG_DDD("n_BWP_start=%u, coreset_nbr_rb=%u\n",n_BWP_start,coreset_nbr_rb);
|
||||
|
||||
for (c_rb = n_BWP_start; c_rb < (n_BWP_start + coreset_nbr_rb + (BIT_TO_NBR_RB_CORESET_FREQ_DOMAIN * offset_discontiguous)); c_rb++) {
|
||||
//c_rb_tmp = 0;
|
||||
@@ -762,8 +763,8 @@ int32_t nr_rx_pdcch(PHY_VARS_NR_UE *ue,
|
||||
}
|
||||
}
|
||||
|
||||
LOG_DD("symbol_mon=(%d) and start_symbol=(%d)\n",symbol_mon,start_symbol);
|
||||
LOG_DD("coreset_freq_dom=(%ld) n_rb_offset=(%d) coreset_time_dur=(%d) n_shift=(%d) reg_bundle_size_L=(%d) coreset_interleaver_size_R=(%d) scrambling_ID=(%d) \n",
|
||||
LOG_DD("symbol_mon=(%u) and start_symbol=(%u)\n",symbol_mon,start_symbol);
|
||||
LOG_DD("coreset_freq_dom=(%lu) n_rb_offset=(%u) coreset_time_dur=(%d) n_shift=(%d) reg_bundle_size_L=(%d) coreset_interleaver_size_R=(%d) scrambling_ID=(%d) \n",
|
||||
coreset_freq_dom,n_rb_offset,coreset_time_dur,n_shift,reg_bundle_size_L,coreset_interleaver_size_R,pdcch_DMRS_scrambling_id);
|
||||
//
|
||||
// according to 38.213 v15.1.0: a PDCCH monitoring pattern within a slot,
|
||||
@@ -780,7 +781,7 @@ int32_t nr_rx_pdcch(PHY_VARS_NR_UE *ue,
|
||||
// for (int j=0; j < coreset_nbr_act; j++) {
|
||||
// for each active CORESET (max number of active CORESETs in a BWP is 3),
|
||||
// we calculate the number of RB for each CORESET bitmap
|
||||
LOG_DD("coreset_freq_dom=(%ld)\n",coreset_freq_dom);
|
||||
LOG_DD("coreset_freq_dom=(%lu)\n",coreset_freq_dom);
|
||||
int i; //for each bit in the coreset_freq_dom bitmap
|
||||
|
||||
for (i = 0; i < 45; i++) {
|
||||
@@ -789,8 +790,8 @@ int32_t nr_rx_pdcch(PHY_VARS_NR_UE *ue,
|
||||
}
|
||||
|
||||
coreset_nbr_rb = 6 * coreset_nbr_rb; // coreset_nbr_rb has to be multiplied by 6 to indicate the number of PRB or REG(=12 RE) within the CORESET
|
||||
LOG_DD("coreset_freq_dom=(%ld,%lx), coreset_nbr_rb=%d\n", coreset_freq_dom,coreset_freq_dom,coreset_nbr_rb);
|
||||
LOG_DD("coreset_nbr_rb=%d, coreset_nbr_reg=%d, coreset_C=(%d/(%d*%d))=%d\n",
|
||||
LOG_DD("coreset_freq_dom=(%lu,%lx), coreset_nbr_rb=%u\n", coreset_freq_dom,coreset_freq_dom,coreset_nbr_rb);
|
||||
LOG_DD("coreset_nbr_rb=%u, coreset_nbr_reg=%u, coreset_C=(%u/(%d*%d))=%u\n",
|
||||
coreset_nbr_rb,
|
||||
coreset_time_dur * coreset_nbr_rb,
|
||||
coreset_time_dur * coreset_nbr_rb,
|
||||
@@ -1163,9 +1164,9 @@ void nr_dci_decoding_procedure0(int s,
|
||||
LOG_DDD("debug1(%d)=nCCE[p]/L2 | nCCE[%d](%d) | L2(%d)\n",nCCE[p] / L2,p,nCCE[p],L2);
|
||||
LOG_DDD("debug2(%d)=L2*m_p_s_L_max | L2(%d) | m_p_s_L_max(%d)\n",L2*m_p_s_L_max,L2,m_p_s_L_max);
|
||||
CCEind = (((Yk + (uint16_t)(floor((m*nCCE[p])/(L2*m_p_s_L_max))) + n_ci) % (uint16_t)(floor(nCCE[p] / L2))) * L2);
|
||||
LOG_DDD("CCEind(%d) = (((Yk(%u) + ((m(%u)*nCCE[p](%d))/(L2(%d)*m_p_s_L_max(%d)))) %% (nCCE[p] / L2)) * L2)\n",
|
||||
LOG_DDD("CCEind(%u) = (((Yk(%u) + ((m(%u)*nCCE[p](%u))/(L2(%d)*m_p_s_L_max(%d)))) %% (nCCE[p] / L2)) * L2)\n",
|
||||
CCEind,Yk,m,nCCE[p],L2,m_p_s_L_max);
|
||||
LOG_DDD("n_candidate(m)=%u | CCEind=%d |",m,CCEind);
|
||||
LOG_DDD("n_candidate(m)=%u | CCEind=%u |",m,CCEind);
|
||||
|
||||
if (CCEind < 32)
|
||||
CCEmap = CCEmap0;
|
||||
@@ -1173,7 +1174,7 @@ void nr_dci_decoding_procedure0(int s,
|
||||
CCEmap = CCEmap1;
|
||||
else if (CCEind < 96)
|
||||
CCEmap = CCEmap2;
|
||||
else AssertFatal(1==0,"Illegal CCEind %d (Yk %u, m %u, nCCE %d, L2 %d\n", CCEind, Yk, m, nCCE[p], L2);
|
||||
else AssertFatal(1==0,"Illegal CCEind %u (Yk %u, m %u, nCCE %u, L2 %u\n", CCEind, Yk, m, nCCE[p], L2);
|
||||
|
||||
switch (L2) {
|
||||
case 1:
|
||||
@@ -1220,7 +1221,7 @@ void nr_dci_decoding_procedure0(int s,
|
||||
LOG_DDD("... we enter function dci_decoding(sizeof_bits=%d L=%d) -----\n",sizeof_bits,L);
|
||||
LOG_DDD("... we have to replace this part of the code by polar decoding\n");
|
||||
// for (int m=0; m < (nCCE[p]*6*9*2); m++)
|
||||
LOG_DDD("(polar decoding)-> polar intput (with coreset_time_dur=%d, coreset_nbr_rb=%d, p=%d, CCEind=%d): \n",
|
||||
LOG_DDD("(polar decoding)-> polar intput (with coreset_time_dur=%d, coreset_nbr_rb=%d, p=%d, CCEind=%u): \n",
|
||||
coreset_time_dur,coreset_nbr_rb,p,CCEind);
|
||||
/*
|
||||
int reg_p=0,reg_e=0;
|
||||
|
||||
@@ -380,10 +380,10 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue,
|
||||
#if UE_TIMING_TRACE
|
||||
stop_meas(&ue->generic_stat_bis[ue->current_thread_id[nr_tti_rx]][slot]);
|
||||
#if DISABLE_LOG_X
|
||||
printf("[AbsSFN %d.%d] Slot%d Symbol %d Flag %d type %d: Pilot/Data extraction %5.2f \n",
|
||||
printf("[AbsSFN %u.%d] Slot%d Symbol %d Flag %d type %d: Pilot/Data extraction %5.2f \n",
|
||||
frame,nr_tti_rx,slot,symbol,ue->high_speed_flag,type,ue->generic_stat_bis[ue->current_thread_id[nr_tti_rx]][slot].p_time/(cpuf*1000.0));
|
||||
#else
|
||||
LOG_I(PHY, "[AbsSFN %d.%d] Slot%d Symbol %d Flag %d type %d: Pilot/Data extraction %5.2f \n",
|
||||
LOG_I(PHY, "[AbsSFN %u.%d] Slot%d Symbol %d Flag %d type %d: Pilot/Data extraction %5.2f \n",
|
||||
frame,nr_tti_rx,slot,symbol,ue->high_speed_flag,type,ue->generic_stat_bis[ue->current_thread_id[nr_tti_rx]][slot].p_time/(cpuf*1000.0));
|
||||
#endif
|
||||
#endif
|
||||
@@ -404,9 +404,9 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue,
|
||||
#if UE_TIMING_TRACE
|
||||
stop_meas(&ue->generic_stat_bis[ue->current_thread_id[nr_tti_rx]][slot]);
|
||||
#if DISABLE_LOG_X
|
||||
printf("[AbsSFN %d.%d] Slot%d Symbol %d: Channel Scale %5.2f \n",frame,nr_tti_rx,slot,symbol,ue->generic_stat_bis[ue->current_thread_id[nr_tti_rx]][slot].p_time/(cpuf*1000.0));
|
||||
printf("[AbsSFN %u.%d] Slot%d Symbol %d: Channel Scale %5.2f \n",frame,nr_tti_rx,slot,symbol,ue->generic_stat_bis[ue->current_thread_id[nr_tti_rx]][slot].p_time/(cpuf*1000.0));
|
||||
#else
|
||||
LOG_I(PHY, "[AbsSFN %d.%d] Slot%d Symbol %d: Channel Scale %5.2f \n",frame,nr_tti_rx,slot,symbol,ue->generic_stat_bis[ue->current_thread_id[nr_tti_rx]][slot].p_time/(cpuf*1000.0));
|
||||
LOG_I(PHY, "[AbsSFN %u.%d] Slot%d Symbol %d: Channel Scale %5.2f \n",frame,nr_tti_rx,slot,symbol,ue->generic_stat_bis[ue->current_thread_id[nr_tti_rx]][slot].p_time/(cpuf*1000.0));
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -483,9 +483,9 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue,
|
||||
#if UE_TIMING_TRACE
|
||||
stop_meas(&ue->generic_stat_bis[ue->current_thread_id[nr_tti_rx]][slot]);
|
||||
#if DISABLE_LOG_X
|
||||
printf("[AbsSFN %d.%d] Slot%d Symbol %d first_symbol_flag %d: Channel Level %5.2f \n",frame,nr_tti_rx,slot,symbol,first_symbol_flag,ue->generic_stat_bis[ue->current_thread_id[nr_tti_rx]][slot].p_time/(cpuf*1000.0));
|
||||
printf("[AbsSFN %u.%d] Slot%d Symbol %d first_symbol_flag %d: Channel Level %5.2f \n",frame,nr_tti_rx,slot,symbol,first_symbol_flag,ue->generic_stat_bis[ue->current_thread_id[nr_tti_rx]][slot].p_time/(cpuf*1000.0));
|
||||
#else
|
||||
LOG_I(PHY, "[AbsSFN %d.%d] Slot%d Symbol %d first_symbol_flag %d: Channel Level %5.2f \n",frame,nr_tti_rx,slot,symbol,first_symbol_flag,ue->generic_stat_bis[ue->current_thread_id[nr_tti_rx]][slot].p_time/(cpuf*1000.0));
|
||||
LOG_I(PHY, "[AbsSFN %u.%d] Slot%d Symbol %d first_symbol_flag %d: Channel Level %5.2f \n",frame,nr_tti_rx,slot,symbol,first_symbol_flag,ue->generic_stat_bis[ue->current_thread_id[nr_tti_rx]][slot].p_time/(cpuf*1000.0));
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -596,9 +596,9 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue,
|
||||
#if UE_TIMING_TRACE
|
||||
stop_meas(&ue->generic_stat_bis[ue->current_thread_id[nr_tti_rx]][slot]);
|
||||
#if DISABLE_LOG_X
|
||||
printf("[AbsSFN %d.%d] Slot%d Symbol %d log2_maxh %d channel_level %d: Channel Comp %5.2f \n",frame,nr_tti_rx,slot,symbol,pdsch_vars[eNB_id]->log2_maxh,proc->channel_level,ue->generic_stat_bis[ue->current_thread_id[nr_tti_rx]][slot].p_time/(cpuf*1000.0));
|
||||
printf("[AbsSFN %u.%d] Slot%d Symbol %d log2_maxh %d channel_level %d: Channel Comp %5.2f \n",frame,nr_tti_rx,slot,symbol,pdsch_vars[eNB_id]->log2_maxh,proc->channel_level,ue->generic_stat_bis[ue->current_thread_id[nr_tti_rx]][slot].p_time/(cpuf*1000.0));
|
||||
#else
|
||||
LOG_I(PHY, "[AbsSFN %d.%d] Slot%d Symbol %d log2_maxh %d channel_level %d: Channel Comp %5.2f \n",frame,nr_tti_rx,slot,symbol,pdsch_vars[eNB_id]->log2_maxh,proc->channel_level,ue->generic_stat_bis[ue->current_thread_id[nr_tti_rx]][slot].p_time/(cpuf*1000.0));
|
||||
LOG_I(PHY, "[AbsSFN %u.%d] Slot%d Symbol %d log2_maxh %d channel_level %d: Channel Comp %5.2f \n",frame,nr_tti_rx,slot,symbol,pdsch_vars[eNB_id]->log2_maxh,proc->channel_level,ue->generic_stat_bis[ue->current_thread_id[nr_tti_rx]][slot].p_time/(cpuf*1000.0));
|
||||
#endif
|
||||
#endif
|
||||
// MRC
|
||||
@@ -641,9 +641,9 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue,
|
||||
#if UE_TIMING_TRACE
|
||||
stop_meas(&ue->generic_stat_bis[ue->current_thread_id[nr_tti_rx]][slot]);
|
||||
#if DISABLE_LOG_X
|
||||
printf("[AbsSFN %d.%d] Slot%d Symbol %d: Channel Combine %5.2f \n",frame,nr_tti_rx,slot,symbol,ue->generic_stat_bis[ue->current_thread_id[nr_tti_rx]][slot].p_time/(cpuf*1000.0));
|
||||
printf("[AbsSFN %u.%d] Slot%d Symbol %d: Channel Combine %5.2f \n",frame,nr_tti_rx,slot,symbol,ue->generic_stat_bis[ue->current_thread_id[nr_tti_rx]][slot].p_time/(cpuf*1000.0));
|
||||
#else
|
||||
LOG_I(PHY, "[AbsSFN %d.%d] Slot%d Symbol %d: Channel Combine %5.2f \n",frame,nr_tti_rx,slot,symbol,ue->generic_stat_bis[ue->current_thread_id[nr_tti_rx]][slot].p_time/(cpuf*1000.0));
|
||||
LOG_I(PHY, "[AbsSFN %u.%d] Slot%d Symbol %d: Channel Combine %5.2f \n",frame,nr_tti_rx,slot,symbol,ue->generic_stat_bis[ue->current_thread_id[nr_tti_rx]][slot].p_time/(cpuf*1000.0));
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -1018,9 +1018,9 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue,
|
||||
#if UE_TIMING_TRACE
|
||||
stop_meas(&ue->generic_stat_bis[ue->current_thread_id[nr_tti_rx]][slot]);
|
||||
#if DISABLE_LOG_X
|
||||
printf("[AbsSFN %d.%d] Slot%d Symbol %d: LLR Computation %5.2f \n",frame,nr_tti_rx,slot,symbol,ue->generic_stat_bis[ue->current_thread_id[nr_tti_rx]][slot].p_time/(cpuf*1000.0));
|
||||
printf("[AbsSFN %u.%d] Slot%d Symbol %d: LLR Computation %5.2f \n",frame,nr_tti_rx,slot,symbol,ue->generic_stat_bis[ue->current_thread_id[nr_tti_rx]][slot].p_time/(cpuf*1000.0));
|
||||
#else
|
||||
LOG_I(PHY, "[AbsSFN %d.%d] Slot%d Symbol %d: LLR Computation %5.2f \n",frame,nr_tti_rx,slot,symbol,ue->generic_stat_bis[ue->current_thread_id[nr_tti_rx]][slot].p_time/(cpuf*1000.0));
|
||||
LOG_I(PHY, "[AbsSFN %u.%d] Slot%d Symbol %d: LLR Computation %5.2f \n",frame,nr_tti_rx,slot,symbol,ue->generic_stat_bis[ue->current_thread_id[nr_tti_rx]][slot].p_time/(cpuf*1000.0));
|
||||
#endif
|
||||
#endif
|
||||
// Please keep it: useful for debugging
|
||||
@@ -1091,7 +1091,7 @@ void nr_dlsch_deinterleaving(uint8_t symbol,
|
||||
|
||||
uint32_t *bundle_deint = malloc(N_bundle*sizeof(uint32_t));
|
||||
|
||||
printf("N_bundle %d L %d nb_rb_pdsch %d\n",N_bundle, L,nb_rb_pdsch);
|
||||
printf("N_bundle %u L %d nb_rb_pdsch %d\n",N_bundle, L,nb_rb_pdsch);
|
||||
|
||||
if (symbol==start_symbol)
|
||||
nb_re = 6;
|
||||
@@ -1117,6 +1117,7 @@ void nr_dlsch_deinterleaving(uint8_t symbol,
|
||||
//printf("k %d m %d bundle_deint %d llr_deint %d\n", k, m, bundle_deint[k], llr_deint[bundle_deint[k]*nb_re*L+m]);
|
||||
}
|
||||
}
|
||||
free(bundle_deint);
|
||||
}
|
||||
|
||||
//==============================================================================================
|
||||
@@ -2455,7 +2456,7 @@ unsigned short nr_dlsch_extract_rbs_dual(int **rxdataF,
|
||||
int prb,nb_rb=0;
|
||||
unsigned short k;
|
||||
int i,j,aarx;
|
||||
int32_t *dl_ch0=NULL,*dl_ch0p=NULL,*dl_ch0_ext=NULL,*dl_ch1=NULL,*dl_ch1p=NULL,*dl_ch1_ext=NULL,*rxF=NULL,*rxF_ext=NULL;
|
||||
int32_t *dl_ch0=NULL,*dl_ch0_ext=NULL,*dl_ch1=NULL,*dl_ch1_ext=NULL,*rxF=NULL,*rxF_ext=NULL;
|
||||
|
||||
k = frame_parms->first_carrier_offset + 516; //0
|
||||
|
||||
@@ -2511,8 +2512,8 @@ unsigned short nr_dlsch_extract_rbs_dual(int **rxdataF,
|
||||
if ((i&1)!=frame_parms->nushift) {
|
||||
rxF_ext[j]=rxF[i];
|
||||
// printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[j],*(1+(short*)&rxF_ext[j]));
|
||||
dl_ch0_ext[j]=dl_ch0p[i];
|
||||
dl_ch1_ext[j++]=dl_ch1p[i];
|
||||
dl_ch0_ext[j]=dl_ch0[i];
|
||||
dl_ch1_ext[j++]=dl_ch1[i];
|
||||
}
|
||||
}
|
||||
dl_ch0_ext+=6;
|
||||
|
||||
@@ -61,7 +61,7 @@ void free_nr_ue_dlsch(NR_UE_DLSCH_t **dlsch);
|
||||
NR_UE_DLSCH_t *new_nr_ue_dlsch(uint8_t Kmimo,uint8_t Mdlharq,uint32_t Nsoft,uint8_t max_turbo_iterations,uint8_t N_RB_DL, uint8_t abstraction_flag);
|
||||
|
||||
|
||||
void free_nr_ue_ulsch(NR_UE_ULSCH_t *ulsch);
|
||||
void free_nr_ue_ulsch(NR_UE_ULSCH_t **ulsch);
|
||||
|
||||
|
||||
NR_UE_ULSCH_t *new_nr_ue_ulsch(unsigned char N_RB_UL, int number_of_harq_pids, uint8_t abstraction_flag);
|
||||
|
||||
@@ -42,9 +42,10 @@
|
||||
|
||||
|
||||
|
||||
void free_nr_ue_ulsch(NR_UE_ULSCH_t *ulsch)
|
||||
void free_nr_ue_ulsch(NR_UE_ULSCH_t **ulschptr)
|
||||
{
|
||||
int i, r;
|
||||
NR_UE_ULSCH_t *ulsch = *ulschptr;
|
||||
|
||||
if (ulsch) {
|
||||
#ifdef DEBUG_ULSCH_FREE
|
||||
@@ -80,7 +81,7 @@ void free_nr_ue_ulsch(NR_UE_ULSCH_t *ulsch)
|
||||
}
|
||||
}
|
||||
free16(ulsch,sizeof(NR_UE_ULSCH_t));
|
||||
ulsch = NULL;
|
||||
*ulschptr = NULL;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -179,7 +180,7 @@ NR_UE_ULSCH_t *new_nr_ue_ulsch(unsigned char N_RB_UL,
|
||||
}
|
||||
|
||||
LOG_E(PHY,"new_ue_ulsch exit flag, size of %d , %zu\n",exit_flag, sizeof(LTE_UE_ULSCH_t));
|
||||
free_nr_ue_ulsch(ulsch);
|
||||
free_nr_ue_ulsch(&ulsch);
|
||||
return(NULL);
|
||||
|
||||
|
||||
|
||||
@@ -77,7 +77,7 @@ void nr_group_sequence_hopping (pucch_GroupHopping_t PUCCH_GroupHopping,
|
||||
// initialization to be removed
|
||||
PUCCH_GroupHopping=neither;
|
||||
n_id=10;
|
||||
printf("\t\t [nr_group_sequence_hopping] initialization PUCCH_GroupHopping=%d, n_id=%d -> variable initializations TO BE REMOVED\n",PUCCH_GroupHopping,n_id);
|
||||
printf("\t\t [nr_group_sequence_hopping] initialization PUCCH_GroupHopping=%u, n_id=%u -> variable initializations TO BE REMOVED\n",PUCCH_GroupHopping,n_id);
|
||||
#endif
|
||||
uint8_t f_ss=0,f_gh=0;
|
||||
*u=0;
|
||||
@@ -159,14 +159,14 @@ double nr_cyclic_shift_hopping(uint32_t n_id,
|
||||
#ifdef DEBUG_NR_PUCCH_TX
|
||||
// initialization to be remo.ved
|
||||
c_init=10;
|
||||
printf("\t\t [nr_cyclic_shift_hopping] initialization c_init=%d -> variable initialization TO BE REMOVED\n",c_init);
|
||||
printf("\t\t [nr_cyclic_shift_hopping] initialization c_init=%u -> variable initialization TO BE REMOVED\n",c_init);
|
||||
#endif
|
||||
uint32_t x1,s = lte_gold_generic(&x1, &c_init, 1); // TS 38.211 Subclause 5.2.1
|
||||
uint8_t n_cs=0;
|
||||
int l = 32, minShift = (14*8*nr_tti_tx )+ 8*(lnormal+lprime);
|
||||
int tmpShift =0;
|
||||
#ifdef DEBUG_NR_PUCCH_TX
|
||||
printf("\t\t [nr_cyclic_shift_hopping] calculating alpha (cyclic shift) using c_init=%d -> \n",c_init);
|
||||
printf("\t\t [nr_cyclic_shift_hopping] calculating alpha (cyclic shift) using c_init=%u -> \n",c_init);
|
||||
#endif
|
||||
|
||||
for (int m=0; m<8; m++) {
|
||||
@@ -306,7 +306,7 @@ void nr_generate_pucch0(PHY_VARS_NR_UE *ue,
|
||||
//((int16_t *)txptr[0][re_offset])[1] = (int16_t)((int32_t)amp * x_n_im[(12*l)+n])>>15;
|
||||
//txptr[re_offset] = (x_n_re[(12*l)+n]<<16) + x_n_im[(12*l)+n];
|
||||
#ifdef DEBUG_NR_PUCCH_TX
|
||||
printf("\t [nr_generate_pucch0] mapping to RE \t amp=%d \tofdm_symbol_size=%d \tN_RB_DL=%d \tfirst_carrier_offset=%d \ttxptr(%d)=(x_n(l=%d,n=%d)=(%d,%d))\n",
|
||||
printf("\t [nr_generate_pucch0] mapping to RE \t amp=%d \tofdm_symbol_size=%d \tN_RB_DL=%d \tfirst_carrier_offset=%d \ttxptr(%u)=(x_n(l=%d,n=%d)=(%d,%d))\n",
|
||||
amp,frame_parms->ofdm_symbol_size,frame_parms->N_RB_DL,frame_parms->first_carrier_offset,re_offset,
|
||||
l,n,((int16_t *)&txdataF[0][re_offset])[0],((int16_t *)&txdataF[0][re_offset])[1]);
|
||||
#endif
|
||||
@@ -330,7 +330,7 @@ void nr_generate_pucch1(PHY_VARS_NR_UE *ue,
|
||||
uint8_t timeDomainOCC,
|
||||
uint8_t nr_bit) {
|
||||
#ifdef DEBUG_NR_PUCCH_TX
|
||||
printf("\t [nr_generate_pucch1] start function at slot(nr_tti_tx)=%d payload=%d m0=%d nrofSymbols=%d startingSymbolIndex=%d startingPRB=%d startingPRB_intraSlotHopping=%d timeDomainOCC=%d nr_bit=%d\n",
|
||||
printf("\t [nr_generate_pucch1] start function at slot(nr_tti_tx)=%d payload=%lu m0=%d nrofSymbols=%d startingSymbolIndex=%d startingPRB=%d startingPRB_intraSlotHopping=%d timeDomainOCC=%d nr_bit=%d\n",
|
||||
nr_tti_tx,payload,m0,nrofSymbols,startingSymbolIndex,startingPRB,startingPRB_intraSlotHopping,timeDomainOCC,nr_bit);
|
||||
#endif
|
||||
/*
|
||||
@@ -368,7 +368,7 @@ void nr_generate_pucch1(PHY_VARS_NR_UE *ue,
|
||||
}
|
||||
// printf("d_re=%d\td_im=%d\n",(int)d_re,(int)d_im);
|
||||
#ifdef DEBUG_NR_PUCCH_TX
|
||||
printf("\t [nr_generate_pucch1] sequence modulation: payload=%x \tde_re=%d \tde_im=%d\n",payload,d_re,d_im);
|
||||
printf("\t [nr_generate_pucch1] sequence modulation: payload=%lx \tde_re=%d \tde_im=%d\n",payload,d_re,d_im);
|
||||
#endif
|
||||
/*
|
||||
* Defining cyclic shift hopping TS 38.211 Subclause 6.3.2.2.2
|
||||
@@ -625,7 +625,7 @@ void nr_generate_pucch1(PHY_VARS_NR_UE *ue,
|
||||
((int16_t *)&txdataF[0][re_offset])[0] = z_re[i+n];
|
||||
((int16_t *)&txdataF[0][re_offset])[1] = z_im[i+n];
|
||||
#ifdef DEBUG_NR_PUCCH_TX
|
||||
printf("\t [nr_generate_pucch1] mapping PUCCH to RE \t amp=%d \tofdm_symbol_size=%d \tN_RB_DL=%d \tfirst_carrier_offset=%d \tz_pucch[%d]=txptr(%d)=(x_n(l=%d,n=%d)=(%d,%d))\n",
|
||||
printf("\t [nr_generate_pucch1] mapping PUCCH to RE \t amp=%d \tofdm_symbol_size=%d \tN_RB_DL=%d \tfirst_carrier_offset=%d \tz_pucch[%d]=txptr(%u)=(x_n(l=%d,n=%d)=(%d,%d))\n",
|
||||
amp,frame_parms->ofdm_symbol_size,frame_parms->N_RB_DL,frame_parms->first_carrier_offset,i+n,re_offset,
|
||||
l,n,((int16_t *)&txdataF[0][re_offset])[0],((int16_t *)&txdataF[0][re_offset])[1]);
|
||||
#endif
|
||||
@@ -635,7 +635,7 @@ void nr_generate_pucch1(PHY_VARS_NR_UE *ue,
|
||||
((int16_t *)&txdataF[0][re_offset])[0] = z_dmrs_re[i+n];
|
||||
((int16_t *)&txdataF[0][re_offset])[1] = z_dmrs_im[i+n];
|
||||
#ifdef DEBUG_NR_PUCCH_TX
|
||||
printf("\t [nr_generate_pucch1] mapping DM-RS to RE \t amp=%d \tofdm_symbol_size=%d \tN_RB_DL=%d \tfirst_carrier_offset=%d \tz_dm-rs[%d]=txptr(%d)=(x_n(l=%d,n=%d)=(%d,%d))\n",
|
||||
printf("\t [nr_generate_pucch1] mapping DM-RS to RE \t amp=%d \tofdm_symbol_size=%d \tN_RB_DL=%d \tfirst_carrier_offset=%d \tz_dm-rs[%d]=txptr(%u)=(x_n(l=%d,n=%d)=(%d,%d))\n",
|
||||
amp,frame_parms->ofdm_symbol_size,frame_parms->N_RB_DL,frame_parms->first_carrier_offset,i+n,re_offset,
|
||||
l,n,((int16_t *)&txdataF[0][re_offset])[0],((int16_t *)&txdataF[0][re_offset])[1]);
|
||||
#endif
|
||||
@@ -961,7 +961,7 @@ inline void nr_pucch2_3_4_scrambling(uint16_t M_bit,uint16_t rnti,uint16_t n_id,
|
||||
x2 = ((rnti)<<15)+n_id;
|
||||
s = lte_gold_generic(&x1, &x2, 1);
|
||||
#ifdef DEBUG_NR_PUCCH_TX
|
||||
printf("\t\t [nr_pucch2_3_4_scrambling] gold sequence s=%lx\n",s);
|
||||
printf("\t\t [nr_pucch2_3_4_scrambling] gold sequence s=%x\n",s);
|
||||
#endif
|
||||
|
||||
for (i=0; i<M_bit; i++) {
|
||||
@@ -1094,7 +1094,7 @@ void nr_generate_pucch2(PHY_VARS_NR_UE *ue,
|
||||
uint16_t startingPRB,
|
||||
uint8_t nr_bit) {
|
||||
#ifdef DEBUG_NR_PUCCH_TX
|
||||
printf("\t [nr_generate_pucch2] start function at slot(nr_tti_tx)=%d with payload=%d and nr_bit=%d\n",nr_tti_tx, payload, nr_bit);
|
||||
printf("\t [nr_generate_pucch2] start function at slot(nr_tti_tx)=%d with payload=%lu and nr_bit=%d\n",nr_tti_tx, payload, nr_bit);
|
||||
#endif
|
||||
// b is the block of bits transmitted on the physical channel after payload coding
|
||||
uint64_t b;
|
||||
@@ -1170,7 +1170,7 @@ void nr_generate_pucch2(PHY_VARS_NR_UE *ue,
|
||||
int m=0;
|
||||
|
||||
for (int l=0; l<nrofSymbols; l++) {
|
||||
x2 = (((1<<17)*((14*nr_tti_tx) + (l+startingSymbolIndex) + 1)*((2*n_id) + 1)) + (2*n_id))%(1<<31); // c_init calculation according to TS38.211 subclause
|
||||
x2 = (((1<<17)*((14*nr_tti_tx) + (l+startingSymbolIndex) + 1)*((2*n_id) + 1)) + (2*n_id))%(1U<<31); // c_init calculation according to TS38.211 subclause
|
||||
s = lte_gold_generic(&x1, &x2, 1);
|
||||
m = 0;
|
||||
|
||||
@@ -1210,7 +1210,7 @@ void nr_generate_pucch2(PHY_VARS_NR_UE *ue,
|
||||
((int16_t *)&txdataF[0][re_offset])[0] = d_re[i+k];
|
||||
((int16_t *)&txdataF[0][re_offset])[1] = d_im[i+k];
|
||||
#ifdef DEBUG_NR_PUCCH_TX
|
||||
printf("\t [nr_generate_pucch2] (n=%d,i=%d) mapping PUCCH to RE \t amp=%d \tofdm_symbol_size=%d \tN_RB_DL=%d \tfirst_carrier_offset=%d \tz_pucch[%d]=txptr(%d)=(x_n(l=%d,n=%d)=(%d,%d))\n",
|
||||
printf("\t [nr_generate_pucch2] (n=%d,i=%d) mapping PUCCH to RE \t amp=%d \tofdm_symbol_size=%d \tN_RB_DL=%d \tfirst_carrier_offset=%d \tz_pucch[%d]=txptr(%u)=(x_n(l=%d,n=%d)=(%d,%d))\n",
|
||||
n,i,amp,frame_parms->ofdm_symbol_size,frame_parms->N_RB_DL,frame_parms->first_carrier_offset,i+k,re_offset,
|
||||
l,n,((int16_t *)&txdataF[0][re_offset])[0],((int16_t *)&txdataF[0][re_offset])[1]);
|
||||
#endif
|
||||
@@ -1222,7 +1222,7 @@ void nr_generate_pucch2(PHY_VARS_NR_UE *ue,
|
||||
((int16_t *)&txdataF[0][re_offset])[1] = (int16_t)((int32_t)(amp*ONE_OVER_SQRT2*(1-(2*((uint8_t)((s>>((2*m)+1))&1)))))>>15);
|
||||
m++;
|
||||
#ifdef DEBUG_NR_PUCCH_TX
|
||||
printf("\t [nr_generate_pucch2] (n=%d,i=%d) mapping DM-RS to RE \t amp=%d \tofdm_symbol_size=%d \tN_RB_DL=%d \tfirst_carrier_offset=%d \tz_dm-rs[%d]=txptr(%d)=(x_n(l=%d,n=%d)=(%d,%d))\n",
|
||||
printf("\t [nr_generate_pucch2] (n=%d,i=%d) mapping DM-RS to RE \t amp=%d \tofdm_symbol_size=%d \tN_RB_DL=%d \tfirst_carrier_offset=%d \tz_dm-rs[%d]=txptr(%u)=(x_n(l=%d,n=%d)=(%d,%d))\n",
|
||||
n,i,amp,frame_parms->ofdm_symbol_size,frame_parms->N_RB_DL,frame_parms->first_carrier_offset,i+kk,re_offset,
|
||||
l,n,((int16_t *)&txdataF[0][re_offset])[0],((int16_t *)&txdataF[0][re_offset])[1]);
|
||||
#endif
|
||||
@@ -1240,6 +1240,9 @@ void nr_generate_pucch2(PHY_VARS_NR_UE *ue,
|
||||
}
|
||||
}
|
||||
}
|
||||
free(d_re);
|
||||
free(d_im);
|
||||
free(btilde);
|
||||
}
|
||||
//#if 0
|
||||
void nr_generate_pucch3_4(PHY_VARS_NR_UE *ue,
|
||||
@@ -1260,7 +1263,7 @@ void nr_generate_pucch3_4(PHY_VARS_NR_UE *ue,
|
||||
uint8_t occ_length_format4,
|
||||
uint8_t occ_index_format4) {
|
||||
#ifdef DEBUG_NR_PUCCH_TX
|
||||
printf("\t [nr_generate_pucch3_4] start function at slot(nr_tti_tx)=%d with payload=%d and nr_bit=%d\n", nr_tti_tx, payload, nr_bit);
|
||||
printf("\t [nr_generate_pucch3_4] start function at slot(nr_tti_tx)=%d with payload=%lu and nr_bit=%d\n", nr_tti_tx, payload, nr_bit);
|
||||
#endif
|
||||
// b is the block of bits transmitted on the physical channel after payload coding
|
||||
uint64_t b;
|
||||
@@ -1665,7 +1668,7 @@ void nr_generate_pucch3_4(PHY_VARS_NR_UE *ue,
|
||||
}
|
||||
|
||||
#ifdef DEBUG_NR_PUCCH_TX
|
||||
printf("re_offset=%d,(rb+startingPRB)=%d\n",re_offset,(rb+startingPRB));
|
||||
printf("re_offset=%u,(rb+startingPRB)=%d\n",re_offset,(rb+startingPRB));
|
||||
#endif
|
||||
|
||||
//txptr = &txdataF[0][re_offset];
|
||||
@@ -1679,7 +1682,7 @@ void nr_generate_pucch3_4(PHY_VARS_NR_UE *ue,
|
||||
((int16_t *)&txdataF[0][re_offset])[0] = z_re[n+k];
|
||||
((int16_t *)&txdataF[0][re_offset])[1] = z_im[n+k];
|
||||
#ifdef DEBUG_NR_PUCCH_TX
|
||||
printf("\t [nr_generate_pucch3_4] (l=%d,rb=%d,n=%d,k=%d) mapping PUCCH to RE \t amp=%d \tofdm_symbol_size=%d \tN_RB_DL=%d \tfirst_carrier_offset=%d \tz_pucch[%d]=txptr(%d)=(z(l=%d,n=%d)=(%d,%d))\n",
|
||||
printf("\t [nr_generate_pucch3_4] (l=%d,rb=%d,n=%d,k=%d) mapping PUCCH to RE \t amp=%d \tofdm_symbol_size=%d \tN_RB_DL=%d \tfirst_carrier_offset=%d \tz_pucch[%d]=txptr(%u)=(z(l=%d,n=%d)=(%d,%d))\n",
|
||||
l,rb,n,k,amp,frame_parms->ofdm_symbol_size,frame_parms->N_RB_DL,frame_parms->first_carrier_offset,n+k,re_offset,
|
||||
l,n,((int16_t *)&txdataF[0][re_offset])[0],((int16_t *)&txdataF[0][re_offset])[1]);
|
||||
#endif
|
||||
@@ -1691,7 +1694,7 @@ void nr_generate_pucch3_4(PHY_VARS_NR_UE *ue,
|
||||
((int16_t *)&txdataF[0][re_offset])[1] = (int16_t)((((int32_t)(32767*cos(alpha*((n+j)%N_ZC)))*r_u_v_base_im[n+j])>>15)
|
||||
+ (((int32_t)(32767*sin(alpha*((n+j)%N_ZC)))*r_u_v_base_re[n+j])>>15));
|
||||
#ifdef DEBUG_NR_PUCCH_TX
|
||||
printf("\t [nr_generate_pucch3_4] (l=%d,rb=%d,n=%d,j=%d) mapping DM-RS to RE \t amp=%d \tofdm_symbol_size=%d \tN_RB_DL=%d \tfirst_carrier_offset=%d \tz_dm-rs[%d]=txptr(%d)=(r_u_v(l=%d,n=%d)=(%d,%d))\n",
|
||||
printf("\t [nr_generate_pucch3_4] (l=%d,rb=%d,n=%d,j=%d) mapping DM-RS to RE \t amp=%d \tofdm_symbol_size=%d \tN_RB_DL=%d \tfirst_carrier_offset=%d \tz_dm-rs[%d]=txptr(%u)=(r_u_v(l=%d,n=%d)=(%d,%d))\n",
|
||||
l,rb,n,j,amp,frame_parms->ofdm_symbol_size,frame_parms->N_RB_DL,frame_parms->first_carrier_offset,n+j,re_offset,
|
||||
l,n,((int16_t *)&txdataF[0][re_offset])[0],((int16_t *)&txdataF[0][re_offset])[1]);
|
||||
#endif
|
||||
@@ -1705,5 +1708,8 @@ void nr_generate_pucch3_4(PHY_VARS_NR_UE *ue,
|
||||
if (table_6_4_1_3_3_2_1_dmrs_positions[nrofSymbols-4][l] == 1) j+=12;
|
||||
}
|
||||
}
|
||||
free(z_re);
|
||||
free(z_im);
|
||||
free(btilde);
|
||||
}
|
||||
|
||||
|
||||
@@ -345,9 +345,9 @@ void phy_scope_gNB(FD_phy_scope_gnb *form,
|
||||
|
||||
I_pucch[ind] = (float)pucch1ab_comp[2*(ind)];
|
||||
Q_pucch[ind] = (float)pucch1ab_comp[2*(ind)+1];
|
||||
A_pucch[ind] = 10*log10(pucch1_comp[ind]);
|
||||
A_pucch[ind] = pucch1_comp?(10*log10(pucch1_comp[ind])):0;
|
||||
B_pucch[ind] = ind;
|
||||
C_pucch[ind] = (float)pucch1_thres[ind];
|
||||
C_pucch[ind] = pucch1_thres?(float)pucch1_thres[ind]:0;
|
||||
}
|
||||
fl_set_xyplot_data(form->pucch_comp,I_pucch,Q_pucch,10240,"","","");
|
||||
fl_set_xyplot_data(form->pucch_comp1,B_pucch,A_pucch,1024,"","","");
|
||||
@@ -840,7 +840,7 @@ void phy_scope_nrUE(FD_phy_scope_nrue *form,
|
||||
free(bit);
|
||||
free(bit_pdcch);
|
||||
free(llr_pdcch);
|
||||
|
||||
free(chest_t_abs);
|
||||
/*
|
||||
free(chest_f_abs);
|
||||
for (arx=0; arx<nb_antennas_rx; arx++) {
|
||||
@@ -898,9 +898,9 @@ void reset_stats_gNB(FL_OBJECT *button,
|
||||
static void *scope_thread_gNB(void *arg) {
|
||||
int UE_id, CC_id;
|
||||
int ue_cnt=0;
|
||||
# ifdef ENABLE_XFORMS_WRITE_STATS
|
||||
FILE *gNB_stats = fopen("gNB_stats.txt", "w");
|
||||
#endif
|
||||
//# ifdef ENABLE_XFORMS_WRITE_STATS
|
||||
// FILE *gNB_stats = fopen("gNB_stats.txt", "w");
|
||||
//#endif
|
||||
|
||||
while (!oai_exit) {
|
||||
ue_cnt=0;
|
||||
|
||||
@@ -3351,10 +3351,12 @@ void nr_ue_pdsch_procedures(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, int eNB
|
||||
int i_mod,eNB_id_i,dual_stream_UE;
|
||||
int first_symbol_flag=0;
|
||||
|
||||
if (!dlsch0)
|
||||
return;
|
||||
if (dlsch0->active == 0)
|
||||
return;
|
||||
|
||||
if (dlsch0 && (!dlsch1)) {
|
||||
if (!dlsch1) {
|
||||
int harq_pid = dlsch0->current_harq_pid;
|
||||
uint16_t pdsch_start_rb = dlsch0->harq_processes[harq_pid]->start_rb;
|
||||
uint16_t pdsch_nb_rb = dlsch0->harq_processes[harq_pid]->nb_rb;
|
||||
|
||||
@@ -621,7 +621,7 @@ int main(int argc, char **argv)
|
||||
|
||||
for (i = 0; i < 2; i++) {
|
||||
printf("gNB %d\n", i);
|
||||
free_gNB_dlsch(gNB->dlsch[0][i]);
|
||||
free_gNB_dlsch(&(gNB->dlsch[0][i]));
|
||||
printf("UE %d\n", i);
|
||||
free_nr_ue_dlsch(&(UE->dlsch[0][0][i]));
|
||||
}
|
||||
|
||||
+100
-99
@@ -183,7 +183,7 @@ void RCconfig_L1(void) {
|
||||
if (RC.eNB[j] == NULL) {
|
||||
RC.eNB[j] = (PHY_VARS_eNB **)malloc((1+MAX_NUM_CCs)*sizeof(PHY_VARS_eNB **));
|
||||
LOG_I(PHY,"RC.eNB[%d] = %p\n",j,RC.eNB[j]);
|
||||
memset(RC.eNB[j],0,(1+MAX_NUM_CCs)*sizeof(PHY_VARS_eNB ** *));
|
||||
memset(RC.eNB[j],0,(1+MAX_NUM_CCs)*sizeof(PHY_VARS_eNB***));
|
||||
}
|
||||
|
||||
for (i=0; i<RC.nb_L1_CC[j]; i++) {
|
||||
@@ -277,6 +277,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
int nb_cc = 0;
|
||||
int32_t offsetMaxLimit = 0;
|
||||
int32_t cycleNb = 0;
|
||||
|
||||
MessageDef *msg_p = itti_alloc_new_message(TASK_RRC_ENB, RRC_CONFIGURATION_REQ);
|
||||
ccparams_lte_t ccparams_lte;
|
||||
ccparams_sidelink_t SLconfig;
|
||||
@@ -310,7 +311,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
config_get( ENBSParams,sizeof(ENBSParams)/sizeof(paramdef_t),NULL);
|
||||
num_enbs = ENBSParams[ENB_ACTIVE_ENBS_IDX].numelt;
|
||||
AssertFatal (i<num_enbs,
|
||||
"Failed to parse config file no %ith element in %s \n",i, ENB_CONFIG_STRING_ACTIVE_ENBS);
|
||||
"Failed to parse config file no %uth element in %s \n",i, ENB_CONFIG_STRING_ACTIVE_ENBS);
|
||||
|
||||
if (num_enbs>0) {
|
||||
// Output a list of all eNBs.
|
||||
@@ -334,7 +335,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
if (strcmp(*(ENBParamList.paramarray[i][ENB_TRANSPORT_S_PREFERENCE_IDX].strptr), "f1") == 0) {
|
||||
paramdef_t SCTPParams[] = SCTPPARAMS_DESC;
|
||||
char aprefix[MAX_OPTNAME_SIZE*2 + 8];
|
||||
sprintf(aprefix,"%s.[%i].%s",ENB_CONFIG_STRING_ENB_LIST,i,ENB_CONFIG_STRING_SCTP_CONFIG);
|
||||
sprintf(aprefix,"%s.[%u].%s",ENB_CONFIG_STRING_ENB_LIST,i,ENB_CONFIG_STRING_SCTP_CONFIG);
|
||||
config_get( SCTPParams,sizeof(SCTPParams)/sizeof(paramdef_t),aprefix);
|
||||
rrc->node_id = *(ENBParamList.paramarray[0][ENB_ENB_ID_IDX].uptr);
|
||||
LOG_I(ENB_APP,"F1AP: gNB_CU_id[%d] %d\n",k,rrc->node_id);
|
||||
@@ -443,16 +444,16 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
// Cell params, MIB/SIB1 in DU
|
||||
RRC_CONFIGURATION_REQ (msg_p).tdd_config[j] = ccparams_lte.tdd_config;
|
||||
AssertFatal (ccparams_lte.tdd_config <= LTE_TDD_Config__subframeAssignment_sa6,
|
||||
"Failed to parse eNB configuration file %s, enb %d illegal tdd_config %d (should be 0-%d)!",
|
||||
"Failed to parse eNB configuration file %s, enb %u illegal tdd_config %d (should be 0-%d)!",
|
||||
RC.config_file_name, i, ccparams_lte.tdd_config, LTE_TDD_Config__subframeAssignment_sa6);
|
||||
RRC_CONFIGURATION_REQ (msg_p).tdd_config_s[j] = ccparams_lte.tdd_config_s;
|
||||
AssertFatal (ccparams_lte.tdd_config_s <= LTE_TDD_Config__specialSubframePatterns_ssp8,
|
||||
"Failed to parse eNB configuration file %s, enb %d illegal tdd_config_s %d (should be 0-%d)!",
|
||||
"Failed to parse eNB configuration file %s, enb %u illegal tdd_config_s %d (should be 0-%d)!",
|
||||
RC.config_file_name, i, ccparams_lte.tdd_config_s, LTE_TDD_Config__specialSubframePatterns_ssp8);
|
||||
|
||||
if (!ccparams_lte.prefix_type)
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d define %s: NORMAL,EXTENDED!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u define %s: NORMAL,EXTENDED!\n",
|
||||
RC.config_file_name, i, ENB_CONFIG_STRING_PREFIX_TYPE);
|
||||
else if (strcmp(ccparams_lte.prefix_type, "NORMAL") == 0) {
|
||||
RRC_CONFIGURATION_REQ (msg_p).prefix_type[j] = NORMAL;
|
||||
@@ -460,13 +461,13 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
RRC_CONFIGURATION_REQ (msg_p).prefix_type[j] = EXTENDED;
|
||||
} else {
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prefix_type choice: NORMAL or EXTENDED !\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%s\" for prefix_type choice: NORMAL or EXTENDED !\n",
|
||||
RC.config_file_name, i, ccparams_lte.prefix_type);
|
||||
}
|
||||
|
||||
if (!ccparams_lte.pbch_repetition)
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d define %s: TRUE,FALSE!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u define %s: TRUE,FALSE!\n",
|
||||
RC.config_file_name, i, ENB_CONFIG_STRING_PBCH_REPETITION);
|
||||
else if (strcmp(ccparams_lte.pbch_repetition, "TRUE") == 0) {
|
||||
RRC_CONFIGURATION_REQ (msg_p).pbch_repetition[j] = 1;
|
||||
@@ -474,7 +475,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
RRC_CONFIGURATION_REQ (msg_p).pbch_repetition[j] = 0;
|
||||
} else {
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pbch_repetition choice: TRUE or FALSE !\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%s\" for pbch_repetition choice: TRUE or FALSE !\n",
|
||||
RC.config_file_name, i, ccparams_lte.pbch_repetition);
|
||||
}
|
||||
|
||||
@@ -485,7 +486,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
|
||||
if (ccparams_lte.Nid_cell>503) {
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for Nid_cell choice: 0...503 !\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%d\" for Nid_cell choice: 0...503 !\n",
|
||||
RC.config_file_name, i, ccparams_lte.Nid_cell);
|
||||
}
|
||||
|
||||
@@ -498,7 +499,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
(ccparams_lte.N_RB_DL!=75) &&
|
||||
(ccparams_lte.N_RB_DL!=100)) {
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for N_RB_DL choice: 6,15,25,50,75,100 !\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%d\" for N_RB_DL choice: 6,15,25,50,75,100 !\n",
|
||||
RC.config_file_name, i, ccparams_lte.N_RB_DL);
|
||||
}
|
||||
|
||||
@@ -508,7 +509,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
RRC_CONFIGURATION_REQ (msg_p).frame_type[j] = TDD;
|
||||
} else {
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for frame_type choice: FDD or TDD !\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%s\" for frame_type choice: FDD or TDD !\n",
|
||||
RC.config_file_name, i, ccparams_lte.frame_type);
|
||||
}
|
||||
|
||||
@@ -522,7 +523,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
|
||||
if ((ccparams_lte.nb_antenna_ports <1) || (ccparams_lte.nb_antenna_ports > 2))
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for nb_antenna_ports choice: 1..2 !\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%d\" for nb_antenna_ports choice: 1..2 !\n",
|
||||
RC.config_file_name, i, ccparams_lte.nb_antenna_ports);
|
||||
|
||||
RRC_CONFIGURATION_REQ (msg_p).nb_antenna_ports[j] = ccparams_lte.nb_antenna_ports;
|
||||
@@ -533,19 +534,19 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
|
||||
if ((ccparams_lte.prach_root <0) || (ccparams_lte.prach_root > 1023))
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_root choice: 0..1023 !\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%d\" for prach_root choice: 0..1023 !\n",
|
||||
RC.config_file_name, i, ccparams_lte.prach_root);
|
||||
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_config_index = ccparams_lte.prach_config_index;
|
||||
|
||||
if ((ccparams_lte.prach_config_index <0) || (ccparams_lte.prach_config_index > 63))
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_config_index choice: 0..1023 !\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%d\" for prach_config_index choice: 0..1023 !\n",
|
||||
RC.config_file_name, i, ccparams_lte.prach_config_index);
|
||||
|
||||
if (!ccparams_lte.prach_high_speed)
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u define %s: ENABLE,DISABLE!\n",
|
||||
RC.config_file_name, i, ENB_CONFIG_STRING_PRACH_HIGH_SPEED);
|
||||
else if (strcmp(ccparams_lte.prach_high_speed, "ENABLE") == 0) {
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_high_speed = TRUE;
|
||||
@@ -553,7 +554,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_high_speed = FALSE;
|
||||
} else
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prach_config choice: ENABLE,DISABLE !\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%s\" for prach_config choice: ENABLE,DISABLE !\n",
|
||||
RC.config_file_name, i, ccparams_lte.prach_high_speed);
|
||||
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_zero_correlation = ccparams_lte.prach_zero_correlation;
|
||||
@@ -561,7 +562,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
if ((ccparams_lte.prach_zero_correlation <0) ||
|
||||
(ccparams_lte.prach_zero_correlation > 15))
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_zero_correlation choice: 0..15!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%d\" for prach_zero_correlation choice: 0..15!\n",
|
||||
RC.config_file_name, i, ccparams_lte.prach_zero_correlation);
|
||||
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_freq_offset = ccparams_lte.prach_freq_offset;
|
||||
@@ -569,7 +570,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
if ((ccparams_lte.prach_freq_offset <0) ||
|
||||
(ccparams_lte.prach_freq_offset > 94))
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_freq_offset choice: 0..94!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%d\" for prach_freq_offset choice: 0..94!\n",
|
||||
RC.config_file_name, i, ccparams_lte.prach_freq_offset);
|
||||
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_delta_shift = ccparams_lte.pucch_delta_shift-1;
|
||||
@@ -577,7 +578,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
if ((ccparams_lte.pucch_delta_shift <1) ||
|
||||
(ccparams_lte.pucch_delta_shift > 3))
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_delta_shift choice: 1..3!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%d\" for pucch_delta_shift choice: 1..3!\n",
|
||||
RC.config_file_name, i, ccparams_lte.pucch_delta_shift);
|
||||
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_nRB_CQI = ccparams_lte.pucch_nRB_CQI;
|
||||
@@ -585,7 +586,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
if ((ccparams_lte.pucch_nRB_CQI <0) ||
|
||||
(ccparams_lte.pucch_nRB_CQI > 98))
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nRB_CQI choice: 0..98!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%d\" for pucch_nRB_CQI choice: 0..98!\n",
|
||||
RC.config_file_name, i, ccparams_lte.pucch_nRB_CQI);
|
||||
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_nCS_AN = ccparams_lte.pucch_nCS_AN;
|
||||
@@ -593,7 +594,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
if ((ccparams_lte.pucch_nCS_AN <0) ||
|
||||
(ccparams_lte.pucch_nCS_AN > 7))
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nCS_AN choice: 0..7!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%d\" for pucch_nCS_AN choice: 0..7!\n",
|
||||
RC.config_file_name, i, ccparams_lte.pucch_nCS_AN);
|
||||
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_n1_AN = ccparams_lte.pucch_n1_AN;
|
||||
@@ -601,7 +602,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
if ((ccparams_lte.pucch_n1_AN <0) ||
|
||||
(ccparams_lte.pucch_n1_AN > 2047))
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_n1_AN choice: 0..2047!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%d\" for pucch_n1_AN choice: 0..2047!\n",
|
||||
RC.config_file_name, i, ccparams_lte.pucch_n1_AN);
|
||||
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pdsch_referenceSignalPower = ccparams_lte.pdsch_referenceSignalPower;
|
||||
@@ -609,7 +610,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
if ((ccparams_lte.pdsch_referenceSignalPower <-60) ||
|
||||
(ccparams_lte.pdsch_referenceSignalPower > 50))
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_referenceSignalPower choice:-60..50!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%d\" for pdsch_referenceSignalPower choice:-60..50!\n",
|
||||
RC.config_file_name, i, ccparams_lte.pdsch_referenceSignalPower);
|
||||
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pdsch_p_b = ccparams_lte.pdsch_p_b;
|
||||
@@ -617,7 +618,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
if ((ccparams_lte.pdsch_p_b <0) ||
|
||||
(ccparams_lte.pdsch_p_b > 3))
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_p_b choice: 0..3!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%d\" for pdsch_p_b choice: 0..3!\n",
|
||||
RC.config_file_name, i, ccparams_lte.pdsch_p_b);
|
||||
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_n_SB = ccparams_lte.pusch_n_SB;
|
||||
@@ -625,12 +626,12 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
if ((ccparams_lte.pusch_n_SB <1) ||
|
||||
(ccparams_lte.pusch_n_SB > 4))
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_n_SB choice: 1..4!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%d\" for pusch_n_SB choice: 1..4!\n",
|
||||
RC.config_file_name, i, ccparams_lte.pusch_n_SB);
|
||||
|
||||
if (!ccparams_lte.pusch_hoppingMode)
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d define %s: interSubframe,intraAndInterSubframe!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u define %s: interSubframe,intraAndInterSubframe!\n",
|
||||
RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_HOPPINGMODE);
|
||||
else if (strcmp(ccparams_lte.pusch_hoppingMode,"interSubFrame")==0) {
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_hoppingMode = LTE_PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_interSubFrame;
|
||||
@@ -638,7 +639,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_hoppingMode = LTE_PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_intraAndInterSubFrame;
|
||||
} else
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingMode choice: interSubframe,intraAndInterSubframe!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%s\" for pusch_hoppingMode choice: interSubframe,intraAndInterSubframe!\n",
|
||||
RC.config_file_name, i, ccparams_lte.pusch_hoppingMode);
|
||||
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_hoppingOffset = ccparams_lte.pusch_hoppingOffset;
|
||||
@@ -646,12 +647,12 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
if ((ccparams_lte.pusch_hoppingOffset<0) ||
|
||||
(ccparams_lte.pusch_hoppingOffset>98))
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingOffset choice: 0..98!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%s\" for pusch_hoppingOffset choice: 0..98!\n",
|
||||
RC.config_file_name, i, ccparams_lte.pusch_hoppingMode);
|
||||
|
||||
if (!ccparams_lte.pusch_enable64QAM)
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u define %s: ENABLE,DISABLE!\n",
|
||||
RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_ENABLE64QAM);
|
||||
else if (strcmp(ccparams_lte.pusch_enable64QAM, "ENABLE") == 0) {
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_enable64QAM = TRUE;
|
||||
@@ -659,12 +660,12 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_enable64QAM = FALSE;
|
||||
} else
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_enable64QAM choice: ENABLE,DISABLE!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%s\" for pusch_enable64QAM choice: ENABLE,DISABLE!\n",
|
||||
RC.config_file_name, i, ccparams_lte.pusch_enable64QAM);
|
||||
|
||||
if (!ccparams_lte.pusch_groupHoppingEnabled)
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u define %s: ENABLE,DISABLE!\n",
|
||||
RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN);
|
||||
else if (strcmp(ccparams_lte.pusch_groupHoppingEnabled, "ENABLE") == 0) {
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_groupHoppingEnabled = TRUE;
|
||||
@@ -672,7 +673,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_groupHoppingEnabled= FALSE;
|
||||
} else
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_groupHoppingEnabled choice: ENABLE,DISABLE!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%s\" for pusch_groupHoppingEnabled choice: ENABLE,DISABLE!\n",
|
||||
RC.config_file_name, i, ccparams_lte.pusch_groupHoppingEnabled);
|
||||
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_groupAssignment = ccparams_lte.pusch_groupAssignment;
|
||||
@@ -680,12 +681,12 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
if ((ccparams_lte.pusch_groupAssignment<0)||
|
||||
(ccparams_lte.pusch_groupAssignment>29))
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_groupAssignment choice: 0..29!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%d\" for pusch_groupAssignment choice: 0..29!\n",
|
||||
RC.config_file_name, i, ccparams_lte.pusch_groupAssignment);
|
||||
|
||||
if (!ccparams_lte.pusch_sequenceHoppingEnabled)
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u define %s: ENABLE,DISABLE!\n",
|
||||
RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN);
|
||||
else if (strcmp(ccparams_lte.pusch_sequenceHoppingEnabled, "ENABLE") == 0) {
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_sequenceHoppingEnabled = TRUE;
|
||||
@@ -693,7 +694,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_sequenceHoppingEnabled = FALSE;
|
||||
} else
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_sequenceHoppingEnabled choice: ENABLE,DISABLE!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%s\" for pusch_sequenceHoppingEnabled choice: ENABLE,DISABLE!\n",
|
||||
RC.config_file_name, i, ccparams_lte.pusch_sequenceHoppingEnabled);
|
||||
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_nDMRS1= ccparams_lte.pusch_nDMRS1; //cyclic_shift in RRC!
|
||||
@@ -701,7 +702,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
if ((ccparams_lte.pusch_nDMRS1 <0) ||
|
||||
(ccparams_lte.pusch_nDMRS1>7))
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_nDMRS1 choice: 0..7!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%d\" for pusch_nDMRS1 choice: 0..7!\n",
|
||||
RC.config_file_name, i, ccparams_lte.pusch_nDMRS1);
|
||||
|
||||
if (strcmp(ccparams_lte.phich_duration,"NORMAL")==0) {
|
||||
@@ -710,7 +711,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].phich_duration= LTE_PHICH_Config__phich_Duration_extended;
|
||||
} else
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_duration choice: NORMAL,EXTENDED!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%s\" for phich_duration choice: NORMAL,EXTENDED!\n",
|
||||
RC.config_file_name, i, ccparams_lte.phich_duration);
|
||||
|
||||
if (strcmp(ccparams_lte.phich_resource,"ONESIXTH")==0) {
|
||||
@@ -723,7 +724,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].phich_resource= LTE_PHICH_Config__phich_Resource_two;
|
||||
} else
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_resource choice: ONESIXTH,HALF,ONE,TWO!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%s\" for phich_resource choice: ONESIXTH,HALF,ONE,TWO!\n",
|
||||
RC.config_file_name, i, ccparams_lte.phich_resource);
|
||||
|
||||
printf("phich.resource %ld (%s), phich.duration %ld (%s)\n",
|
||||
@@ -736,7 +737,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_enable= FALSE;
|
||||
} else
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n",
|
||||
RC.config_file_name, i, ccparams_lte.srs_enable);
|
||||
|
||||
if (RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_enable== TRUE) {
|
||||
@@ -744,7 +745,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
|
||||
if ((ccparams_lte.srs_BandwidthConfig < 0) ||
|
||||
(ccparams_lte.srs_BandwidthConfig >7))
|
||||
AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value %d for srs_BandwidthConfig choice: 0...7\n",
|
||||
AssertFatal (0, "Failed to parse eNB configuration file %s, enb %u unknown value %d for srs_BandwidthConfig choice: 0...7\n",
|
||||
RC.config_file_name, i, ccparams_lte.srs_BandwidthConfig);
|
||||
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_SubframeConfig= ccparams_lte.srs_SubframeConfig;
|
||||
@@ -752,7 +753,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
if ((ccparams_lte.srs_SubframeConfig<0) ||
|
||||
(ccparams_lte.srs_SubframeConfig>15))
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for srs_SubframeConfig choice: 0..15 !\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%d\" for srs_SubframeConfig choice: 0..15 !\n",
|
||||
RC.config_file_name, i, ccparams_lte.srs_SubframeConfig);
|
||||
|
||||
if (strcmp(ccparams_lte.srs_ackNackST, "ENABLE") == 0) {
|
||||
@@ -761,7 +762,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_ackNackST= FALSE;
|
||||
} else
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n",
|
||||
RC.config_file_name, i, ccparams_lte.srs_ackNackST);
|
||||
|
||||
if (strcmp(ccparams_lte.srs_MaxUpPts, "ENABLE") == 0) {
|
||||
@@ -770,7 +771,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_MaxUpPts= FALSE;
|
||||
} else
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_MaxUpPts choice: ENABLE,DISABLE !\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%s\" for srs_MaxUpPts choice: ENABLE,DISABLE !\n",
|
||||
RC.config_file_name, i, ccparams_lte.srs_MaxUpPts);
|
||||
}
|
||||
|
||||
@@ -779,7 +780,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
if ((ccparams_lte.pusch_p0_Nominal<-126) ||
|
||||
(ccparams_lte.pusch_p0_Nominal>24))
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_p0_Nominal choice: -126..24 !\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%d\" for pusch_p0_Nominal choice: -126..24 !\n",
|
||||
RC.config_file_name, i, ccparams_lte.pusch_p0_Nominal);
|
||||
|
||||
if (strcmp(ccparams_lte.pusch_alpha,"AL0")==0) {
|
||||
@@ -800,7 +801,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= LTE_Alpha_r12_al1;
|
||||
} else
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_Alpha choice: AL0,AL04,AL05,AL06,AL07,AL08,AL09,AL1!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%s\" for pucch_Alpha choice: AL0,AL04,AL05,AL06,AL07,AL08,AL09,AL1!\n",
|
||||
RC.config_file_name, i, ccparams_lte.pusch_alpha);
|
||||
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_p0_Nominal= ccparams_lte.pucch_p0_Nominal;
|
||||
@@ -808,7 +809,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
if ((ccparams_lte.pucch_p0_Nominal<-127) ||
|
||||
(ccparams_lte.pucch_p0_Nominal>-96))
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_p0_Nominal choice: -127..-96 !\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%d\" for pucch_p0_Nominal choice: -127..-96 !\n",
|
||||
RC.config_file_name, i, ccparams_lte.pucch_p0_Nominal);
|
||||
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].msg3_delta_Preamble= ccparams_lte.msg3_delta_Preamble;
|
||||
@@ -816,7 +817,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
if ((ccparams_lte.msg3_delta_Preamble<-1) ||
|
||||
(ccparams_lte.msg3_delta_Preamble>6))
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for msg3_delta_Preamble choice: -1..6 !\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%d\" for msg3_delta_Preamble choice: -1..6 !\n",
|
||||
RC.config_file_name, i, ccparams_lte.msg3_delta_Preamble);
|
||||
|
||||
if (strcmp(ccparams_lte.pucch_deltaF_Format1,"deltaF_2")==0) {
|
||||
@@ -827,7 +828,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format1= LTE_DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF2;
|
||||
} else
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1 choice: deltaF_2,dltaF0,deltaF2!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%s\" for pucch_deltaF_Format1 choice: deltaF_2,dltaF0,deltaF2!\n",
|
||||
RC.config_file_name, i, ccparams_lte.pucch_deltaF_Format1);
|
||||
|
||||
if (strcmp(ccparams_lte.pucch_deltaF_Format1b,"deltaF1")==0) {
|
||||
@@ -838,7 +839,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format1b= LTE_DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF5;
|
||||
} else
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1b choice: deltaF1,dltaF3,deltaF5!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%s\" for pucch_deltaF_Format1b choice: deltaF1,dltaF3,deltaF5!\n",
|
||||
RC.config_file_name, i, ccparams_lte.pucch_deltaF_Format1b);
|
||||
|
||||
if (strcmp(ccparams_lte.pucch_deltaF_Format2,"deltaF_2")==0) {
|
||||
@@ -851,7 +852,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format2= LTE_DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF2;
|
||||
} else
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2 choice: deltaF_2,dltaF0,deltaF1,deltaF2!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%s\" for pucch_deltaF_Format2 choice: deltaF_2,dltaF0,deltaF1,deltaF2!\n",
|
||||
RC.config_file_name, i, ccparams_lte.pucch_deltaF_Format2);
|
||||
|
||||
if (strcmp(ccparams_lte.pucch_deltaF_Format2a,"deltaF_2")==0) {
|
||||
@@ -862,7 +863,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format2a= LTE_DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF2;
|
||||
} else
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2a choice: deltaF_2,dltaF0,deltaF2!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%s\" for pucch_deltaF_Format2a choice: deltaF_2,dltaF0,deltaF2!\n",
|
||||
RC.config_file_name, i, ccparams_lte.pucch_deltaF_Format2a);
|
||||
|
||||
if (strcmp(ccparams_lte.pucch_deltaF_Format2b,"deltaF_2")==0) {
|
||||
@@ -873,7 +874,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format2b= LTE_DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF2;
|
||||
} else
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2b choice: deltaF_2,dltaF0,deltaF2!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%s\" for pucch_deltaF_Format2b choice: deltaF_2,dltaF0,deltaF2!\n",
|
||||
RC.config_file_name, i, ccparams_lte.pucch_deltaF_Format2b);
|
||||
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles= (ccparams_lte.rach_numberOfRA_Preambles/4)-1;
|
||||
@@ -882,7 +883,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
(ccparams_lte.rach_numberOfRA_Preambles>64) ||
|
||||
((ccparams_lte.rach_numberOfRA_Preambles&3)!=0))
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_numberOfRA_Preambles choice: 4,8,12,...,64!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%d\" for rach_numberOfRA_Preambles choice: 4,8,12,...,64!\n",
|
||||
RC.config_file_name, i, ccparams_lte.rach_numberOfRA_Preambles);
|
||||
|
||||
if (strcmp(ccparams_lte.rach_preamblesGroupAConfig, "ENABLE") == 0) {
|
||||
@@ -893,7 +894,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
(ccparams_lte.rach_numberOfRA_Preambles>60) ||
|
||||
((ccparams_lte.rach_numberOfRA_Preambles&3)!=0))
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_sizeOfRA_PreamblesGroupA choice: 4,8,12,...,60!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%d\" for rach_sizeOfRA_PreamblesGroupA choice: 4,8,12,...,60!\n",
|
||||
RC.config_file_name, i, ccparams_lte.rach_sizeOfRA_PreamblesGroupA);
|
||||
|
||||
switch (ccparams_lte.rach_messageSizeGroupA) {
|
||||
@@ -915,7 +916,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
|
||||
default:
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_messageSizeGroupA choice: 56,144,208,256!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%d\" for rach_messageSizeGroupA choice: 56,144,208,256!\n",
|
||||
RC.config_file_name, i, ccparams_lte.rach_messageSizeGroupA);
|
||||
break;
|
||||
}
|
||||
@@ -938,13 +939,13 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= LTE_RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB18;
|
||||
} else
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_messagePowerOffsetGroupB choice: minusinfinity,dB0,dB5,dB8,dB10,dB12,dB15,dB18!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%s\" for rach_messagePowerOffsetGroupB choice: minusinfinity,dB0,dB5,dB8,dB10,dB12,dB15,dB18!\n",
|
||||
RC.config_file_name, i, ccparams_lte.rach_messagePowerOffsetGroupB);
|
||||
} else if (strcmp(ccparams_lte.rach_preamblesGroupAConfig, "DISABLE") == 0) {
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preamblesGroupAConfig= FALSE;
|
||||
} else
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_preamblesGroupAConfig choice: ENABLE,DISABLE !\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%s\" for rach_preamblesGroupAConfig choice: ENABLE,DISABLE !\n",
|
||||
RC.config_file_name, i, ccparams_lte.rach_preamblesGroupAConfig);
|
||||
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleInitialReceivedTargetPower= (ccparams_lte.rach_preambleInitialReceivedTargetPower+120)/2;
|
||||
@@ -953,7 +954,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
(ccparams_lte.rach_preambleInitialReceivedTargetPower>-90) ||
|
||||
((ccparams_lte.rach_preambleInitialReceivedTargetPower&1)!=0))
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleInitialReceivedTargetPower choice: -120,-118,...,-90 !\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%d\" for rach_preambleInitialReceivedTargetPower choice: -120,-118,...,-90 !\n",
|
||||
RC.config_file_name, i, ccparams_lte.rach_preambleInitialReceivedTargetPower);
|
||||
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_powerRampingStep= ccparams_lte.rach_powerRampingStep/2;
|
||||
@@ -962,7 +963,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
(ccparams_lte.rach_powerRampingStep>6) ||
|
||||
((ccparams_lte.rach_powerRampingStep&1)!=0))
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_powerRampingStep choice: 0,2,4,6 !\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%d\" for rach_powerRampingStep choice: 0,2,4,6 !\n",
|
||||
RC.config_file_name, i, ccparams_lte.rach_powerRampingStep);
|
||||
|
||||
switch (ccparams_lte.rach_preambleTransMax) {
|
||||
@@ -1012,7 +1013,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
|
||||
default:
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleTransMax choice: 3,4,5,6,7,8,10,20,50,100,200!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%d\" for rach_preambleTransMax choice: 3,4,5,6,7,8,10,20,50,100,200!\n",
|
||||
RC.config_file_name, i, ccparams_lte.rach_preambleTransMax);
|
||||
break;
|
||||
}
|
||||
@@ -1023,7 +1024,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
(ccparams_lte.rach_raResponseWindowSize==9)||
|
||||
(ccparams_lte.rach_raResponseWindowSize>10))
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_raResponseWindowSize choice: 2,3,4,5,6,7,8,10!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%d\" for rach_raResponseWindowSize choice: 2,3,4,5,6,7,8,10!\n",
|
||||
RC.config_file_name, i, ccparams_lte.rach_preambleTransMax);
|
||||
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_macContentionResolutionTimer= (ccparams_lte.rach_macContentionResolutionTimer/8)-1;
|
||||
@@ -1032,7 +1033,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
(ccparams_lte.rach_macContentionResolutionTimer>64) ||
|
||||
((ccparams_lte.rach_macContentionResolutionTimer&7)!=0))
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_macContentionResolutionTimer choice: 8,16,...,56,64!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%d\" for rach_macContentionResolutionTimer choice: 8,16,...,56,64!\n",
|
||||
RC.config_file_name, i, ccparams_lte.rach_preambleTransMax);
|
||||
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_maxHARQ_Msg3Tx= ccparams_lte.rach_maxHARQ_Msg3Tx;
|
||||
@@ -1040,7 +1041,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
if ((ccparams_lte.rach_maxHARQ_Msg3Tx<0) ||
|
||||
(ccparams_lte.rach_maxHARQ_Msg3Tx>8))
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_maxHARQ_Msg3Tx choice: 1..8!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%d\" for rach_maxHARQ_Msg3Tx choice: 1..8!\n",
|
||||
RC.config_file_name, i, ccparams_lte.rach_preambleTransMax);
|
||||
|
||||
switch (ccparams_lte.pcch_defaultPagingCycle) {
|
||||
@@ -1062,7 +1063,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
|
||||
default:
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_defaultPagingCycle choice: 32,64,128,256!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%d\" for pcch_defaultPagingCycle choice: 32,64,128,256!\n",
|
||||
RC.config_file_name, i, ccparams_lte.pcch_defaultPagingCycle);
|
||||
break;
|
||||
}
|
||||
@@ -1084,7 +1085,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
} else if (strcmp(ccparams_lte.pcch_nB, "oneThirtySecondT") == 0) {
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_nB= LTE_PCCH_Config__nB_oneThirtySecondT;
|
||||
} else {
|
||||
AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pcch_nB choice: fourT,twoT,oneT,halfT,quarterT,oneighthT,oneSixteenthT,oneThirtySecondT !\n",
|
||||
AssertFatal (0, "Failed to parse eNB configuration file %s, enb %u unknown value \"%s\" for pcch_nB choice: fourT,twoT,oneT,halfT,quarterT,oneighthT,oneSixteenthT,oneThirtySecondT !\n",
|
||||
RC.config_file_name,
|
||||
i,
|
||||
ccparams_lte.pcch_nB);
|
||||
@@ -1098,7 +1099,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].drx_Config_present = LTE_DRX_Config_PR_setup;
|
||||
} else {
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for drx_Config_present choice: prNothing, prRelease, prSetup!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%s\" for drx_Config_present choice: prNothing, prRelease, prSetup!\n",
|
||||
RC.config_file_name, i, ccparams_lte.drx_Config_present);
|
||||
}
|
||||
|
||||
@@ -1136,7 +1137,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].drx_onDurationTimer = (long) LTE_DRX_Config__setup__onDurationTimer_psf200;
|
||||
} else {
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for drx_onDurationTimer choice !\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%s\" for drx_onDurationTimer choice !\n",
|
||||
RC.config_file_name, i, ccparams_lte.drx_onDurationTimer);
|
||||
break;
|
||||
}
|
||||
@@ -1207,7 +1208,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].drx_InactivityTimer = (long) LTE_DRX_Config__setup__drx_InactivityTimer_spare1;
|
||||
} else {
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for drx_InactivityTimer choice !\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%s\" for drx_InactivityTimer choice !\n",
|
||||
RC.config_file_name, i, ccparams_lte.drx_InactivityTimer);
|
||||
break;
|
||||
}
|
||||
@@ -1216,7 +1217,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
|
||||
if (!ccparams_lte.mbms_dedicated_serving_cell)
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d define %s: TRUE,FALSE!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u define %s: TRUE,FALSE!\n",
|
||||
RC.config_file_name, i, ENB_CONFIG_STRING_MBMS_DEDICATED_SERVING_CELL);
|
||||
else if (strcmp(ccparams_lte.mbms_dedicated_serving_cell, "ENABLE") == 0) {
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].mbms_dedicated_serving_cell = TRUE;
|
||||
@@ -1224,7 +1225,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].mbms_dedicated_serving_cell = FALSE;
|
||||
} else {
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for mbms_dedicated_serving_cell choice: TRUE or FALSE !\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%s\" for mbms_dedicated_serving_cell choice: TRUE or FALSE !\n",
|
||||
RC.config_file_name, i, ccparams_lte.mbms_dedicated_serving_cell);
|
||||
}
|
||||
|
||||
@@ -1233,7 +1234,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
if ((ccparams_lte.ue_multiple_max < 1) ||
|
||||
(ccparams_lte.ue_multiple_max > 4))
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_multiple_max choice: 1..4!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%d\" for ue_multiple_max choice: 1..4!\n",
|
||||
RC.config_file_name, i, ccparams_lte.ue_multiple_max);
|
||||
|
||||
break;
|
||||
@@ -1242,7 +1243,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
if ((ccparams_lte.ue_multiple_max < 1) ||
|
||||
(ccparams_lte.ue_multiple_max > 8))
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_multiple_max choice: 1..8!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%d\" for ue_multiple_max choice: 1..8!\n",
|
||||
RC.config_file_name, i, ccparams_lte.ue_multiple_max);
|
||||
|
||||
break;
|
||||
@@ -1251,14 +1252,14 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
if ((ccparams_lte.ue_multiple_max < 1) ||
|
||||
(ccparams_lte.ue_multiple_max > 16))
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_multiple_max choice: 1..16!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%d\" for ue_multiple_max choice: 1..16!\n",
|
||||
RC.config_file_name, i, ccparams_lte.ue_multiple_max);
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for N_RB_DL choice: 25,50,100 !\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%d\" for N_RB_DL choice: 25,50,100 !\n",
|
||||
RC.config_file_name, i, ccparams_lte.N_RB_DL);
|
||||
break;
|
||||
}
|
||||
@@ -1281,7 +1282,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].drx_RetransmissionTimer = (long) LTE_DRX_Config__setup__drx_RetransmissionTimer_psf33;
|
||||
} else {
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for drx_RetransmissionTimer choice !\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%s\" for drx_RetransmissionTimer choice !\n",
|
||||
RC.config_file_name, i, ccparams_lte.drx_RetransmissionTimer);
|
||||
break;
|
||||
}
|
||||
@@ -1339,7 +1340,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
offsetMaxLimit = 2560;
|
||||
} else {
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file \"%s\", enb %d unknown string value \"%s\" for drx_longDrx_CycleStartOffset_present choice !\n",
|
||||
"Failed to parse eNB configuration file \"%s\", enb %u unknown string value \"%s\" for drx_longDrx_CycleStartOffset_present choice !\n",
|
||||
RC.config_file_name, i, ccparams_lte.drx_longDrx_CycleStartOffset_present);
|
||||
}
|
||||
|
||||
@@ -1347,7 +1348,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].drx_longDrx_CycleStartOffset = ccparams_lte.drx_longDrx_CycleStartOffset;
|
||||
} else {
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d incoherent value \"%d\" for drx_longDrx_CycleStartOffset !\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u incoherent value \"%d\" for drx_longDrx_CycleStartOffset !\n",
|
||||
RC.config_file_name, i, ccparams_lte.drx_longDrx_CycleStartOffset);
|
||||
}
|
||||
}
|
||||
@@ -1355,7 +1356,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
if (strcmp(ccparams_lte.drx_shortDrx_Cycle, "") == 0 || ccparams_lte.drx_shortDrx_ShortCycleTimer == 0) {
|
||||
if (strcmp(ccparams_lte.drx_shortDrx_Cycle, "") != 0 || ccparams_lte.drx_shortDrx_ShortCycleTimer != 0) {
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d incoherent values \"%s\" - \"%d\" for drx_shortDrx_Cycle or drx_shortDrx_ShortCycleTimer choice !\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u incoherent values \"%s\" - \"%d\" for drx_shortDrx_Cycle or drx_shortDrx_ShortCycleTimer choice !\n",
|
||||
RC.config_file_name, i, ccparams_lte.drx_shortDrx_Cycle, ccparams_lte.drx_shortDrx_ShortCycleTimer);
|
||||
} else {
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].drx_shortDrx_Cycle = -1;
|
||||
@@ -1412,13 +1413,13 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].drx_shortDrx_Cycle = LTE_DRX_Config__setup__shortDRX__shortDRX_Cycle_sf640;
|
||||
} else {
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d incoherent value \"%s\" for drx_shortDrx_Cycle !\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u incoherent value \"%s\" for drx_shortDrx_Cycle !\n",
|
||||
RC.config_file_name, i, ccparams_lte.drx_shortDrx_Cycle);
|
||||
}
|
||||
|
||||
if (cycleNb > 0 && (offsetMaxLimit % cycleNb != 0 || cycleNb == offsetMaxLimit)) {
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d incompatible (not multiple) values \"%d\" - \"%d\" for drx_shortDrx_Cycle and drx_longDrx_CycleStartOffset choice !\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u incompatible (not multiple) values \"%d\" - \"%d\" for drx_shortDrx_Cycle and drx_longDrx_CycleStartOffset choice !\n",
|
||||
RC.config_file_name, i, cycleNb, offsetMaxLimit);
|
||||
}
|
||||
|
||||
@@ -1426,7 +1427,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].drx_shortDrx_ShortCycleTimer = ccparams_lte.drx_shortDrx_ShortCycleTimer;
|
||||
} else {
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for drx_shortDrx_ShortCycleTimer choice !\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%d\" for drx_shortDrx_ShortCycleTimer choice !\n",
|
||||
RC.config_file_name, i, ccparams_lte.drx_shortDrx_ShortCycleTimer );
|
||||
}
|
||||
}
|
||||
@@ -1450,7 +1451,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
|
||||
default:
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for bcch_modificationPeriodCoeff choice: 2,4,8,16",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%d\" for bcch_modificationPeriodCoeff choice: 2,4,8,16",
|
||||
RC.config_file_name, i, ccparams_lte.bcch_modificationPeriodCoeff);
|
||||
break;
|
||||
}
|
||||
@@ -1493,7 +1494,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
|
||||
default:
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TransmissionMode choice: 1,2,3,4,5,6,7",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%d\" for ue_TransmissionMode choice: 1,2,3,4,5,6,7",
|
||||
RC.config_file_name, i, ccparams_lte.ue_TransmissionMode);
|
||||
break;
|
||||
}
|
||||
@@ -1505,7 +1506,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
if ((ccparams_lte.ue_multiple_max < 1) ||
|
||||
(ccparams_lte.ue_multiple_max > 4))
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_multiple_max choice: 1..4!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%d\" for ue_multiple_max choice: 1..4!\n",
|
||||
RC.config_file_name, i, ccparams_lte.ue_multiple_max);
|
||||
|
||||
break;
|
||||
@@ -1514,7 +1515,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
if ((ccparams_lte.ue_multiple_max < 1) ||
|
||||
(ccparams_lte.ue_multiple_max > 8))
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_multiple_max choice: 1..8!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%d\" for ue_multiple_max choice: 1..8!\n",
|
||||
RC.config_file_name, i, ccparams_lte.ue_multiple_max);
|
||||
|
||||
break;
|
||||
@@ -1523,14 +1524,14 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
if ((ccparams_lte.ue_multiple_max < 1) ||
|
||||
(ccparams_lte.ue_multiple_max > 16))
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_multiple_max choice: 1..16!\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%d\" for ue_multiple_max choice: 1..16!\n",
|
||||
RC.config_file_name, i, ccparams_lte.ue_multiple_max);
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for N_RB_DL choice: 25,50,100 !\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%d\" for N_RB_DL choice: 25,50,100 !\n",
|
||||
RC.config_file_name, i, ccparams_lte.N_RB_DL);
|
||||
break;
|
||||
}
|
||||
@@ -1599,7 +1600,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
|
||||
default:
|
||||
AssertFatal (0,
|
||||
"Bad config value when parsing eNB configuration file %s, enb %d srb1_max_retx_threshold %u!\n",
|
||||
"Bad config value when parsing eNB configuration file %s, enb %u srb1_max_retx_threshold %d!\n",
|
||||
RC.config_file_name, i, srb1_params.srb1_max_retx_threshold);
|
||||
}
|
||||
|
||||
@@ -1637,7 +1638,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
rrc->srb1_poll_pdu = LTE_PollPDU_pInfinity;
|
||||
else
|
||||
AssertFatal (0,
|
||||
"Bad config value when parsing eNB configuration file %s, enb %d srb1_poll_pdu %u!\n",
|
||||
"Bad config value when parsing eNB configuration file %s, enb %u srb1_poll_pdu %d!\n",
|
||||
RC.config_file_name, i, srb1_params.srb1_poll_pdu);
|
||||
}
|
||||
|
||||
@@ -1705,7 +1706,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
rrc->srb1_poll_byte = LTE_PollByte_kBinfinity;
|
||||
else
|
||||
AssertFatal (0,
|
||||
"Bad config value when parsing eNB configuration file %s, enb %d srb1_poll_byte %u!\n",
|
||||
"Bad config value when parsing eNB configuration file %s, enb %u srb1_poll_byte %d!\n",
|
||||
RC.config_file_name, i, srb1_params.srb1_poll_byte);
|
||||
}
|
||||
|
||||
@@ -1715,7 +1716,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
rrc->srb1_timer_poll_retransmit = (srb1_params.srb1_timer_poll_retransmit - 300)/50 + 50;
|
||||
} else {
|
||||
AssertFatal (0,
|
||||
"Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_poll_retransmit %u!\n",
|
||||
"Bad config value when parsing eNB configuration file %s, enb %u srb1_timer_poll_retransmit %d!\n",
|
||||
RC.config_file_name, i, srb1_params.srb1_timer_poll_retransmit);
|
||||
}
|
||||
|
||||
@@ -1725,7 +1726,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
rrc->srb1_timer_status_prohibit = (srb1_params.srb1_timer_status_prohibit - 300)/50 + 51;
|
||||
} else {
|
||||
AssertFatal (0,
|
||||
"Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_status_prohibit %u!\n",
|
||||
"Bad config value when parsing eNB configuration file %s, enb %u srb1_timer_status_prohibit %d!\n",
|
||||
RC.config_file_name, i, srb1_params.srb1_timer_status_prohibit);
|
||||
}
|
||||
|
||||
@@ -1856,7 +1857,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
|
||||
|
||||
default:
|
||||
AssertFatal (0,
|
||||
"Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_reordering %u!\n",
|
||||
"Bad config value when parsing eNB configuration file %s, enb %u srb1_timer_reordering %d!\n",
|
||||
RC.config_file_name, i, srb1_params.srb1_timer_reordering);
|
||||
}
|
||||
}
|
||||
@@ -1879,13 +1880,13 @@ int RCconfig_DU_F1(MessageDef *msg_p, uint32_t i) {
|
||||
config_get( ENBSParams,sizeof(ENBSParams)/sizeof(paramdef_t),NULL);
|
||||
int num_enbs = ENBSParams[ENB_ACTIVE_ENBS_IDX].numelt;
|
||||
AssertFatal (i<num_enbs,
|
||||
"Failed to parse config file no %ith element in %s \n",i, ENB_CONFIG_STRING_ACTIVE_ENBS);
|
||||
"Failed to parse config file no %uth element in %s \n",i, ENB_CONFIG_STRING_ACTIVE_ENBS);
|
||||
|
||||
if (num_enbs>0) {
|
||||
// Output a list of all eNBs.
|
||||
config_getlist( &ENBParamList,ENBParams,sizeof(ENBParams)/sizeof(paramdef_t),NULL);
|
||||
AssertFatal(ENBParamList.paramarray[i][ENB_ENB_ID_IDX].uptr != NULL,
|
||||
"eNB id %d is not defined in configuration file\n",i);
|
||||
"eNB id %u is not defined in configuration file\n",i);
|
||||
F1AP_SETUP_REQ (msg_p).num_cells_available = 0;
|
||||
|
||||
for (k=0; k <num_enbs ; k++) {
|
||||
@@ -2125,7 +2126,7 @@ int RCconfig_S1(
|
||||
S1AP_REGISTER_ENB_REQ (msg_p).cell_type = CELL_HOME_ENB;
|
||||
} else {
|
||||
AssertFatal(0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for cell_type choice: CELL_MACRO_ENB or CELL_HOME_ENB !\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%s\" for cell_type choice: CELL_MACRO_ENB or CELL_HOME_ENB !\n",
|
||||
RC.config_file_name,
|
||||
i,
|
||||
*(ENBParamList.paramarray[k][ENB_CELL_TYPE_IDX].strptr));
|
||||
@@ -2354,7 +2355,7 @@ int RCconfig_X2(MessageDef *msg_p, uint32_t i) {
|
||||
X2AP_REGISTER_ENB_REQ (msg_p).cell_type = CELL_HOME_ENB;
|
||||
} else {
|
||||
AssertFatal (0,
|
||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for cell_type choice: CELL_MACRO_ENB or CELL_HOME_ENB !\n",
|
||||
"Failed to parse eNB configuration file %s, enb %u unknown value \"%s\" for cell_type choice: CELL_MACRO_ENB or CELL_HOME_ENB !\n",
|
||||
RC.config_file_name, i, *(ENBParamList.paramarray[k][ENB_CELL_TYPE_IDX].strptr));
|
||||
}
|
||||
|
||||
@@ -2832,7 +2833,7 @@ void read_config_and_init(void) {
|
||||
|
||||
for (uint32_t enb_id = 0; enb_id < RC.nb_inst; enb_id++) {
|
||||
RC.rrc[enb_id] = malloc(sizeof(eNB_RRC_INST));
|
||||
AssertFatal(RC.rrc[enb_id], "RRC context for eNB %d not allocated\n", enb_id);
|
||||
AssertFatal(RC.rrc[enb_id], "RRC context for eNB %u not allocated\n", enb_id);
|
||||
memset((void *)RC.rrc[enb_id], 0, sizeof(eNB_RRC_INST));
|
||||
RCconfig_RRC(enb_id, RC.rrc[enb_id],macrlc_has_f1[enb_id]);
|
||||
}
|
||||
|
||||
+110
-110
@@ -539,122 +539,122 @@ typedef struct ccparams_lte_s {
|
||||
} ccparams_lte_t;
|
||||
|
||||
#define CCPARAMS_CHECK { \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ .s1a= { config_check_modify_integer, UETIMER_T300_OKVALUES, UETIMER_T300_MODVALUES,8}} ,\
|
||||
{ .s1a= { config_check_modify_integer, UETIMER_T301_OKVALUES, UETIMER_T301_MODVALUES,8}} ,\
|
||||
{ .s1a= { config_check_modify_integer, UETIMER_T310_OKVALUES, UETIMER_T310_MODVALUES,7}} ,\
|
||||
{ .s1a= { config_check_modify_integer, UETIMER_T311_OKVALUES, UETIMER_T311_MODVALUES,7}} ,\
|
||||
{ .s1a= { config_check_modify_integer, UETIMER_N310_OKVALUES, UETIMER_N310_MODVALUES,8}} ,\
|
||||
{ .s1a= { config_check_modify_integer, UETIMER_N311_OKVALUES, UETIMER_N311_MODVALUES,8}} ,\
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } , \
|
||||
{ .s5 = { NULL } } \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } , \
|
||||
{ { NULL } } \
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
|
||||
|
||||
@@ -258,93 +258,93 @@ typedef struct ccparams_eMTC_s {
|
||||
}
|
||||
|
||||
#define EMTCPARAMS_CHECK { \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ .s1a= { config_check_modify_integer, UETIMER_T300_OKVALUES, UETIMER_T300_MODVALUES,8}} , \
|
||||
{ .s1a= { config_check_modify_integer, UETIMER_T301_OKVALUES, UETIMER_T301_MODVALUES,8}} , \
|
||||
{ .s1a= { config_check_modify_integer, UETIMER_T310_OKVALUES, UETIMER_T310_MODVALUES,7}} , \
|
||||
{ .s1a= { config_check_modify_integer, UETIMER_T311_OKVALUES, UETIMER_T311_MODVALUES,7}} , \
|
||||
{ .s1a= { config_check_modify_integer, UETIMER_N310_OKVALUES, UETIMER_N310_MODVALUES,8}} , \
|
||||
{ .s1a= { config_check_modify_integer, UETIMER_N311_OKVALUES, UETIMER_N311_MODVALUES,8}} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ .s5= {NULL }} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
{ {NULL}} , \
|
||||
}
|
||||
|
||||
#define SYSTEM_INFO_VALUE_TAG_SI_DESC(eMTCconfig) { \
|
||||
|
||||
@@ -187,9 +187,8 @@ uint8_t do_MIB_FeMBMS(rrc_eNB_carrier_data_t *carrier, uint32_t N_RB_DL, uint32_
|
||||
LTE_BCCH_BCH_Message_MBMS_t *mib_fembms=&carrier->mib_fembms;
|
||||
uint8_t sfn = (uint8_t)((frame>>2)&0xff);
|
||||
uint16_t *spare = calloc(1,sizeof(uint16_t));
|
||||
uint16_t *additionalNonMBSFNSubframes = calloc(1,sizeof(uint16_t));
|
||||
|
||||
if( spare == NULL || additionalNonMBSFNSubframes == NULL ) abort();
|
||||
if( spare == NULL ) abort();
|
||||
|
||||
switch (N_RB_DL) {
|
||||
case 6:
|
||||
@@ -217,7 +216,7 @@ uint8_t do_MIB_FeMBMS(rrc_eNB_carrier_data_t *carrier, uint32_t N_RB_DL, uint32_
|
||||
break;
|
||||
|
||||
default:
|
||||
AssertFatal(1==0,"Unknown dl_Bandwidth %d\n",N_RB_DL);
|
||||
AssertFatal(1==0,"Unknown dl_Bandwidth %u\n",N_RB_DL);
|
||||
}
|
||||
|
||||
LOG_I(RRC,"[MIB] systemBandwidth %x, additional non MBMS subframes %x, sfn %x\n",
|
||||
@@ -287,7 +286,7 @@ uint8_t do_MIB(rrc_eNB_carrier_data_t *carrier, uint32_t N_RB_DL, uint32_t phich
|
||||
break;
|
||||
|
||||
default:
|
||||
AssertFatal(1==0,"Unknown dl_Bandwidth %d\n",N_RB_DL);
|
||||
AssertFatal(1==0,"Unknown dl_Bandwidth %u\n",N_RB_DL);
|
||||
}
|
||||
|
||||
AssertFatal(phich_Resource <= LTE_PHICH_Config__phich_Resource_two,"Illegal phich_Resource\n");
|
||||
@@ -1021,7 +1020,7 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier,
|
||||
sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13
|
||||
= calloc(1, sizeof(struct LTE_SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13));
|
||||
memset(sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13, 0,
|
||||
sizeof(sizeof(struct LTE_SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13)));
|
||||
sizeof(struct LTE_SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13));
|
||||
|
||||
if (*configuration->fdd_DownlinkOrTddSubframeBitmapBR_r13[CC_id]) {
|
||||
sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->present
|
||||
@@ -1183,7 +1182,7 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier,
|
||||
sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13
|
||||
= calloc(1, sizeof(struct LTE_SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13));
|
||||
memset(sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13, 0,
|
||||
sizeof(sizeof(struct LTE_SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13)));
|
||||
sizeof(struct LTE_SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13));
|
||||
sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->present
|
||||
= LTE_SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13_PR_subframePattern10_r13;
|
||||
sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.buf = calloc(2, sizeof(uint8_t));
|
||||
|
||||
@@ -1197,7 +1197,7 @@ void histogram_save_in_csv( histo_time_t *histo , char *file_sufix)
|
||||
fprintf( fp, "%d-%.0f;%u\n", min_val, histo[i].max, histo[i].count );
|
||||
min_val = histo[i].max;
|
||||
}
|
||||
|
||||
free(csv_filename);
|
||||
fclose( fp );
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user