diff --git a/cmake_targets/CMakeLists.txt b/cmake_targets/CMakeLists.txt
index 6cce5e306e2c665f217e3e39c80be498ba9ef322..67b2360517b3666ff1ca30edf47028a12950f79a 100644
--- a/cmake_targets/CMakeLists.txt
+++ b/cmake_targets/CMakeLists.txt
@@ -597,7 +597,7 @@ add_boolean_option(NAS_ADDRESS_FIX False "specific to oaisim: for nasmesh driver
 add_boolean_option(NAS_NETLINK False "???? Must be True to compile nasmesh driver without rtai")
 add_boolean_option(OAISIM False "specific to oaisim")
 add_boolean_option(OAI_NW_DRIVER_USE_NETLINK True "????")
-add_boolean_option(EMULATE_RF True "allows to run lte-softmodem without HW")
+add_boolean_option(EMULATE_RF False "allows to run lte-softmodem without HW")
 
 add_boolean_option(USE_MME False "this flag is used only one time in lte-softmodem.c")
 add_list_string_option(PACKAGE_NAME "NotDefined" "As per attribute name")
diff --git a/openair1/PHY/LTE_TRANSPORT/dlsch_coding.c b/openair1/PHY/LTE_TRANSPORT/dlsch_coding.c
index 461bf604420a377046cd0cb71e1e6031adb963c4..fce305d9db635647a95991b7524167775d39fb07 100644
--- a/openair1/PHY/LTE_TRANSPORT/dlsch_coding.c
+++ b/openair1/PHY/LTE_TRANSPORT/dlsch_coding.c
@@ -58,6 +58,8 @@
 		     uint64_t deadline,
 		     uint64_t period);*/
 
+extern int codingw;
+
 void free_eNB_dlsch(LTE_eNB_DLSCH_t *dlsch)
 {
   int i;
@@ -606,16 +608,28 @@ int dlsch_encoding_2threads(PHY_VARS_eNB *eNB,
   }
   stop_meas(te_main_stats);
 
-  // wait for worker to finish
   start_meas(te_wait_stats);
-  wait_on_busy_condition(&proc->tep[0].mutex_te,&proc->tep[0].cond_te,&proc->tep[0].instance_cnt_te,"te thread 0");
-  wait_on_busy_condition(&proc->tep[1].mutex_te,&proc->tep[1].cond_te,&proc->tep[1].instance_cnt_te,"te thread 1");
-  wait_on_busy_condition(&proc->tep[2].mutex_te,&proc->tep[2].cond_te,&proc->tep[2].instance_cnt_te,"te thread 2");
+  if(worker_num == 1)
+  {
+    wait_on_busy_condition(&proc->tep[0].mutex_te,&proc->tep[0].cond_te,&proc->tep[0].instance_cnt_te,"te thread 0");
+  }
+  else if(worker_num == 2)
+  {
+    wait_on_busy_condition(&proc->tep[0].mutex_te,&proc->tep[0].cond_te,&proc->tep[0].instance_cnt_te,"te thread 0");
+    wait_on_busy_condition(&proc->tep[1].mutex_te,&proc->tep[1].cond_te,&proc->tep[1].instance_cnt_te,"te thread 1");
+  }
+  else
+  {
+    wait_on_busy_condition(&proc->tep[0].mutex_te,&proc->tep[0].cond_te,&proc->tep[0].instance_cnt_te,"te thread 0");
+    wait_on_busy_condition(&proc->tep[1].mutex_te,&proc->tep[1].cond_te,&proc->tep[1].instance_cnt_te,"te thread 1");
+    wait_on_busy_condition(&proc->tep[2].mutex_te,&proc->tep[2].cond_te,&proc->tep[2].instance_cnt_te,"te thread 2");
+  }
   stop_meas(te_wait_stats);
-  if(opp_enabled == 1 && te_wait_stats->diff_now>100*3000){
+  
+  /*if(opp_enabled == 1 && te_wait_stats->diff_now>100*3000){
     print_meas_now(te_wait_stats,"coding_wait",stderr);
-	printf("delay in wait on codition in frame_rx: %d \n",proc->frame_rx);
-  }
+	printf("coding delay in wait on codition in frame_rx: %d \n",proc->frame_rx);
+  }*/
 
 
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_ENCODING, VCD_FUNCTION_OUT);
@@ -654,7 +668,7 @@ int dlsch_encoding_all(PHY_VARS_eNB *eNB,
 		}
 	}
 
