Commit 58f62a41 authored by Raphael Defosseux's avatar Raphael Defosseux

Merge remote-tracking branch 'origin/nr_fix_easycppcheck' into integration-develop-nr-2020w02

parents cfc73e98 aaaa6d5c
...@@ -806,7 +806,6 @@ static void *ru_thread_asynch_rxtx( void *param ) { ...@@ -806,7 +806,6 @@ static void *ru_thread_asynch_rxtx( void *param ) {
printf( "devices ok (ru_thread_asynch_rx)\n"); printf( "devices ok (ru_thread_asynch_rx)\n");
while (!oai_exit) { while (!oai_exit) {
if (oai_exit) break;
if (subframe==9) { if (subframe==9) {
subframe=0; subframe=0;
...@@ -854,7 +853,7 @@ static void *ru_thread_prach( void *param ) { ...@@ -854,7 +853,7 @@ static void *ru_thread_prach( void *param ) {
LOG_I(PHY,"%s() RU configured - RACH processing thread running\n", __FUNCTION__); LOG_I(PHY,"%s() RU configured - RACH processing thread running\n", __FUNCTION__);
while (!oai_exit) { 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; 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) { ...@@ -1159,7 +1158,7 @@ int setup_RU_buffers(RU_t *ru) {
frame_parms = ru->nr_frame_parms; frame_parms = ru->nr_frame_parms;
printf("setup_RU_buffers: frame_parms = %p\n",frame_parms); printf("setup_RU_buffers: frame_parms = %p\n",frame_parms);
} else { } else {
printf("RU[%d] not initialized\n", ru->idx); printf("ru pointer is NULL\n");
return(-1); return(-1);
} }
...@@ -1259,7 +1258,6 @@ static void *ru_thread_tx( void *param ) { ...@@ -1259,7 +1258,6 @@ static void *ru_thread_tx( void *param ) {
} }
while (!oai_exit) { while (!oai_exit) {
if (oai_exit) break;
LOG_D(PHY,"ru_thread_tx: Waiting for TX processing\n"); LOG_D(PHY,"ru_thread_tx: Waiting for TX processing\n");
// wait until eNBs are finished subframe RX n and TX n+4 // wait until eNBs are finished subframe RX n and TX n+4
......
...@@ -317,6 +317,7 @@ int test_ldpc(short No_iteration, ...@@ -317,6 +317,7 @@ int test_ldpc(short No_iteration,
for (i = 0; i < block_length+(nrows-no_punctured_columns) * Zc - removed_bit; i++) for (i = 0; i < block_length+(nrows-no_punctured_columns) * Zc - removed_bit; i++)
if (channel_input[j][i]!=channel_input_optim[j][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]); 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); return (-1);
} }
//else{ //else{
......
...@@ -215,6 +215,8 @@ if (logFlag){ ...@@ -215,6 +215,8 @@ if (logFlag){
free(encoder_outputByte); free(encoder_outputByte);
free(channel_output); free(channel_output);
free(modulated_input); free(modulated_input);
if (logFlag)
fclose(logFile);
return 0; return 0;
#endif #endif
...@@ -317,13 +319,13 @@ if (logFlag){ ...@@ -317,13 +319,13 @@ if (logFlag){
if (nBitError>0) blockErrorState=1; if (nBitError>0) blockErrorState=1;
#ifdef DEBUG_POLARTEST #ifdef DEBUG_POLARTEST
for (int i = 0; i < testArrayLength; i++) 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 #endif
//Iteration times are in microseconds. //Iteration times are in microseconds.
timeEncoderCumulative+=(timeEncoder.diff/(cpu_freq_GHz*1000.0)); timeEncoderCumulative+=(timeEncoder.diff/(cpu_freq_GHz*1000.0));
timeDecoderCumulative+=(timeDecoder.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) { if (nBitError<0) {
blockErrorCumulative++; blockErrorCumulative++;
......
...@@ -494,7 +494,8 @@ int ldpc_encoder_orig(unsigned char *test_input,unsigned char *channel_input,int ...@@ -494,7 +494,8 @@ int ldpc_encoder_orig(unsigned char *test_input,unsigned char *channel_input,int
fprintf(fd," int i2;\n"); fprintf(fd," int i2;\n");
fprintf(fd2," int i2;\n"); fprintf(fd2," int i2;\n");
fprintf(fd," for (i2=0; i2<%d; i2++) {\n",Zc>>shift); 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++) for (i2=0; i2 < 1; i2++)
{ {
//t=Kb*Zc+i2; //t=Kb*Zc+i2;
......
...@@ -252,6 +252,7 @@ int8_t polar_decoder(double *input, ...@@ -252,6 +252,7 @@ int8_t polar_decoder(double *input,
nr_free_uint8_3D_array(bit, polarParams->N, (polarParams->n+1)); nr_free_uint8_3D_array(bit, polarParams->N, (polarParams->n+1));
nr_free_double_3D_array(llr, polarParams->N, (polarParams->n+1)); nr_free_double_3D_array(llr, polarParams->N, (polarParams->n+1));
nr_free_uint8_2D_array(crcChecksum, polarParams->crcParityBits); nr_free_uint8_2D_array(crcChecksum, polarParams->crcParityBits);
free(tempECGM);
return(-1); return(-1);
} }
...@@ -522,6 +523,7 @@ int8_t polar_decoder_dci(double *input, ...@@ -522,6 +523,7 @@ int8_t polar_decoder_dci(double *input,
nr_free_uint8_3D_array(bit, polarParams->N, (polarParams->n+1)); nr_free_uint8_3D_array(bit, polarParams->N, (polarParams->n+1));
nr_free_double_3D_array(llr, polarParams->N, (polarParams->n+1)); nr_free_double_3D_array(llr, polarParams->N, (polarParams->n+1));
nr_free_uint8_2D_array(crcChecksum, polarParams->crcParityBits); nr_free_uint8_2D_array(crcChecksum, polarParams->crcParityBits);
free(tempECGM);
return(-1); return(-1);
} }
......
...@@ -470,7 +470,7 @@ void computeBeta(const t_nrPolar_params *pp,decoder_node_t *node) { ...@@ -470,7 +470,7 @@ void computeBeta(const t_nrPolar_params *pp,decoder_node_t *node) {
int ssr4len = node->Nv/2/8; int ssr4len = node->Nv/2/8;
register __m128i allones=*((__m128i*)all1); register __m128i allones=*((__m128i*)all1);
for (int i=0;i<sse4len;i++) { 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) { else if (sse4mod == 4) {
......
...@@ -103,7 +103,11 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB, ...@@ -103,7 +103,11 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
break; break;
default: default:
printf("pusch_channel_estimation: nushift=%d -> ERROR\n",nushift); #ifdef DEBUG_CH
if (debug_ch_est)
fclose(debug_ch_est);
#endif
return(-1); return(-1);
break; break;
} }
...@@ -193,7 +197,7 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB, ...@@ -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[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); ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15);
#ifdef DEBUG_CH #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]); //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 #endif
multadd_real_vector_complex_scalar(fm, multadd_real_vector_complex_scalar(fm,
...@@ -208,7 +212,7 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB, ...@@ -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[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); ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15);
#ifdef DEBUG_PUSCH #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 #endif
multadd_real_vector_complex_scalar(fmm, multadd_real_vector_complex_scalar(fmm,
ch, ch,
...@@ -225,7 +229,7 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB, ...@@ -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[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); ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15);
#ifdef DEBUG_PUSCH #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 #endif
multadd_real_vector_complex_scalar(fm, multadd_real_vector_complex_scalar(fm,
ch, ch,
...@@ -243,7 +247,7 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB, ...@@ -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); ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15);
#ifdef DEBUG_PUSCH #ifdef DEBUG_PUSCH
printf("ch 0 %d\n",((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])); 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 #endif
multadd_real_vector_complex_scalar(fmr, multadd_real_vector_complex_scalar(fmr,
ch, ch,
...@@ -258,7 +262,7 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB, ...@@ -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[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); ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15);
#ifdef DEBUG_PUSCH #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 #endif
multadd_real_vector_complex_scalar(fr, multadd_real_vector_complex_scalar(fr,
ch, ch,
......
...@@ -80,7 +80,7 @@ uint8_t nr_generate_pdsch(NR_gNB_DLSCH_t *dlsch, ...@@ -80,7 +80,7 @@ uint8_t nr_generate_pdsch(NR_gNB_DLSCH_t *dlsch,
time_stats_t *dlsch_modulation_stats); 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); void clean_gNB_dlsch(NR_gNB_DLSCH_t *dlsch);
......
...@@ -48,11 +48,12 @@ ...@@ -48,11 +48,12 @@
//#define DEBUG_DLSCH_CODING //#define DEBUG_DLSCH_CODING
//#define DEBUG_DLSCH_FREE 1 //#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 i;
int r; int r;
NR_gNB_DLSCH_t *dlsch = *dlschptr;
if (dlsch) { if (dlsch) {
#ifdef DEBUG_DLSCH_FREE #ifdef DEBUG_DLSCH_FREE
printf("Freeing dlsch %p\n",dlsch); printf("Freeing dlsch %p\n",dlsch);
...@@ -232,7 +233,7 @@ NR_gNB_DLSCH_t *new_gNB_dlsch(unsigned char Kmimo, ...@@ -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", LOG_D(PHY,"new_gNB_dlsch exit flag %d, size of %ld\n",
exit_flag, sizeof(NR_gNB_DLSCH_t)); exit_flag, sizeof(NR_gNB_DLSCH_t));
free_gNB_dlsch(dlsch); free_gNB_dlsch(&dlsch);
return(NULL); return(NULL);
...@@ -278,7 +279,7 @@ int nr_dlsch_encoding(unsigned char *a, ...@@ -278,7 +279,7 @@ int nr_dlsch_encoding(unsigned char *a,
unsigned int G; unsigned int G;
unsigned int crc=1; 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); 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; 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; uint16_t nb_rb = rel15.n_prb;
...@@ -458,7 +459,7 @@ int nr_dlsch_encoding(unsigned char *a, ...@@ -458,7 +459,7 @@ int nr_dlsch_encoding(unsigned char *a,
#ifdef DEBUG_DLSCH_CODING #ifdef DEBUG_DLSCH_CODING
for (int i =0; i<16; i++) 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 #endif
nr_interleaving_ldpc(E, nr_interleaving_ldpc(E,
...@@ -469,7 +470,7 @@ int nr_dlsch_encoding(unsigned char *a, ...@@ -469,7 +470,7 @@ int nr_dlsch_encoding(unsigned char *a,
#ifdef DEBUG_DLSCH_CODING #ifdef DEBUG_DLSCH_CODING
for (int i =0; i<16; i++) 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) if (r==dlsch->harq_processes[harq_pid]->C-1)
write_output("enc_output.m","enc",dlsch->harq_processes[harq_pid]->f,G,1,4); 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 ...@@ -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); fir_filter_basic(input, output, new_length, FIR_TAPS_NUMBER, filter_taps, SHARPENED_FIR_SCALING_ACC);
#endif #endif
free(filter_taps_fixed_point);
} }
else else
{ {
......
...@@ -253,6 +253,7 @@ void pdcch_channel_level(int32_t **dl_ch_estimates_ext, ...@@ -253,6 +253,7 @@ void pdcch_channel_level(int32_t **dl_ch_estimates_ext,
avg128P = _mm_setzero_si128(); avg128P = _mm_setzero_si128();
dl_ch128=(__m128i *)&dl_ch_estimates_ext[aarx][0]; dl_ch128=(__m128i *)&dl_ch_estimates_ext[aarx][0];
#elif defined(__arm__) #elif defined(__arm__)
dl_ch128=(int16x8_t *)&dl_ch_estimates_ext[aarx][0];
#endif #endif
for (rb=0; rb<(nb_rb*3)>>2; rb++) { for (rb=0; rb<(nb_rb*3)>>2; rb++) {
...@@ -375,7 +376,7 @@ void nr_pdcch_extract_rbs_single(int32_t **rxdataF, ...@@ -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 * 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 * 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++) { 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; //c_rb_tmp = 0;
...@@ -762,8 +763,8 @@ int32_t nr_rx_pdcch(PHY_VARS_NR_UE *ue, ...@@ -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("symbol_mon=(%u) and start_symbol=(%u)\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("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); 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, // 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, ...@@ -780,7 +781,7 @@ int32_t nr_rx_pdcch(PHY_VARS_NR_UE *ue,
// for (int j=0; j < coreset_nbr_act; j++) { // for (int j=0; j < coreset_nbr_act; j++) {
// for each active CORESET (max number of active CORESETs in a BWP is 3), // for each active CORESET (max number of active CORESETs in a BWP is 3),
// we calculate the number of RB for each CORESET bitmap // 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 int i; //for each bit in the coreset_freq_dom bitmap
for (i = 0; i < 45; i++) { for (i = 0; i < 45; i++) {
...@@ -789,8 +790,8 @@ int32_t nr_rx_pdcch(PHY_VARS_NR_UE *ue, ...@@ -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 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_freq_dom=(%lu,%lx), coreset_nbr_rb=%u\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_nbr_rb=%u, coreset_nbr_reg=%u, coreset_C=(%u/(%d*%d))=%u\n",
coreset_nbr_rb, coreset_nbr_rb,
coreset_time_dur * coreset_nbr_rb, coreset_time_dur * 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, ...@@ -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("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); 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); 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); 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) if (CCEind < 32)
CCEmap = CCEmap0; CCEmap = CCEmap0;
...@@ -1173,7 +1174,7 @@ void nr_dci_decoding_procedure0(int s, ...@@ -1173,7 +1174,7 @@ void nr_dci_decoding_procedure0(int s,
CCEmap = CCEmap1; CCEmap = CCEmap1;
else if (CCEind < 96) else if (CCEind < 96)
CCEmap = CCEmap2; 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) { switch (L2) {
case 1: case 1:
...@@ -1220,7 +1221,7 @@ void nr_dci_decoding_procedure0(int s, ...@@ -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 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"); 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++) // 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); coreset_time_dur,coreset_nbr_rb,p,CCEind);
/* /*
int reg_p=0,reg_e=0; int reg_p=0,reg_e=0;
......
...@@ -380,10 +380,10 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue, ...@@ -380,10 +380,10 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue,
#if UE_TIMING_TRACE #if UE_TIMING_TRACE
stop_meas(&ue->generic_stat_bis[ue->current_thread_id[nr_tti_rx]][slot]); stop_meas(&ue->generic_stat_bis[ue->current_thread_id[nr_tti_rx]][slot]);
#if DISABLE_LOG_X #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)); 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 #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)); 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
#endif #endif
...@@ -404,9 +404,9 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue, ...@@ -404,9 +404,9 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue,
#if UE_TIMING_TRACE #if UE_TIMING_TRACE
stop_meas(&ue->generic_stat_bis[ue->current_thread_id[nr_tti_rx]][slot]); stop_meas(&ue->generic_stat_bis[ue->current_thread_id[nr_tti_rx]][slot]);
#if DISABLE_LOG_X #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 #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
#endif #endif
...@@ -483,9 +483,9 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue, ...@@ -483,9 +483,9 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue,
#if UE_TIMING_TRACE #if UE_TIMING_TRACE
stop_meas(&ue->generic_stat_bis[ue->current_thread_id[nr_tti_rx]][slot]); stop_meas(&ue->generic_stat_bis[ue->current_thread_id[nr_tti_rx]][slot]);
#if DISABLE_LOG_X #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 #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
#endif #endif
...@@ -596,9 +596,9 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue, ...@@ -596,9 +596,9 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue,
#if UE_TIMING_TRACE #if UE_TIMING_TRACE
stop_meas(&ue->generic_stat_bis[ue->current_thread_id[nr_tti_rx]][slot]); stop_meas(&ue->generic_stat_bis[ue->current_thread_id[nr_tti_rx]][slot]);
#if DISABLE_LOG_X #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 #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
#endif #endif
// MRC // MRC
...@@ -641,9 +641,9 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue, ...@@ -641,9 +641,9 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue,
#if UE_TIMING_TRACE #if UE_TIMING_TRACE
stop_meas(&ue->generic_stat_bis[ue->current_thread_id[nr_tti_rx]][slot]); stop_meas(&ue->generic_stat_bis[ue->current_thread_id[nr_tti_rx]][slot]);
#if DISABLE_LOG_X #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 #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
#endif #endif
...@@ -1018,9 +1018,9 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue, ...@@ -1018,9 +1018,9 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue,
#if UE_TIMING_TRACE #if UE_TIMING_TRACE
stop_meas(&ue->generic_stat_bis[ue->current_thread_id[nr_tti_rx]][slot]); stop_meas(&ue->generic_stat_bis[ue->current_thread_id[nr_tti_rx]][slot]);
#if DISABLE_LOG_X #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 #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
#endif #endif
// Please keep it: useful for debugging // Please keep it: useful for debugging
...@@ -1091,7 +1091,7 @@ void nr_dlsch_deinterleaving(uint8_t symbol, ...@@ -1091,7 +1091,7 @@ void nr_dlsch_deinterleaving(uint8_t symbol,
uint32_t *bundle_deint = malloc(N_bundle*sizeof(uint32_t)); 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) if (symbol==start_symbol)
nb_re = 6; nb_re = 6;
...@@ -1117,6 +1117,7 @@ void nr_dlsch_deinterleaving(uint8_t symbol, ...@@ -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]); //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, ...@@ -2455,7 +2456,7 @@ unsigned short nr_dlsch_extract_rbs_dual(int **rxdataF,
int prb,nb_rb=0; int prb,nb_rb=0;
unsigned short k; unsigned short k;
int i,j,aarx; 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 k = frame_parms->first_carrier_offset + 516; //0
...@@ -2511,8 +2512,8 @@ unsigned short nr_dlsch_extract_rbs_dual(int **rxdataF, ...@@ -2511,8 +2512,8 @@ unsigned short nr_dlsch_extract_rbs_dual(int **rxdataF,
if ((i&1)!=frame_parms->nushift) { if ((i&1)!=frame_parms->nushift) {
rxF_ext[j]=rxF[i]; 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])); // 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_ch0_ext[j]=dl_ch0[i];
dl_ch1_ext[j++]=dl_ch1p[i]; dl_ch1_ext[j++]=dl_ch1[i];
} }
} }
dl_ch0_ext+=6; dl_ch0_ext+=6;
......
...@@ -61,7 +61,7 @@ void free_nr_ue_dlsch(NR_UE_DLSCH_t **dlsch); ...@@ -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); 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); 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 @@ ...@@ -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; int i, r;
NR_UE_ULSCH_t *ulsch = *ulschptr;
if (ulsch) { if (ulsch) {
#ifdef DEBUG_ULSCH_FREE #ifdef DEBUG_ULSCH_FREE
...@@ -80,7 +81,7 @@ void free_nr_ue_ulsch(NR_UE_ULSCH_t *ulsch) ...@@ -80,7 +81,7 @@ void free_nr_ue_ulsch(NR_UE_ULSCH_t *ulsch)
} }
} }
free16(ulsch,sizeof(NR_UE_ULSCH_t)); 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, ...@@ -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)); 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); return(NULL);
......
This diff is collapsed.
...@@ -345,9 +345,9 @@ void phy_scope_gNB(FD_phy_scope_gnb *form, ...@@ -345,9 +345,9 @@ void phy_scope_gNB(FD_phy_scope_gnb *form,
I_pucch[ind] = (float)pucch1ab_comp[2*(ind)]; I_pucch[ind] = (float)pucch1ab_comp[2*(ind)];
Q_pucch[ind] = (float)pucch1ab_comp[2*(ind)+1]; 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; 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_comp,I_pucch,Q_pucch,10240,"","","");
fl_set_xyplot_data(form->pucch_comp1,B_pucch,A_pucch,1024,"","",""); 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, ...@@ -840,7 +840,7 @@ void phy_scope_nrUE(FD_phy_scope_nrue *form,
free(bit); free(bit);
free(bit_pdcch); free(bit_pdcch);
free(llr_pdcch); free(llr_pdcch);
free(chest_t_abs);
/* /*
free(chest_f_abs); free(chest_f_abs);
for (arx=0; arx<nb_antennas_rx; arx++) { for (arx=0; arx<nb_antennas_rx; arx++) {
...@@ -898,9 +898,9 @@ void reset_stats_gNB(FL_OBJECT *button, ...@@ -898,9 +898,9 @@ void reset_stats_gNB(FL_OBJECT *button,
static void *scope_thread_gNB(void *arg) { static void *scope_thread_gNB(void *arg) {
int UE_id, CC_id; int UE_id, CC_id;
int ue_cnt=0; int ue_cnt=0;
# ifdef ENABLE_XFORMS_WRITE_STATS //# ifdef ENABLE_XFORMS_WRITE_STATS
FILE *gNB_stats = fopen("gNB_stats.txt", "w"); // FILE *gNB_stats = fopen("gNB_stats.txt", "w");
#endif //#endif
while (!oai_exit) { while (!oai_exit) {
ue_cnt=0; 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 ...@@ -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 i_mod,eNB_id_i,dual_stream_UE;
int first_symbol_flag=0; int first_symbol_flag=0;
if (!dlsch0)
return;
if (dlsch0->active == 0) if (dlsch0->active == 0)
return; return;
if (dlsch0 && (!dlsch1)) { if (!dlsch1) {
int harq_pid = dlsch0->current_harq_pid; int harq_pid = dlsch0->current_harq_pid;
uint16_t pdsch_start_rb = dlsch0->harq_processes[harq_pid]->start_rb; uint16_t pdsch_start_rb = dlsch0->harq_processes[harq_pid]->start_rb;
uint16_t pdsch_nb_rb = dlsch0->harq_processes[harq_pid]->nb_rb; uint16_t pdsch_nb_rb = dlsch0->harq_processes[harq_pid]->nb_rb;
......
...@@ -621,7 +621,7 @@ int main(int argc, char **argv) ...@@ -621,7 +621,7 @@ int main(int argc, char **argv)
for (i = 0; i < 2; i++) { for (i = 0; i < 2; i++) {
printf("gNB %d\n", 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); printf("UE %d\n", i);
free_nr_ue_dlsch(&(UE->dlsch[0][0][i])); free_nr_ue_dlsch(&(UE->dlsch[0][0][i]));
} }
......
This diff is collapsed.
...@@ -539,122 +539,122 @@ typedef struct ccparams_lte_s { ...@@ -539,122 +539,122 @@ typedef struct ccparams_lte_s {
} ccparams_lte_t; } ccparams_lte_t;
#define CCPARAMS_CHECK { \ #define CCPARAMS_CHECK { \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s1a= { config_check_modify_integer, UETIMER_T300_OKVALUES, UETIMER_T300_MODVALUES,8}} ,\ { .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_T301_OKVALUES, UETIMER_T301_MODVALUES,8}} ,\
{ .s1a= { config_check_modify_integer, UETIMER_T310_OKVALUES, UETIMER_T310_MODVALUES,7}} ,\ { .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_T311_OKVALUES, UETIMER_T311_MODVALUES,7}} ,\
{ .s1a= { config_check_modify_integer, UETIMER_N310_OKVALUES, UETIMER_N310_MODVALUES,8}} ,\ { .s1a= { config_check_modify_integer, UETIMER_N310_OKVALUES, UETIMER_N310_MODVALUES,8}} ,\
{ .s1a= { config_check_modify_integer, UETIMER_N311_OKVALUES, UETIMER_N311_MODVALUES,8}} ,\ { .s1a= { config_check_modify_integer, UETIMER_N311_OKVALUES, UETIMER_N311_MODVALUES,8}} ,\
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } , \ { { NULL } } , \
{ .s5 = { NULL } } \ { { NULL } } \
} }
/*-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ /*-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
......
...@@ -258,93 +258,93 @@ typedef struct ccparams_eMTC_s { ...@@ -258,93 +258,93 @@ typedef struct ccparams_eMTC_s {
} }
#define EMTCPARAMS_CHECK { \ #define EMTCPARAMS_CHECK { \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s1a= { config_check_modify_integer, UETIMER_T300_OKVALUES, UETIMER_T300_MODVALUES,8}} , \ { .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_T301_OKVALUES, UETIMER_T301_MODVALUES,8}} , \
{ .s1a= { config_check_modify_integer, UETIMER_T310_OKVALUES, UETIMER_T310_MODVALUES,7}} , \ { .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_T311_OKVALUES, UETIMER_T311_MODVALUES,7}} , \
{ .s1a= { config_check_modify_integer, UETIMER_N310_OKVALUES, UETIMER_N310_MODVALUES,8}} , \ { .s1a= { config_check_modify_integer, UETIMER_N310_OKVALUES, UETIMER_N310_MODVALUES,8}} , \
{ .s1a= { config_check_modify_integer, UETIMER_N311_OKVALUES, UETIMER_N311_MODVALUES,8}} , \ { .s1a= { config_check_modify_integer, UETIMER_N311_OKVALUES, UETIMER_N311_MODVALUES,8}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
{ .s5= {NULL }} , \ { {NULL}} , \
} }
#define SYSTEM_INFO_VALUE_TAG_SI_DESC(eMTCconfig) { \ #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_ ...@@ -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; LTE_BCCH_BCH_Message_MBMS_t *mib_fembms=&carrier->mib_fembms;
uint8_t sfn = (uint8_t)((frame>>2)&0xff); uint8_t sfn = (uint8_t)((frame>>2)&0xff);
uint16_t *spare = calloc(1,sizeof(uint16_t)); 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) { switch (N_RB_DL) {
case 6: case 6:
...@@ -217,7 +216,7 @@ uint8_t do_MIB_FeMBMS(rrc_eNB_carrier_data_t *carrier, uint32_t N_RB_DL, uint32_ ...@@ -217,7 +216,7 @@ uint8_t do_MIB_FeMBMS(rrc_eNB_carrier_data_t *carrier, uint32_t N_RB_DL, uint32_
break; break;
default: 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", 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 ...@@ -287,7 +286,7 @@ uint8_t do_MIB(rrc_eNB_carrier_data_t *carrier, uint32_t N_RB_DL, uint32_t phich
break; break;
default: 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"); 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, ...@@ -1021,7 +1020,7 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier,
sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13 sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13
= calloc(1, sizeof(struct LTE_SystemInformationBlockType1_v1310_IEs__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, 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]) { if (*configuration->fdd_DownlinkOrTddSubframeBitmapBR_r13[CC_id]) {
sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->present sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->present
...@@ -1183,7 +1182,7 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier, ...@@ -1183,7 +1182,7 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier,
sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13 sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13
= calloc(1, sizeof(struct LTE_SystemInformationBlockType1_v1310_IEs__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, 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 sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->present
= LTE_SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13_PR_subframePattern10_r13; = 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)); 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) ...@@ -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 ); fprintf( fp, "%d-%.0f;%u\n", min_val, histo[i].max, histo[i].count );
min_val = histo[i].max; min_val = histo[i].max;
} }
free(csv_filename);
fclose( fp ); fclose( fp );
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment