diff --git a/openair1/PHY/LTE_ESTIMATION/lte_ue_measurements.c b/openair1/PHY/LTE_ESTIMATION/lte_ue_measurements.c
index 96ccac848b5379e0cc5eee62fa40ce5781bec4d0..5d86bbd92a69ff618b40a6cb3d0f52a282de5e07 100644
--- a/openair1/PHY/LTE_ESTIMATION/lte_ue_measurements.c
+++ b/openair1/PHY/LTE_ESTIMATION/lte_ue_measurements.c
@@ -199,7 +199,7 @@ void ue_rrc_measurements(PHY_VARS_UE *ue,
 
 	      rxF_sss = (int16_t *)&ue->common_vars.rxdataF[aarx][(5*ue->frame_parms.ofdm_symbol_size)];
 	      rxF_pss = (int16_t *)&ue->common_vars.rxdataF[aarx][(6*ue->frame_parms.ofdm_symbol_size)];
-	      
+
 
               //-ve spectrum from SSS
 	      //	      printf("slot %d: SSS DTX: %d,%d, non-DTX %d,%d\n",slot,rxF_pss[-72],rxF_pss[-71],rxF_pss[-36],rxF_pss[-35]);
@@ -249,7 +249,7 @@ void ue_rrc_measurements(PHY_VARS_UE *ue,
 	      // note this is a dummy pointer, the pss is not really there!
 	      // in FDD the pss is in the symbol after the sss, but not in TDD
 	      rxF_pss = (int16_t *)&ue->common_vars.rxdataF[aarx][(7*ue->frame_parms.ofdm_symbol_size)];
-	      
+
 	      //-ve spectrum from SSS
 	      //              ue->measurements.n0_power[aarx] = (((int32_t)rxF_pss[-72]*rxF_pss[-72])+((int32_t)rxF_pss[-71]*rxF_pss[-71]));
               ue->measurements.n0_power[aarx] = (((int32_t)rxF_pss[-70]*rxF_pss[-70])+((int32_t)rxF_pss[-69]*rxF_pss[-69]));
@@ -262,14 +262,14 @@ void ue_rrc_measurements(PHY_VARS_UE *ue,
 	      ue->measurements.n0_power[aarx] += (((int32_t)rxF_sss[2+68]*rxF_sss[2+68])+((int32_t)rxF_sss[2+67]*rxF_sss[2+67]));
 	      ue->measurements.n0_power[aarx] += (((int32_t)rxF_sss[2+66]*rxF_sss[2+66])+((int32_t)rxF_sss[2+65]*rxF_sss[2+65]));
 	      //	      ue->measurements.n0_power[aarx] += (((int32_t)rxF_sss[2+64]*rxF_sss[2+64])+((int32_t)rxF_sss[2+63]*rxF_sss[2+63]));
-	      
+
 	      ue->measurements.n0_power_dB[aarx] = (unsigned short) dB_fixed(ue->measurements.n0_power[aarx]/(6));
-	      ue->measurements.n0_power_tot +=  ue->measurements.n0_power[aarx];	  
-	    }	      
+	      ue->measurements.n0_power_tot +=  ue->measurements.n0_power[aarx];
+	    }
 	    ue->measurements.n0_power_tot_dB = (unsigned short) dB_fixed(ue->measurements.n0_power_tot/(6*aarx));
 	    ue->measurements.n0_power_tot_dBm = ue->measurements.n0_power_tot_dB - ue->rx_total_gain_dB - dB_fixed(ue->frame_parms.ofdm_symbol_size);
-	      
-	    
+
+
 	  }
 	}
       }
