diff --git a/common/utils/LOG/vcd_signal_dumper.c b/common/utils/LOG/vcd_signal_dumper.c
index 12971c3761ba9e7ca11a05877e4d227a4b9ebd2f..884e296c721dd783b116d45e44677b16d7e6f725 100644
--- a/common/utils/LOG/vcd_signal_dumper.c
+++ b/common/utils/LOG/vcd_signal_dumper.c
@@ -313,6 +313,7 @@ const char* eurecomFunctionsNames[] = {
   "phy_enb_prach_rx",
   "phy_ru_prach_rx",
   "phy_enb_pdcch_tx",
+  "phy_enb_common_tx",
   "phy_enb_rs_tx",
   "phy_ue_generate_prach",
   "phy_ue_ulsch_modulation",
diff --git a/common/utils/LOG/vcd_signal_dumper.h b/common/utils/LOG/vcd_signal_dumper.h
index 7b439d4dd5555a131f5d3cc85dafb915a18fa9f9..d437880c1b5bd379bf33283e3a41a71378f85882 100644
--- a/common/utils/LOG/vcd_signal_dumper.h
+++ b/common/utils/LOG/vcd_signal_dumper.h
@@ -292,6 +292,7 @@ typedef enum {
   VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_ENB_PRACH_RX,
   VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_RU_PRACH_RX,
   VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_ENB_PDCCH_TX,
+  VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_ENB_COMMON_TX,
   VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_ENB_RS_TX,
   VCD_SIGNAL_DUMPER_FUNCTIONS_UE_GENERATE_PRACH,
   VCD_SIGNAL_DUMPER_FUNCTIONS_UE_ULSCH_MODULATION,
diff --git a/common/utils/T/T_defs.h b/common/utils/T/T_defs.h
index 5300237178115a3e46147bf9a758c24700b3a4c9..f7ec8dfbe7f941ff717a1bb06ec2a63900cbeb58 100644
--- a/common/utils/T/T_defs.h
+++ b/common/utils/T/T_defs.h
@@ -41,7 +41,7 @@ typedef struct {
 } T_cache_t;
 
 /* number of VCD functions (to be kept up to date! see in T_messages.txt) */
-#define VCD_NUM_FUNCTIONS 192//190
+#define VCD_NUM_FUNCTIONS 193//192//190
 
 /* number of VCD variables (to be kept up to date! see in T_messages.txt) */
 #define VCD_NUM_VARIABLES 136//128
diff --git a/common/utils/T/T_messages.txt b/common/utils/T/T_messages.txt
index 10dc5fb07cccb3db8b1806749bf38b4a3e6faad5..c5aae75826aea55e2b35592d8a27162694948667 100644
--- a/common/utils/T/T_messages.txt
+++ b/common/utils/T/T_messages.txt
@@ -2249,6 +2249,11 @@ ID = VCD_FUNCTION_PHY_ENB_PDCCH_TX
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
     FORMAT = int,value
     VCD_NAME = phy_enb_pdcch_tx
+ID = VCD_FUNCTION_PHY_ENB_COMMON_TX
+    DESC = VCD function PHY_ENB_COMMON_TX
+    GROUP = ALL:VCD:ENB:VCD_FUNCTION
+    FORMAT = int,value
+    VCD_NAME = phy_enb_common_tx
 ID = VCD_FUNCTION_PHY_ENB_RS_TX
     DESC = VCD function PHY_ENB_RS_TX
     GROUP = ALL:VCD:ENB:VCD_FUNCTION
diff --git a/executables/nr-gnb.c b/executables/nr-gnb.c
index 11c8d57febe357f8bdecadd56516649339be875a..4e7701f8af90bb9c78f49b3af3ecec5d151e6021 100644
--- a/executables/nr-gnb.c
+++ b/executables/nr-gnb.c
@@ -415,9 +415,6 @@ int wakeup_txfh(PHY_VARS_gNB *gNB,gNB_L1_rxtx_proc_t *proc,int frame_tx,int slot
   RU_proc_t *ru_proc;
 
   int waitret,ret;
-  struct timespec wait;
-  wait.tv_sec=0;
-  wait.tv_nsec=10000000L;
  
 
 
@@ -489,10 +486,6 @@ int wakeup_tx(PHY_VARS_gNB *gNB,int frame_rx,int slot_rx,int frame_tx,int slot_t
 
   int ret;
  
-  struct timespec wait;
-  wait.tv_sec=0;
-  wait.tv_nsec=5000000L;
-  
   
   AssertFatal((ret = pthread_mutex_lock(&L1_proc_tx->mutex))==0,"mutex_lock returns %d\n",ret);
 
@@ -529,7 +522,6 @@ int wakeup_rxtx(PHY_VARS_gNB *gNB,RU_t *ru) {
   RU_proc_t *ru_proc=&ru->proc;
   int ret;
   int i;
-  struct timespec wait;
   
   AssertFatal((ret=pthread_mutex_lock(&proc->mutex_RU))==0,"mutex_lock returns %d\n",ret);
   for (i=0;i<gNB->num_RU;i++) {
@@ -551,9 +543,6 @@ int wakeup_rxtx(PHY_VARS_gNB *gNB,RU_t *ru) {
   }
 
 
-  wait.tv_sec=0;
-  wait.tv_nsec=5000000L;
-
   // wake up TX for subframe n+sl_ahead
   // lock the TX mutex and make sure the thread is ready
   AssertFatal((ret=pthread_mutex_lock(&L1_proc->mutex)) == 0,"mutex_lock returns %d\n", ret);
diff --git a/executables/nr-ru.c b/executables/nr-ru.c
index 9f84b3ed3a4501ff89a2d05064611db9efa251f5..71e77125c0659db9d85783f245c5801eda8c987f 100644
--- a/executables/nr-ru.c
+++ b/executables/nr-ru.c
@@ -1208,6 +1208,12 @@ static void *ru_thread_tx( void *param ) {
   int                i = 0;
   int                ret;
   
+  
+  if(ru->if_south == LOCAL_RF)
+  {
+    uhd_set_thread_prio();
+    LOG_I(PHY,"set ru_thread_tx uhd priority");
+  }
 
   wait_on_condition(&proc->mutex_FH1,&proc->cond_FH1,&proc->instance_cnt_FH1,"ru_thread_tx");
   printf( "ru_thread_tx ready\n");
diff --git a/openair1/SCHED_NR/phy_procedures_nr_gNB.c b/openair1/SCHED_NR/phy_procedures_nr_gNB.c
index ce0d812309ea48fd0dad385e3bfc5a0963887944..fdd8baea92a5e81d0f51094388221166e40265e5 100644
--- a/openair1/SCHED_NR/phy_procedures_nr_gNB.c
+++ b/openair1/SCHED_NR/phy_procedures_nr_gNB.c
@@ -168,10 +168,12 @@ void phy_procedures_gNB_TX(PHY_VARS_gNB *gNB,
     memset(gNB->common_vars.txdataF[aa],0,fp->samples_per_slot_wCP*sizeof(int32_t));
   }
 
+  VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_ENB_COMMON_TX,1);
   if (nfapi_mode == 0 || nfapi_mode == 1) { 
     if (!(frame%ssb_frame_periodicity))  // generate SSB only for given frames according to SSB periodicity
       nr_common_signal_procedures(gNB,frame, slot);
   }
+  VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_ENB_COMMON_TX,0);
 
   num_dci = gNB->pdcch_vars.num_dci;
   num_pdsch_rnti = gNB->pdcch_vars.num_pdsch_rnti;
diff --git a/targets/ARCH/COMMON/common_lib.c b/targets/ARCH/COMMON/common_lib.c
index bcfa08c7eb23a108c461c5e46d2fe83d533ef801..27fd632a65b012b816093cb3be224f96c6515a86 100644
--- a/targets/ARCH/COMMON/common_lib.c
+++ b/targets/ARCH/COMMON/common_lib.c
@@ -43,7 +43,7 @@
 int set_device(openair0_device *device) {
 
   switch (device->type) {
-    
+
   case EXMIMO_DEV:
     LOG_I(HW,"[%s] has loaded EXPRESS MIMO device.\n",((device->host_type == RAU_HOST) ? "RAU": "RRU"));
     break;
@@ -95,6 +95,8 @@ int set_transport(openair0_device *device) {
   
 }
 typedef int(*devfunc_t)(openair0_device *, openair0_config_t *, eth_params_t *);
+//loader_shlibfunc_t shlib_fdesc[2];
+
 /* look for the interface library and load it */
 int load_lib(openair0_device *device, openair0_config_t *openair0_cfg, eth_params_t * cfg, uint8_t flag) {
   
@@ -102,11 +104,12 @@ int load_lib(openair0_device *device, openair0_config_t *openair0_cfg, eth_param
   int ret=0;
   char *libname;
   if (flag == RAU_LOCAL_RADIO_HEAD) {
-	  if (getenv("RFSIMULATOR") != NULL) 
-     	  libname="rfsimulator";
-	  else 
+    if (getenv("RFSIMULATOR") != NULL) 
+      libname="rfsimulator";
+    else 
       libname=OAI_RF_LIBNAME;
       shlib_fdesc[0].fname="device_init";
+      //shlib_fdesc[1].fname="uhd_set_thread_priority";
     } else {
       libname=OAI_TP_LIBNAME;
       shlib_fdesc[0].fname="transport_init";      
@@ -116,11 +119,32 @@ int load_lib(openair0_device *device, openair0_config_t *openair0_cfg, eth_param
        LOG_E(HW,"Library %s couldn't be loaded\n",libname);
   } else {
        ret=((devfunc_t)shlib_fdesc[0].fptr)(device,openair0_cfg,cfg);
+       //uhd_set_thread_priority_fun = (set_prio_func_t)shlib_fdesc[1].fptr;
   }    
   return ret; 	       
 }
 
 
+void uhd_set_thread_prio(void) {
+  
+  loader_shlibfunc_t shlib_fdesc[1];
+  int ret = 0;
+
+  char *libname;
+  if (getenv("RFSIMULATOR") != NULL) 
+    libname="rfsimulator";
+  else 
+    libname=OAI_RF_LIBNAME;
+  shlib_fdesc[0].fname="uhd_set_thread_priority";
+  ret=load_module_shlib(libname,shlib_fdesc,1,NULL);
+  if (ret < 0) {
+    LOG_E(HW,"Library %s couldn't be loaded\n",libname);
+  } else {
+    (set_prio_func_t)shlib_fdesc[0].fptr();
+  }    
+  return ret; 	    
+  
+}
 
 int openair0_device_load(openair0_device *device, openair0_config_t *openair0_cfg) {
   
diff --git a/targets/ARCH/COMMON/common_lib.h b/targets/ARCH/COMMON/common_lib.h
index 0bce7931537291d10ae57a40dfb5919f41681f2b..1df50ecd24e62634f293662814c768c9517c29e0 100644
--- a/targets/ARCH/COMMON/common_lib.h
+++ b/targets/ARCH/COMMON/common_lib.h
@@ -445,6 +445,10 @@ int openair0_set_rx_frequencies(openair0_device *device, openair0_config_t *open
 #define gettid() syscall(__NR_gettid)
 /*@}*/
 
+  void uhd_set_thread_prio(void);
+  typedef void(*set_prio_func_t)(void);
+  set_prio_func_t uhd_set_thread_priority_fun;
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp b/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp
index a698ab872bb925402e81a8976c9ace1dd028a715..b9c08938e3c2f347c8901441e1f2943c17b0ab12 100644
--- a/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp
+++ b/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp
@@ -1462,5 +1462,10 @@ extern "C" {
 #endif
     return 0;
   }
+
+  void uhd_set_thread_priority(void) {
+      uhd::set_thread_priority_safe(1.0);
+  }
+
 }
 /*@}*/
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpn300.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpn300.conf
index f22abf31120bc2d869343d087de76d08263fc83a..ad88a0b89fe36768df998acfb5056773c762660d 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpn300.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpn300.conf
@@ -254,7 +254,7 @@ RUs = (
          max_pdschReferenceSignalPower = -27;
          max_rxgain                    = 114;
          eNB_instances  = [0];
-	 sdr_addrs = "addr=192.168.10.2,second_addr=192.168.20.2,mgmt_addr=192.168.100.8,clock_source=external,time_source=external";
+	 sdr_addrs = "addr=192.168.10.2,second_addr=192.168.20.2,mgmt_addr=192.168.10.2,clock_source=external,time_source=external";
 
     }
 );  
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpx300.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpx300.conf
index be98106d1e176417d116e53b7a8ea9efdcc9dd65..8b896fc58ac9adfeb545bd940a2a04f3c0787965 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpx300.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpx300.conf
@@ -254,7 +254,7 @@ RUs = (
          max_pdschReferenceSignalPower = -27;
          max_rxgain                    = 114;
          eNB_instances  = [0];
-	 sdr_addrs = "addr=192.168.30.2";
+         sdr_addrs = "type=x300";
 
     }
 );  
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.217PRB.usrpn300.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.217PRB.usrpn300.conf
index dbd937d61ae8e2acb879f0be109091929b898ce5..06c52e1aff80b34c3197e8e6f9ecfb87c4b88536 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.217PRB.usrpn300.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.217PRB.usrpn300.conf
@@ -254,7 +254,7 @@ RUs = (
          max_pdschReferenceSignalPower = -27;
          max_rxgain                    = 114;
          eNB_instances  = [0];
-	 sdr_addrs = "addr=192.168.10.2,mgmt_addr=192.168.100.8";
+	 sdr_addrs = "addr=192.168.10.2,mgmt_addr=192.168.10.2";
          clock_src = "external";
     }
 );  
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.217PRB.usrpx300.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.217PRB.usrpx300.conf
index 51910091f7348811048e48bc7e714252562e2cd4..73f2214baf684154dccf9d075de50d0165934f62 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.217PRB.usrpx300.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.217PRB.usrpx300.conf
@@ -254,7 +254,7 @@ RUs = (
          max_pdschReferenceSignalPower = -27;
          max_rxgain                    = 114;
          eNB_instances  = [0];
-	 sdr_addrs = "addr=192.168.30.2";
+	 sdr_addrs = "type=x300";
 
     }
 );