-	if(C >= 8&&get_nprocs()>=6)//one main three worker
+	if(C >= 8 && get_nprocs()>8 && codingw)//one main three worker
 	{
 		encoding_return =
 		dlsch_encoding_2threads(eNB,
@@ -672,7 +686,7 @@ int dlsch_encoding_all(PHY_VARS_eNB *eNB,
                    i_stats,
                    3);
 	}
-    else if(C >= 6&&get_nprocs()>=4)//one main two worker
+    else if(C >= 6 && get_nprocs()>=6 && codingw)//one main two worker
     {
         encoding_return =
 		dlsch_encoding_2threads(eNB,
@@ -690,7 +704,7 @@ int dlsch_encoding_all(PHY_VARS_eNB *eNB,
                    i_stats,
                    2);
     }
-    else if(C >= 4&&get_nprocs()>=2)//one main one worker
+    else if(C >= 4 && get_nprocs()>=4 && codingw)//one main one worker
     {
         encoding_return =
 		dlsch_encoding_2threads(eNB,
diff --git a/openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c b/openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c
index 19c7f6aa54a330f4c399d66a16790d63af3a4924..015279c9c24674486193dbf5151faca2ef2fc532 100644
--- a/openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c
+++ b/openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c
@@ -52,6 +52,8 @@
 #include "UTIL/LOG/vcd_signal_dumper.h"
 //#define DEBUG_ULSCH_DECODING
 
+extern int codingw;
+
 void free_eNB_ulsch(LTE_eNB_ULSCH_t *ulsch)
 {
 
@@ -817,7 +819,7 @@ int ulsch_decoding_data_all(PHY_VARS_eNB *eNB,int UE_id,int harq_pid,int llr8_fl
   int ret = 0;
   LTE_eNB_ULSCH_t *ulsch = eNB->ulsch[UE_id];
   LTE_UL_eNB_HARQ_t *ulsch_harq = ulsch->harq_processes[harq_pid];
-  if(ulsch_harq->C>3)
+  if(ulsch_harq->C>3 && get_nprocs()>=2 && codingw)
   {
     ret = ulsch_decoding_data_2thread(eNB,UE_id,harq_pid,llr8_flag);
   }
diff --git a/openair1/SCHED/ru_procedures.c b/openair1/SCHED/ru_procedures.c
index 2e460e7571c2c8cf640de8b4518ba71cfd543692..decbe38c6908d764a43fe5a99766524e322b2bde 100644
--- a/openair1/SCHED/ru_procedures.c
+++ b/openair1/SCHED/ru_procedures.c
@@ -222,10 +222,10 @@ void feptx_ofdm_2thread(RU_t *ru) {
   start_meas(&ru->ofdm_mod_wait_stats);
   wait_on_busy_condition(&proc->mutex_feptx,&proc->cond_feptx,&proc->instance_cnt_feptx,"feptx thread");  
   stop_meas(&ru->ofdm_mod_wait_stats);
-  if(opp_enabled == 1 && ru->ofdm_mod_wait_stats.diff_now>30*3000){
+  /*if(opp_enabled == 1 && ru->ofdm_mod_wait_stats.diff_now>30*3000){
     print_meas_now(&ru->ofdm_mod_wait_stats,"fep wakeup",stderr);
     printf("delay in feptx wait on codition in frame_rx: %d  subframe_rx: %d \n",proc->frame_tx,proc->subframe_tx);
-  }
+  }*/
 
   stop_meas(&ru->ofdm_mod_stats);
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_OFDM , 0 );
diff --git a/openair2/LAYER2/MAC/eNB_scheduler_phytest.c b/openair2/LAYER2/MAC/eNB_scheduler_phytest.c
index 820fd526d36780507965dc5a8dc50eebecdd9fcb..203358e0e18c7e152d72f68586f27e57aba43505 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler_phytest.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler_phytest.c
@@ -71,7 +71,7 @@ schedule_ue_spec_phy_test(
   uint16_t                       rnti      = 0x1235;
   uint32_t                       rb_alloc  = 0x1FFFFFFF;
   int32_t                        tpc       = 1;
-  int32_t                        mcs       = 0;
+  int32_t                        mcs       = 28;
   int32_t                        cqi       = 15;
   int32_t                        ndi       = subframeP/5;
   int32_t                        dai       = 0;
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpx310.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpx310.conf
index c1c858f95e1e2ed5cb84d446f6a4798ddeaad1e5..6c7c319a11239189d7c314f3d01c829441301cf2 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpx310.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpx310.conf
@@ -150,10 +150,10 @@ eNBs =
     NETWORK_INTERFACES :
     {
 
-        ENB_INTERFACE_NAME_FOR_S1_MME            = "em1";
-        ENB_IPV4_ADDRESS_FOR_S1_MME              = "192.168.12.155/24";
-        ENB_INTERFACE_NAME_FOR_S1U               = "em1";
-        ENB_IPV4_ADDRESS_FOR_S1U                 = "192.168.12.155/24";
+        ENB_INTERFACE_NAME_FOR_S1_MME            = "eth6";
+        ENB_IPV4_ADDRESS_FOR_S1_MME              = "192.168.12.111/24";
+        ENB_INTERFACE_NAME_FOR_S1U               = "eth6";
+        ENB_IPV4_ADDRESS_FOR_S1U                 = "192.168.12.111/24";
         ENB_PORT_FOR_S1U                         = 2152; # Spec 2152
     };
   }
diff --git a/targets/RT/USER/lte-enb.c b/targets/RT/USER/lte-enb.c
index d1ec7872d3412f61ee9aa59b0e17a89e50ed2333..184526813880a0335132f5a884a2d43f14ed88c9 100644
--- a/targets/RT/USER/lte-enb.c
+++ b/targets/RT/USER/lte-enb.c
@@ -150,6 +150,7 @@ void wakeup_prach_eNB(PHY_VARS_eNB *eNB,RU_t *ru,int frame,int subframe);
 #ifdef Rel14
 void wakeup_prach_eNB_br(PHY_VARS_eNB *eNB,RU_t *ru,int frame,int subframe);
 #endif
+extern int codingw;
 
 static inline int rxtx(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, char *thread_name) {
 
@@ -182,14 +183,25 @@ static inline int rxtx(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, char *thread_nam
   
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_ULSCH_SCHEDULER , 0 );
   
-  wakeup_tx(eNB,eNB->proc.ru_proc);
-  //if(oai_exit) return(-1);
-  //phy_procedures_eNB_TX(eNB, proc, no_relay, NULL, 1);
-  //
-  //pthread_mutex_lock(&eNB->proc.ru_proc->mutex_eNBs);
-  //++eNB->proc.ru_proc->instance_cnt_eNBs;
-  //pthread_cond_signal(&eNB->proc.ru_proc->cond_eNBs);
-  //pthread_mutex_unlock(&eNB->proc.ru_proc->mutex_eNBs);
+  if(get_nprocs() > 8)
+  {
+    wakeup_tx(eNB,eNB->proc.ru_proc);
+  }
+  else if(get_nprocs() > 4)
+  {
+    if(oai_exit) return(-1);
+    phy_procedures_eNB_TX(eNB, proc, no_relay, NULL, 1);
+    
+    pthread_mutex_lock(&eNB->proc.ru_proc->mutex_eNBs);
+    ++eNB->proc.ru_proc->instance_cnt_eNBs;
+    pthread_cond_signal(&eNB->proc.ru_proc->cond_eNBs);
+    pthread_mutex_unlock(&eNB->proc.ru_proc->mutex_eNBs);
+  }
+  else
+  {
+    if(oai_exit) return(-1);
+    phy_procedures_eNB_TX(eNB, proc, no_relay, NULL, 1);
+  }
 
   stop_meas( &softmodem_stats_rxtx_sf );
   
@@ -350,10 +362,6 @@ void eNB_top(PHY_VARS_eNB *eNB, int frame_rx, int subframe_rx, char *string,RU_t
     if (rxtx(eNB,proc_rxtx,string) < 0) LOG_E(PHY,"eNB %d CC_id %d failed during execution\n",eNB->Mod_id,eNB->CC_id);
     LOG_D(PHY,"eNB_top out %p (proc %p, CC_id %d), frame %d, subframe %d, instance_cnt_prach %d\n",
 	  (void*)pthread_self(), proc, eNB->CC_id, proc->frame_rx,proc->subframe_rx,proc->instance_cnt_prach);
-	pthread_mutex_lock(&ru_proc->mutex_eNBs);
-	++ru_proc->instance_cnt_eNBs;
-	pthread_mutex_unlock(&ru_proc->mutex_eNBs);
-	pthread_cond_signal(&ru_proc->cond_eNBs);
   }
 }
 
@@ -824,9 +832,13 @@ void init_eNB_proc(int inst) {
 	
 	
 	//////////////////////////////////////need to modified////////////////*****
-	init_te_thread(eNB);
-	init_td_thread(eNB,attr_td);
-	if (opp_enabled == 1) pthread_create(&proc->process_stats_thread,NULL,process_stats_thread,(void*)eNB);
+    //printf("//////////////////////////////////////////////////////////////////**************************************************************** codingw = %d\n",codingw);
+    if(get_nprocs() > 2 && codingw)
+    {
+      init_te_thread(eNB);
+      init_td_thread(eNB,attr_td);
+    }
+    if (opp_enabled == 1) pthread_create(&proc->process_stats_thread,NULL,process_stats_thread,(void*)eNB);
 
     
   }
diff --git a/targets/RT/USER/lte-ru.c b/targets/RT/USER/lte-ru.c
index 76442c8ce964f3a4ab4aed8aaca59f4078d51840..2fe02a10e826e4f48c4b464b457ca2ac1decd189 100644
--- a/targets/RT/USER/lte-ru.c
+++ b/targets/RT/USER/lte-ru.c
@@ -113,7 +113,7 @@ unsigned short config_frames[4] = {2,9,11,13};
 
 extern volatile int                    oai_exit;
 extern int numerology;
-extern int fh_two_thread;
+extern int fepw;
 
 
 extern void  phy_init_RU(RU_t*);
@@ -681,6 +681,7 @@ void fh_if4p5_north_out(RU_t *ru) {
   if (ru->idx == 0) VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPRX, 0 );
 }
 
+#ifdef EMULATE_RF
 static void* emulatedRF_thread(void* param) {
   RU_proc_t *proc = (RU_proc_t *) param;
   int microsec = 500; // length of time to sleep, in miliseconds
@@ -708,6 +709,7 @@ static void* emulatedRF_thread(void* param) {
   }
   return 0;
 }
+#endif
 
 void rx_rf(RU_t *ru,int *frame,int *subframe) {
 
@@ -716,7 +718,7 @@ void rx_rf(RU_t *ru,int *frame,int *subframe) {
   void *rxp[ru->nb_rx];
   unsigned int rxs;
   int i;
-  openair0_timestamp ts,old_ts;
+  openair0_timestamp ts=0,old_ts=0;
     
   for (i=0; i<ru->nb_rx; i++)
     rxp[i] = (void*)&ru->common.rxdata[i][*subframe*fp->samples_per_tti];
@@ -1024,7 +1026,7 @@ static void* ru_thread_prach_br( void* param ) {
   ru_thread_prach_status = 0;
 
   thread_top_init("ru_thread_prach_br",1,500000,1000000,20000000);
-  wait_sync(ru_thread_prach_br);
+  wait_sync("ru_thread_prach_br");
 
   while (!oai_exit) {
     
@@ -1154,7 +1156,7 @@ void wakeup_eNBs(RU_t *ru) {
 
   LOG_D(PHY,"wakeup_eNBs (num %d) for RU %d\n",ru->num_eNB,ru->idx);
 
-  if (0){//(ru->num_eNB==1) {
+  if (get_nprocs() <= 4) {
     // call eNB function directly
   
     char string[20];
@@ -1165,10 +1167,10 @@ void wakeup_eNBs(RU_t *ru) {
   else {
     
     for (i=0;i<ru->num_eNB;i++)
-      {
-	if (ru->wakeup_rxtx(eNB_list[i],ru) < 0)
+    {
+	  if (ru->wakeup_rxtx(eNB_list[i],ru) < 0)
 	  LOG_E(PHY,"could not wakeup eNB rxtx process for subframe %d\n", ru->proc.subframe_rx);
-      }
+    }
   }
 }
 
@@ -1392,7 +1394,7 @@ static void* ru_stats_thread(void* param) {
 
   while (!oai_exit) {
      sleep(1);
-     if (opp_enabled == 1) {
+     if (opp_enabled == 1 && fepw) {
        if (ru->feprx) print_meas(&ru->ofdm_demod_stats,"feprx",NULL,NULL);
        if (ru->feptx_ofdm) print_meas(&ru->ofdm_mod_stats,"feptx_ofdm",NULL,NULL);
      }
@@ -1422,17 +1424,10 @@ static void* ru_thread_tx( void* param ) {
     VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME(VCD_SIGNAL_DUMPER_VARIABLES_CPUID_RU_THREAD_TX,sched_getcpu());   
     if (oai_exit) break;   
 
-    if (subframe==9) { 
-      subframe=0;
-      frame++;
-      frame&=1023;
-    } else {
-      subframe++;
-    }
+
 	LOG_D(PHY,"ru_thread_tx: Waiting for TX processing\n");
 	// wait until eNBs are finished subframe RX n and TX n+4
     wait_on_condition(&proc->mutex_eNBs,&proc->cond_eNBs,&proc->instance_cnt_eNBs,"ru_thread_tx");
-	//printf("//////////////////instance_cnt_eNBs = %d\n",proc->instance_cnt_eNBs);//////////////////*********
   	    
   	#ifdef EMULATE_RF
     #else    
@@ -1474,8 +1469,8 @@ static void* ru_thread( void* param ) {
   // set default return value
   thread_top_init("ru_thread",1,400000,500000,500000);
 
-  CPU_SET(1, &cpuset);
-  pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset);
+  //CPU_SET(1, &cpuset);
+  //pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset);
   pthread_setname_np( pthread_self(),"ru thread");
   LOG_I(PHY,"thread ru created id=%ld\n", syscall(__NR_gettid));
 
@@ -1604,24 +1599,23 @@ static void* ru_thread( void* param ) {
     // wakeup all eNB processes waiting for this RU
     if (ru->num_eNB>0) wakeup_eNBs(ru);
 
-    /*
-	if(fh_two_thread == 0)
+    
+	if(get_nprocs() <=4)
 	{
-		// wait until eNBs are finished subframe RX n and TX n+4
-		wait_on_condition(&proc->mutex_eNBs,&proc->cond_eNBs,&proc->instance_cnt_eNBs,"ru_thread");
-	
-	
-		// do TX front-end processing if needed (precoding and/or IDFTs)
-		if (ru->feptx_prec) ru->feptx_prec(ru);
-	
-		// do OFDM if needed
-		if ((ru->fh_north_asynch_in == NULL) && (ru->feptx_ofdm)) ru->feptx_ofdm(ru);
-		// do outgoing fronthaul (south) if needed
-		if ((ru->fh_north_asynch_in == NULL) && (ru->fh_south_out)) ru->fh_south_out(ru);
-	
-		if (ru->fh_north_out) ru->fh_north_out(ru);
+        #ifdef EMULATE_RF
+        #else
+        // do TX front-end processing if needed (precoding and/or IDFTs)
+        if (ru->feptx_prec) ru->feptx_prec(ru);
+        
+        // do OFDM if needed
+        if ((ru->fh_north_asynch_in == NULL) && (ru->feptx_ofdm)) ru->feptx_ofdm(ru);
+        // do outgoing fronthaul (south) if needed
+        if ((ru->fh_north_asynch_in == NULL) && (ru->fh_south_out)) ru->fh_south_out(ru);
+        
+        if (ru->fh_north_out) ru->fh_north_out(ru);
+        #endif
 	}
-    */
+    
   }
   
 
@@ -1809,7 +1803,7 @@ void init_RU_proc(RU_t *ru) {
   pthread_create( &proc->pthread_emulateRF, attr_emulateRF, emulatedRF_thread, (void*)proc );
 #endif
 
-  if (fh_two_thread==1)
+  if (get_nprocs() > 4)
     pthread_create( &proc->pthread_FH1, attr_FH1, ru_thread_tx, (void*)ru );
 
   if (ru->function == NGFI_RRU_IF4p5) {
@@ -1832,7 +1826,7 @@ void init_RU_proc(RU_t *ru) {
     
   }
 
-  if (get_nprocs()>=2) { 
+  if (get_nprocs()> 2 && fepw) { 
     if (ru->feprx) init_fep_thread(ru,NULL); 
     if (ru->feptx_ofdm) init_feptx_thread(ru,NULL);
   } 
diff --git a/targets/RT/USER/lte-softmodem.c b/targets/RT/USER/lte-softmodem.c
index cb2aee9df4ed9c05e8683895fcb5c507c4c368f9..3c54db4db04625b0d171bcec9ef4bcdc20355f92 100644
--- a/targets/RT/USER/lte-softmodem.c
+++ b/targets/RT/USER/lte-softmodem.c
@@ -206,8 +206,9 @@ extern void reset_opp_meas(void);
 extern void print_opp_meas(void);
 
 int transmission_mode=1;
-int numerology = 2;
-int fh_two_thread = 1;
+int numerology = 0;
+int codingw = 1;
+int fepw = 1;
 
 
 
diff --git a/targets/RT/USER/lte-softmodem.h b/targets/RT/USER/lte-softmodem.h
index 058eab8e30379da5ee81843e48d1cb9b6b320617..98aef640d8990a027d19a1bc15503502de680e7e 100644
--- a/targets/RT/USER/lte-softmodem.h
+++ b/targets/RT/USER/lte-softmodem.h
@@ -84,6 +84,8 @@
 #define CONFIG_HLP_NOTWAIT       "don't wait for tracer, start immediately\n"
 #define CONFIG_HLP_TNOFORK       "to ease debugging with gdb\n"
 #define CONFIG_HLP_NUMEROLOGY    "adding numerology for 5G\n"
+#define CONFIG_HLP_CODINGW       "coding worker thread disabled(enable by defult)\n"
+#define CONFIG_HLP_FEPW          "FEP worker thread disabled(enable by defult)\n"
 
 
 /***************************************************************************************************************************************/
@@ -138,37 +140,39 @@ extern int16_t dlsch_demod_shift;
 /*   optname                     helpstr                paramflags                      XXXptr                  defXXXval                            type           numelt   */
 /*---------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
 #define CMDLINE_PARAMS_DESC {  \
-{"rf-config-file",        	 CONFIG_HLP_RFCFGF,	      0,		            strptr:(char **)&rf_config_file,	defstrval:NULL, 		       TYPE_STRING,   sizeof(rf_config_file)}, \
-{"ulsch-max-errors",      	 CONFIG_HLP_ULMAXE,	      0,		            uptr:&ULSCH_max_consecutive_errors,	defuintval:0,			       TYPE_UINT,	  0},			   \
-{"phy-test",              	 CONFIG_HLP_PHYTST,	      PARAMFLAG_BOOL,       iptr:&phy_test,			            defintval:0,			       TYPE_INT,	  0},			   \
-{"usim-test",             	 CONFIG_HLP_USIM,	      PARAMFLAG_BOOL,       u8ptr:&usim_test,			        defintval:0,			       TYPE_UINT8,    0},			   \
-{"mmapped-dma",           	 CONFIG_HLP_DMAMAP,	      PARAMFLAG_BOOL,       uptr:&mmapped_dma,			        defintval:0,			       TYPE_INT,	  0},			   \
-{"external-clock",        	 CONFIG_HLP_EXCCLK,	      PARAMFLAG_BOOL,       uptr:&clock_source,			        defintval:0,			       TYPE_INT,	  0},			   \
-{"wait-for-sync",         	 NULL,  		          PARAMFLAG_BOOL,       iptr:&wait_for_sync,  		        defintval:0,			       TYPE_INT,	  0},			   \
-{"single-thread-disable", 	 CONFIG_HLP_NOSNGLT,	  PARAMFLAG_BOOL,       iptr:&single_thread_flag,		    defintval:1,			       TYPE_INT,	  0},			   \
-{"threadIQ",              	 NULL,  		          0,		            iptr:&(threads.iq),			        defintval:1,			       TYPE_INT,	  0},			   \
-{"threadOneSubframe",     	 NULL,  		          0,		            iptr:&(threads.one),  		        defintval:1,			       TYPE_INT,	  0},			   \
-{"threadTwoSubframe",    	 NULL,  		          0,		            iptr:&(threads.two),  		        defintval:1,			       TYPE_INT,	  0},			   \
-{"threadThreeSubframe",    	 NULL,  		          0,		            iptr:&(threads.three),  		    defintval:1,			       TYPE_INT,	  0},			   \
-{"threadSlot1ProcOne",     	 NULL,  		          0,		            iptr:&(threads.slot1_proc_one),     defintval:1,			       TYPE_INT,	  0},			   \
-{"threadSlot1ProcTwo",    	 NULL,  		          0,		            iptr:&(threads.slot1_proc_two),     defintval:1,			       TYPE_INT,	  0},			   \
-{"dlsch-demod-shift",     	 CONFIG_HLP_DLSHIFT,	  0,		            iptr:(int32_t *)&dlsch_demod_shift,	defintval:0,			       TYPE_INT,	  0},			   \
-{"A" ,  		  	         CONFIG_HLP_TADV,	      0,		            uptr:&timing_advance, 		        defintval:0,			       TYPE_UINT,	  0},			   \
-{"C" ,  		  	         CONFIG_HLP_DLF,	      0,		            uptr:&(downlink_frequency[0][0]),	defuintval:2680000000,  	   TYPE_UINT,	  0},			   \
-{"a" ,  		  	         CONFIG_HLP_CHOFF,	      0,		            iptr:&chain_offset,			        defintval:0,			       TYPE_INT,	  0},			   \
-{"d" ,  		  	         CONFIG_HLP_SOFTS,	      PARAMFLAG_BOOL,	    uptr:(uint32_t *)&do_forms,		    defintval:0,			       TYPE_INT8,	  0},			   \
-{"E" ,  		  	         CONFIG_HLP_TQFS,	      PARAMFLAG_BOOL,       i8ptr:&threequarter_fs,		        defintval:0,			       TYPE_INT8,	  0},			   \
-{"K" ,  		  	         CONFIG_HLP_ITTIL,	      PARAMFLAG_NOFREE,     strptr:&itti_dump_file,		        defstrval:"/tmp/itti.dump",	   TYPE_STRING,   0},			   \
-{"U" ,  		  	         CONFIG_HLP_UE, 	      PARAMFLAG_BOOL,       i8ptr:&UE_flag,			            defintval:0,			       TYPE_INT8,	  0},			   \
-{"m" ,  		  	         CONFIG_HLP_DLMCS,	      0,		            uptr:&target_dl_mcs,  		        defintval:0,			       TYPE_UINT,	  0},			   \
-{"t" ,  		  	         CONFIG_HLP_ULMCS,	      0,		            uptr:&target_ul_mcs,  		        defintval:0,			       TYPE_UINT,	  0},			   \
-{"W" ,  		  	         CONFIG_HLP_L2MONW,	      0,		            strptr:(char **)&in_ip,		        defstrval:"127.0.0.1",  	   TYPE_STRING,   sizeof(in_ip)},	   \
-{"P" ,  		  	         CONFIG_HLP_L2MONP,	      0,		            strptr:(char **)&in_path,		    defstrval:"/tmp/oai_opt.pcap", TYPE_STRING,   sizeof(in_path)},	   \
-{"V" ,  		  	         CONFIG_HLP_VCD,	      PARAMFLAG_BOOL,       iptr:&ouput_vcd,			        defintval:0,			       TYPE_INT,	  0},			   \
-{"q" ,  		  	         CONFIG_HLP_STMON,	      PARAMFLAG_BOOL,       iptr:&opp_enabled,			        defintval:0,			       TYPE_INT,	  0},			   \
-{"S" ,  		  	         CONFIG_HLP_MSLOTS,	      PARAMFLAG_BOOL,       u8ptr:&exit_missed_slots,		    defintval:1,			       TYPE_UINT8,    0},			   \
-{"T" ,  		  	         CONFIG_HLP_TDD,	      PARAMFLAG_BOOL,       iptr:&tddflag,			            defintval:0,			       TYPE_INT,	  0},			   \
-{"numerology" ,  		  	 CONFIG_HLP_NUMEROLOGY,	      PARAMFLAG_BOOL,       iptr:&numerology,			        defintval:0,			       TYPE_INT,	  0}			   \
+{"rf-config-file",          CONFIG_HLP_RFCFGF,      0,                      strptr:(char **)&rf_config_file,    defstrval:NULL,                 TYPE_STRING,    sizeof(rf_config_file)},\
+{"ulsch-max-errors",        CONFIG_HLP_ULMAXE,      0,                      uptr:&ULSCH_max_consecutive_errors, defuintval:0,                   TYPE_UINT,      0},                     \
+{"phy-test",                CONFIG_HLP_PHYTST,      PARAMFLAG_BOOL,         iptr:&phy_test,                     defintval:0,                    TYPE_INT,       0},                     \
+{"usim-test",               CONFIG_HLP_USIM,        PARAMFLAG_BOOL,         u8ptr:&usim_test,                   defintval:0,                    TYPE_UINT8,     0},                     \
+{"mmapped-dma",             CONFIG_HLP_DMAMAP,      PARAMFLAG_BOOL,         uptr:&mmapped_dma,                  defintval:0,                    TYPE_INT,       0},                     \
+{"external-clock",          CONFIG_HLP_EXCCLK,      PARAMFLAG_BOOL,         uptr:&clock_source,                 defintval:0,                    TYPE_INT,       0},                     \
+{"wait-for-sync",           NULL,                   PARAMFLAG_BOOL,         iptr:&wait_for_sync,                defintval:0,                    TYPE_INT,       0},                     \
+{"single-thread-disable",   CONFIG_HLP_NOSNGLT,     PARAMFLAG_BOOL,         iptr:&single_thread_flag,           defintval:1,                    TYPE_INT,       0},                     \
+{"threadIQ",                NULL,                   0,                      iptr:&(threads.iq),                 defintval:1,                    TYPE_INT,       0},                     \
+{"threadOneSubframe",       NULL,                   0,                      iptr:&(threads.one),                defintval:1,                    TYPE_INT,       0},                     \
+{"threadTwoSubframe",       NULL,                   0,                      iptr:&(threads.two),                defintval:1,                    TYPE_INT,       0},                     \
+{"threadThreeSubframe",     NULL,                   0,                      iptr:&(threads.three),              defintval:1,                    TYPE_INT,       0},                     \
+{"threadSlot1ProcOne",      NULL,                   0,                      iptr:&(threads.slot1_proc_one),     defintval:1,                    TYPE_INT,       0},                     \
+{"threadSlot1ProcTwo",      NULL,                   0,                      iptr:&(threads.slot1_proc_two),     defintval:1,                    TYPE_INT,       0},                     \
+{"dlsch-demod-shift",       CONFIG_HLP_DLSHIFT,     0,                      iptr:(int32_t *)&dlsch_demod_shift, defintval:0,                    TYPE_INT,       0},                     \
+{"A" ,                      CONFIG_HLP_TADV,        0,                      uptr:&timing_advance,               defintval:0,                    TYPE_UINT,      0},                     \
+{"C" ,                      CONFIG_HLP_DLF,         0,                      uptr:&(downlink_frequency[0][0]),   defuintval:2680000000,          TYPE_UINT,      0},                     \
+{"a" ,                      CONFIG_HLP_CHOFF,       0,                      iptr:&chain_offset,                 defintval:0,                    TYPE_INT,       0},                     \
+{"d" ,                      CONFIG_HLP_SOFTS,       PARAMFLAG_BOOL,         uptr:(uint32_t *)&do_forms,         defintval:0,                    TYPE_INT8,      0},                     \
+{"E" ,                      CONFIG_HLP_TQFS,        PARAMFLAG_BOOL,         i8ptr:&threequarter_fs,             defintval:0,                    TYPE_INT8,      0},                     \
+{"K" ,                      CONFIG_HLP_ITTIL,       PARAMFLAG_NOFREE,       strptr:&itti_dump_file,             defstrval:"/tmp/itti.dump",     TYPE_STRING,    0},                     \
+{"U" ,                      CONFIG_HLP_UE,          PARAMFLAG_BOOL,         i8ptr:&UE_flag,                     defintval:0,                    TYPE_INT8,      0},                     \
+{"m" ,                      CONFIG_HLP_DLMCS,       0,                      uptr:&target_dl_mcs,                defintval:0,                    TYPE_UINT,      0},                     \
+{"t" ,                      CONFIG_HLP_ULMCS,       0,                      uptr:&target_ul_mcs,                defintval:0,                    TYPE_UINT,      0},                     \
+{"W" ,                      CONFIG_HLP_L2MONW,      0,                      strptr:(char **)&in_ip,             defstrval:"127.0.0.1",          TYPE_STRING,    sizeof(in_ip)},         \
+{"P" ,                      CONFIG_HLP_L2MONP,      0,                      strptr:(char **)&in_path,           defstrval:"/tmp/oai_opt.pcap",  TYPE_STRING,    sizeof(in_path)},       \
+{"V" ,                      CONFIG_HLP_VCD,         PARAMFLAG_BOOL,         iptr:&ouput_vcd,                    defintval:0,                    TYPE_INT,       0},                     \
+{"q" ,                      CONFIG_HLP_STMON,       PARAMFLAG_BOOL,         iptr:&opp_enabled,                  defintval:0,                    TYPE_INT,       0},                     \
+{"S" ,                      CONFIG_HLP_MSLOTS,      PARAMFLAG_BOOL,         u8ptr:&exit_missed_slots,           defintval:1,                    TYPE_UINT8,     0},                     \
+{"T" ,                      CONFIG_HLP_TDD,         PARAMFLAG_BOOL,         iptr:&tddflag,                      defintval:0,                    TYPE_INT,       0},                     \
+{"numerology" ,             CONFIG_HLP_NUMEROLOGY,  PARAMFLAG_BOOL,         iptr:&numerology,                   defintval:0,                    TYPE_INT,       0}                      \
+//{"coding-worker-disable" ,  CONFIG_HLP_CODINGW,     PARAMFLAG_BOOL,         iptr:&codingw,                      defintval:0,                    TYPE_INT,       0},                     \
+//{"fep-worker-disable" ,     CONFIG_HLP_FEPW,        PARAMFLAG_BOOL,         iptr:&fepw,                         defintval:0,                    TYPE_INT,       0}                      \
 }
 
 #define CONFIG_HLP_FLOG          "Enable online log \n"