@@ -312,7 +312,7 @@ void ue_rrc_measurements(PHY_VARS_UE *ue,
 	      //	      if ((ue->frame_rx&0x3ff) == 0)
 	      //                printf("rb %d, off %d : %d\n",rb,off,((rxF[off]*rxF[off])+(rxF[off+1]*rxF[off+1])));
 
-              
+
               off+=12;
 
               if (off>=(ue->frame_parms.ofdm_symbol_size<<1))
@@ -423,10 +423,10 @@ void lte_ue_measurements(PHY_VARS_UE *ue,
   int nb_subbands,subband_size,last_subband_size;
   int N_RB_DL = frame_parms->N_RB_DL;
   ue->measurements.nb_antennas_rx = frame_parms->nb_antennas_rx;
-    
+
     if (ue->transmission_mode[eNB_id]!=4)
      ue->measurements.rank[eNB_id] = 0;
-    else 
+    else
     ue->measurements.rank[eNB_id] = 1;
   //  printf ("tx mode %d\n", ue->transmission_mode[eNB_id]);
   //  printf ("rank %d\n", ue->PHY_measurements.rank[eNB_id]);
@@ -597,7 +597,7 @@ void lte_ue_measurements(PHY_VARS_UE *ue,
 
           // pmi
 #if defined(__x86_64__) || defined(__i386__)
-       
+
 	  pmi128_re = _mm_xor_si128(pmi128_re,pmi128_re);
           pmi128_im = _mm_xor_si128(pmi128_im,pmi128_im);
 #elif defined(__arm__)
@@ -613,8 +613,8 @@ void lte_ue_measurements(PHY_VARS_UE *ue,
             limit = last_subband_size>>2;
 
           for (i=0; i<limit; i++) {
-	    
-#if defined(__x86_64__) || defined(__i386__)	    
+
+#if defined(__x86_64__) || defined(__i386__)
 	      mmtmpPMI0 = _mm_xor_si128(mmtmpPMI0,mmtmpPMI0);
               mmtmpPMI1 = _mm_xor_si128(mmtmpPMI1,mmtmpPMI1);
 
@@ -638,10 +638,10 @@ void lte_ue_measurements(PHY_VARS_UE *ue,
 	     //   print_ints(" pmi128_re 0",&pmi128_re);
             pmi128_im = _mm_add_epi32(pmi128_im,mmtmpPMI1);
 	       //   print_ints(" pmi128_im 0 ",&pmi128_im);
-	    
+
 	  /*  mmtmpPMI0 = _mm_xor_si128(mmtmpPMI0,mmtmpPMI0);
             mmtmpPMI1 = _mm_xor_si128(mmtmpPMI1,mmtmpPMI1);
-	    
+
 	    mmtmpPMI0 = _mm_madd_epi16(dl_ch0_128[1],dl_ch1_128[1]);
 	         //  print_ints("re",&mmtmpPMI0);
             mmtmpPMI1 = _mm_shufflelo_epi16(dl_ch1_128[1],_MM_SHUFFLE(2,3,0,1));
@@ -657,7 +657,7 @@ void lte_ue_measurements(PHY_VARS_UE *ue,
 	        //  print_ints(" pmi128_re 1",&pmi128_re);
             pmi128_im = _mm_add_epi32(pmi128_im,mmtmpPMI1);
 	    //print_ints(" pmi128_im 1 ",&pmi128_im);*/
-	    
+
 #elif defined(__arm__)
 
             mmtmpPMI0 = vmull_s16(((int16x4_t*)dl_ch0_128)[0], ((int16x4_t*)dl_ch1_128)[0]);
@@ -719,7 +719,7 @@ void lte_ue_measurements(PHY_VARS_UE *ue,
       }
     }
 
-    ue->measurements.rank[eNB_id] = 0;
+    //ue->measurements.rank[eNB_id] = 0;
 
     for (i=0; i<nb_subbands; i++) {
       ue->measurements.selected_rx_antennas[eNB_id][i] = 0;
diff --git a/openair1/SCHED/defs.h b/openair1/SCHED/defs.h
index df8652e3dc8b20ed0d01eafedaa665c19bfc158a..11856398f488ea27abff43e5ae800d3f51f6820f 100644
--- a/openair1/SCHED/defs.h
+++ b/openair1/SCHED/defs.h
@@ -199,7 +199,7 @@ void phy_procedures_eNB_S_TX(PHY_VARS_eNB *phy_vars_eNB,relaying_type_t r_type);
 */
 void phy_procedures_eNB_S_RX(PHY_VARS_eNB *phy_vars_eNB,eNB_rxtx_proc_t *proc,relaying_type_t r_type);
 
-/*! \brief Scheduling for eNB PRACH RX procedures 
+/*! \brief Scheduling for eNB PRACH RX procedures
   @param phy_vars_eNB Pointer to eNB variables on which to act
   @param proc Pointer to RXn-TXnp4 proc information
 */
@@ -477,7 +477,7 @@ int get_ue_active_harq_pid(uint8_t Mod_id,uint8_t CC_id,uint16_t rnti,int frame,
 void dump_dlsch(PHY_VARS_UE *phy_vars_ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uint8_t subframe,uint8_t harq_pid);
 void dump_dlsch_SI(PHY_VARS_UE *phy_vars_ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uint8_t subframe);
 void dump_dlsch_ra(PHY_VARS_UE *phy_vars_ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uint8_t subframe);
-void dump_dlsch2(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint16_t coded_bits_per_codeword,int round);
+void dump_dlsch2(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint16_t coded_bits_per_codeword,int round, unsigned char harq_pid);
 
 /*@}*/
 
diff --git a/openair1/SIMULATION/LTE_PHY/dlsim_tm4.c b/openair1/SIMULATION/LTE_PHY/dlsim_tm4.c
index 5375175fb20e610c8127e622cd9071e607fcc11a..a5baa6a8a757dee0027f4d5ba2362e23263b85a9 100644
--- a/openair1/SIMULATION/LTE_PHY/dlsim_tm4.c
+++ b/openair1/SIMULATION/LTE_PHY/dlsim_tm4.c
@@ -172,10 +172,10 @@ int main(int argc, char **argv)
   unsigned char *input_buffer0[2],*input_buffer1[2];
   unsigned short input_buffer_length0,input_buffer_length1;
 
-  /* A variable "ret" is a nuumber of turbo iterations, that are performed in the turbo-decoder for each CW. 
+  /* A variable "ret" is a nuumber of turbo iterations, that are performed in the turbo-decoder for each CW.
   The decoder checks CRC, and if CRC test fails, it increments "ret". Ret is between 1 and 4, where 4 is for
-  the max number of turbo iterations. If the CRC is passed, ret is equal to a current iteration. 
-  This is done separately for each CW inside decoding process. 
+  the max number of turbo iterations. If the CRC is passed, ret is equal to a current iteration.
+  This is done separately for each CW inside decoding process.
   Again: this is not a HARQ retransmission!*/
   unsigned int ret[2];
   unsigned int coded_bits_per_codeword[2],nsymb,dci_cnt,tbs[2];
@@ -353,7 +353,7 @@ int main(int argc, char **argv)
       common_flag = 1;
       TPC = atoi(optarg);
       break;
-      
+
     case 'E':
       threequarter_fs=1;
       break;
@@ -424,7 +424,7 @@ int main(int argc, char **argv)
     case 'w':
       snr_int = atof(optarg);
       break;
- 
+
     case 'N':
       n_ch_rlz= atof(optarg);
       break;
@@ -452,10 +452,10 @@ int main(int argc, char **argv)
       case 'E':
         channel_model=EPA;
         break;
-      case 'F': 
+      case 'F':
         channel_model=EVA;
         break;
-      case 'G': 
+      case 'G':
         channel_model=ETU;
         break;
       case 'H':
@@ -531,7 +531,7 @@ int main(int argc, char **argv)
         exit(-1);
       }
       break;
-    
+
       case 'R':
         num_rounds=atoi(optarg);
         break;
@@ -540,7 +540,7 @@ int main(int argc, char **argv)
         break;
       case 'T':
         n_rnti=atoi(optarg);
-        break;  
+        break;
       case 'u':
         rx_type = (RX_type_t) atoi(optarg);
         if (rx_type<rx_standard || rx_type>rx_SIC_dual_stream) {
@@ -569,7 +569,7 @@ int main(int argc, char **argv)
         break;
       case 'V':
         interf_unaw_shift0=atoi(optarg);
-        break;   
+        break;
       case 'W':
         interf_unaw_shift1=atoi(optarg);
         break;
@@ -605,10 +605,10 @@ int main(int argc, char **argv)
       printf("-u Receiver type: 0=standard, 1 = single stream IC (for TM3,4,5,6), 2 = dual stream IC (for TM3,4), 3 = SIC (for TM3,4) \n");
       exit(1);
       break;
-    
+
     }
   }
-    
+
   if (common_flag == 0) {
     switch (N_RB_DL) {
     case 6:
@@ -633,7 +633,7 @@ int main(int argc, char **argv)
   } else
     NB_RB = 4;
 
-  NB_RB=conv_nprb(0,DLSCH_RB_ALLOC,N_RB_DL); 
+  NB_RB=conv_nprb(0,DLSCH_RB_ALLOC,N_RB_DL);
 
   if ((transmission_mode > 1) && (n_tx != 2)) {
 
@@ -668,12 +668,12 @@ int main(int argc, char **argv)
   */
   }
 
-  if (transmission_mode==5) { 
+  if (transmission_mode==5) {
     n_users = 2;
     eNB_id_i = UE->n_connected_eNB;
     //eNB_id_i=1;
   }
-  else 
+  else
     eNB_id_i = eNB_id;
 
   lte_param_init(n_tx,
@@ -727,7 +727,7 @@ int main(int argc, char **argv)
    SCM_A, SCM_B, SCM_C, SCM_D, EPA, EVA, ETU, Rayleigh8, Rayleigh1, Rayleigh1_corr, Rayleigh1_anticorr, Rice1, Rice8, Rayleigh1_orthogonal, Rayleigh1_orth_eff_ch_TM4_prec_real, Rayleigh1_orth_eff_ch_TM4_prec_imag, Rayleigh8_orth_eff_ch_TM4_prec_real, Rayleigh8_orth_eff_ch_TM4_prec_imag, TS_SHIFT);
   if(transmission_mode==5)
     sprintf(bler_fname,"bler_tx%d_rec%d_chan%d_nrx%d_mcs%d_mcsi%d_u%d_imod%d.csv",transmission_mode,rx_type,channel_model,n_rx,mcs1,mcs_i,rx_type,i_mod);
-  else if (abstx == 1) 
+  else if (abstx == 1)
     if (perfect_ce==1)
    sprintf(bler_fname,"bler_tx%d_r%d_ch%d_%d_nrx%d_mcs%d_mcsi%d_ab_pce_sh%d_pnort_r45.csv",transmission_mode,rx_type,channel_model,n_frames, n_rx,mcs1, mcs2,interf_unaw_shift );
     else
@@ -737,7 +737,7 @@ int main(int argc, char **argv)
       sprintf(bler_fname,"bler_tx%d_r%d_ch%d_%d_nrx%d_mcs%d_mcsi%d_pce_sh%d_pnort_r45.csv",transmission_mode,rx_type,channel_model,n_frames, n_rx,mcs1, mcs2, interf_unaw_shift);
    else
     sprintf(bler_fname,"bler_tx%d_r%d_ch%d_%d_nrx%d_mcs%d_mcsi%d_sh%d_pnort_r45.csv",transmission_mode,rx_type,channel_model,n_frames,n_rx,mcs1, mcs2, interf_unaw_shift);
-  
+
   bler_fd = fopen(bler_fname,"w");
   if (bler_fd==NULL) {
     fprintf(stderr,"Cannot create file %s!\n",bler_fname);
@@ -746,7 +746,7 @@ int main(int argc, char **argv)
 
   fprintf(bler_fd,"SNR; MCS1; MCS2; TBS1; TBS2; rate 0; rate 1; err0_st1; err0_st2 trials0; err1_st1; err1_st2; trials1; err2_st1; err2_st2; trials2; err3_st1; err3_st2; trials3; throug 0; throug 1; sum throug; dci_err\n");
   if (test_perf != 0) {
-    
+
     char hostname[1024];
 
     hostname[1023] = '\0';
@@ -763,14 +763,14 @@ int main(int argc, char **argv)
       exit(-1);
     }
   }
-  
+
   if(abstx){
     // CSV file  // add here second stream mcs
-    
+
     if (transmission_mode == 5)
       sprintf(csv_fname,"dataout_tx%d_u2%d_mcs%d_chan%d_nsimus%d_R%d_abstr.m",transmission_mode,rx_type,mcs1,channel_model,n_frames,num_rounds);
-    
-    else 
+
+    else
       if (perfect_ce==1)
         sprintf(csv_fname,"dout_tx%d_r%d_mcs%d_mcsi%d_ch%d_ns%d_R%d_pce_sh%d_%d_pnort_r45.m",transmission_mode,rx_type,mcs1,mcs2,channel_model,n_frames,num_rounds, interf_unaw_shift, n_ch_rlz);
       else
@@ -898,7 +898,7 @@ n(tikz_fname,"w");
   UE->transmission_mode[eNB_id]=transmission_mode;
   if (UE->transmission_mode[eNB_id] !=4)
       UE->measurements.rank[eNB_id]=0;
-  else 
+  else
       UE->measurements.rank[eNB_id]=1;
   // Fill in UL_alloc
   UL_alloc_pdu.type    = 0;
@@ -908,7 +908,7 @@ n(tikz_fname,"w");
   UL_alloc_pdu.ndi     = 1;
   UL_alloc_pdu.TPC     = 0;
   UL_alloc_pdu.cqi_req = 1;
-  
+
   CCCH_alloc_pdu.type               = 0;
   CCCH_alloc_pdu.vrb_type           = 0;
   CCCH_alloc_pdu.rballoc            = CCCH_RB_ALLOC;
@@ -968,7 +968,7 @@ n(tikz_fname,"w");
     exit(-1);
   }
 
-  if ((transmission_mode == 3) || (transmission_mode==4) || (transmission_mode==8))  
+  if ((transmission_mode == 3) || (transmission_mode==4) || (transmission_mode==8))
     Kmimo=2;
   else
     Kmimo=1;
@@ -1054,9 +1054,9 @@ n(tikz_fname,"w");
       case 1:
       case 2:
         if (common_flag == 0) {
-          
+
           if (eNB->frame_parms.frame_type == TDD) {
-            
+
             switch (eNB->frame_parms.N_RB_DL) {
             case 6:
               dci_length = sizeof_DCI1_1_5MHz_TDD_t;
@@ -1066,7 +1066,7 @@ n(tikz_fname,"w");
               ((DCI1_1_5MHz_TDD_t *)&DLSCH_alloc_pdu_1[k])->TPC              = 0;
               ((DCI1_1_5MHz_TDD_t *)&DLSCH_alloc_pdu_1[k])->dai              = 0;
               ((DCI1_1_5MHz_TDD_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-              ((DCI1_1_5MHz_TDD_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;  
+              ((DCI1_1_5MHz_TDD_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;
               ((DCI1_1_5MHz_TDD_t *)&DLSCH_alloc_pdu_1[k])->ndi              = 1;
               ((DCI1_1_5MHz_TDD_t *)&DLSCH_alloc_pdu_1[k])->rv               = 0;
               break;
@@ -1078,7 +1078,7 @@ n(tikz_fname,"w");
               ((DCI1_5MHz_TDD_t *)&DLSCH_alloc_pdu_1[k])->TPC              = 0;
               ((DCI1_5MHz_TDD_t *)&DLSCH_alloc_pdu_1[k])->dai              = 0;
               ((DCI1_5MHz_TDD_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-              ((DCI1_5MHz_TDD_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;  
+              ((DCI1_5MHz_TDD_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;
               ((DCI1_5MHz_TDD_t *)&DLSCH_alloc_pdu_1[k])->ndi              = 1;
               ((DCI1_5MHz_TDD_t *)&DLSCH_alloc_pdu_1[k])->rv               = 0;
               break;
@@ -1090,7 +1090,7 @@ n(tikz_fname,"w");
               ((DCI1_10MHz_TDD_t *)&DLSCH_alloc_pdu_1[k])->TPC              = 0;
               ((DCI1_10MHz_TDD_t *)&DLSCH_alloc_pdu_1[k])->dai              = 0;
               ((DCI1_10MHz_TDD_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-              ((DCI1_10MHz_TDD_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;  
+              ((DCI1_10MHz_TDD_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;
               ((DCI1_10MHz_TDD_t *)&DLSCH_alloc_pdu_1[k])->ndi              = 1;
               ((DCI1_10MHz_TDD_t *)&DLSCH_alloc_pdu_1[k])->rv               = 0;
               break;
@@ -1100,7 +1100,7 @@ n(tikz_fname,"w");
               ((DCI1_20MHz_TDD_t *)&DLSCH_alloc_pdu_1[k])->TPC              = 0;
               ((DCI1_20MHz_TDD_t *)&DLSCH_alloc_pdu_1[k])->dai              = 0;
               ((DCI1_20MHz_TDD_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-              ((DCI1_20MHz_TDD_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;  
+              ((DCI1_20MHz_TDD_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;
               ((DCI1_20MHz_TDD_t *)&DLSCH_alloc_pdu_1[k])->ndi              = 1;
               ((DCI1_20MHz_TDD_t *)&DLSCH_alloc_pdu_1[k])->rv               = 0;
               dci_length = sizeof_DCI1_20MHz_TDD_t;
@@ -1117,7 +1117,7 @@ n(tikz_fname,"w");
               ((DCI1_1_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->rballoc          = DLSCH_RB_ALLOC;
               ((DCI1_1_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->TPC              = 0;
               ((DCI1_1_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-              ((DCI1_1_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;  
+              ((DCI1_1_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;
               ((DCI1_1_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->ndi              = 1;
               ((DCI1_1_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->rv               = 0;
               break;
@@ -1128,7 +1128,7 @@ n(tikz_fname,"w");
               ((DCI1_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->rballoc          = DLSCH_RB_ALLOC;
               ((DCI1_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->TPC              = 0;
               ((DCI1_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-              ((DCI1_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;  
+              ((DCI1_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;
               ((DCI1_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->ndi              = 1;
               ((DCI1_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->rv               = 0;
               break;
@@ -1139,7 +1139,7 @@ n(tikz_fname,"w");
               ((DCI1_10MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->rballoc          = DLSCH_RB_ALLOC;
               ((DCI1_10MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->TPC              = 0;
               ((DCI1_10MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-              ((DCI1_10MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;  
+              ((DCI1_10MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;
               ((DCI1_10MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->ndi              = 1;
               ((DCI1_10MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->rv               = 0;
               break;
@@ -1150,18 +1150,18 @@ n(tikz_fname,"w");
               ((DCI1_20MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->rballoc          = DLSCH_RB_ALLOC;
               ((DCI1_20MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->TPC              = 0;
               ((DCI1_20MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-              ((DCI1_20MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;  
+              ((DCI1_20MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;
               ((DCI1_20MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->ndi              = 1;
               ((DCI1_20MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->rv               = 0;
               break;
-            }    
+            }
           }
           memcpy(&dci_alloc[num_dci].dci_pdu[0],&DLSCH_alloc_pdu_1[k],dci_length_bytes);
           dci_alloc[num_dci].dci_length = dci_length;
           dci_alloc[num_dci].L          = 1;
           dci_alloc[num_dci].rnti       = n_rnti+k;
           dci_alloc[num_dci].format     = format1;
-          dump_dci(&eNB->frame_parms,&dci_alloc[num_dci]);  
+          dump_dci(&eNB->frame_parms,&dci_alloc[num_dci]);
 
           printf("Generating dlsch params for user %d\n",k);
           generate_eNB_dlsch_params_from_dci(0,
@@ -1181,7 +1181,7 @@ n(tikz_fname,"w");
         }
         else { //common flag =1
           if (eNB->frame_parms.frame_type == TDD) {
-            
+
             switch (eNB->frame_parms.N_RB_DL) {
             case 6:
               dci_length = sizeof_DCI1A_1_5MHz_TDD_1_6_t;
@@ -1192,7 +1192,7 @@ n(tikz_fname,"w");
               ((DCI1A_1_5MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->TPC              = TPC;
               ((DCI1A_1_5MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->dai              = 0;
               ((DCI1A_1_5MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-              ((DCI1A_1_5MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;  
+              ((DCI1A_1_5MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;
               ((DCI1A_1_5MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->ndi              = 1;
               ((DCI1A_1_5MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->rv               = 0;
               break;
@@ -1205,7 +1205,7 @@ n(tikz_fname,"w");
               ((DCI1A_5MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->TPC              = TPC;
               ((DCI1A_5MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->dai              = 0;
               ((DCI1A_5MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-              ((DCI1A_5MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;  
+              ((DCI1A_5MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;
               ((DCI1A_5MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->ndi              = 1;
               ((DCI1A_5MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->rv               = 0;
               break;
@@ -1218,7 +1218,7 @@ n(tikz_fname,"w");
               ((DCI1A_10MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->TPC              = TPC;
               ((DCI1A_10MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->dai              = 0;
               ((DCI1A_10MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-              ((DCI1A_10MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;  
+              ((DCI1A_10MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;
               ((DCI1A_10MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->ndi              = 1;
               ((DCI1A_10MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->rv               = 0;
               break;
@@ -1229,7 +1229,7 @@ n(tikz_fname,"w");
               ((DCI1A_20MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->TPC              = TPC;
               ((DCI1A_20MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->dai              = 0;
               ((DCI1A_20MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-              ((DCI1A_20MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;  
+              ((DCI1A_20MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;
               ((DCI1A_20MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->ndi              = 1;
               ((DCI1A_20MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->rv               = 0;
               dci_length = sizeof_DCI1A_20MHz_TDD_1_6_t;
@@ -1247,7 +1247,7 @@ n(tikz_fname,"w");
               ((DCI1A_1_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->rballoc          = computeRIV(eNB->frame_parms.N_RB_DL,0,9);
               ((DCI1A_1_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->TPC              = TPC;
               ((DCI1A_1_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-              ((DCI1A_1_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;  
+              ((DCI1A_1_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;
               ((DCI1A_1_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->ndi              = 1;
               ((DCI1A_1_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->rv               = 0;
               break;
@@ -1259,7 +1259,7 @@ n(tikz_fname,"w");
               ((DCI1A_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->rballoc          = computeRIV(eNB->frame_parms.N_RB_DL,0,9);
               ((DCI1A_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->TPC              = TPC;
               ((DCI1A_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-              ((DCI1A_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;  
+              ((DCI1A_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;
               ((DCI1A_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->ndi              = 1;
               ((DCI1A_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->rv               = 0;
               break;
@@ -1271,7 +1271,7 @@ n(tikz_fname,"w");
               ((DCI1A_10MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->rballoc          = computeRIV(eNB->frame_parms.N_RB_DL,0,9);
               ((DCI1A_10MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->TPC              = TPC;
               ((DCI1A_10MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-              ((DCI1A_10MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;  
+              ((DCI1A_10MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;
               ((DCI1A_10MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->ndi              = 1;
               ((DCI1A_10MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->rv               = 0;
               break;
@@ -1283,11 +1283,11 @@ n(tikz_fname,"w");
               ((DCI1A_20MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->rballoc          = computeRIV(eNB->frame_parms.N_RB_DL,0,9);
               ((DCI1A_20MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->TPC              = TPC;
               ((DCI1A_20MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-              ((DCI1A_20MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;  
+              ((DCI1A_20MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;
               ((DCI1A_20MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->ndi              = 1;
               ((DCI1A_20MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->rv               = 0;
               break;
-            }    
+            }
           }
           memcpy(&dci_alloc[num_dci].dci_pdu[0],&DLSCH_alloc_pdu_1[k],dci_length_bytes);
           dci_alloc[num_dci].dci_length = dci_length;
@@ -1295,7 +1295,7 @@ n(tikz_fname,"w");
           dci_alloc[num_dci].rnti       = SI_RNTI;
           dci_alloc[num_dci].format     = format1A;
           dci_alloc[num_dci].firstCCE       = 0;
-          dump_dci(&eNB->frame_parms,&dci_alloc[num_dci]);  
+          dump_dci(&eNB->frame_parms,&dci_alloc[num_dci]);
 
           printf("Generating dlsch params for user %d\n",k);
           generate_eNB_dlsch_params_from_dci(0,
@@ -1310,19 +1310,19 @@ n(tikz_fname,"w");
                      0,
                      P_RNTI,
                      eNB->UE_stats[0].DL_pmi_single);
-          
+
           num_common_dci++;
           num_dci++;
-          
+
         }
         break;
       case 3: //LARGE CDD
         if (common_flag == 0) {
-          
+
           if (eNB->frame_parms.nb_antennas_tx == 2) {// here DCI does not contain any precoder information. matrix is fixed as identity, but dont forget aboy cycling
 
             if (eNB->frame_parms.frame_type == TDD) {
-              
+
               switch (eNB->frame_parms.N_RB_DL) {
               case 6:
           dci_length = sizeof_DCI2A_1_5MHz_2A_TDD_t;
@@ -1331,10 +1331,10 @@ n(tikz_fname,"w");
           ((DCI2A_1_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->TPC              = 0;
           ((DCI2A_1_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->dai              = 0;
           ((DCI2A_1_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-          ((DCI2A_1_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->mcs1             = mcs1;  
+          ((DCI2A_1_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->mcs1             = mcs1;
           ((DCI2A_1_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->ndi1             = 1;
           ((DCI2A_1_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->rv1              = 0;
-          ((DCI2A_1_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->mcs2             = mcs2;  
+          ((DCI2A_1_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->mcs2             = mcs2;
           ((DCI2A_1_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->ndi2             = 1;
           ((DCI2A_1_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->rv2              = 0;
           break;
@@ -1346,10 +1346,10 @@ n(tikz_fname,"w");
           ((DCI2A_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->TPC              = 0;
           ((DCI2A_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->dai              = 0;
           ((DCI2A_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-          ((DCI2A_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->mcs1             = mcs1;  
+          ((DCI2A_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->mcs1             = mcs1;
           ((DCI2A_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->ndi1             = 1;
           ((DCI2A_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->rv1              = 0;
-          ((DCI2A_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->mcs2             = mcs2;  
+          ((DCI2A_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->mcs2             = mcs2;
           ((DCI2A_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->ndi2             = 1;
           ((DCI2A_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->rv2              = 0;
           break;
@@ -1361,10 +1361,10 @@ n(tikz_fname,"w");
           ((DCI2A_10MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->TPC              = 0;
           ((DCI2A_10MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->dai              = 0;
           ((DCI2A_10MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-          ((DCI2A_10MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->mcs1             = mcs1;  
+          ((DCI2A_10MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->mcs1             = mcs1;
           ((DCI2A_10MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->ndi1             = 1;
           ((DCI2A_10MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->rv1              = 0;
-          ((DCI2A_10MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->mcs2             = mcs2;  
+          ((DCI2A_10MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->mcs2             = mcs2;
           ((DCI2A_10MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->ndi2             = 1;
           ((DCI2A_10MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->rv2              = 0;
           break;
@@ -1374,10 +1374,10 @@ n(tikz_fname,"w");
           ((DCI2A_20MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->TPC              = 0;
           ((DCI2A_20MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->dai              = 0;
           ((DCI2A_20MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-          ((DCI2A_20MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->mcs1             = mcs1;  
+          ((DCI2A_20MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->mcs1             = mcs1;
           ((DCI2A_20MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->ndi1             = 1;
           ((DCI2A_20MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->rv1              = 0;
-          ((DCI2A_20MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->mcs2             = mcs2;  
+          ((DCI2A_20MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->mcs2             = mcs2;
           ((DCI2A_20MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->ndi2             = 1;
           ((DCI2A_20MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->rv2              = 0;
           dci_length = sizeof_DCI2A_20MHz_2A_TDD_t;
@@ -1385,7 +1385,7 @@ n(tikz_fname,"w");
           break;
               }
             }
-         
+
             else { // fdd
               switch (eNB->frame_parms.N_RB_DL) {
               case 6:
@@ -1394,10 +1394,10 @@ n(tikz_fname,"w");
           ((DCI2A_1_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->rballoc          = DLSCH_RB_ALLOC;
           ((DCI2A_1_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->TPC              = 0;
           ((DCI2A_1_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-          ((DCI2A_1_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs1             = mcs1;  
+          ((DCI2A_1_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs1             = mcs1;
           ((DCI2A_1_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->ndi1             = 1;
           ((DCI2A_1_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->rv1              = 0;
-          ((DCI2A_1_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs2             = mcs2;  
+          ((DCI2A_1_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs2             = mcs2;
           ((DCI2A_1_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->ndi2             = 1;
           ((DCI2A_1_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->rv2              = 0;
           break;
@@ -1408,10 +1408,10 @@ n(tikz_fname,"w");
           ((DCI2A_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->rballoc          = DLSCH_RB_ALLOC;
           ((DCI2A_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->TPC              = 0;
           ((DCI2A_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-          ((DCI2A_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs1             = mcs1;  
+          ((DCI2A_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs1             = mcs1;
           ((DCI2A_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->ndi1             = 1;
           ((DCI2A_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->rv1              = 0;
-          ((DCI2A_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs2             = mcs2;  
+          ((DCI2A_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs2             = mcs2;
           ((DCI2A_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->ndi2             = 1;
           ((DCI2A_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->rv2              = 0;
           break;
@@ -1422,10 +1422,10 @@ n(tikz_fname,"w");
           ((DCI2A_10MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->rballoc          = DLSCH_RB_ALLOC;
           ((DCI2A_10MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->TPC              = 0;
           ((DCI2A_10MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-          ((DCI2A_10MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs1             = mcs1;  
+          ((DCI2A_10MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs1             = mcs1;
           ((DCI2A_10MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->ndi1             = 1;
           ((DCI2A_10MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->rv1              = 0;
-          ((DCI2A_10MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs2             = mcs2;  
+          ((DCI2A_10MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs2             = mcs2;
           ((DCI2A_10MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->ndi2             = 1;
           ((DCI2A_10MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->rv2              = 0;
           break;
@@ -1436,27 +1436,27 @@ n(tikz_fname,"w");
           ((DCI2A_20MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->rballoc          = DLSCH_RB_ALLOC;
           ((DCI2A_20MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->TPC              = 0;
           ((DCI2A_20MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-          ((DCI2A_20MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs1             = mcs1;  
+          ((DCI2A_20MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs1             = mcs1;
           ((DCI2A_20MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->ndi1             = 1;
           ((DCI2A_20MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->rv1              = 0;
-          ((DCI2A_20MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs2             = mcs2;  
+          ((DCI2A_20MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs2             = mcs2;
           ((DCI2A_20MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->ndi2             = 1;
           ((DCI2A_20MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->rv2              = 0;
           break;
-              }    
+              }
             }
           }
           else if (eNB->frame_parms.nb_antennas_tx == 4) { //4 antenna, needs diff precoding codebook index depeneding on layers
 
           }
-            
+
           memcpy(&dci_alloc[num_dci].dci_pdu[0],&DLSCH_alloc_pdu_1[k],dci_length_bytes);
           dci_alloc[num_dci].dci_length = dci_length;
           dci_alloc[num_dci].L          = 1;
           dci_alloc[num_dci].rnti       = n_rnti+k;
           dci_alloc[num_dci].format     = format2A;
-          dump_dci(&eNB->frame_parms,&dci_alloc[num_dci]);  
-          
+          dump_dci(&eNB->frame_parms,&dci_alloc[num_dci]);
+
           printf("Generating dlsch params for user %d / format 2A (%d)\n",k,format2A);
           generate_eNB_dlsch_params_from_dci(0,
                      subframe,
@@ -1470,13 +1470,13 @@ n(tikz_fname,"w");
                      0,
                      P_RNTI,
                      eNB->UE_stats[0].DL_pmi_single);
-          
+
           num_dci++;
           num_ue_spec_dci++;
         }
         else { //commonn flag 1
           if (eNB->frame_parms.frame_type == TDD) { //tdd
-            
+
             switch (eNB->frame_parms.N_RB_DL) {
             case 6:
               dci_length = sizeof_DCI1A_1_5MHz_TDD_1_6_t;
@@ -1487,7 +1487,7 @@ n(tikz_fname,"w");
               ((DCI1A_1_5MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->TPC              = TPC;
               ((DCI1A_1_5MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->dai              = 0;
               ((DCI1A_1_5MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-              ((DCI1A_1_5MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;  
+              ((DCI1A_1_5MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;
               ((DCI1A_1_5MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->ndi              = 1;
               ((DCI1A_1_5MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->rv               = 0;
               break;
@@ -1500,7 +1500,7 @@ n(tikz_fname,"w");
               ((DCI1A_5MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->TPC              = TPC;
               ((DCI1A_5MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->dai              = 0;
               ((DCI1A_5MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-              ((DCI1A_5MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;  
+              ((DCI1A_5MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;
               ((DCI1A_5MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->ndi              = 1;
               ((DCI1A_5MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->rv               = 0;
               break;
@@ -1513,7 +1513,7 @@ n(tikz_fname,"w");
               ((DCI1A_10MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->TPC              = TPC;
               ((DCI1A_10MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->dai              = 0;
               ((DCI1A_10MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-              ((DCI1A_10MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;  
+              ((DCI1A_10MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;
               ((DCI1A_10MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->ndi              = 1;
               ((DCI1A_10MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->rv               = 0;
               break;
@@ -1524,7 +1524,7 @@ n(tikz_fname,"w");
               ((DCI1A_20MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->TPC              = TPC;
               ((DCI1A_20MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->dai              = 0;
               ((DCI1A_20MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-              ((DCI1A_20MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;  
+              ((DCI1A_20MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;
               ((DCI1A_20MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->ndi              = 1;
               ((DCI1A_20MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->rv               = 0;
               dci_length = sizeof_DCI1A_20MHz_TDD_1_6_t;
@@ -1542,7 +1542,7 @@ n(tikz_fname,"w");
               ((DCI1A_1_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->rballoc          = computeRIV(eNB->frame_parms.N_RB_DL,0,9);
               ((DCI1A_1_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->TPC              = TPC;
               ((DCI1A_1_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-              ((DCI1A_1_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;  
+              ((DCI1A_1_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;
               ((DCI1A_1_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->ndi              = 1;
               ((DCI1A_1_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->rv               = 0;
               break;
@@ -1554,7 +1554,7 @@ n(tikz_fname,"w");
               ((DCI1A_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->rballoc          = computeRIV(eNB->frame_parms.N_RB_DL,0,9);
               ((DCI1A_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->TPC              = TPC;
               ((DCI1A_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-              ((DCI1A_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;  
+              ((DCI1A_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;
               ((DCI1A_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->ndi              = 1;
               ((DCI1A_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->rv               = 0;
               break;
@@ -1566,7 +1566,7 @@ n(tikz_fname,"w");
               ((DCI1A_10MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->rballoc          = computeRIV(eNB->frame_parms.N_RB_DL,0,9);
               ((DCI1A_10MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->TPC              = TPC;
               ((DCI1A_10MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-              ((DCI1A_10MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;  
+              ((DCI1A_10MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;
               ((DCI1A_10MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->ndi              = 1;
               ((DCI1A_10MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->rv               = 0;
               break;
@@ -1578,11 +1578,11 @@ n(tikz_fname,"w");
               ((DCI1A_20MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->rballoc          = computeRIV(eNB->frame_parms.N_RB_DL,0,9);
               ((DCI1A_20MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->TPC              = TPC;
               ((DCI1A_20MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-              ((DCI1A_20MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;  
+              ((DCI1A_20MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;
               ((DCI1A_20MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->ndi              = 1;
               ((DCI1A_20MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->rv               = 0;
               break;
-            }    
+            }
           }
           memcpy(&dci_alloc[num_dci].dci_pdu[0],&DLSCH_alloc_pdu_1[k],dci_length_bytes);
           dci_alloc[num_dci].dci_length = dci_length;
@@ -1590,8 +1590,8 @@ n(tikz_fname,"w");
           dci_alloc[num_dci].rnti       = SI_RNTI;
           dci_alloc[num_dci].format     = format1A;
           dci_alloc[num_dci].firstCCE       = 0;
-          dump_dci(&eNB->frame_parms,&dci_alloc[num_dci]);  
-          
+          dump_dci(&eNB->frame_parms,&dci_alloc[num_dci]);
+
           printf("Generating dlsch params for user %d\n",k);
           generate_eNB_dlsch_params_from_dci(0,
                      subframe,
@@ -1605,33 +1605,33 @@ n(tikz_fname,"w");
                      0,
                      P_RNTI,
                      eNB->UE_stats[0].DL_pmi_single);
-          
+
           num_common_dci++;
           num_dci++;
-          
+
         }
         printf("Generated DCI format 2A (Transmission Mode 3)\n");
         break;
 
       case 4: // !!! this dci format contains precoder information
         if (common_flag == 0) {
-          
+
           if (eNB->frame_parms.nb_antennas_tx == 2) {
 
             if (eNB->frame_parms.frame_type == TDD) {
-              
+
               switch (eNB->frame_parms.N_RB_DL) {
               case 6:
-          dci_length = sizeof_DCI2_1_5MHz_2A_TDD_t; 
+          dci_length = sizeof_DCI2_1_5MHz_2A_TDD_t;
           dci_length_bytes = sizeof(DCI2_1_5MHz_2A_TDD_t);
           ((DCI2_1_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->rballoc        = DLSCH_RB_ALLOC;
           ((DCI2_1_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->TPC            = 0;
           ((DCI2_1_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->dai            = 0;
           ((DCI2_1_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->harq_pid       = 0;
-          ((DCI2_1_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->mcs1           = mcs1;  
+          ((DCI2_1_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->mcs1           = mcs1;
           ((DCI2_1_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->ndi1           = 1;
           ((DCI2_1_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->rv1            = 0;
-          ((DCI2_1_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->mcs2           = mcs2;  
+          ((DCI2_1_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->mcs2           = mcs2;
           ((DCI2_1_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->ndi2           = 1;
           ((DCI2_1_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->rv2            = 0;
           ((DCI2_1_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->tb_swap        = 0;
@@ -1642,13 +1642,13 @@ n(tikz_fname,"w");
           dci_length_bytes = sizeof(DCI2_5MHz_2A_TDD_t);
           ((DCI2_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->rah              = 0;
           ((DCI2_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->rballoc          = DLSCH_RB_ALLOC;
-          ((DCI2_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->TPC           = 0; 
-          ((DCI2_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->dai            = 0; 
+          ((DCI2_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->TPC           = 0;
+          ((DCI2_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->dai            = 0;
           ((DCI2_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-          ((DCI2_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->mcs1             = mcs1;  
+          ((DCI2_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->mcs1             = mcs1;
           ((DCI2_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->ndi1             = 1;
           ((DCI2_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->rv1              = 0;
-          ((DCI2_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->mcs2             = mcs2;  
+          ((DCI2_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->mcs2             = mcs2;
           ((DCI2_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->ndi2             = 1;
           ((DCI2_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->rv2              = 0;
           ((DCI2_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->tb_swap          = 0;
@@ -1663,10 +1663,10 @@ n(tikz_fname,"w");
           ((DCI2_10MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->TPC              = 0;
           ((DCI2_10MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->dai              = 0;
           ((DCI2_10MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-          ((DCI2_10MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->mcs1             = mcs1;  
+          ((DCI2_10MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->mcs1             = mcs1;
           ((DCI2_10MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->ndi1             = 1;
           ((DCI2_10MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->rv1              = 0;
-          ((DCI2_10MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->mcs2             = mcs2;  
+          ((DCI2_10MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->mcs2             = mcs2;
           ((DCI2_10MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->ndi2             = 1;
           ((DCI2_10MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->rv2              = 0;
           ((DCI2_10MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->tb_swap          = 0;
@@ -1679,10 +1679,10 @@ n(tikz_fname,"w");
           ((DCI2_20MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->TPC              = 0;
           ((DCI2_20MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->dai              = 0;
           ((DCI2_20MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-          ((DCI2_20MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->mcs1             = mcs1;  
+          ((DCI2_20MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->mcs1             = mcs1;
           ((DCI2_20MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->ndi1             = 1;
           ((DCI2_20MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->rv1              = 0;
-          ((DCI2_20MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->mcs2             = mcs2;  
+          ((DCI2_20MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->mcs2             = mcs2;
           ((DCI2_20MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->ndi2             = 1;
           ((DCI2_20MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->rv2              = 0;
           ((DCI2_20MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->tb_swap          = 0;
@@ -1692,7 +1692,7 @@ n(tikz_fname,"w");
           break;
               }
             }
-          
+
             else {
               switch (eNB->frame_parms.N_RB_DL) {
               case 6:
@@ -1701,10 +1701,10 @@ n(tikz_fname,"w");
           ((DCI2_1_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->rballoc          = DLSCH_RB_ALLOC;
           ((DCI2_1_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->TPC              = 0;
           ((DCI2_1_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-          ((DCI2_1_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs1             = mcs1;  
+          ((DCI2_1_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs1             = mcs1;
           ((DCI2_1_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->ndi1             = 1;
           ((DCI2_1_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->rv1              = 0;
-          ((DCI2_1_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs2             = mcs2;  
+          ((DCI2_1_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs2             = mcs2;
           ((DCI2_1_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->ndi2             = 1;
           ((DCI2_1_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->rv2              = 0;
           ((DCI2_1_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->tb_swap          = 0;
@@ -1717,10 +1717,10 @@ n(tikz_fname,"w");
           ((DCI2_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->rballoc          = DLSCH_RB_ALLOC;
           ((DCI2_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->TPC              = 0;
           ((DCI2_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-          ((DCI2_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs1             = mcs1;  
+          ((DCI2_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs1             = mcs1;
           ((DCI2_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->ndi1             = 1;
           ((DCI2_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->rv1              = 0;
-          ((DCI2_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs2             = mcs2;  
+          ((DCI2_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs2             = mcs2;
           ((DCI2_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->ndi2             = 1;
           ((DCI2_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->rv2              = 0;
           ((DCI2_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->tb_swap          = 0;
@@ -1733,10 +1733,10 @@ n(tikz_fname,"w");
           ((DCI2_10MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->rballoc          = DLSCH_RB_ALLOC;
           ((DCI2_10MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->TPC              = 0;
           ((DCI2_10MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-          ((DCI2_10MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs1             = mcs1;  
+          ((DCI2_10MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs1             = mcs1;
           ((DCI2_10MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->ndi1             = 1;
           ((DCI2_10MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->rv1              = 0;
-          ((DCI2_10MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs2             = mcs2;  
+          ((DCI2_10MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs2             = mcs2;
           ((DCI2_10MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->ndi2             = 1;
           ((DCI2_10MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->rv2              = 0;
           ((DCI2_10MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->tb_swap          = 0;
@@ -1749,36 +1749,36 @@ n(tikz_fname,"w");
           ((DCI2_20MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->rballoc          = DLSCH_RB_ALLOC;
           ((DCI2_20MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->TPC              = 0;
           ((DCI2_20MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-          ((DCI2_20MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs1             = mcs1;  
+          ((DCI2_20MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs1             = mcs1;
           ((DCI2_20MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->ndi1             = 1;
           ((DCI2_20MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->rv1              = 0;
-          ((DCI2_20MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs2             = mcs2;  
+          ((DCI2_20MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs2             = mcs2;
           ((DCI2_20MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->ndi2             = 1;
           ((DCI2_20MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->rv2              = 0;
           ((DCI2_20MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->tb_swap          = 0;
           ((DCI2_20MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->tpmi             = 2;
           break;
-              }    
+              }
             }
           }
           else if (eNB->frame_parms.nb_antennas_tx == 4) {
 
           }
-          
-           printf ("TM4 with tpmi =%d\n", ((DCI2_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->tpmi);    
-           if ((((DCI2_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->tpmi == 2) || (((DCI2_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->tpmi == 2)) { 
+
+           printf ("TM4 with tpmi =%d\n", ((DCI2_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->tpmi);
+           if ((((DCI2_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->tpmi == 2) || (((DCI2_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->tpmi == 2)) {
 
             eNB->UE_stats[0].DL_pmi_single = (unsigned short)(taus()&0xffff);
-            
+
            }
-            
+
           memcpy(&dci_alloc[num_dci].dci_pdu[0],&DLSCH_alloc_pdu_1[k],dci_length_bytes);
           dci_alloc[num_dci].dci_length = dci_length;
           dci_alloc[num_dci].L          = 1;
           dci_alloc[num_dci].rnti       = n_rnti+k;
           dci_alloc[num_dci].format     = format2;
-          dump_dci(&eNB->frame_parms,&dci_alloc[num_dci]);  
-          
+          dump_dci(&eNB->frame_parms,&dci_alloc[num_dci]);
+
           printf("Generating dlsch params for user %d\n",k);
           generate_eNB_dlsch_params_from_dci(0,
                      subframe,
@@ -1792,13 +1792,13 @@ n(tikz_fname,"w");
                      0,
                      P_RNTI,
                      eNB->UE_stats[0].DL_pmi_single);
-          
+
           num_dci++;
           num_ue_spec_dci++;
         }
         else { //common_flag==1
           if (eNB->frame_parms.frame_type == TDD) {
-            
+
             switch (eNB->frame_parms.N_RB_DL) {
             case 6:
               dci_length = sizeof_DCI1A_1_5MHz_TDD_1_6_t;
@@ -1809,7 +1809,7 @@ n(tikz_fname,"w");
               ((DCI1A_1_5MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->TPC              = TPC;
               ((DCI1A_1_5MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->dai              = 0;
               ((DCI1A_1_5MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-              ((DCI1A_1_5MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;  
+              ((DCI1A_1_5MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;
               ((DCI1A_1_5MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->ndi              = 1;
               ((DCI1A_1_5MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->rv               = 0;
               break;
@@ -1822,7 +1822,7 @@ n(tikz_fname,"w");
               ((DCI1A_5MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->TPC              = TPC;
               ((DCI1A_5MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->dai              = 0;
               ((DCI1A_5MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-              ((DCI1A_5MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;  
+              ((DCI1A_5MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;
               ((DCI1A_5MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->ndi              = 1;
               ((DCI1A_5MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->rv               = 0;
               break;
@@ -1835,7 +1835,7 @@ n(tikz_fname,"w");
               ((DCI1A_10MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->TPC              = TPC;
               ((DCI1A_10MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->dai              = 0;
               ((DCI1A_10MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-              ((DCI1A_10MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;  
+              ((DCI1A_10MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;
               ((DCI1A_10MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->ndi              = 1;
               ((DCI1A_10MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->rv               = 0;
               break;
@@ -1846,7 +1846,7 @@ n(tikz_fname,"w");
               ((DCI1A_20MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->TPC              = TPC;
               ((DCI1A_20MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->dai              = 0;
               ((DCI1A_20MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-              ((DCI1A_20MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;  
+              ((DCI1A_20MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;
               ((DCI1A_20MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->ndi              = 1;
               ((DCI1A_20MHz_TDD_1_6_t *)&DLSCH_alloc_pdu_1[k])->rv               = 0;
               dci_length = sizeof_DCI1A_20MHz_TDD_1_6_t;
@@ -1864,7 +1864,7 @@ n(tikz_fname,"w");
               ((DCI1A_1_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->rballoc          = computeRIV(eNB->frame_parms.N_RB_DL,0,9);
               ((DCI1A_1_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->TPC              = TPC;
               ((DCI1A_1_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-              ((DCI1A_1_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;  
+              ((DCI1A_1_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;
               ((DCI1A_1_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->ndi              = 1;
               ((DCI1A_1_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->rv               = 0;
               break;
@@ -1876,7 +1876,7 @@ n(tikz_fname,"w");
               ((DCI1A_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->rballoc          = computeRIV(eNB->frame_parms.N_RB_DL,0,9);
               ((DCI1A_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->TPC              = TPC;
               ((DCI1A_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-              ((DCI1A_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;  
+              ((DCI1A_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;
               ((DCI1A_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->ndi              = 1;
               ((DCI1A_5MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->rv               = 0;
               break;
@@ -1888,7 +1888,7 @@ n(tikz_fname,"w");
               ((DCI1A_10MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->rballoc          = computeRIV(eNB->frame_parms.N_RB_DL,0,9);
               ((DCI1A_10MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->TPC              = TPC;
               ((DCI1A_10MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-              ((DCI1A_10MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;  
+              ((DCI1A_10MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;
               ((DCI1A_10MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->ndi              = 1;
               ((DCI1A_10MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->rv               = 0;
               break;
@@ -1900,11 +1900,11 @@ n(tikz_fname,"w");
               ((DCI1A_20MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->rballoc          = computeRIV(eNB->frame_parms.N_RB_DL,0,9);
               ((DCI1A_20MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->TPC              = TPC;
               ((DCI1A_20MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->harq_pid         = 0;
-              ((DCI1A_20MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;  
+              ((DCI1A_20MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->mcs              = mcs1;
               ((DCI1A_20MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->ndi              = 1;
               ((DCI1A_20MHz_FDD_t *)&DLSCH_alloc_pdu_1[k])->rv               = 0;
               break;
-            }    
+            }
           }
           memcpy(&dci_alloc[num_dci].dci_pdu[0],&DLSCH_alloc_pdu_1[k],dci_length_bytes);
           dci_alloc[num_dci].dci_length = dci_length;
@@ -1912,7 +1912,7 @@ n(tikz_fname,"w");
           dci_alloc[num_dci].rnti       = SI_RNTI;
           dci_alloc[num_dci].format     = format1A;
           dci_alloc[num_dci].firstCCE       = 0;
-          dump_dci(&eNB->frame_parms,&dci_alloc[num_dci]);  
+          dump_dci(&eNB->frame_parms,&dci_alloc[num_dci]);
 
             printf("Generating dlsch params for user %d\n",k);
             generate_eNB_dlsch_params_from_dci(0,
@@ -1927,7 +1927,7 @@ n(tikz_fname,"w");
                        0,
                        P_RNTI,
                        eNB->UE_stats[0].DL_pmi_single);
-          
+
           num_common_dci++;
           num_dci++;
 
@@ -1979,12 +1979,12 @@ n(tikz_fname,"w");
       */
     }
 
-    if (n_frames==1) 
+    if (n_frames==1)
       printf("num_pdcch_symbols %d, numCCE %d => ",num_pdcch_symbols,numCCE);
 
     numCCE = get_nCCE(num_pdcch_symbols,&eNB->frame_parms,get_mi(&eNB->frame_parms,subframe));
 
-    if (n_frames==1) 
+    if (n_frames==1)
       printf("%d\n",numCCE);
 
     // apply RNTI-based nCCE allocation
@@ -2062,7 +2062,7 @@ n(tikz_fname,"w");
         errs[0][i]=0;
         errs[1][i]=0;
         /*Let see, how it will work, if */
-        round_trials[i] = 0; 
+        round_trials[i] = 0;
        // round_trials_1[i] = 0;
       }
       dci_errors=0;
@@ -2118,7 +2118,7 @@ n(tikz_fname,"w");
       initialize(&time_vector_rx_demod);
       struct list time_vector_rx_dec;
       initialize(&time_vector_rx_dec);
-      
+
       for (trials = 0;trials<n_frames;trials++) {
       //printf("Trial %d\n",trials);
         fflush(stdout);
@@ -2132,14 +2132,14 @@ n(tikz_fname,"w");
         ret[0] = UE->dlsch[0][0]->max_turbo_iterations+1;
         ret[1] = UE->dlsch[0][0]->max_turbo_iterations+1;
 
-        /*This condition indicates, that the round_trials must go on, while CRC keeps failing at 
-        least for one of the CW and round < num_rounds. This also means that round_trials is a unique 
+        /*This condition indicates, that the round_trials must go on, while CRC keeps failing at
+        least for one of the CW and round < num_rounds. This also means that round_trials is a unique
         variable for both CW*/
 
         while (((transmission_mode == 3 || transmission_mode == 4) && ((round < num_rounds) && ((ret[0] > UE->dlsch[0][0]->max_turbo_iterations)
-         || (ret[1] > UE->dlsch[0][0]->max_turbo_iterations)))) || 
+         || (ret[1] > UE->dlsch[0][0]->max_turbo_iterations)))) ||
           ((transmission_mode!=4 && transmission_mode != 3)&& ((round < num_rounds) && (ret[0] > UE->dlsch[0][0]->max_turbo_iterations)))) {
-          
+
           //printf("Trial %d, round %d , ret[0] %d, ret[1] %d, round_trials %d\n",trials,round, ret[0], ret[1], round_trials[round]);
           //printf("round_trials %d round %d\n", round_trials[round], round);
 
@@ -2147,11 +2147,11 @@ n(tikz_fname,"w");
 
           //printf("round_trials %d round %d\n", round_trials[round], round);
 
-          if (transmission_mode == 4 || transmission_mode == 5 || transmission_mode == 6) 
+          if (transmission_mode == 4 || transmission_mode == 5 || transmission_mode == 6)
             pmi_feedback=1;
-          else 
+          else
             pmi_feedback=0;
-          
+
           if (abstx) {
             if (trials==0 && round==0 && SNR==snr0)  //generate a new channel
               hold_channel = 0;
@@ -2162,25 +2162,25 @@ n(tikz_fname,"w");
             hold_channel = 0;//(round==0) ? 0 : 1;
 
         PMI_FEEDBACK:
-        
+
           //printf("Trial %d : Round %d, pmi_feedback %d \n",trials,round,pmi_feedback);
           for (aa=0; aa<eNB->frame_parms.nb_antennas_tx;aa++) {
             memset(&eNB->common_vars.txdataF[eNB_id][aa][0],0,FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX*sizeof(int32_t));
           }
-        
+
           if (input_fd==NULL) {
 
             start_meas(&eNB->phy_proc_tx);
 
             // Simulate HARQ procedures!!!
             if (common_flag == 0) {
-              
+
               if (round == 0) {   // First round
                 TB0_active = 1;
-              
+
                 eNB->dlsch[0][0]->harq_processes[0]->rvidx = round&3;
                 if (eNB->frame_parms.frame_type == TDD) {
-                  
+
                   switch (transmission_mode) {
                   case 1:
                   case 2:
@@ -2240,7 +2240,7 @@ n(tikz_fname,"w");
                     }
                     break;
                   case 4:
-                    switch (eNB->frame_parms.N_RB_DL) { 
+                    switch (eNB->frame_parms.N_RB_DL) {
                      case 6:
                       ((DCI2_1_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[0])->ndi1             = trials&1;
                       ((DCI2_1_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[0])->rv1              = 0;
@@ -2270,8 +2270,8 @@ n(tikz_fname,"w");
                       memcpy(&dci_alloc[0].dci_pdu[0],&DLSCH_alloc_pdu_1[0],sizeof(DCI2_20MHz_2A_TDD_t));
                       break;
                     }
-                    break; 
-              
+                    break;
+
                   case 5:
                     DLSCH_alloc_pdu2_1E[0].ndi             = trials&1;
                     DLSCH_alloc_pdu2_1E[0].rv              = 0;
@@ -2339,7 +2339,7 @@ n(tikz_fname,"w");
                     }
                     break;
                   case 4:
-                    switch (eNB->frame_parms.N_RB_DL) { 
+                    switch (eNB->frame_parms.N_RB_DL) {
                      case 6:
                       ((DCI2_1_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[0])->ndi1             = trials&1;
                       ((DCI2_1_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[0])->rv1              = 0;
@@ -2369,19 +2369,19 @@ n(tikz_fname,"w");
                       memcpy(&dci_alloc[0].dci_pdu[0],&DLSCH_alloc_pdu_1[0],sizeof(DCI2_20MHz_2A_FDD_t));
                       break;
                     }
-                    break; 
+                    break;
                   case 5:
                     DLSCH_alloc_pdu2_1E[0].ndi             = trials&1;
                     DLSCH_alloc_pdu2_1E[0].rv              = 0;
                     memcpy(&dci_alloc[0].dci_pdu[0],&DLSCH_alloc_pdu2_1E[0],sizeof(DCI1E_5MHz_2A_M10PRB_TDD_t));
                     break;
                   }
-                  
+
                 }
               }
-              else { 
+              else {
                 eNB->dlsch[0][0]->harq_processes[0]->rvidx = round&3;
-                
+
                 if (eNB->frame_parms.frame_type == TDD) {
                   switch (transmission_mode) {
                   case 1:
@@ -2537,7 +2537,7 @@ n(tikz_fname,"w");
                       break;
                     }
                     break;
-                   
+
                   case 5:
                     DLSCH_alloc_pdu2_1E[0].ndi             = trials&1;
                     DLSCH_alloc_pdu2_1E[0].rv              = round&3;
@@ -2700,9 +2700,9 @@ n(tikz_fname,"w");
                       memcpy(&dci_alloc[0].dci_pdu[0],&DLSCH_alloc_pdu_1[0],sizeof(DCI2_20MHz_2A_FDD_t));
                       break;
                     }
-                    break;  
-                    
-                    
+                    break;
+
+
                   case 5:
                     DLSCH_alloc_pdu2_1E[0].ndi             = trials&1;
                     DLSCH_alloc_pdu2_1E[0].rv              = round&3;
@@ -2712,7 +2712,7 @@ n(tikz_fname,"w");
                 }
                     }
             }
-          
+
             num_pdcch_symbols_2 = generate_dci_top(num_ue_spec_dci,
                                                    num_common_dci,
                                                    dci_alloc,
@@ -2745,7 +2745,7 @@ n(tikz_fname,"w");
       #endif
 
                 rate[cw] = (double)tbs[cw]/(double)coded_bits_per_codeword[cw];
-              
+
                 if ((SNR==snr0) && (trials==0) && (round==0) && (pmi_feedback==0))
                   printf("User %d, cw %d: Rate = %f (%f bits/dim) (G %d, TBS %d, mod %d, pdcch_sym %d, ndi %d)\n",
                          k,cw,rate[cw],rate[cw]*get_Qm(eNB->dlsch[k][cw]->harq_processes[0]->mcs),
@@ -2759,27 +2759,27 @@ n(tikz_fname,"w");
                 if (DLSCH_alloc_pdu2_1E[0].tpmi == 5) {
                   eNB->dlsch[0][0]->harq_processes[0]->pmi_alloc = quantize_subband_pmi(&UE->measurements,0,eNB->frame_parms.N_RB_DL);
                   UE->dlsch[0][0]->pmi_alloc = quantize_subband_pmi(&UE->measurements,0,UE->frame_parms.N_RB_DL);
-                  if (n_users>1) 
-                    eNB->dlsch[1][0]->harq_processes[0]->pmi_alloc = (eNB->dlsch[0][0]->harq_processes[0]->pmi_alloc ^ 0x1555); 
+                  if (n_users>1)
+                    eNB->dlsch[1][0]->harq_processes[0]->pmi_alloc = (eNB->dlsch[0][0]->harq_processes[0]->pmi_alloc ^ 0x1555);
                   /*
                     if ((trials<10) && (round==0)) {
                     printf("tx PMI UE0 %x (pmi_feedback %d)\n",pmi2hex_2Ar1(eNB->dlsch[0][0]->pmi_alloc),pmi_feedback);
                     if (transmission_mode ==5)
                     printf("tx PMI UE1 %x\n",pmi2hex_2Ar1(eNB->dlsch[1][0]->pmi_alloc));
                     }
-          */    
+          */
                 }
-              
-              
+
+
                 if (transmission_mode==4 && ((((DCI2_5MHz_2A_TDD_t *)&DLSCH_alloc_pdu_1[k])->tpmi == 2) ||(((DCI2_5MHz_2A_FDD_t *)&DLSCH_alloc_pdu_1[k])->tpmi == 2))){
                   eNB->dlsch[0][0]->harq_processes[0]->pmi_alloc = quantize_subband_pmi(&UE->measurements,0,eNB->frame_parms.N_RB_DL);
                   UE->dlsch[0][0]->pmi_alloc = quantize_subband_pmi(&UE->measurements,0,UE->frame_parms.N_RB_DL);
                 }
-              
-              
 
 
-                start_meas(&eNB->dlsch_encoding_stats);        
+
+
+                start_meas(&eNB->dlsch_encoding_stats);
                 if (dlsch_encoding(((cw==0) ? input_buffer0[k] : input_buffer1[k]),
 				   &eNB->frame_parms,
                                    num_pdcch_symbols,
@@ -2789,9 +2789,9 @@ n(tikz_fname,"w");
                                    &eNB->dlsch_turbo_encoding_stats,
                                    &eNB->dlsch_interleaving_stats)<0)
                   exit(-1);
-              
-              
-              
+
+
+
               /*
               if (transmission_mode == 3) {
           if (dlsch_encoding(input_buffer1[k],
@@ -2806,17 +2806,17 @@ n(tikz_fname,"w");
             exit(-1);
               }
               */
-                stop_meas(&eNB->dlsch_encoding_stats);  
+                stop_meas(&eNB->dlsch_encoding_stats);
 
-                eNB->dlsch[k][cw]->rnti = (common_flag==0) ? n_rnti+k : SI_RNTI;    
-                start_meas(&eNB->dlsch_scrambling_stats);        
+                eNB->dlsch[k][cw]->rnti = (common_flag==0) ? n_rnti+k : SI_RNTI;
+                start_meas(&eNB->dlsch_scrambling_stats);
                 dlsch_scrambling(&eNB->frame_parms,
                      0,
                      eNB->dlsch[k][cw],
                      coded_bits_per_codeword[cw],
                      cw,
                      subframe<<1);
-                stop_meas(&eNB->dlsch_scrambling_stats);        
+                stop_meas(&eNB->dlsch_scrambling_stats);
 
                 if (n_frames==1) {
                   for (s=0;s<eNB->dlsch[k][cw]->harq_processes[0]->C;s++) {
@@ -2824,16 +2824,16 @@ n(tikz_fname,"w");
                       Kr = eNB->dlsch[k][cw]->harq_processes[0]->Kminus;
                     else
                       Kr = eNB->dlsch[k][cw]->harq_processes[0]->Kplus;
-                      
+
                     Kr_bytes = Kr>>3;
-                      
+
                    // for (i=0;i<Kr_bytes;i++)
                     //  printf("cw%d   %d : (%x)\n",cw,i,eNB->dlsch[k][cw]->harq_processes[0]->c[s][i]);
                   }
                 }
               }
-          
-              start_meas(&eNB->dlsch_modulation_stats);        
+
+              start_meas(&eNB->dlsch_modulation_stats);
               re_allocated = dlsch_modulation(eNB->common_vars.txdataF[eNB_id],
                                               AMP,
                                               subframe,
@@ -2842,21 +2842,21 @@ n(tikz_fname,"w");
                                               eNB->dlsch[k][0],
                                               eNB->dlsch[k][1]
                                                );
-              stop_meas(&eNB->dlsch_modulation_stats);        
+              stop_meas(&eNB->dlsch_modulation_stats);
               /*
               if (trials==0 && round==0)
           printf("RE count %d\n",re_allocated);
               */
             } //n_users
 
-            
+
             generate_pilots(eNB,
                             eNB->common_vars.txdataF[eNB_id],
                             AMP,
                             LTE_NUMBER_OF_SUBFRAMES_PER_FRAME);
-          
+
             start_meas(&eNB->ofdm_mod_stats);
-            
+
             do_OFDM_mod_l(eNB->common_vars.txdataF[eNB_id],
                           eNB->common_vars.txdata[eNB_id],
                           (subframe*2),
@@ -2866,10 +2866,10 @@ n(tikz_fname,"w");
                           eNB->common_vars.txdata[eNB_id],
                           (subframe*2)+1,
                           &eNB->frame_parms);
-            
+
             stop_meas(&eNB->ofdm_mod_stats);
-            stop_meas(&eNB->phy_proc_tx); 
-            
+            stop_meas(&eNB->phy_proc_tx);
+
             do_OFDM_mod_l(eNB->common_vars.txdataF[eNB_id],
                           eNB->common_vars.txdata[eNB_id],
                           (subframe*2)+2,
@@ -2888,7 +2888,7 @@ n(tikz_fname,"w");
                                       eNB->frame_parms.samples_per_tti);
             }
             tx_lev_dB = (unsigned int) dB_fixed(tx_lev);
-          
+
             if (n_frames==1) {
               printf("tx_lev = %d (%d dB)\n",tx_lev,tx_lev_dB);
               write_output("txsig0.m","txs0", &eNB->common_vars.txdata[eNB_id][0][subframe* eNB->frame_parms.samples_per_tti],
@@ -2900,7 +2900,7 @@ n(tikz_fname,"w");
             i=0;
             while (!feof(input_fd)) {
             fscanf(input_fd,"%s %s",input_val_str,input_val_str2);
-            
+
             if ((i%4)==0) {
             ((short*)txdata[0])[i/2] = (short)((1<<15)*strtod(input_val_str,NULL));
             ((short*)txdata[0])[(i/2)+1] = (short)((1<<15)*strtod(input_val_str2,NULL));
@@ -2919,7 +2919,7 @@ n(tikz_fname,"w");
             tx_lev_dB = (unsigned int) dB_fixed(tx_lev);
             }
           */
-       
+
           //    printf("Copying tx ..., nsymb %d (n_tx %d), awgn %d\n",nsymb,eNB->frame_parms.nb_antennas_tx,awgn_flag);
           for (i=0;i<2*frame_parms->samples_per_tti;i++) {
             for (aa=0;aa<eNB->frame_parms.nb_antennas_tx;aa++) {
@@ -2938,7 +2938,7 @@ n(tikz_fname,"w");
             //printf("r_im0 = %d\n",r_im[0][i]);
             //printf("r_re1 = %d\n",r_re[1][i]);
             //printf("r_im1 = %d\n",r_im[1][i]);
-                           
+
                 }
                 else {
                   for (aarx=0;aarx<UE->frame_parms.nb_antennas_rx;aarx++) {
@@ -2957,7 +2957,7 @@ n(tikz_fname,"w");
           }
 
           // Multipath channel
-          if (awgn_flag == 0) {  
+          if (awgn_flag == 0) {
             multipath_channel(eNB2UE[round],s_re,s_im,r_re,r_im,
                               2*frame_parms->samples_per_tti,hold_channel);
             //      printf("amc: ****************** eNB2UE[%d]->n_rx = %d,dd %d\n",round,eNB2UE[round]->nb_rx,eNB2UE[round]->channel_offset);
@@ -2973,7 +2973,7 @@ n(tikz_fname,"w");
                       //  write_output("channelF.m","chF",eNB2UE[round]->chF[0],12*UE->frame_parms.N_RB_DL +1,1,8);
             }
           }
-        
+
           //  freq_channel(eNB2UE[0], NB_RB,12*NB_RB + 1);
         if(abstx){
           if (trials==0 && round==0) {
@@ -2981,7 +2981,7 @@ n(tikz_fname,"w");
             freq_channel(eNB2UE[0], NB_RB,2*NB_RB + 1);
             // snr=pow(10.0,.1*SNR);
             fprintf(csv_fd,"%f,",SNR);
-            
+
             for (u=0;u<2*NB_RB;u++){
               for (aarx=0;aarx<eNB2UE[0]->nb_rx;aarx++) {
                 for (aatx=0;aatx<eNB2UE[0]->nb_tx;aatx++) {
@@ -2991,10 +2991,10 @@ n(tikz_fname,"w");
                 }
               }
             }
-            
+
             if(num_rounds>1){
               freq_channel(eNB2UE[1], NB_RB,2*NB_RB + 1);
-              
+
               for (u=0;u<2*NB_RB;u++){
                 for (aarx=0;aarx<eNB2UE[1]->nb_rx;aarx++) {
                   for (aatx=0;aatx<eNB2UE[1]->nb_tx;aatx++) {
@@ -3005,7 +3005,7 @@ n(tikz_fname,"w");
                 }
               }
               freq_channel(eNB2UE[2], NB_RB,2*NB_RB + 1);
-              
+
               for (u=0;u<2*NB_RB;u++){
                 for (aarx=0;aarx<eNB2UE[2]->nb_rx;aarx++) {
                   for (aatx=0;aatx<eNB2UE[2]->nb_tx;aatx++) {
@@ -3015,9 +3015,9 @@ n(tikz_fname,"w");
                   }
                 }
               }
-              
+
               freq_channel(eNB2UE[3], NB_RB,2*NB_RB + 1);
-              
+
               for (u=0;u<2*NB_RB;u++){
                 for (aarx=0;aarx<eNB2UE[3]->nb_rx;aarx++) {
                   for (aatx=0;aatx<eNB2UE[3]->nb_tx;aatx++) {
@@ -3030,28 +3030,28 @@ n(tikz_fname,"w");
             }
           }
         }
-        
+
         //AWGN
         // This is the SNR on the PDSCH for OFDM symbols without pilots -> rho_A
         sigma2_dB = 10*log10((double)tx_lev) +10*log10((double)eNB->frame_parms.ofdm_symbol_size/(double)(NB_RB*12)) - SNR - get_pa_dB(eNB->pdsch_config_dedicated);
         sigma2 = pow(10,sigma2_dB/10);
         if (n_frames==1)
           printf("Sigma2 %f (sigma2_dB %f,%f,%f )\n",sigma2,sigma2_dB,10*log10((double)eNB->frame_parms.ofdm_symbol_size/(double)(NB_RB*12)),get_pa_dB(eNB->pdsch_config_dedicated));
-        
+
         for (i=0; i<2*frame_parms->samples_per_tti; i++) {
           for (aa=0;aa<eNB->frame_parms.nb_antennas_rx;aa++) {
             //printf("s_re[0][%d]=> %f , r_re[0][%d]=> %f\n",i,s_re[aa][i],i,r_re[aa][i]);
-            ((short*) UE->common_vars.rxdata[aa])[(2*subframe*UE->frame_parms.samples_per_tti)+2*i] = 
+            ((short*) UE->common_vars.rxdata[aa])[(2*subframe*UE->frame_parms.samples_per_tti)+2*i] =
               (short) (r_re[aa][i] + sqrt(sigma2/2)*gaussdouble(0.0,1.0));
-            ((short*) UE->common_vars.rxdata[aa])[(2*subframe*UE->frame_parms.samples_per_tti)+2*i+1] = 
+            ((short*) UE->common_vars.rxdata[aa])[(2*subframe*UE->frame_parms.samples_per_tti)+2*i+1] =
               (short) (r_im[aa][i] + (iqim*r_re[aa][i]) + sqrt(sigma2/2)*gaussdouble(0.0,1.0));
           }
-        }   
-        
+        }
+
         //    lte_sync_time_init(eNB->frame_parms,common_vars);
         //    lte_sync_time(common_vars->rxdata, eNB->frame_parms);
         //    lte_sync_time_free();
-        
+
         /*
           // optional: read rx_frame from file
           if ((rx_frame_file = fopen("rx_frame.dat","r")) == NULL)
@@ -3059,22 +3059,22 @@ n(tikz_fname,"w");
           printf("Cannot open rx_frame.m data file\n");
           exit(0);
           }
-            
+
           result = fread((void *)PHY_vars->rx_vars[0].RX_DMA_BUFFER,4,FRAME_LENGTH_COMPLEX_SAMPLES,rx_frame_file);
           printf("Read %d bytes\n",result);
           result = fread((void *)PHY_vars->rx_vars[1].RX_DMA_BUFFER,4,FRAME_LENGTH_COMPLEX_SAMPLES,rx_frame_file);
           printf("Read %d bytes\n",result);
-            
+
           fclose(rx_frame_file);
         */
-        
+
         if (n_frames==1) {
           printf("RX level in null symbol %d\n",dB_fixed(signal_energy(&UE->common_vars.rxdata[0][160+OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES],OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES/2)));
           printf("RX level in data symbol %d\n",dB_fixed(signal_energy(&UE->common_vars.rxdata[0][160+(2*OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES)],OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES/2)));
           printf("rx_level Null symbol %f\n",10*log10(signal_energy_fp(r_re,r_im,1,OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES/2,256+(OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES))));
           printf("rx_level data symbol %f\n",10*log10(signal_energy_fp(r_re,r_im,1,OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES/2,256+(2*OFDM_SYMBOL_SIZE_COMPLEX_SAMPLES))));
         }
-        
+
         if (eNB->frame_parms.Ncp == 0) {  // normal prefix
           pilot1 = 4;
           pilot2 = 7;
@@ -3084,8 +3084,8 @@ n(tikz_fname,"w");
           pilot1 = 3;
           pilot2 = 6;
           pilot3 = 9;
-        }    
-        
+        }
+
         start_meas(&UE->phy_proc_rx);
         // Inner receiver scheduling for 3 slots
           for (Ns=(2*subframe);Ns<((2*subframe)+3);Ns++) {
@@ -3094,17 +3094,17 @@ n(tikz_fname,"w");
           printf("Ns %d, l %d, l2 %d\n",Ns, l, l+(Ns%2)*pilot2);
               /*
           This function implements the OFDM front end processor (FEP).
-              
+
           Parameters:
           frame_parms   LTE DL Frame Parameters
           ue_common_vars   LTE UE Common Vars
           l   symbol within slot (0..6/7)
           Ns   Slot number (0..19)
           sample_offset   offset within rxdata (points to beginning of subframe)
-          no_prefix   if 1 prefix is removed by HW 
-              
+          no_prefix   if 1 prefix is removed by HW
+
               */
-            
+
               start_meas(&UE->ofdm_demod_stats);
               slot_fep(UE,
                        l,
@@ -3145,14 +3145,14 @@ n(tikz_fname,"w");
                       for (aarx=0; aarx<frame_parms->nb_antennas_rx; aarx++) {
                         for (i=0; i<frame_parms->N_RB_DL*12; i++) {
                           ((int16_t *) UE->common_vars.dl_ch_estimates[0][(aa<<1)+aarx])[2*i+((l+(Ns%2)*pilot2)*frame_parms->ofdm_symbol_size+LTE_CE_FILTER_LENGTH)*2]=(short)(AMP);
-                          ((int16_t *) UE->common_vars.dl_ch_estimates[0][(aa<<1)+aarx])[2*i+1+((l+(Ns%2)*pilot2)*frame_parms->ofdm_symbol_size+LTE_CE_FILTER_LENGTH)*2]=0/2;  
+                          ((int16_t *) UE->common_vars.dl_ch_estimates[0][(aa<<1)+aarx])[2*i+1+((l+(Ns%2)*pilot2)*frame_parms->ofdm_symbol_size+LTE_CE_FILTER_LENGTH)*2]=0/2;
                         }
                        }
                     }
                 }
               }
               }
-              
+
               if ((Ns==((2*subframe))) && (l==0)) {
                 lte_ue_measurements(UE,
                                     subframe*UE->frame_parms.samples_per_tti,
@@ -3217,7 +3217,7 @@ n(tikz_fname,"w");
                                                    eNB_id,
                                                    subframe);
                   printf("dci_cnt %d\n",dci_cnt);
-          
+
                   if (dci_cnt==0) {
                     dlsch_active = 0;
                     if (round==0) {
@@ -3233,14 +3233,14 @@ n(tikz_fname,"w");
                     //round_trials[i]--;
                     //round=5;
                   }
-          
+
                   for (i=0;i<dci_cnt;i++) {
                     //printf("Generating dlsch parameters for RNTI %x\n",dci_alloc_rx[i].rnti);
                     if (round == 0) {
                       UE->dlsch[0][0]->harq_processes[UE->dlsch[0][0]->current_harq_pid]->first_tx=1;
                       UE->dlsch[0][1]->harq_processes[UE->dlsch[0][1]->current_harq_pid]->first_tx=1;
                     }
-                    if ((dci_alloc_rx[i].rnti == n_rnti) && 
+                    if ((dci_alloc_rx[i].rnti == n_rnti) &&
                         (generate_ue_dlsch_params_from_dci(0,
                                                            subframe,
                                                            dci_alloc_rx[i].dci_pdu,
@@ -3276,9 +3276,9 @@ n(tikz_fname,"w");
                           //round_trials[0]++;
                           round=5;
 
-                          if (n_frames==1) 
+                          if (n_frames==1)
                             printf("DCI misdetection trial %d\n",trials);
-                          
+
                         }
                         //      for (i=1;i<=round;i++)
                         //        round_trials[i]--;
@@ -3324,7 +3324,7 @@ n(tikz_fname,"w");
                         break;
                       case 4:
                         generate_ue_dlsch_params_from_dci(0,
-                                                          subframe, 
+                                                          subframe,
                                                           &DLSCH_alloc_pdu_1[0],
                                                           (common_flag==0)? C_RNTI : SI_RNTI,
                                                           (common_flag==0)? format2 : format1A,//format1A only for a codeblock
@@ -3368,7 +3368,7 @@ n(tikz_fname,"w");
 
 
                   start_meas(&UE->dlsch_llr_stats);
-                      
+
                   for (m=UE->pdcch_vars[0]->num_pdcch_symbols; m<pilot2; m++) {
                     if (rx_pdsch(UE,
                                  PDSCH,
@@ -3386,8 +3386,8 @@ n(tikz_fname,"w");
                   }
                   stop_meas(&UE->dlsch_llr_stats);
                 }
-                  
-                if ((Ns==(1+(2*subframe))) && (l==pilot1)){// process symbols (6 Extended Prefix),7,8,9 
+
+                if ((Ns==(1+(2*subframe))) && (l==pilot1)){// process symbols (6 Extended Prefix),7,8,9
                     start_meas(&UE->dlsch_llr_stats);
                     for (m=pilot2;m<pilot3; m++) {
                       if (rx_pdsch(UE,
@@ -3406,7 +3406,7 @@ n(tikz_fname,"w");
                       }
                     stop_meas(&UE->dlsch_llr_stats);
                   }
-                
+
                 if ((Ns==(2+(2*subframe))) && (l==0)) { // process symbols 10,11,(12,13 Normal Prefix) do deinterleaving for TTI
                   start_meas(&UE->dlsch_llr_stats);
                   for (m=pilot3; m<UE->frame_parms.symbols_per_tti; m++) {
@@ -3441,15 +3441,15 @@ n(tikz_fname,"w");
               }
             }
           }
-          
+
           if (rx_type==rx_SIC_dual_stream){
             cw_to_decode_interf=1;
             cw_to_decode_interf_free=1;
           }
             else {
-            cw_to_decode_interf=Kmimo; 
-            } 
-            
+            cw_to_decode_interf=Kmimo;
+            }
+
           for (cw_non_sic=0; cw_non_sic<cw_to_decode_interf; cw_non_sic++){
 
             UE->dlsch[0][cw_non_sic]->rnti = (common_flag==0) ? n_rnti: SI_RNTI;
@@ -3463,16 +3463,16 @@ n(tikz_fname,"w");
 
             UE->dlsch[0][cw_non_sic]->harq_processes[UE->dlsch[0][cw_non_sic]->current_harq_pid]->G = coded_bits_per_codeword[cw_non_sic];
             UE->dlsch[0][cw_non_sic]->harq_processes[UE->dlsch[0][cw_non_sic]->current_harq_pid]->Qm = get_Qm(eNB->dlsch[0][cw_non_sic]->harq_processes[0]->mcs);
-            
+
             if (n_frames==1) {
               printf("Kmimo=%d, cw=%d, G=%d, TBS=%d\n",Kmimo,cw_non_sic,coded_bits_per_codeword[cw_non_sic],
                      UE->dlsch[0][cw_non_sic]->harq_processes[UE->dlsch[0][cw_non_sic]->current_harq_pid]->TBS);
-            
+
               // calculate uncoded BER
               uncoded_ber_bit = (short*) malloc(sizeof(short)*coded_bits_per_codeword[cw_non_sic]);
 
               AssertFatal(uncoded_ber_bit, "uncoded_ber_bit==NULL");
-              
+
               sprintf(fname,"dlsch%d_rxF_r%d_cw%d_llr.m",eNB_id,round, cw_non_sic);
               sprintf(vname,"dl%d_r%d_cw%d_llr",eNB_id,round, cw_non_sic);
               write_output(fname,vname, UE->pdsch_vars[0]->llr[cw_non_sic],coded_bits_per_codeword[cw_non_sic],1,0);
@@ -3482,28 +3482,28 @@ n(tikz_fname,"w");
               uncoded_ber=0;
               printf("trials=%d\n", trials);
 
-              for (i=0;i<coded_bits_per_codeword[cw_non_sic];i++) 
+              for (i=0;i<coded_bits_per_codeword[cw_non_sic];i++)
                 if (eNB->dlsch[0][cw_non_sic]->harq_processes[0]->e[i] != (UE->pdsch_vars[0]->llr[cw_non_sic][i]<0)) {
                   uncoded_ber_bit[i] = 1;
                   uncoded_ber++;
                 }
                 else
                   uncoded_ber_bit[i] = 0;
-              
+
               uncoded_ber/=coded_bits_per_codeword[cw_non_sic];
               avg_ber += uncoded_ber;
               sprintf(fname,"cw%d_uncoded_ber_bit.m", cw_non_sic);
               sprintf(vname,"uncoded_ber_bit_cw%d", cw_non_sic);
               write_output(fname, vname,uncoded_ber_bit,coded_bits_per_codeword[cw_non_sic],1,0);
               printf("cw %d, uncoded ber %f\n",cw_non_sic,uncoded_ber);
-              
+
 
               free(uncoded_ber_bit);
-              uncoded_ber_bit = NULL;  
+              uncoded_ber_bit = NULL;
 
             }
 
-            start_meas(&UE->dlsch_unscrambling_stats);        
+            start_meas(&UE->dlsch_unscrambling_stats);
             dlsch_unscrambling(&UE->frame_parms,
                                0,
                                UE->dlsch[0][cw_non_sic],
@@ -3511,26 +3511,26 @@ n(tikz_fname,"w");
                                UE->pdsch_vars[eNB_id]->llr[cw_non_sic],
                                cw_non_sic,
                                subframe<<1);
-            stop_meas(&UE->dlsch_unscrambling_stats);        
+            stop_meas(&UE->dlsch_unscrambling_stats);
 
             start_meas(&UE->dlsch_decoding_stats);
             ret[cw_non_sic] = dlsch_decoding(UE,
-                                             UE->pdsch_vars[eNB_id]->llr[cw_non_sic],     
+                                             UE->pdsch_vars[eNB_id]->llr[cw_non_sic],
                                              &UE->frame_parms,
                                              UE->dlsch[0][cw_non_sic],
                                              UE->dlsch[0][cw_non_sic]->harq_processes[UE->dlsch[0][cw_non_sic]->current_harq_pid],
                                              subframe,
                                              UE->dlsch[0][cw_non_sic]->current_harq_pid,
                                              1,llr8_flag);
-            stop_meas(&UE->dlsch_decoding_stats); 
-           
-             
+            stop_meas(&UE->dlsch_decoding_stats);
+
+
             if (ret[cw_non_sic] <= UE->dlsch[0][cw_non_sic]->max_turbo_iterations ) { //If CRC for the first CW did not fail
-              if (cw_non_sic==0) {    
+              if (cw_non_sic==0) {
                 avg_iter[0] += ret[0];
                 iter_trials[0]++;
               }
-              
+
               if (n_frames==2) {
                 printf("cw non sic %d, round %d: No DLSCH errors found, uncoded ber %f\n",cw_non_sic,round,uncoded_ber);
             #ifdef PRINT_BYTES
@@ -3539,9 +3539,9 @@ n(tikz_fname,"w");
                     Kr = UE->dlsch[0][cw_non_sic]->harq_processes[0]->Kminus;
                   else
                     Kr = UE->dlsch[0][cw_non_sic]->harq_processes[0]->Kplus;
-                  
+
                   Kr_bytes = Kr>>3;
-                  
+
                   printf("Decoded_output (Segment %d):\n",s);
                   for (i=0;i<Kr_bytes;i++)
                     printf("%d : %x (%x)\n",i,UE->dlsch[0][cw_non_sic]->harq_processes[0]->c[s][i],
@@ -3549,10 +3549,10 @@ n(tikz_fname,"w");
                 }
             #endif
               }
-              
+
               UE->total_TBS[eNB_id] =  UE->total_TBS[eNB_id] + UE->dlsch[eNB_id][cw_non_sic]->harq_processes[UE->dlsch[eNB_id][cw_non_sic]->current_harq_pid]->TBS;
 
-              // If the  receiver is NOT SIC, Here we are done with both CW, now only to calculate BLER  
+              // If the  receiver is NOT SIC, Here we are done with both CW, now only to calculate BLER
               //If the receiver IS SIC, we are done only with CW0, CW1 was only compensated by this moment (y1' obtained)
               if (UE->dlsch[eNB_id][0]->harq_processes[UE->dlsch[eNB_id][0]->current_harq_pid]->mimo_mode == LARGE_CDD) {   //try to decode second stream using SIC
               /*
@@ -3568,15 +3568,15 @@ n(tikz_fname,"w");
               dlsch0_eNB_harq->rvidx        = dlsch0_ue_harq->rvidx;
               dlsch0_eNB_harq->Nl           = dlsch0_ue_harq->Nl;
               dlsch0_eNB_harq->round        = dlsch0_ue_harq->round;
-              
+
               dlsch0_eNB_harq->TBS          = dlsch0_ue_harq->TBS;
               dlsch0_eNB_harq->dl_power_off = dlsch0_ue_harq->dl_power_off;
               dlsch0_eNB_harq->status       = dlsch0_ue_harq->status;
-              
+
               UE->dlsch[eNB_id]->active       = UE->dlsch[eNB_id][0]->active;
               UE->dlsch[eNB_id]->rnti         = UE->dlsch[eNB_id][0]->rnti;
               UE->dlsch[eNB_id]->current_harq_pid         = UE->dlsch[eNB_id][0]->current_harq_pid;
-              
+
               dlsch_encoding(UE->dlsch[eNB_id][0]->harq_processes[UE->dlsch[eNB_id][0]->current_harq_pid]->b,
                  &UE->frame_parms,
                  num_pdcch_symbols,
@@ -3586,7 +3586,7 @@ n(tikz_fname,"w");
                  &UE->dlsch_turbo_encoding_stats,
                  &UE->dlsch_interleaving_stats
                  );
-              
+
               coded_bits_per_codeword = get_G(&UE->frame_parms,
                       UE->dlsch[eNB_id]->harq_processes[UE->dlsch[eNB_id]->current_harq_pid]->nb_rb,
                       UE->dlsch[eNB_id]->harq_processes[UE->dlsch[eNB_id]->current_harq_pid]->rb_alloc,
@@ -3594,8 +3594,8 @@ n(tikz_fname,"w");
                       UE->dlsch[eNB_id]->harq_processes[UE->dlsch[eNB_id]->current_harq_pid]->Nl,
                       num_pdcch_symbols,
                       0,subframe);
-              
-              
+
+
               //scrambling
               dlsch_scrambling(&UE->frame_parms,
                    0,
@@ -3603,8 +3603,8 @@ n(tikz_fname,"w");
                    coded_bits_per_codeword,
                    0,
                    subframe<<1);
-              
-              
+
+
               //modulation
               re_allocated = dlsch_modulation(sic_buffer,
                       AMP,
@@ -3618,7 +3618,7 @@ n(tikz_fname,"w");
               // compute the norm of the effective channel for both receive antennas -> alphha[0], alphha[2]
               // multiply with the norm of the effective channnel
               */
-              
+
               //stripping (from matched filter output of first stream = rxdataF_comp0)
               // this is pseudocode
               /*
@@ -3626,8 +3626,8 @@ n(tikz_fname,"w");
           UE->pdsch_vars[eNB_id].rxdataF_ext[i] -=   alpha[i].*sic_buffer[i];
           }
               */
-              
-              //apply rho to output 
+
+              //apply rho to output
               /*
           dlsch_channel_compensation(UE->pdsch_vars[eNB_id].rxdataF_ext,
                    UE->pdsch_vars[eNB_id].dl_ch_rho_ext[harq_pid][round],
@@ -3645,19 +3645,19 @@ n(tikz_fname,"w");
           */
 
 
-              //detection of second stream  
+              //detection of second stream
               //}
-              
+
               }
-              
+
               if ((UE->dlsch[eNB_id][0]->harq_processes[UE->dlsch[eNB_id][0]->current_harq_pid]->mimo_mode >=DUALSTREAM_UNIFORM_PRECODING1) &&
                   (UE->dlsch[eNB_id][0]->harq_processes[UE->dlsch[eNB_id][0]->current_harq_pid]->mimo_mode <=DUALSTREAM_PUSCH_PRECODING) &&
                   rx_type==rx_SIC_dual_stream) {
-          
+
          // for (round = 0 ; round < 1 ; round++) {
                 dlsch0_ue_harq = UE->dlsch[eNB_id][0]->harq_processes[UE->dlsch[eNB_id][0]->current_harq_pid];
                 dlsch0_eNB_harq = UE->dlsch_eNB[eNB_id]->harq_processes[UE->dlsch[eNB_id][0]->current_harq_pid];
-                  
+
                 dlsch0_eNB_harq->mimo_mode    = UE->dlsch[eNB_id][0]->harq_processes[UE->dlsch[eNB_id][0]->current_harq_pid]->mimo_mode;
                 dlsch0_eNB_harq->rb_alloc[0]  = dlsch0_ue_harq->rb_alloc_even[0];
                 dlsch0_eNB_harq->nb_rb        = dlsch0_ue_harq->nb_rb;
@@ -3668,11 +3668,11 @@ n(tikz_fname,"w");
                 dlsch0_eNB_harq->TBS          = dlsch0_ue_harq->TBS;
                 dlsch0_eNB_harq->dl_power_off = dlsch0_ue_harq->dl_power_off;
                 dlsch0_eNB_harq->status       = dlsch0_ue_harq->status;
-                  
+
                 UE->dlsch_eNB[eNB_id]->active                   = UE->dlsch[eNB_id][0]->active;
                 UE->dlsch_eNB[eNB_id]->rnti                     = UE->dlsch[eNB_id][0]->rnti;
                 UE->dlsch_eNB[eNB_id]->current_harq_pid         = UE->dlsch[eNB_id][0]->current_harq_pid;
-                
+
                 dlsch_encoding(input_buffer0[0], //UE->dlsch[eNB_id][0]->harq_processes[UE->dlsch[eNB_id][0]->current_harq_pid]->b,
                                &UE->frame_parms,
                                num_pdcch_symbols,
@@ -3682,8 +3682,8 @@ n(tikz_fname,"w");
                                &UE->dlsch_rate_matching_stats,
                                &UE->dlsch_turbo_encoding_stats,
                                &UE->dlsch_interleaving_stats);
-             
-                  
+
+
                 coded_bits_per_codeword[cw_non_sic]= get_G(&UE->frame_parms,
                                                 UE->dlsch_eNB[eNB_id]->harq_processes[UE->dlsch_eNB[eNB_id]->current_harq_pid]->nb_rb,
                                                 UE->dlsch_eNB[eNB_id]->harq_processes[UE->dlsch_eNB[eNB_id]->current_harq_pid]->rb_alloc,
@@ -3707,13 +3707,13 @@ n(tikz_fname,"w");
                                                     UE->dlsch_eNB[0],
                                                     NULL,
                                                     coded_bits_per_codeword[cw_non_sic]);
-                  
+
                // write_output("sic_buffer.m","sic", *sic_buffer,re_allocated,1,1);
                // write_output("rxdataF_comp1.m","rxF_comp1", *UE->pdsch_vars[eNB_id]->rxdataF_comp1[UE->dlsch[0][0]->current_harq_pid][round],14*12*25,1,1);
                // write_output("rxdataF_rho.m","rho", *UE->pdsch_vars[eNB_id]->dl_ch_rho_ext[UE->dlsch[0][0]->current_harq_pid][round],14*12*25,1,1);
 
                 switch  (get_Qm(eNB->dlsch[0][1]->harq_processes[0]->mcs)){
-                  
+
                   case 2:
 
                     dlsch_qpsk_llr_SIC(&UE->frame_parms,
@@ -3725,7 +3725,7 @@ n(tikz_fname,"w");
                                        dlsch0_eNB_harq->nb_rb,
                                        subframe,
                                        dlsch0_eNB_harq->rb_alloc[0],
-                                       get_Qm(eNB->dlsch[0][0]->harq_processes[0]->mcs), 
+                                       get_Qm(eNB->dlsch[0][0]->harq_processes[0]->mcs),
                                        UE->dlsch[eNB_id][0]);
                   break;
 
@@ -3760,9 +3760,9 @@ n(tikz_fname,"w");
                                         UE->dlsch[eNB_id][0]);
                   break;
                     }
-            
+
                     //  write_output("rxdata_llr1.m","llr1", UE->pdsch_vars[eNB_id]->llr[1],re_allocated*2,1,0);
-            
+
                 for (cw_sic=cw_to_decode_interf_free; cw_sic<cw_to_decode_interf_free+1;cw_sic++){
                   UE->dlsch[0][cw_sic]->rnti = (common_flag==0) ? n_rnti: SI_RNTI;
                   coded_bits_per_codeword[cw_sic]= get_G(&eNB->frame_parms,
@@ -3773,14 +3773,14 @@ n(tikz_fname,"w");
                           num_pdcch_symbols,
                           0,
                                 subframe);
-                  
+
                   UE->dlsch[0][cw_sic]->harq_processes[UE->dlsch[0][cw_sic]->current_harq_pid]->G = coded_bits_per_codeword[cw_sic];
                   UE->dlsch[0][cw_sic]->harq_processes[UE->dlsch[0][cw_sic]->current_harq_pid]->Qm = get_Qm(eNB->dlsch[0][cw_sic]->harq_processes[0]->mcs);
-                
+
                   if (n_frames==2) {
                     printf("Kmimo=%d, cw=%d, G=%d, TBS=%d\n",Kmimo,cw_sic,coded_bits_per_codeword[cw_sic],
                       UE->dlsch[0][cw_sic]->harq_processes[UE->dlsch[0][cw_sic]->current_harq_pid]->TBS);
-              
+
                   // calculate uncoded BER
                     uncoded_ber_bit = (short*) malloc(sizeof(short)*coded_bits_per_codeword[cw_sic]);
                     AssertFatal(uncoded_ber_bit, "uncoded_ber_bit==NULL");
@@ -3792,24 +3792,24 @@ n(tikz_fname,"w");
                     write_output(fname, vname,eNB->dlsch[0][cw_sic]->harq_processes[0]->e,coded_bits_per_codeword[cw_sic],1,4);
                     uncoded_ber=0;
                printf("trials=%d\n", trials);
-                      for (i=0;i<coded_bits_per_codeword[cw_sic];i++) 
+                      for (i=0;i<coded_bits_per_codeword[cw_sic];i++)
                   if (eNB->dlsch[0][cw_sic]->harq_processes[0]->e[i] != (UE->pdsch_vars[0]->llr[cw_sic][i]<0)) {
                     uncoded_ber_bit[i] = 1;
                     uncoded_ber++;
                   } else
                     uncoded_ber_bit[i] = 0;
-                  
+
                    uncoded_ber/=coded_bits_per_codeword[cw_sic];
                    avg_ber += uncoded_ber;
                    sprintf(fname,"cw%d_uncoded_ber_bit.m", cw_sic);
                    sprintf(vname,"uncoded_ber_bit_cw%d", cw_sic);
                    write_output(fname, vname,uncoded_ber_bit,coded_bits_per_codeword[cw_sic],1,0);
-                   printf("cw %d, uncoded ber %f\n",cw_sic,uncoded_ber);     
+                   printf("cw %d, uncoded ber %f\n",cw_sic,uncoded_ber);
                          free(uncoded_ber_bit);
-                   uncoded_ber_bit = NULL;  
+                   uncoded_ber_bit = NULL;
                 }
 
-                start_meas(&UE->dlsch_unscrambling_stats);        
+                start_meas(&UE->dlsch_unscrambling_stats);
                 dlsch_unscrambling(&UE->frame_parms,
                                    0,
                                    UE->dlsch[0][cw_sic],
@@ -3817,26 +3817,26 @@ n(tikz_fname,"w");
                                    UE->pdsch_vars[eNB_id]->llr[cw_sic],
                                    cw_sic,
                                    subframe<<1);
-                stop_meas(&UE->dlsch_unscrambling_stats);        
+                stop_meas(&UE->dlsch_unscrambling_stats);
 
                 start_meas(&UE->dlsch_decoding_stats);
                 ret[1] = dlsch_decoding(UE,
-                   UE->pdsch_vars[eNB_id]->llr[cw_sic],     
+                   UE->pdsch_vars[eNB_id]->llr[cw_sic],
                    &UE->frame_parms,
                    UE->dlsch[0][cw_sic],
                    UE->dlsch[0][cw_sic]->harq_processes[UE->dlsch[0][cw_sic]->current_harq_pid],
                    subframe,
                    UE->dlsch[0][cw_sic]->current_harq_pid,
                    1,llr8_flag);
-                stop_meas(&UE->dlsch_decoding_stats); 
-               
-                 
-                if (ret[1] <= UE->dlsch[0][cw_sic]->max_turbo_iterations ) {  //if (ret <= UE->dlsch[0][cw_sic]->max_turbo_iterations ) 
-                
+                stop_meas(&UE->dlsch_decoding_stats);
+
+
+                if (ret[1] <= UE->dlsch[0][cw_sic]->max_turbo_iterations ) {  //if (ret <= UE->dlsch[0][cw_sic]->max_turbo_iterations )
+
               avg_iter[1] += ret[1];
               iter_trials[1]++;
-                  
-                  
+
+
                   if (n_frames==2) {
               printf("cw sic %d, round %d: No DLSCH errors found, uncoded ber %f\n",cw_sic,round,uncoded_ber);
           #ifdef PRINT_BYTES
@@ -3845,29 +3845,29 @@ n(tikz_fname,"w");
                   Kr = UE->dlsch[0][cw_sic]->harq_processes[0]->Kminus;
                 else
                   Kr = UE->dlsch[0][cw_sic]->harq_processes[0]->Kplus;
-                
+
                 Kr_bytes = Kr>>3;
-                
+
                 printf("Decoded_output (Segment %d):\n",s);
                 for (i=0;i<Kr_bytes;i++)
                   printf("%d : %x (%x)\n",i,UE->dlsch[0][cw_sic]->harq_processes[0]->c[s][i],
                    UE->dlsch[0][cw_sic]->harq_processes[0]->c[s][i]^eNB->dlsch[0][cw_sic]->harq_processes[0]->c[s][i]);
               }
           #endif
-                  }  
-                  
-                }    
-                  
-                  
+                  }
+
+                }
+
+
                 else {
                   errs[cw_sic][round]++;
                  // exit(0);
-                  
+
                   if (cw_sic==1) {
               avg_iter[1] += ret[1]-1;
               iter_trials[1]++;
                   }
-                  
+
                   if (n_frames==2) {
               //if ((n_frames==1) || (SNR>=30)) {
               printf("cw sic %d, round %d: DLSCH errors found, uncoded ber %f\n",cw_sic,round,uncoded_ber);
@@ -3877,9 +3877,9 @@ n(tikz_fname,"w");
                   Kr = UE->dlsch[0][cw_sic]->harq_processes[0]->Kminus;
                 else
                   Kr = UE->dlsch[0][cw_sic]->harq_processes[0]->Kplus;
-                
+
                 Kr_bytes = Kr>>3;
-                
+
                 printf("Decoded_output (Segment %d):\n",s);
                 for (i=0;i<Kr_bytes;i++)
                   printf("%d : %x (%x)\n",i,UE->dlsch[0][cw_sic]->harq_processes[0]->c[s][i],
@@ -3888,33 +3888,33 @@ n(tikz_fname,"w");
           #endif
                   } //n_frames==1
                  // exit(0);
-                } //if (ret > UE->dlsch[0][cw_sic]->max_turbo_iterations ) 
+                } //if (ret > UE->dlsch[0][cw_sic]->max_turbo_iterations )
               } //for (int cw_1=cw_to_decode_interf_free; cw_1<cw_to_decode_interf_free+1;cw_1++)
-                    
-                
+
+
             } //if SIC
-            
-            
+
+
           } //if (ret <= UE->dlsch[0][cw_non_sic]->max_turbo_iterations )
             else {
               errs[cw_non_sic][round]++;
-              
+
               if (cw_non_sic==0) {
           avg_iter[0] += ret[0]-1;
           iter_trials[0]++;
               }
-              
+
                 if (rx_type==rx_SIC_dual_stream) {
            errs[1][round]++;
               }
-              
+
                 if (cw_non_sic==1) {
           avg_iter[1] += ret[1]-1;
           iter_trials[1]++;
               }
-              
-                      
-              if (n_frames==2) {
+
+
+              if (n_frames==1) {
           //if ((n_frames==1) || (SNR>=30)) {
           printf("cw %d, round %d: DLSCH errors found, uncoded ber %f\n",cw_non_sic,round,uncoded_ber);
       #ifdef PRINT_BYTES
@@ -3923,9 +3923,9 @@ n(tikz_fname,"w");
               Kr = UE->dlsch[0][cw_non_sic]->harq_processes[0]->Kminus;
             else
               Kr = UE->dlsch[0][cw_non_sic]->harq_processes[0]->Kplus;
-            
+
             Kr_bytes = Kr>>3;
-            
+
             printf("Decoded_output (Segment %d):\n",s);
             for (i=0;i<Kr_bytes;i++)
               printf("%d : %x (%x)\n",i,UE->dlsch[0][cw_non_sic]->harq_processes[0]->c[s][i],
@@ -3935,10 +3935,10 @@ n(tikz_fname,"w");
               }
             }
           }
-        
+
           stop_meas(&UE->phy_proc_rx);
-          
-          if (n_frames==2) {
+
+          if (n_frames==1) {
 
             //rxsig
             sprintf(fname,"rxsig0_r%d.m",round);
@@ -3998,7 +3998,7 @@ n(tikz_fname,"w");
                UE->frame_parms.ofdm_symbol_size*nsymb,1,1);
             }
             //pdsch_vars
-            //dump_dlsch2(UE,eNB_id,coded_bits_per_codeword[0],round,UE->dlsch[0][0]->current_harq_pid);
+            dump_dlsch2(UE,eNB_id,coded_bits_per_codeword[0],round,UE->dlsch[0][0]->current_harq_pid);
             /*
               write_output("dlsch_e.m","e",eNB->dlsch[0][0]->harq_processes[0]->e,coded_bits_per_codeword,1,4);
               write_output("dlsch_ber_bit.m","ber_bit",uncoded_ber_bit,coded_bits_per_codeword,1,0);
@@ -4009,56 +4009,56 @@ n(tikz_fname,"w");
             //pdcch_vars
             write_output("pdcchF0_ext.m","pdcchF_ext", UE->pdcch_vars[eNB_id]->rxdataF_ext[0],2*3*UE->frame_parms.ofdm_symbol_size,1,1);
             write_output("pdcch00_ch0_ext.m","pdcch00_ch0_ext",UE->pdcch_vars[eNB_id]->dl_ch_estimates_ext[0],300*3,1,1);
-            
+
             write_output("pdcch_rxF_comp0.m","pdcch0_rxF_comp0",UE->pdcch_vars[eNB_id]->rxdataF_comp[0],4*300,1,1);
             write_output("pdcch_rxF_llr.m","pdcch_llr",UE->pdcch_vars[eNB_id]->llr,2400,1,4);
-            
-            
+
+
             if (round == 3) exit(-1);
           }
 
           if (xforms==1) {
-            phy_scope_UE(form_ue, 
+            phy_scope_UE(form_ue,
              UE,
              eNB_id,
              0,// UE_id
-             subframe); 
+             subframe);
           }
-          
+
           round++;
         }  //round
 
         if(transmission_mode != 3 && transmission_mode !=4 ){
           if ((errs[0][0]>=n_frames/10) && (trials>(n_frames/2)) )
           break;
-        }  
-            
+        }
+
         //len = chbch_stats_read(stats_buffer,NULL,0,4096);
         //printf("%s\n\n",stats_buffer);
-          
+
         if (UE->proc.proc_rxtx[0].frame_rx % 10 == 0) {
           UE->bitrate[eNB_id] = (UE->total_TBS[eNB_id] - UE->total_TBS_last[eNB_id])*10;
           LOG_D(PHY,"[UE %d] Calculating bitrate: total_TBS = %d, total_TBS_last = %d, bitrate = %d kbits/s\n",UE->Mod_id,UE->total_TBS[eNB_id],UE->total_TBS_last[eNB_id],UE->bitrate[eNB_id]/1000);
           UE->total_TBS_last[eNB_id] = UE->total_TBS[eNB_id];
         }
 
-          
+
         UE->proc.proc_rxtx[0].frame_rx++;
-       
-        /* calculate the total processing time for each packet, 
+
+        /* calculate the total processing time for each packet,
          * get the max, min, and number of packets that exceed t>2000us
          */
-        double t_tx = (double)eNB->phy_proc_tx.p_time/cpu_freq_GHz/1000.0;        
-        double t_tx_ifft = (double)eNB->ofdm_mod_stats.p_time/cpu_freq_GHz/1000.0;        
-        double t_tx_mod = (double)eNB->dlsch_modulation_stats.p_time/cpu_freq_GHz/1000.0;        
-        double t_tx_enc = (double)eNB->dlsch_encoding_stats.p_time/cpu_freq_GHz/1000.0;        
-        
-        
-        double t_rx = (double)UE->phy_proc_rx.p_time/cpu_freq_GHz/1000.0;        
-        double t_rx_fft = (double)UE->ofdm_demod_stats.p_time/cpu_freq_GHz/1000.0;        
-        double t_rx_demod = (double)UE->dlsch_rx_pdcch_stats.p_time/cpu_freq_GHz/1000.0;        
-        double t_rx_dec = (double)UE->dlsch_decoding_stats.p_time/cpu_freq_GHz/1000.0;    
-              
+        double t_tx = (double)eNB->phy_proc_tx.p_time/cpu_freq_GHz/1000.0;
+        double t_tx_ifft = (double)eNB->ofdm_mod_stats.p_time/cpu_freq_GHz/1000.0;
+        double t_tx_mod = (double)eNB->dlsch_modulation_stats.p_time/cpu_freq_GHz/1000.0;
+        double t_tx_enc = (double)eNB->dlsch_encoding_stats.p_time/cpu_freq_GHz/1000.0;
+
+
+        double t_rx = (double)UE->phy_proc_rx.p_time/cpu_freq_GHz/1000.0;
+        double t_rx_fft = (double)UE->ofdm_demod_stats.p_time/cpu_freq_GHz/1000.0;
+        double t_rx_demod = (double)UE->dlsch_rx_pdcch_stats.p_time/cpu_freq_GHz/1000.0;
+        double t_rx_dec = (double)UE->dlsch_decoding_stats.p_time/cpu_freq_GHz/1000.0;
+
               if (t_tx > t_tx_max)
           t_tx_max = t_tx;
               if (t_tx < t_tx_min)
@@ -4071,13 +4071,13 @@ n(tikz_fname,"w");
           n_tx_dropped++;
               if (t_rx > 2000)
           n_rx_dropped++;
-              
+
 
               push_front(&time_vector_tx, t_tx);
               push_front(&time_vector_tx_ifft, t_tx_ifft);
               push_front(&time_vector_tx_mod, t_tx_mod);
               push_front(&time_vector_tx_enc, t_tx_enc);
-        
+
               push_front(&time_vector_rx, t_rx);
               push_front(&time_vector_rx_fft, t_rx_fft);
               push_front(&time_vector_rx_demod, t_rx_demod);
@@ -4179,7 +4179,7 @@ n(tikz_fname,"w");
              SNR,
              (double)tx_lev_dB+10*log10(UE->frame_parms.ofdm_symbol_size/(NB_RB*12)),
               sigma2_dB);
-      
+
       printf("Errors (%d(%d)/%d %d(%d)/%d %d(%d)/%d %d(%d)/%d), Pe = (%e(%e),%e(%e),%e(%e),%e(%e)),"
               "dci_errors %d/%d, Pe = %e => effective rate %f  (%2.1f%%,%f, %f), normalized delay %f (%f), "
               "throughput stream 0 = %f , throughput stream 1 = %f, system throughput = %f , rate 0 = %f , rate 1 = %f \n",
@@ -4220,8 +4220,8 @@ n(tikz_fname,"w");
        rate[1]*get_Qm(eNB->dlsch[0][1]->harq_processes[0]->mcs)*(1-((double)errs[1][0]/(double)round_trials[0])),
        rate[0],
        rate[1]);
-        
-      
+
+
 
       if (print_perf==1) {
         printf("eNB TX function statistics (per 1ms subframe)\n\n");
@@ -4369,19 +4369,19 @@ n(tikz_fname,"w");
                 rate[1]*get_Qm(eNB->dlsch[0][1]->harq_processes[0]->mcs)*(1-((double)errs[1][0]/(double)round_trials[0])),
                 dci_errors);
             }
-   
+
 
       if(abstx){ //ABSTRACTION
-  if ((transmission_mode != 3)&& (transmission_mode != 4)) {         
+  if ((transmission_mode != 3)&& (transmission_mode != 4)) {
     blerr[0][0] = (double)errs[0][0]/(round_trials[0]);
-    
+
     if(num_rounds>1){
       blerr[0][1] = (double)errs[0][1]/(round_trials[1]);
-      
+
       blerr[0][2] = (double)errs[0][2]/(round_trials[2]);
-      
+
       blerr[0][3] = (double)errs[0][3]/(round_trials[3]);
-      
+
       fprintf(csv_fd,"%e;%e;%e;%e;\n",blerr[0][0],blerr[0][1],blerr[0][2],blerr[0][3]);
     }
     else {
@@ -4405,7 +4405,7 @@ n(tikz_fname,"w");
     }
   }
      }
-            
+
       if ( (test_perf != 0) && (100 * effective_rate > test_perf )) {
   //fprintf(time_meas_fd,"SNR; MCS; TBS; rate; err0; trials0; err1; trials1; err2; trials2; err3; trials3; dci_err\n");
   if ((transmission_mode != 3) && (transmission_mode != 4)) {
@@ -4467,7 +4467,7 @@ n(tikz_fname,"w");
       errs[0][3],
       round_trials[3],
       dci_errors);
-    
+
     //fprintf(time_meas_fd,"SNR; MCS; TBS; rate; DL_DECOD_ITER; err0; trials0; err1; trials1; err2; trials2; err3; trials3; PE; dci_err;PE;ND;\n");
     fprintf(time_meas_fd,"%f;%d;%d;%d;%d;%f;%2.1f;%f;%f;%d;%d;%d;%d;%d;%d;%d;%d;%e;%e;%e;%e;%d;%d;%e;%f;%f;",
       SNR,
@@ -4497,7 +4497,7 @@ n(tikz_fname,"w");
       (1.0*(round_trials[0]-errs[0][0])+2.0*(round_trials[1]-errs[0][1])+3.0*(round_trials[2]-errs[0][2])+4.0*(round_trials[3]-errs[0][3]))/((double)round_trials[0]));
   }
   //fprintf(time_meas_fd,"eNB_PROC_TX(%d); OFDM_MOD(%d); DL_MOD(%d); DL_SCR(%d); DL_ENC(%d); UE_PROC_RX(%d); OFDM_DEMOD_CH_EST(%d); RX_PDCCH(%d); CH_COMP_LLR(%d); DL_USCR(%d); DL_DECOD(%d);\n",
-  fprintf(time_meas_fd,"%d; %d; %d; %d; %d; %d; %d; %d; %d; %d; %d;", 
+  fprintf(time_meas_fd,"%d; %d; %d; %d; %d; %d; %d; %d; %d; %d; %d;",
     eNB->phy_proc_tx.trials,
     eNB->ofdm_mod_stats.trials,
     eNB->dlsch_modulation_stats.trials,
@@ -4525,31 +4525,31 @@ n(tikz_fname,"w");
     );
   //fprintf(time_meas_fd,"eNB_PROC_TX_STD;eNB_PROC_TX_MAX;eNB_PROC_TX_MIN;eNB_PROC_TX_MED;eNB_PROC_TX_Q1;eNB_PROC_TX_Q3;eNB_PROC_TX_DROPPED;\n");
   fprintf(time_meas_fd,"%f;%f;%f;%f;%f;%f;%d;", std_phy_proc_tx, t_tx_max, t_tx_min, tx_median, tx_q1, tx_q3, n_tx_dropped);
-  
+
   //fprintf(time_meas_fd,"IFFT;\n");
   fprintf(time_meas_fd,"%f;%f;%f;%f;", std_phy_proc_tx_ifft, tx_ifft_median, tx_ifft_q1, tx_ifft_q3);
-  
+
   //fprintf(time_meas_fd,"MOD;\n");
   fprintf(time_meas_fd,"%f;%f;%f;%f;", std_phy_proc_tx_mod, tx_mod_median, tx_mod_q1, tx_mod_q3);
-  
+
   //fprintf(time_meas_fd,"ENC;\n");
   fprintf(time_meas_fd,"%f;%f;%f;%f;", std_phy_proc_tx_enc, tx_enc_median, tx_enc_q1, tx_enc_q3);
-  
-  
+
+
   //fprintf(time_meas_fd,"UE_PROC_RX_STD;UE_PROC_RX_MAX;UE_PROC_RX_MIN;UE_PROC_RX_MED;UE_PROC_RX_Q1;UE_PROC_RX_Q3;UE_PROC_RX_DROPPED;\n");
   fprintf(time_meas_fd,"%f;%f;%f;%f;%f;%f;%d;", std_phy_proc_rx, t_rx_max, t_rx_min, rx_median, rx_q1, rx_q3, n_rx_dropped);
 
   //fprintf(time_meas_fd,"FFT;\n");
   fprintf(time_meas_fd,"%f;%f;%f;%f;", std_phy_proc_rx_fft, rx_fft_median, rx_fft_q1, rx_fft_q3);
-  
+
   //fprintf(time_meas_fd,"DEMOD;\n");
   fprintf(time_meas_fd,"%f;%f;%f;%f;", std_phy_proc_rx_demod,rx_demod_median, rx_demod_q1, rx_demod_q3);
-  
+
   //fprintf(time_meas_fd,"DEC;\n");
   fprintf(time_meas_fd,"%f;%f;%f;%f\n", std_phy_proc_rx_dec, rx_dec_median, rx_dec_q1, rx_dec_q3);
-  
 
-  /*  
+
+  /*
     fprintf(time_meas_fd,"%d;%d;%d;%d;%d;%d;%d;%d;%d;%d;%d;",
     eNB->phy_proc_tx.trials,
     eNB->ofdm_mod_stats.trials,
@@ -4573,34 +4573,34 @@ n(tikz_fname,"w");
       if (((double)errs[0][0]/(round_trials[0]))<1e-2 && ((double)errs[1][0]/(round_trials[0]))<1e-2)
       break;
     }
-    else{ 
-      if (((double)errs[0][0]/(round_trials[0]))<1e-2) 
+    else{
+      if (((double)errs[0][0]/(round_trials[0]))<1e-2)
       break;
-    
+
       }
   }
   else {
-    
+
      if ((rx_type==rx_IC_dual_stream) || (rx_type==rx_standard) || (rx_type==rx_SIC_dual_stream)) {
       if (((double)errs[0][0]/(round_trials[0]))<1e-3 && ((double)errs[1][0]/(round_trials[0]))<1e-3)
       break;
     }
-    else{ 
-      if (((double)errs[0][0]/(round_trials[0]))<1e-3) 
+    else{
+      if (((double)errs[0][0]/(round_trials[0]))<1e-3)
       break;
-    
+
       }
-    
+
   }
-  
-      
+
+
       if (n_frames==1)
   break;
 
       }// SNR
-      
+
   } //ch_realization
-  
+
   fclose(bler_fd);
 
   if (test_perf !=0)