From 79588a494e118178ecf305ce4f3037d911cdaf2e Mon Sep 17 00:00:00 2001
From: frtabu <francois.taburet@nokia-bell-labs.com>
Date: Tue, 14 Aug 2018 14:59:41 +0200
Subject: [PATCH] LOG_F replaced by LOG_DUMPMSG. Add a generic function to dump
 a buffer or message. Go on with LOG_M implementation improvement. Remove
 redundant options to enable/disable logs.

---
 common/utils/LOG/log.c                        |  194 ++--
 common/utils/LOG/log.h                        |  114 +-
 common/utils/load_module_shlib.c              |    4 +-
 common/utils/load_module_shlib.h              |   12 +-
 common/utils/telnetsrv/telnetsrv_proccmd.c    |   72 +-
 common/utils/telnetsrv/telnetsrv_proccmd.h    |   12 +-
 openair1/PHY/LTE_ESTIMATION/lte_sync_time.c   |   30 +-
 openair1/PHY/LTE_REFSIG/lte_dl_cell_spec.c    |   71 +-
 openair1/PHY/LTE_TRANSPORT/dci_tools.c        |    2 +-
 openair1/PHY/LTE_TRANSPORT/prach.c            |  206 ++--
 .../PHY/LTE_TRANSPORT/ulsch_demodulation.c    |   93 +-
 openair1/PHY/TOOLS/lte_dfts.c                 |  127 +-
 openair1/SCHED_UE/phy_procedures_lte_ue.c     | 1032 ++++++++---------
 openair1/SIMULATION/LTE_PHY/dlsim.c           |   21 +-
 openair1/SIMULATION/LTE_PHY/dlsim_tm4.c       |   21 +-
 openair1/SIMULATION/LTE_PHY/dlsim_tm7.c       |   21 +-
 openair1/SIMULATION/LTE_PHY/ulsim.c           |   19 +-
 openair2/ENB_APP/enb_app.c                    |  120 +-
 openair2/ENB_APP/enb_config.c                 |  158 +--
 openair2/ENB_APP/enb_paramdef.h               |   18 +-
 openair2/LAYER2/PDCP_v10.1.0/pdcp.c           |   23 +-
 openair2/RRC/LTE/L2_interface.c               |   57 +-
 openair2/RRC/LTE/L2_interface_ue.c            |    6 +-
 openair2/RRC/LTE/MESSAGES/asn1_msg_NB_IoT.c   |   18 +-
 openair2/RRC/LTE/rrc_UE.c                     |   96 +-
 openair2/RRC/LTE/rrc_common.c                 |    1 -
 openair2/RRC/LTE/rrc_eNB.c                    |  509 +++-----
 openair2/RRC/LTE/rrc_eNB_S1AP.c               |   10 +-
 targets/COMMON/create_tasks.c                 |    4 +-
 targets/RT/USER/lte-ru.c                      |   14 +-
 targets/RT/USER/lte-softmodem.c               |    4 +-
 targets/RT/USER/lte-uesoftmodem.c             |   18 +-
 32 files changed, 1426 insertions(+), 1681 deletions(-)

diff --git a/common/utils/LOG/log.c b/common/utils/LOG/log.c
index 02ee849202..0eecd655d1 100644
--- a/common/utils/LOG/log.c
+++ b/common/utils/LOG/log.c
@@ -54,7 +54,6 @@
 
 mapping log_level_names[] = {
   {"error",  OAILOG_ERR},
-  {"file",   OAILOG_FILE},
   {"warn",   OAILOG_WARNING},
   {"info",   OAILOG_INFO},
   {"debug",  OAILOG_DEBUG},
@@ -70,18 +69,10 @@ mapping log_options[] = {
 };
 
 
-mapping log_maskmap[] = {
-  {"prach",       DEBUG_PRACH},
-  {"RU",          DEBUG_RU},
-  {"LTEESTIM",    DEBUG_LTEESTIM},
-  {"ctrlsocket",  DEBUG_CTRLSOCKET},
-  {"UE_PHYPROC",  DEBUG_UE_PHYPROC},
-  {"UE_TIMING",   UE_TIMING},
-  {NULL,-1}
-};
+mapping log_maskmap[] = LOG_MASKMAP_INIT;
 
-char *log_level_highlight_start[] = {LOG_RED, LOG_GREEN, LOG_ORANGE, "", LOG_BLUE, LOG_CYBL};  /*!< \brief Optional start-format strings for highlighting */
-char *log_level_highlight_end[]   = {LOG_RESET,LOG_RESET,LOG_RESET,LOG_RESET, LOG_RESET,LOG_RESET};   /*!< \brief Optional end-format strings for highlighting */
+char *log_level_highlight_start[] = {LOG_RED, LOG_ORANGE, "", LOG_BLUE, LOG_CYBL};  /*!< \brief Optional start-format strings for highlighting */
+char *log_level_highlight_end[]   = {LOG_RESET,LOG_RESET,LOG_RESET, LOG_RESET,LOG_RESET};   /*!< \brief Optional end-format strings for highlighting */
 
 
 int write_file_matlab(const char *fname,const char *vname,void *data,int length,int dec,char format)
@@ -243,6 +234,7 @@ int write_file_matlab(const char *fname,const char *vname,void *data,int length,
 /* get log parameters from configuration file */
 void  log_getconfig(log_t *g_log) {
   char *gloglevel = NULL;
+  int consolelog ;
   int level;
   
   
@@ -250,7 +242,7 @@ void  log_getconfig(log_t *g_log) {
   paramdef_t logparams_level[MAX_LOG_PREDEF_COMPONENTS];
   paramdef_t logparams_logfile[MAX_LOG_PREDEF_COMPONENTS];
   paramdef_t logparams_debug[sizeof(log_maskmap)/sizeof(mapping)];
-  paramdef_t logparams_matlab[sizeof(log_maskmap)/sizeof(mapping)];
+  paramdef_t logparams_genfile[sizeof(log_maskmap)/sizeof(mapping)];
 
   int ret = config_get( logparams_defaults,sizeof(logparams_defaults)/sizeof(paramdef_t),CONFIG_STRING_LOG_PREFIX);
   if (ret <0) {
@@ -258,6 +250,7 @@ void  log_getconfig(log_t *g_log) {
        return;
   } 
 
+/* set LOG display options (enable/disable color, thread name, level ) */
   for(int i=0; i<logparams_defaults[LOG_OPTIONS_IDX].numelt ; i++) {
      for(int j=0; log_options[j].name != NULL ; j++) {
         if (strcmp(logparams_defaults[LOG_OPTIONS_IDX].strlistptr[i],log_options[j].name) == 0) { 
@@ -304,37 +297,39 @@ void  log_getconfig(log_t *g_log) {
 /* now set the log levels and infile option, according to what we read */
   for (int i=MIN_LOG_COMPONENTS; i < MAX_LOG_PREDEF_COMPONENTS; i++) {
     level     = map_str_to_int(log_level_names,    *(logparams_level[i].strptr));
-    set_log(i, level,1);
+    set_log(i, level);
     if (*(logparams_logfile[i].uptr) == 1)
         set_component_filelog(i);
   }
 
-/* build then read the debug and matlab parameter array */
+/* build then read the debug and genfile parameter array */
   for (int i=0;log_maskmap[i].name != NULL ; i++) {
       sprintf(logparams_debug[i].optname,    LOG_CONFIG_DEBUG_FORMAT, log_maskmap[i].name);
-      sprintf(logparams_matlab[i].optname,   LOG_CONFIG_MATLAB_FORMAT, log_maskmap[i].name);
+      sprintf(logparams_genfile[i].optname,   LOG_CONFIG_GENFILE_FORMAT, log_maskmap[i].name);
       logparams_debug[i].defuintval  = 0;
       logparams_debug[i].type        = TYPE_UINT;
       logparams_debug[i].paramflags  = PARAMFLAG_BOOL;
       logparams_debug[i].uptr        = NULL;
       logparams_debug[i].chkPptr     = NULL;
       logparams_debug[i].numelt      = 0;
-      logparams_matlab[i].defuintval  = 0;
-      logparams_matlab[i].type        = TYPE_UINT;
-      logparams_matlab[i].paramflags  = PARAMFLAG_BOOL;
-      logparams_matlab[i].uptr        = NULL;
-      logparams_matlab[i].chkPptr     = NULL;
-      logparams_matlab[i].numelt      = 0;
+      logparams_genfile[i].defuintval  = 0;
+      logparams_genfile[i].type        = TYPE_UINT;
+      logparams_genfile[i].paramflags  = PARAMFLAG_BOOL;
+      logparams_genfile[i].uptr        = NULL;
+      logparams_genfile[i].chkPptr     = NULL;
+      logparams_genfile[i].numelt      = 0;
   }
   config_get( logparams_debug,(sizeof(log_maskmap)/sizeof(mapping)) - 1 ,CONFIG_STRING_LOG_PREFIX);
-  config_get( logparams_matlab,(sizeof(log_maskmap)/sizeof(mapping)) - 1 ,CONFIG_STRING_LOG_PREFIX);
+  config_get( logparams_genfile,(sizeof(log_maskmap)/sizeof(mapping)) - 1 ,CONFIG_STRING_LOG_PREFIX);
 /* set the debug mask according to the debug parameters values */
   for (int i=0; log_maskmap[i].name != NULL ; i++) {
     if (*(logparams_debug[i].uptr) )
         g_log->debug_mask = g_log->debug_mask | log_maskmap[i].value;
-    if (*(logparams_matlab[i].uptr) )
-        g_log->matlab_mask = g_log->matlab_mask | log_maskmap[i].value;
+    if (*(logparams_genfile[i].uptr) )
+        g_log->genfile_mask = g_log->genfile_mask | log_maskmap[i].value;
   } 
+/* log globally enabled/disabled */
+  set_glog_onlinelog(consolelog);
 }
 
 int register_log_component(char *name, char *fext, int compidx)
@@ -354,9 +349,8 @@ int computed_compidx=compidx;
   }
   if (computed_compidx >= 0 && computed_compidx <MAX_LOG_COMPONENTS) {
       g_log->log_component[computed_compidx].name = strdup(name);
-      g_log->log_component[computed_compidx].level = LOG_ERR;
-      g_log->log_component[computed_compidx].interval =  1;
-      g_log->log_component[computed_compidx].stream = NULL;
+      g_log->log_component[computed_compidx].savedlevel = LOG_ERR;
+      g_log->log_component[computed_compidx].stream = stdout;
       g_log->log_component[computed_compidx].filelog = 0;
       g_log->log_component[computed_compidx].filelog_name = malloc(strlen(name)+16);/* /tmp/<name>.%s rounded to ^2 */
       sprintf(g_log->log_component[computed_compidx].filelog_name,"/tmp/%s.%s",name,fext);
@@ -432,12 +426,9 @@ int logInit (void)
   g_log->level2string[OAILOG_WARNING]       = "W"; // WARNING
   g_log->level2string[OAILOG_INFO]          = "I"; //INFO
   g_log->level2string[OAILOG_DEBUG]         = "D"; // DEBUG
-  g_log->level2string[OAILOG_FILE]          = "F"; // file
+//  g_log->level2string[OAILOG_FILE]          = "F"; // file
   g_log->level2string[OAILOG_TRACE]         = "T"; // TRACE
- 
 
-  g_log->onlinelog = 1; //online log file
-  g_log->filelog   = 0;
  
 
 
@@ -446,19 +437,6 @@ int logInit (void)
   log_getconfig(g_log);
 
 
-  // could put a loop here to check for all comps
-  for (i=MIN_LOG_COMPONENTS; i < MAX_LOG_COMPONENTS; i++) {
-    if (g_log->log_component[i].filelog == 1 ) {
-      g_log->log_component[i].stream = fopen(g_log->log_component[i].filelog_name,"w");
-      g_log->log_component[i].fwrite = vfprintf;
-    } else if (g_log->log_component[i].filelog == 1 ) {
-        g_log->log_component[i].stream = fopen(g_log->filelog_name,"w");
-        g_log->log_component[i].fwrite = vfprintf;
-    } else if (g_log->onlinelog == 1 ) {
-        g_log->log_component[i].stream = stdout;
-        g_log->log_component[i].fwrite = vfprintf;
-    }
-  }
 
   // set all unused component items to 0, they are for non predefined components
   for (i=MAX_LOG_PREDEF_COMPONENTS; i < MAX_LOG_COMPONENTS; i++) {
@@ -470,8 +448,6 @@ int logInit (void)
 }
 
 
-
-
 char *log_getthreadname(char *threadname, int bufsize) {
 
 int rt =   pthread_getname_np(pthread_self(), threadname,bufsize) ;  
@@ -506,27 +482,58 @@ void logRecord_mt(const char *file, const char *func, int line, int comp, int le
   	   ( (g_log->flag & FLAG_THREAD)?log_getthreadname(threadname,PR_SET_NAME+1):""),
   	   format);
 
-  g_log->log_component[comp].fwrite(g_log->log_component[comp].stream,log_buffer, args);
+  g_log->log_component[comp].vprint(g_log->log_component[comp].stream,log_buffer, args);
   va_end(args);
 
 
 }
 
+void log_dump(int component, void *buffer, int buffsize,int datatype, const char* format, ... ) {
+va_list args;
+char *wbuf; 
+
+    switch(datatype) {
+       case LOG_DUMP_DOUBLE:
+            wbuf=malloc((buffsize * 10)  + 64 );
+       break;
+       case LOG_DUMP_CHAR:
+       default:
+            wbuf=malloc((buffsize * 3 ) + 64 );
+       break;
+    }        
+    va_start(args, format);
+    g_log->log_component[component].vprint(g_log->log_component[component].stream,format, args);
+    va_end(args);
+    if (wbuf != NULL) {
+       int pos=0;
+       for (int i=0; i<buffsize; i++) {
+            switch(datatype) {
+               case LOG_DUMP_DOUBLE:
+                    pos = pos + sprintf(wbuf+pos,"%04.4lf ", (double)((double *)buffer)[i]);
+               break;
+               case LOG_DUMP_CHAR:
+               default:
+                    pos = pos + sprintf(wbuf+pos,"%02x ", (unsigned char)((unsigned char *)buffer)[i]);
+               break;
+            }        
+       }
+    sprintf(wbuf+pos,"\n");
+    g_log->log_component[component].print(g_log->log_component[component].stream,wbuf);
+    free(wbuf);
+    } 
+}
 
-
-int set_log(int component, int level, int interval)
+int set_log(int component, int level)
 {
   /* Checking parameters */
   DevCheck((component >= MIN_LOG_COMPONENTS) && (component < MAX_LOG_COMPONENTS),
            component, MIN_LOG_COMPONENTS, MAX_LOG_COMPONENTS);
   DevCheck((level < NUM_LOG_LEVEL) && (level >= OAILOG_ERR), level, NUM_LOG_LEVEL,
            OAILOG_ERR);
-  DevCheck((interval >= 0) && (interval <= 0xFF), interval, 0, 0xFF);
-
-  g_log->log_component[component].level = level;
 
 
-  g_log->log_component[component].interval = interval;
+  g_log->log_component[component].level = level;
+  g_log->log_component[component].savedlevel = level;
 
   return 0;
 }
@@ -536,32 +543,67 @@ int set_log(int component, int level, int interval)
 void set_glog(int level)
 {
   for (int c=0; c< MAX_LOG_COMPONENTS; c++ ) {
-     g_log->log_component[c].level = level;
+     set_log(c, level);
   }
   
 }
 
 void set_glog_onlinelog(int enable)
 {
-  g_log->onlinelog = enable;
+  for (int c=0; c< MAX_LOG_COMPONENTS; c++ ) {
+      if ( enable ) {
+        g_log->log_component[c].level = g_log->log_component[c].savedlevel;
+        g_log->log_component[c].vprint = vfprintf;
+        g_log->log_component[c].print = fprintf;
+        g_log->log_component[c].stream = stdout;
+      } else {
+        g_log->log_component[c].level = -1;
+      }
+  }  
 }
 void set_glog_filelog(int enable)
 {
-  g_log->filelog = enable;
+static FILE *fptr;
+
+  if ( enable ) {
+    fptr = fopen(g_log->filelog_name,"w");
+
+    for (int c=0; c< MAX_LOG_COMPONENTS; c++ ) {
+      close_component_filelog(c);
+      g_log->log_component[c].stream = fptr;
+      g_log->log_component[c].filelog =  1;
+    }
+  } else {
+    for (int c=0; c< MAX_LOG_COMPONENTS; c++ ) {
+      g_log->log_component[c].filelog =  0;
+      if (fptr != NULL) {
+        fclose(fptr);
+      }
+      g_log->log_component[c].stream = stdout;
+    }    
+  }  
 }
 
 void set_component_filelog(int comp)
 {
-  if (g_log->log_component[comp].filelog ==  0) {
-    g_log->log_component[comp].filelog =  1;
-
-    if (g_log->log_component[comp].stream == NULL) {
+    if (g_log->log_component[comp].stream == NULL || g_log->log_component[comp].stream == stdout) {
       g_log->log_component[comp].stream = fopen(g_log->log_component[comp].filelog_name,"w");
     }
-  }
+    g_log->log_component[comp].vprint = vfprintf;
+    g_log->log_component[comp].print = fprintf;
+    g_log->log_component[comp].filelog =  1;
+}
+void close_component_filelog(int comp)
+{
+    g_log->log_component[comp].filelog =  0;
+    if (g_log->log_component[comp].stream != NULL && g_log->log_component[comp].stream != stdout ) {
+      fclose(g_log->log_component[comp].stream);
+      g_log->log_component[comp].stream = stdout;
+    }
+    g_log->log_component[comp].vprint = vfprintf;
+    g_log->log_component[comp].print = fprintf;
+ 
 }
-
-
 
 /*
  * for the two functions below, the passed array must have a final entry
@@ -616,15 +658,13 @@ int is_newline( char *str, int size)
 void logClean (void)
 {
   int i;
-  LOG_I(PHY,"\n");
+  LOG_UI(PHY,"\n");
 
 
 
 
   for (i=MIN_LOG_COMPONENTS; i < MAX_LOG_COMPONENTS; i++) {
-    if (g_log->log_component[i].stream != NULL) {
-      fclose(g_log->log_component[i].stream);
-    }
+     close_component_filelog(i);
   }
 }
 
@@ -650,8 +690,8 @@ int test_log(void)
   LOG_D(MAC, "1 debug  MAC \n");
   LOG_W(MAC, "1 warning MAC \n");
 
-  set_log(EMU, OAILOG_INFO, FLAG_ONLINE);
-  set_log(MAC, OAILOG_WARNING, 0);
+  set_log(EMU, OAILOG_INFO);
+  set_log(MAC, OAILOG_WARNING);
 
   LOG_I(EMU, "2 Starting OAI logs version %s Build date: %s on %s\n",
         BUILD_VERSION, BUILD_DATE, BUILD_HOST);
@@ -661,7 +701,7 @@ int test_log(void)
   LOG_I(MAC, "2 info MAC \n");
 
 
-  set_log(MAC, OAILOG_NOTICE, 1);
+  set_log(MAC, OAILOG_NOTICE);
 
   LOG_ENTER(MAC);
   LOG_I(EMU, "3 Starting OAI logs version %s Build date: %s on %s\n",
@@ -670,8 +710,8 @@ int test_log(void)
   LOG_W(MAC, "3 warning MAC \n");
   LOG_I(MAC, "3 info MAC \n");
 
-  set_log(MAC, LOG_DEBUG,1);
-  set_log(EMU, LOG_DEBUG,1);
+  set_log(MAC, LOG_DEBUG);
+  set_log(EMU, LOG_DEBUG);
 
   LOG_ENTER(MAC);
   LOG_I(EMU, "4 Starting OAI logs version %s Build date: %s on %s\n",
@@ -681,8 +721,8 @@ int test_log(void)
   LOG_I(MAC, "4 info MAC \n");
 
 
-  set_log(MAC, LOG_DEBUG,0);
-  set_log(EMU, LOG_DEBUG,0);
+  set_log(MAC, LOG_DEBUG);
+  set_log(EMU, LOG_DEBUG);
 
   LOG_I(LOG, "5 Starting OAI logs version %s Build date: %s on %s\n",
         BUILD_VERSION, BUILD_DATE, BUILD_HOST);
@@ -691,8 +731,8 @@ int test_log(void)
   LOG_I(MAC, "5 info MAC \n");
 
 
-  set_log(MAC, LOG_TRACE,0X07F);
-  set_log(EMU, LOG_TRACE,0X07F);
+  set_log(MAC, LOG_TRACE);
+  set_log(EMU, LOG_TRACE);
 
   LOG_ENTER(MAC);
   LOG_I(LOG, "6 Starting OAI logs version %s Build date: %s on %s\n",
diff --git a/common/utils/LOG/log.h b/common/utils/LOG/log.h
index 4a0552d494..7b2764b30c 100644
--- a/common/utils/LOG/log.h
+++ b/common/utils/LOG/log.h
@@ -83,11 +83,10 @@ extern "C" {
  * @{*/
 
 # define  OAILOG_ERR     0 /*!< \brief critical error conditions, impact on "must have" fuctinalities */
-# define  OAILOG_FILE    1 /*!< \brief important informational messages, but everything OK  */
-# define  OAILOG_WARNING 2 /*!< \brief warning conditions, shouldn't happen but doesn't impact "must have" functionalities */
-# define  OAILOG_INFO    3 /*!< \brief informational messages most people don't need, shouldn't impact real-time behavior */
-# define  OAILOG_DEBUG   4 /*!< \brief first level debug-level messages, for developers , may impact real-time behavior */
-# define  OAILOG_TRACE   5 /*!< \brief  second level debug-level messages, for developers ,likely impact real-time behavior*/
+# define  OAILOG_WARNING 1 /*!< \brief warning conditions, shouldn't happen but doesn't impact "must have" functionalities */
+# define  OAILOG_INFO    2 /*!< \brief informational messages most people don't need, shouldn't impact real-time behavior */
+# define  OAILOG_DEBUG   3 /*!< \brief first level debug-level messages, for developers , may impact real-time behavior */
+# define  OAILOG_TRACE   4 /*!< \brief  second level debug-level messages, for developers ,likely impact real-time behavior*/
 
 #define NUM_LOG_LEVEL 6 /*!< \brief the number of message levels users have with LOG */
 /* @}*/
@@ -128,21 +127,47 @@ extern "C" {
 
 /** @defgroup macros to identify a debug entity
  *  @ingroup each macro is a bit mask where the unique bit set identifies an entity to be debugged
- *            it allows to dynamically activate or not blocks of code 
+ *            it allows to dynamically activate or not blocks of code. The  LOG_MASKMAP_INIT macro 
+ *            is used to map a character string name to each debug bit, it allows to set or clear
+ *            the corresponding bit via the defined name, from the configuration or from the telnet
+ *            server.
  *  @brief 
  * @{*/
 #define DEBUG_PRACH        (1<<0)
 #define DEBUG_RU           (1<<1)
 #define DEBUG_UE_PHYPROC   (1<<2)
 #define DEBUG_LTEESTIM     (1<<3)
+#define DEBUG_DLCELLSPEC   (1<<4)
+#define DEBUG_ULSCH        (1<<5)
+#define DEBUG_RRC          (1<<6)
+#define DEBUG_PDCP         (1<<7)
+#define DEBUG_DFT          (1<<8)
 #define DEBUG_CTRLSOCKET   (1<<10)
 #define UE_TIMING          (1<<20)
 
-#define SET_LOG_DEBUG(O)   g_log->debug_mask = (g_log->debug_mask | O)
-#define CLEAR_LOG_DEBUG(O) g_log->debug_mask = (g_log->debug_mask & (~O))
 
-#define SET_LOG_MATLAB(O)   g_log->matlab_mask = (g_log->matlab_mask | O)
-#define CLEAR_LOG_MATLAB(O) g_log->matlab_mask = (g_log->matlab_mask & (~O))
+#define LOG_MASKMAP_INIT {\
+  {"PRACH",       DEBUG_PRACH},\
+  {"RU",          DEBUG_RU},\
+  {"LTEESTIM",    DEBUG_LTEESTIM},\
+  {"CTRLSOCKET",  DEBUG_CTRLSOCKET},\
+  {"UE_PHYPROC",  DEBUG_UE_PHYPROC},\
+  {"DLCELLSPEC",  DEBUG_DLCELLSPEC},\
+  {"ULSCH",       DEBUG_ULSCH},\
+  {"RRC",         DEBUG_RRC},\
+  {"PDCP",        DEBUG_PDCP},\
+  {"DFT",         DEBUG_DFT},\
+  {"UE_TIMING",   UE_TIMING},\
+  {NULL,-1}\
+}
+
+
+
+#define SET_LOG_DEBUG(B)   g_log->debug_mask = (g_log->debug_mask | B)
+#define CLEAR_LOG_DEBUG(B) g_log->debug_mask = (g_log->debug_mask & (~B))
+
+#define SET_LOG_DUMP(B)   g_log->genfile_mask = (g_log->genfile_mask | B)
+#define CLEAR_LOG_DUMP(B) g_log->genfile_mask = (g_log->genfile_mask & (~B))
 
 
 
@@ -199,17 +224,18 @@ typedef struct {
     int value;  /*!< \brief integer value of mapping */
 } mapping;
 
-typedef int(*log_write_func_t)(FILE *stream, const char *format, va_list ap );
-
+typedef int(*log_vprint_func_t)(FILE *stream, const char *format, va_list ap );
+typedef int(*log_print_func_t)(FILE *stream, const char *format, ... );
 typedef struct  {
-    const char       *name;
-    int              level;
-    int              flag;
-    int              interval;
-    int              filelog;
-    char             *filelog_name;
-    FILE             *stream;
-    log_write_func_t fwrite;
+    const char        *name;
+    int               level;
+    int               savedlevel;
+    int               flag;
+    int               filelog;
+    char              *filelog_name;
+    FILE              *stream;
+    log_vprint_func_t vprint;
+    log_print_func_t  print;
     /* SR: make the log buffer component relative */
     char             log_buffer[MAX_LOG_TOTAL];
 } log_component_t;
@@ -218,12 +244,10 @@ typedef struct  {
 typedef struct {
     log_component_t         log_component[MAX_LOG_COMPONENTS];
     char*                   level2string[NUM_LOG_LEVEL];
-    int                     onlinelog;
     int                     flag;
-    int                     filelog;
     char*                   filelog_name;
     uint64_t                debug_mask;
-    uint64_t                matlab_mask;
+    uint64_t                genfile_mask;
 } log_t;
 
 
@@ -254,14 +278,15 @@ extern log_t *g_log;
 /*----------------------------------------------------------------------------*/
 int  logInit (void);
 void logRecord_mt(const char *file, const char *func, int line,int comp, int level, const char *format, ...) __attribute__ ((format (printf, 6, 7)));
-
-int  set_log(int component, int level, int interval);
+void log_dump(int component, void *buffer, int buffsize,int datatype, const char* format, ... );
+int  set_log(int component, int level);
 void set_glog(int level);
 
 void set_glog_onlinelog(int enable);
 void set_glog_filelog(int enable);
 void set_component_filelog(int comp);
-
+void close_component_filelog(int comp);
+void set_component_consolelog(int comp);
 int  map_str_to_int(mapping *map, const char *str);
 char *map_int_to_str(mapping *map, int val);
 void logClean (void);
@@ -293,7 +318,7 @@ int32_t write_file_matlab(const char *fname, const char *vname, void *data, int
 #define LOG_CONFIG_LEVEL_FORMAT                            "%s_log_level"
 #define LOG_CONFIG_LOGFILE_FORMAT                          "%s_log_infile"
 #define LOG_CONFIG_DEBUG_FORMAT                            "%s_debug"
-#define LOG_CONFIG_MATLAB_FORMAT                           "%s_matlab"
+#define LOG_CONFIG_GENFILE_FORMAT                           "%s_genfile"
 
 #define LOG_CONFIG_HELP_OPTIONS      " list of comma separated options to enable log module behavior. Available options: \n"\
                                      " nocolor:   disable color usage in log messages\n"\
@@ -309,7 +334,7 @@ int32_t write_file_matlab(const char *fname, const char *vname, void *data, int
 /*------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
 #define LOG_GLOBALPARAMS_DESC { \
 {LOG_CONFIG_STRING_GLOBAL_LOG_LEVEL,    "Default log level for all componemts\n",              0,  	      strptr:(char **)&gloglevel,    defstrval:log_level_names[2].name,    TYPE_STRING,    0}, \
-{LOG_CONFIG_STRING_GLOBAL_LOG_ONLINE,   "Default console output option, for all components\n", 0,  	      iptr:&(g_log->onlinelog),      defintval:1,                          TYPE_INT,       0}, \
+{LOG_CONFIG_STRING_GLOBAL_LOG_ONLINE,   "Default console output option, for all components\n", 0,  	      iptr:&(consolelog),            defintval:1,                          TYPE_INT,       0}, \
 {LOG_CONFIG_STRING_GLOBAL_LOG_OPTIONS,  LOG_CONFIG_HELP_OPTIONS,                               0,  	      strlistptr:NULL,               defstrlistval:NULL,                   TYPE_STRINGLIST,0} \
 }
 
@@ -319,23 +344,25 @@ int32_t write_file_matlab(const char *fname, const char *vname, void *data, int
  *  @ingroup _macro
  *  @brief Macro used to call logIt function with different message levels
  * @{*/
-
-// debugging macros(g_log->log_component[component].interval?logRecord_mt(__FILE__, __FUNCTION__, __LINE__, component, level, format, ##args):(void)0)
+#define LOG_DUMP_CHAR       0
+#define LOG_DUMP_DOUBLE     1
+// debugging macros
+#define LOG_F  LOG_I           /* because  LOG_F was originaly to dump a message or buffer but is also used as a regular level...., to dump use LOG_DUMPMSG */
 #  if T_TRACER 
      /* per component, level dependant macros */
-#    define LOG_I(c, x...) do { if (T_stdout) { if( g_log->log_component[c].level >= OAILOG_INFO   ) logRecord_mt(__FILE__, __FUNCTION__, __LINE__,c, OAILOG_INFO, x)    ;} else { T(T_LEGACY_ ## c ## _INFO, T_PRINTF(x))    ;}} while (0) 
-#    define LOG_W(c, x...) do { if (T_stdout) { if( g_log->log_component[c].level >= OAILOG_WARNING) logRecord_mt(__FILE__, __FUNCTION__, __LINE__,c, OAILOG_WARNING, x) ;} else { T(T_LEGACY_ ## c ## _WARNING, T_PRINTF(x)) ;}} while (0) 
 #    define LOG_E(c, x...) do { if (T_stdout) { if( g_log->log_component[c].level >= OAILOG_ERR    ) logRecord_mt(__FILE__, __FUNCTION__, __LINE__,c, OAILOG_ERR, x)     ;} else { T(T_LEGACY_ ## c ## _ERROR, T_PRINTF(x))   ;}} while (0) 
+#    define LOG_W(c, x...) do { if (T_stdout) { if( g_log->log_component[c].level >= OAILOG_WARNING) logRecord_mt(__FILE__, __FUNCTION__, __LINE__,c, OAILOG_WARNING, x) ;} else { T(T_LEGACY_ ## c ## _WARNING, T_PRINTF(x)) ;}} while (0) 
+#    define LOG_I(c, x...) do { if (T_stdout) { if( g_log->log_component[c].level >= OAILOG_INFO   ) logRecord_mt(__FILE__, __FUNCTION__, __LINE__,c, OAILOG_INFO, x)    ;} else { T(T_LEGACY_ ## c ## _INFO, T_PRINTF(x))    ;}} while (0) 
 #    define LOG_D(c, x...) do { if (T_stdout) { if( g_log->log_component[c].level >= OAILOG_DEBUG  ) logRecord_mt(__FILE__, __FUNCTION__, __LINE__,c, OAILOG_DEBUG, x)   ;} else { T(T_LEGACY_ ## c ## _DEBUG, T_PRINTF(x))   ;}} while (0) 
 #    define LOG_T(c, x...) do { if (T_stdout) { if( g_log->log_component[c].level >= OAILOG_TRACE  ) logRecord_mt(__FILE__, __FUNCTION__, __LINE__,c, OAILOG_TRACE, x)   ;} else { T(T_LEGACY_ ## c ## _TRACE, T_PRINTF(x))   ;}} while (0) 
-#    define LOG_F(c, x...) do { if (T_stdout) { if( g_log->log_component[c].level >= OAILOG_FILE   ) logRecord_mt(__FILE__, __FUNCTION__, __LINE__,c, OAILOG_FILE, x)  ;}}   while (0)  /* */
+    /* macro used to dump a buffer or a message as in openair2/RRC/LTE/RRC_eNB.c, replaces LOG_F macro */
+#    define LOG_DUMPMSG(c, f, b, s, x...) do {  if(g_log->genfile_mask & f) log_dump(c, b, s, LOG_DUMP_CHAR, x)  ;}   while (0)  /* */
 #    define nfapi_log(FILE, FNC, LN, COMP, LVL, F...)  do { if (T_stdout) { logRecord_mt(__FILE__, __FUNCTION__, __LINE__,COMP, LVL, F)  ;}}   while (0)  /* */
      /* bitmask dependant macros, to isolate debugging code */
-#    define LOG_DEBUG_BEGIN(D) if (g_log->debug_mask & D) {
-#    define LOG_DEBUG_END   }
-     /* bitmask dependant macros, to generate matlab files */
-#    define LOG_M_BEGIN(D) if (g_log->matlab_mask & D) {
-#    define LOG_M_END   }
+#    define LOG_DEBUGFLAG(D) (g_log->debug_mask & D)
+
+     /* bitmask dependant macros, to generate debug file such as matlab file or message dump */
+#    define LOG_GENFILEFLAG(D) (g_log->genfile_mask & D)
 #    define LOG_M(file, vector, data, len, dec, format) do { write_file_matlab(file, vector, data, len, dec, format);} while(0)/* */
      /* define variable only used in LOG macro's */
 #    define LOG_VAR(A,B) A B
@@ -345,12 +372,11 @@ int32_t write_file_matlab(const char *fname, const char *vname, void *data, int
 #    define LOG_E(c, x...) /* */
 #    define LOG_D(c, x...) /* */
 #    define LOG_T(c, x...) /* */
-#    define LOG_F(c, x...) /* */
+
+#    define LOG_DUMPMSG(c, b, s, x...) /* */
 #    define nfapi_log(FILE, FNC, LN, COMP, LVL, FMT...) 
-#    define LOG_DEBUG_BEGIN(D) if (0) {
-#    define LOG_DEBUG_END   }
-#    define LOG_M_BEGIN(D) if (0) {
-#    define LOG_M_END   }
+#    define LOG_DEBUGFLAG(D)  ( 0 )
+#    define LOG_GENFILEFLAG(D) ( 0 ) 
 #    define LOG_M(file, vector, data, len, dec, format) 
 #    define LOG_VAR(A,B)
 #  endif /* T_TRACER */
@@ -359,8 +385,8 @@ int32_t write_file_matlab(const char *fname, const char *vname, void *data, int
 
 /* unfiltered macros, usefull for simulators or messages at init time, before log is configured */
 #define LOG_UM(file, vector, data, len, dec, format) do { write_file_matlab(file, vector, data, len, dec, format);} while(0)
-
 #define LOG_UI(c, x...) do {logRecord_mt(__FILE__, __FUNCTION__, __LINE__,c, OAILOG_INFO, x) ; } while(0)
+#define LOG_UDUMPMSG(c, b, s, f, x...) do { log_dump(c, b, s, f, x)  ;}   while (0)  /* */
 /* @}*/
 
 
diff --git a/common/utils/load_module_shlib.c b/common/utils/load_module_shlib.c
index 656f6a8852..c8a293f279 100644
--- a/common/utils/load_module_shlib.c
+++ b/common/utils/load_module_shlib.c
@@ -70,8 +70,8 @@ char *tmpstr;
 char *shlibpath   =NULL;
 char *shlibversion=NULL;
 char *cfgprefix;
-paramdef_t LoaderParams[] ={{"shlibpath", NULL, 0, strptr:&shlibpath, defstrval:NULL, TYPE_STRING, 0},
-                            {"shlibversion", NULL, 0, strptr:&shlibversion, defstrval:"", TYPE_STRING, 0}};
+paramdef_t LoaderParams[] ={{"shlibpath", NULL, 0, strptr:&shlibpath, defstrval:NULL, TYPE_STRING, 0, NULL},
+                            {"shlibversion", NULL, 0, strptr:&shlibversion, defstrval:"", TYPE_STRING, 0, NULL}};
 
 int ret;
 
diff --git a/common/utils/load_module_shlib.h b/common/utils/load_module_shlib.h
index ffbad66570..6cfd41ac78 100644
--- a/common/utils/load_module_shlib.h
+++ b/common/utils/load_module_shlib.h
@@ -72,13 +72,13 @@ typedef int(*getfarrayfunc_t)(loader_shlibfunc_t **funcarray);
 #define DEFAULT_MAXSHLIBS 10
 loader_data_t loader_data;
 
-/*------------------------------------------------------------------------------------------------------------------------------------------------*/
-/*                                       LOADER parameters                                                                                        */
-/*   optname               helpstr   paramflags           XXXptr	                           defXXXval	              type       numelt   */
-/*------------------------------------------------------------------------------------------------------------------------------------------------*/
+/*----------------------------------------------------------------------------------------------------------------------------------------------------------*/
+/*                                       LOADER parameters                                                                                                  */
+/*   optname               helpstr   paramflags           XXXptr	                           defXXXval	              type       numelt   check func*/
+/*----------------------------------------------------------------------------------------------------------------------------------------------------------*/
 #define LOADER_PARAMS_DESC { \
-{"shlibpath",                NULL,    PARAMFLAG_NOFREE, strptr:(char **)&(loader_data.shlibpath), defstrval:DEFAULT_PATH,      TYPE_STRING, 0}, \
-{"maxshlibs",                NULL,    0,                uptr:&(loader_data.maxshlibs),            defintval:DEFAULT_MAXSHLIBS, TYPE_UINT32, 0}, \
+{"shlibpath",                NULL,    PARAMFLAG_NOFREE, strptr:(char **)&(loader_data.shlibpath), defstrval:DEFAULT_PATH,      TYPE_STRING, 0,    NULL},\
+{"maxshlibs",                NULL,    0,                uptr:&(loader_data.maxshlibs),            defintval:DEFAULT_MAXSHLIBS, TYPE_UINT32, 0,   NULL}\
 }
 
 /*-------------------------------------------------------------------------------------------------------------*/
diff --git a/common/utils/telnetsrv/telnetsrv_proccmd.c b/common/utils/telnetsrv/telnetsrv_proccmd.c
index 519c222114..3576fd004a 100644
--- a/common/utils/telnetsrv/telnetsrv_proccmd.c
+++ b/common/utils/telnetsrv/telnetsrv_proccmd.c
@@ -199,28 +199,29 @@ int proccmd_show(char *buf, int debug, telnet_printfunc_t prnt)
        print_threads(buf,debug,prnt);
    }
    if (strcasestr(buf,"loglvl") != NULL) {
-       prnt("               component level  enabled\n");
+       prnt("\n               component level  enabled   output\n");
        for (int i=MIN_LOG_COMPONENTS; i < MAX_LOG_COMPONENTS; i++) {
             if (g_log->log_component[i].name != NULL) {
-               prnt("%02i %17.17s:%10.10s  %s\n",i ,g_log->log_component[i].name, 
-	             map_int_to_str(log_level_names,g_log->log_component[i].level),
-                     ((g_log->log_component[i].interval>0)?"Y":"N") );
+               prnt("%02i %17.17s:%10.10s    %s      %s\n",i ,g_log->log_component[i].name, 
+	             map_int_to_str(log_level_names,(g_log->log_component[i].level>=0)?g_log->log_component[i].level:g_log->log_component[i].savedlevel),
+                     ((g_log->log_component[i].level>=0)?"Y":"N"),
+                     ((g_log->log_component[i].filelog>0)?g_log->log_component[i].filelog_name:"stdout"));
            }
        }
    }
    if (strcasestr(buf,"logopt") != NULL) {
-       prnt("               option      enabled\n");
+       prnt("\n               option      enabled\n");
        for (int i=0; log_options[i].name != NULL; i++) {
                prnt("%02i %17.17s %10.10s \n",i ,log_options[i].name, 
                      ((g_log->flag & log_options[i].value)?"Y":"N") );
        }
    }
    if (strcasestr(buf,"dbgopt") != NULL) {
-       prnt("               option  debug matlab\n");
+       prnt("\n               module  debug dumpfile\n");
        for (int i=0; log_maskmap[i].name != NULL ; i++) {
-               prnt("%02i %17.17s %5.5s %5.5s\n",i ,log_maskmap[i].name, 
+               prnt("%02i %17.17s %5.5s   %5.5s\n",i ,log_maskmap[i].name, 
 	             ((g_log->debug_mask &  log_maskmap[i].value)?"Y":"N"),
-                     ((g_log->matlab_mask & log_maskmap[i].value)?"Y":"N") );
+                     ((g_log->genfile_mask & log_maskmap[i].value)?"Y":"N") );
        }
    }
    if (strcasestr(buf,"config") != NULL) {
@@ -337,15 +338,15 @@ int s = sscanf(buf,"%ms %i-%i\n",&logsubcmd, &idx1,&idx2);
           prnt("Available log levels: \n   ");
           for (int i=0; log_level_names[i].name != NULL; i++)
              prnt("%s ",log_level_names[i].name);
-          prnt("\n");
+          prnt("\n\n");
           prnt("Available display options: \n   ");
           for (int i=0; log_options[i].name != NULL; i++)
              prnt("%s ",log_options[i].name);
-          prnt("\n");
-          prnt("Available debug or matlab options: \n   ");
+          prnt("\n\n");
+          prnt("Available debug or genfile options: \n   ");
           for (int i=0; log_maskmap[i].name != NULL; i++)
              prnt("%s ",log_maskmap[i].name);
-          prnt("\n");
+          prnt("\n\n");
    	  proccmd_show("loglvl",debug,prnt);
    	  proccmd_show("logopt",debug,prnt);
    	  proccmd_show("dbgopt",debug,prnt);
@@ -377,7 +378,7 @@ int s = sscanf(buf,"%ms %i-%i\n",&logsubcmd, &idx1,&idx2);
       else if (l == 2 && strcmp(logparam,"debug") == 0){
          optbit=map_str_to_int(log_maskmap,opt);
          if (optbit < 0) {
-            prnt("debug flag %s unknown\n",opt);
+            prnt("module %s unknown\n",opt);
          } else {
             if (idx1 > 0)    
                 SET_LOG_DEBUG(optbit);
@@ -386,27 +387,27 @@ int s = sscanf(buf,"%ms %i-%i\n",&logsubcmd, &idx1,&idx2);
             proccmd_show("dbgopt",debug,prnt);
          }
       }  
-       else if (l == 2 && strcmp(logparam,"matlab") == 0){
+       else if (l == 2 && strcmp(logparam,"dump") == 0){
          optbit=map_str_to_int(log_maskmap,opt);
          if (optbit < 0) {
-            prnt("matlab flag %s unknown\n",opt);
+            prnt("module %s unknown\n",opt);
          } else {
             if (idx1 > 0)    
-                SET_LOG_MATLAB(optbit);
+                SET_LOG_DUMP(optbit);
             else
-                CLEAR_LOG_MATLAB(optbit);
+                CLEAR_LOG_DUMP(optbit);
             proccmd_show("dbgopt",debug,prnt);
          }
       }       
       if (logparam != NULL) free(logparam);
       if (opt != NULL)      free(opt); 
    } else if ( s == 3 && logsubcmd != NULL) {
-      int level, interval;
+      int level, enable, filelog;
       char *tmpstr=NULL;
       char *logparam=NULL;
       int l;
 
-      level = interval = -1;
+      level = enable = filelog = -1;
       l=sscanf(logsubcmd,"%m[^'_']_%m[^'_']",&logparam,&tmpstr);
       if (debug > 0)
           prnt("l=%i, %s %s\n",l,((logparam==NULL)?"\"\"":logparam), ((tmpstr==NULL)?"\"\"":tmpstr));
@@ -419,9 +420,13 @@ int s = sscanf(buf,"%ms %i-%i\n",&logsubcmd, &idx1,&idx2);
          }
       } else if (l ==1 ) {
          if (strcmp(logparam,"enable") == 0) {
-              interval = 1;
+              enable = 1;
          } else if (strcmp(logparam,"disable") == 0) {
-              interval = 0;
+              enable = 0;
+         } else if (strcmp(logparam,"file") == 0) {
+              filelog = 1 ;
+         } else if (strcmp(logparam,"nofile") == 0) {
+              filelog = 0 ;
          } else {
              prnt("%s%s unknown log sub command \n",logparam, tmpstr);
          }
@@ -431,19 +436,26 @@ int s = sscanf(buf,"%ms %i-%i\n",&logsubcmd, &idx1,&idx2);
       if (logparam != NULL) free(logparam);
       if (tmpstr != NULL)   free(tmpstr);
       for (int i=idx1; i<=idx2 ; i++) {
+        if ( level >= 0 || enable >= 0) {
           if (level < 0) {
               level=g_log->log_component[i].level;
            }
-          if (interval < 0) {
-              interval=g_log->log_component[i].interval;
+          if (enable < 0) {
+              level= -1;
            }
-          set_log(i, level, interval);
-          prnt("log level  comp %i %s set to %s (%s)\n",
-                i,((g_log->log_component[i].name==NULL)?"":g_log->log_component[i].name),
-                map_int_to_str(log_level_names,g_log->log_component[i].level),
-                ((g_log->log_component[i].interval>0)?"enabled":"disabled"));
-
-        
+          set_log(i, level);
+        }
+        if ( filelog == 1 ) {
+           set_component_filelog(i);
+        }
+        if ( filelog == 0 ) {
+           close_component_filelog(i);
+        } 
+        prnt("log level  comp %i %s set to %s (%s)   output: %s\n",
+              i,((g_log->log_component[i].name==NULL)?"":g_log->log_component[i].name),
+              map_int_to_str(log_level_names,g_log->log_component[i].level),
+              ((g_log->log_component[i].level>=0)?"enabled":"disabled"),
+              ((g_log->log_component[i].filelog>0)?g_log->log_component[i].filelog_name:"stdout"));	  
       }     
    } else {
        prnt("%s: wrong log command...\n",buf);
diff --git a/common/utils/telnetsrv/telnetsrv_proccmd.h b/common/utils/telnetsrv/telnetsrv_proccmd.h
index 409484455c..1a0a8d25dc 100644
--- a/common/utils/telnetsrv/telnetsrv_proccmd.h
+++ b/common/utils/telnetsrv/telnetsrv_proccmd.h
@@ -48,13 +48,15 @@ telnetshell_vardef_t proc_vardef[] = {
  show:  		     display current log configuration \n\
  online, noonline:	     enable or disable console logs \n\
  enable, disable id1-id2:    enable or disable logs for components index id1 to id2 \n\
+ file, nofile id1-id2:       enable or disable redirecting logs to file for components index id1 to id2 \n\
+                             logfile name depends on component name and is printed in the show command \n\
  level_<level> id1-id2:      set log level to <level> for components index id1 to id2 \n\
-use the show command to get the authorized values for <level> and the list of component \
-indexes that can be used for id1 and id2 \n\
+                             use the show command to get the authorized values for \n\
+                             <level> and the list of component indexes that can be used for id1 and id2 \n\
  print_<opt> <0|1>           disable or enable the \"opt\" log option, use the show command to get \
-the available options\n\
- matlab_<opt> debug_<func>   disable or enable the debug code or matlab file generation \
-for \"func\" function. use the show command to get the available options\n"  
+                             the available options\n\
+ dump_<mod> debug_<mod >     disable or enable the debug file generation or debug code\
+                             for \"mod\" module. use the show command to get the available modules\n"  
 
 #define PROCCMD_THREAD_HELP_STRING " thread sub commands: \n\
  <thread id> aff <core>  :    set affinity of thread <thread id> to core <core> \n\
diff --git a/openair1/PHY/LTE_ESTIMATION/lte_sync_time.c b/openair1/PHY/LTE_ESTIMATION/lte_sync_time.c
index ae33722c90..aca5a5303d 100644
--- a/openair1/PHY/LTE_ESTIMATION/lte_sync_time.c
+++ b/openair1/PHY/LTE_ESTIMATION/lte_sync_time.c
@@ -274,11 +274,11 @@ int lte_sync_time_init(LTE_DL_FRAME_PARMS *frame_parms )   // LTE_UE_COMMON *com
 
 
 
-LOG_M_BEGIN(DEBUG_LTEESTIM);
-  LOG_M("primary_sync0.m","psync0",primary_synch0_time,frame_parms->ofdm_symbol_size,1,1);
-  LOG_M("primary_sync1.m","psync1",primary_synch1_time,frame_parms->ofdm_symbol_size,1,1);
-  LOG_M("primary_sync2.m","psync2",primary_synch2_time,frame_parms->ofdm_symbol_size,1,1);
-LOG_M_END
+  if ( LOG_GENFILEFLAG(DEBUG_LTEESTIM)){
+    LOG_M("primary_sync0.m","psync0",primary_synch0_time,frame_parms->ofdm_symbol_size,1,1);
+    LOG_M("primary_sync1.m","psync1",primary_synch1_time,frame_parms->ofdm_symbol_size,1,1);
+    LOG_M("primary_sync2.m","psync2",primary_synch2_time,frame_parms->ofdm_symbol_size,1,1);
+  }
   return (1);
 }
 
@@ -460,18 +460,18 @@ int lte_sync_time(int **rxdata, ///rx data in time domain
   LOG_I(PHY,"[UE] lte_sync_time: Sync source = %d, Peak found at pos %d, val = %d (%d dB)\n",sync_source,peak_pos,peak_val,dB_fixed(peak_val)/2);
 
 
-LOG_M_BEGIN(DEBUG_LTEESTIM)
-static int debug_cnt;
-  if (debug_cnt == 0) {
-    LOG_M("sync_corr0_ue.m","synccorr0",sync_corr_ue0,2*length,1,2);
-    LOG_M("sync_corr1_ue.m","synccorr1",sync_corr_ue1,2*length,1,2);
-    LOG_M("sync_corr2_ue.m","synccorr2",sync_corr_ue2,2*length,1,2);
-    LOG_M("rxdata0.m","rxd0",rxdata[0],length<<1,1,1);
-    //    exit(-1);
-  } else {
+  if ( LOG_GENFILEFLAG(DEBUG_LTEESTIM)){
+    static int debug_cnt;
+    if (debug_cnt == 0) {
+      LOG_M("sync_corr0_ue.m","synccorr0",sync_corr_ue0,2*length,1,2);
+      LOG_M("sync_corr1_ue.m","synccorr1",sync_corr_ue1,2*length,1,2);
+      LOG_M("sync_corr2_ue.m","synccorr2",sync_corr_ue2,2*length,1,2);
+      LOG_M("rxdata0.m","rxd0",rxdata[0],length<<1,1,1);
+      //    exit(-1);
+    } else {
     debug_cnt++;
   }
-LOG_M_END
+} 
 
 
   return(peak_pos);
diff --git a/openair1/PHY/LTE_REFSIG/lte_dl_cell_spec.c b/openair1/PHY/LTE_REFSIG/lte_dl_cell_spec.c
index 1eabfd6c36..284a22e2e6 100644
--- a/openair1/PHY/LTE_REFSIG/lte_dl_cell_spec.c
+++ b/openair1/PHY/LTE_REFSIG/lte_dl_cell_spec.c
@@ -25,9 +25,9 @@
 #include "PHY/defs_eNB.h"
 #include "PHY/defs_UE.h"
 #include "PHY/impl_defs_top.h"
-
+#include "common/utils/LOG/log.h"
 //extern unsigned int lte_gold_table[3][20][2][14];
-//#define DEBUG_DL_CELL_SPEC
+
 
 
 
@@ -64,7 +64,7 @@ int lte_dl_cell_spec_SS(PHY_VARS_eNB *eNB,
   else if ((p==1) && (l>0))
     nu = 0;
   else {
-    printf("lte_dl_cell_spec: p %d, l %d -> ERROR\n",p,l);
+    LOG_E(PHY,"lte_dl_cell_spec: p %d, l %d -> ERROR\n",p,l);
     return(-1);
   }
 
@@ -85,19 +85,19 @@ int lte_dl_cell_spec_SS(PHY_VARS_eNB *eNB,
     // this is r_mprime from 3GPP 36-211 6.10.1.2
     output[k] = qpsk[(eNB->lte_gold_table[Ns][l][mprime_dword]>>(2*mprime_qpsk_symb))&3];
     //output[k] = (lte_gold_table[eNB_offset][Ns][l][mprime_dword]>>(2*mprime_qpsk_symb))&3;
-#ifdef DEBUG_DL_CELL_SPEC
-    printf("Ns %d, l %d, m %d,mprime_dword %d, mprime_qpsk_symbol %d\n",
-              Ns,l,m,mprime_dword,mprime_qpsk_symb);
-    printf("index = %d (k %d)\n",(eNB->lte_gold_table[Ns][l][mprime_dword]>>(2*mprime_qpsk_symb))&3,k);
-#endif
+    if (LOG_DEBUGFLAG(DEBUG_DLCELLSPEC)) {
+      LOG_I(PHY,"Ns %d, l %d, m %d,mprime_dword %d, mprime_qpsk_symbol %d\n",
+                Ns,l,m,mprime_dword,mprime_qpsk_symb);
+      LOG_I(PHY,"index = %d (k %d)\n",(eNB->lte_gold_table[Ns][l][mprime_dword]>>(2*mprime_qpsk_symb))&3,k);
+    }
 
     mprime++;
-#ifdef DEBUG_DL_CELL_SPEC
 
+    if (LOG_DEBUGFLAG(DEBUG_DLCELLSPEC)) {
     if (m<4)
-      printf("Ns %d, l %d output[%d] = (%d,%d)\n",Ns,l,k,((short *)&output[k])[0],((short *)&output[k])[1]);
+      LOG_I(PHY,"Ns %d, l %d output[%d] = (%d,%d)\n",Ns,l,k,((short *)&output[k])[0],((short *)&output[k])[1]);
 
-#endif
+    }
     k+=6;//b
 
     if (k >= eNB->frame_parms.ofdm_symbol_size) {
@@ -105,7 +105,7 @@ int lte_dl_cell_spec_SS(PHY_VARS_eNB *eNB,
       k-=eNB->frame_parms.ofdm_symbol_size;
     }
 
-    //    printf("** k %d\n",k);
+    //    LOG_I(PHY,"** k %d\n",k);
   }
 
   return(0);
@@ -143,7 +143,7 @@ int lte_dl_cell_spec(PHY_VARS_eNB *eNB,
   else if ((p==1) && (l>0))
     nu = 0;
   else {
-    printf("lte_dl_cell_spec: p %d, l %d -> ERROR\n",p,l);
+    LOG_E(PHY,"lte_dl_cell_spec: p %d, l %d -> ERROR\n",p,l);
     return(-1);
   }
 
@@ -168,27 +168,24 @@ int lte_dl_cell_spec(PHY_VARS_eNB *eNB,
     // this is r_mprime from 3GPP 36-211 6.10.1.2
     output[k] = qpsk[(eNB->lte_gold_table[Ns][l][mprime_dword]>>(2*mprime_qpsk_symb))&3];
     //output[k] = (lte_gold_table[eNB_offset][Ns][l][mprime_dword]>>(2*mprime_qpsk_symb))&3;
-#ifdef DEBUG_DL_CELL_SPEC
-    printf("Ns %d, l %d, m %d,mprime_dword %d, mprime_qpsk_symbol %d\n",
-        Ns,l,m,mprime_dword,mprime_qpsk_symb);
-    printf("index = %d (k %d)\n",(eNB->lte_gold_table[Ns][l][mprime_dword]>>(2*mprime_qpsk_symb))&3,k);
-#endif
-
+    if (LOG_DEBUGFLAG(DEBUG_DLCELLSPEC)) {
+      LOG_I(PHY,"Ns %d, l %d, m %d,mprime_dword %d, mprime_qpsk_symbol %d\n",
+          Ns,l,m,mprime_dword,mprime_qpsk_symb);
+      LOG_I(PHY,"index = %d (k %d)\n",(eNB->lte_gold_table[Ns][l][mprime_dword]>>(2*mprime_qpsk_symb))&3,k);
+    }
     mprime++;
-#ifdef DEBUG_DL_CELL_SPEC
-
-    if (m<4)
-      printf("Ns %d, l %d output[%d] = (%d,%d)\n",Ns,l,k,((short *)&output[k])[0],((short *)&output[k])[1]);
+    if (LOG_DEBUGFLAG(DEBUG_DLCELLSPEC)) {
+      if (m<4)
+        LOG_I(PHY,"Ns %d, l %d output[%d] = (%d,%d)\n",Ns,l,k,((short *)&output[k])[0],((short *)&output[k])[1]);
+    }
 
-#endif
     k+=6;
-
     if (k >= eNB->frame_parms.ofdm_symbol_size) {
       k++;  // skip DC carrier
       k-=eNB->frame_parms.ofdm_symbol_size;
     }
 
-    //    printf("** k %d\n",k);
+    //    LOG_I(PHY,"** k %d\n",k);
   }
 
   return(0);
@@ -231,21 +228,21 @@ int lte_dl_cell_spec_rx(PHY_VARS_UE *ue,
 
     // this is r_mprime from 3GPP 36-211 6.10.1.2
     output[k] = qpsk[(ue->lte_gold_table[eNB_offset][Ns][l][mprime_dword]>>(2*mprime_qpsk_symb))&3];
-#ifdef DEBUG_DL_CELL_SPEC
-    printf("Ns %d, l %d, m %d,mprime_dword %d, mprime_qpsk_symbol %d\n",
-           Ns,l,m,mprime_dword,mprime_qpsk_symb);
-    printf("index = %d (k %d)\n",(ue->lte_gold_table[eNB_offset][Ns][l][mprime_dword]>>(2*mprime_qpsk_symb))&3,k);
-#endif
+    if (LOG_DEBUGFLAG(DEBUG_DLCELLSPEC)) {
+      LOG_I(PHY,"Ns %d, l %d, m %d,mprime_dword %d, mprime_qpsk_symbol %d\n",
+             Ns,l,m,mprime_dword,mprime_qpsk_symb);
+      LOG_I(PHY,"index = %d (k %d)\n",(ue->lte_gold_table[eNB_offset][Ns][l][mprime_dword]>>(2*mprime_qpsk_symb))&3,k);
+    }
 
     mprime++;
-#ifdef DEBUG_DL_CELL_SPEC
+    if (LOG_DEBUGFLAG(DEBUG_DLCELLSPEC)) {
 
-    if (m<4)
-      printf("Ns %d l %d output[%d] = (%d,%d)\n",Ns,l,k,((short *)&output[k])[0],((short *)&output[k])[1]);
+      if (m<4)
+        LOG_I(PHY,"Ns %d l %d output[%d] = (%d,%d)\n",Ns,l,k,((short *)&output[k])[0],((short *)&output[k])[1]);
 
-#endif
-    k++;
-    //    printf("** k %d\n",k);
+      }
+      k++;
+    //    LOG_I(PHY,"** k %d\n",k);
   }
 
   return(0);
diff --git a/openair1/PHY/LTE_TRANSPORT/dci_tools.c b/openair1/PHY/LTE_TRANSPORT/dci_tools.c
index c3a309a424..53b1bd4ac3 100644
--- a/openair1/PHY/LTE_TRANSPORT/dci_tools.c
+++ b/openair1/PHY/LTE_TRANSPORT/dci_tools.c
@@ -220,7 +220,7 @@ void fill_pdcch_order(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,DCI_ALLOC_t *dci_a
     break;
   }
 
-  LOG_I(PHY,"%d.%d: DCI 1A: rnti %x, PDCCH order to do PRACH\n",
+  LOG_T(PHY,"%d.%d: DCI 1A: rnti %x, PDCCH order to do PRACH\n",
         proc->frame_tx, proc->subframe_tx, rel8->rnti);
 }
 
diff --git a/openair1/PHY/LTE_TRANSPORT/prach.c b/openair1/PHY/LTE_TRANSPORT/prach.c
index db6f04f788..99563ce133 100644
--- a/openair1/PHY/LTE_TRANSPORT/prach.c
+++ b/openair1/PHY/LTE_TRANSPORT/prach.c
@@ -153,25 +153,24 @@ void rx_prach0(PHY_VARS_eNB *eNB,
       subframe            = eNB->proc.subframe_prach_br;
       prachF              = eNB->prach_vars_br.prachF;
       rxsigF              = eNB->prach_vars_br.rxsigF[ce_level];
-LOG_DEBUG_BEGIN(PRACH)
-      if (((ru->proc.frame_prach)&1023) < 20) LOG_I(PHY,"PRACH (eNB) : running rx_prach (br_flag %d, ce_level %d) for frame %d subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d, rootSequenceIndex %d, repetition number %d,numRepetitionsPrePreambleAttempt %d\n",
-				   br_flag,ce_level,ru->proc.frame_prach,subframe,
-				   fp->prach_emtc_config_common.prach_ConfigInfo.prach_FreqOffset[ce_level],
-				   prach_ConfigIndex,rootSequenceIndex,
-				   eNB->prach_vars_br.repetition_number[ce_level],
-				   fp->prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[ce_level]);
-LOG_DEBUG_END
-    }
-    else
+      if (LOG_DEBUGFLAG(PRACH)){
+        if (((ru->proc.frame_prach)&1023) < 20) LOG_I(PHY,"PRACH (eNB) : running rx_prach (br_flag %d, ce_level %d) for frame %d subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d, rootSequenceIndex %d, repetition number %d,numRepetitionsPrePreambleAttempt %d\n",
+			  	     br_flag,ce_level,ru->proc.frame_prach,subframe,
+				     fp->prach_emtc_config_common.prach_ConfigInfo.prach_FreqOffset[ce_level],
+				     prach_ConfigIndex,rootSequenceIndex,
+				     eNB->prach_vars_br.repetition_number[ce_level],
+				     fp->prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[ce_level]);
+      }
+    } else
 #endif
       {
         prach_ifftp       = eNB->prach_vars.prach_ifft[0];
         subframe          = eNB->proc.subframe_prach;
         prachF            = eNB->prach_vars.prachF;
         rxsigF            = eNB->prach_vars.rxsigF[0];
-LOG_DEBUG_BEGIN(PRACH)
-        if (((ru->proc.frame_prach)&1023) < 20) LOG_I(PHY,"PRACH (eNB) : running rx_prach for subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d , rootSequenceIndex %d\n", subframe,fp->prach_config_common.prach_ConfigInfo.prach_FreqOffset,prach_ConfigIndex,rootSequenceIndex);
-LOG_DEBUG_END
+        if (LOG_DEBUGFLAG(PRACH)){
+          if (((ru->proc.frame_prach)&1023) < 20) LOG_I(PHY,"PRACH (eNB) : running rx_prach for subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d , rootSequenceIndex %d\n", subframe,fp->prach_config_common.prach_ConfigInfo.prach_FreqOffset,prach_ConfigIndex,rootSequenceIndex);
+        }
       }
   }
   else {
@@ -179,20 +178,19 @@ LOG_DEBUG_END
     if (br_flag == 1) {
         subframe          = ru->proc.subframe_prach_br;
         rxsigF            = ru->prach_rxsigF_br[ce_level];
-LOG_DEBUG_BEGIN(PRACH)
-        if (((ru->proc.frame_prach)&1023) < 20) LOG_I(PHY,"PRACH (RU) : running rx_prach (br_flag %d, ce_level %d) for frame %d subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d\n",
-				     br_flag,ce_level,ru->proc.frame_prach,subframe,fp->prach_emtc_config_common.prach_ConfigInfo.prach_FreqOffset[ce_level],prach_ConfigIndex);
-LOG_DEBUG_END
-    }
-    else
+        if (LOG_DEBUGFLAG(PRACH)){
+          if (((ru->proc.frame_prach)&1023) < 20) LOG_I(PHY,"PRACH (RU) : running rx_prach (br_flag %d, ce_level %d) for frame %d subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d\n",
+				       br_flag,ce_level,ru->proc.frame_prach,subframe,fp->prach_emtc_config_common.prach_ConfigInfo.prach_FreqOffset[ce_level],prach_ConfigIndex);
+        }
+    } else
 #endif
       {
         subframe          = ru->proc.subframe_prach;
         rxsigF            = ru->prach_rxsigF;
-LOG_DEBUG_BEGIN(PRACH)
-        if (((ru->proc.frame_prach)&1023) < 20) LOG_I(PHY,"PRACH (RU) : running rx_prach for subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d\n",
-	      subframe,fp->prach_config_common.prach_ConfigInfo.prach_FreqOffset,prach_ConfigIndex);
-LOG_DEBUG_END
+        if (LOG_DEBUGFLAG(PRACH)){
+          if (((ru->proc.frame_prach)&1023) < 20) LOG_I(PHY,"PRACH (RU) : running rx_prach for subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d\n",
+	        subframe,fp->prach_config_common.prach_ConfigInfo.prach_FreqOffset,prach_ConfigIndex);
+        }
       }
 
   }
@@ -204,27 +202,25 @@ LOG_DEBUG_END
       // DJP - indexing below in subframe zero takes us off the beginning of the array???
       prach[aa] = (int16_t*)&ru->common.rxdata[aa][(subframe*fp->samples_per_tti)-ru->N_TA_offset];
 
-LOG_M_BEGIN(PRACH)
-        int32_t en0=signal_energy((int32_t*)prach[aa],fp->samples_per_tti);
-        int8_t dbEn0 = dB_fixed(en0);
-        int8_t rach_dBm = dbEn0 - ru->rx_total_gain_dB;
-        char buffer[80];
-        if (dbEn0>32 && prach[0]!= NULL)
-        {
-          static int counter=0;
-          sprintf(buffer, "%s%d", "/tmp/prach_rx",counter);
-          LOG_M(buffer,"prach_rx",prach[0],fp->samples_per_tti,1,13);
-        }
-      if (dB_fixed(en0)>32)
-      {
-        sprintf(buffer, "rach_dBm:%d",rach_dBm);
-        if (prach[0]!= NULL) LOG_M("prach_rx","prach_rx",prach[0],fp->samples_per_tti,1,1);
-        LOG_I(PHY,"RU %d, br_flag %d ce_level %d frame %d subframe %d per_tti:%d prach:%p (energy %d) TA:%d %s rxdata:%p index:%d\n",
-              ru->idx,br_flag,ce_level,ru->proc.frame_prach,subframe,fp->samples_per_tti,
-              prach[aa],dbEn0,ru->N_TA_offset,buffer,ru->common.rxdata[aa], 
-              (subframe*fp->samples_per_tti)-ru->N_TA_offset);
+        if (LOG_GENFILEFLAG(PRACH)){
+          int32_t en0=signal_energy((int32_t*)prach[aa],fp->samples_per_tti);
+          int8_t dbEn0 = dB_fixed(en0);
+          int8_t rach_dBm = dbEn0 - ru->rx_total_gain_dB;
+          char buffer[80];
+          if (dbEn0>32 && prach[0]!= NULL) {
+            static int counter=0;
+            sprintf(buffer, "%s%d", "/tmp/prach_rx",counter);
+            LOG_M(buffer,"prach_rx",prach[0],fp->samples_per_tti,1,13);
+          }
+        if (dB_fixed(en0)>32) {
+          sprintf(buffer, "rach_dBm:%d",rach_dBm);
+          if (prach[0]!= NULL) LOG_M("prach_rx","prach_rx",prach[0],fp->samples_per_tti,1,1);
+            LOG_I(PHY,"RU %d, br_flag %d ce_level %d frame %d subframe %d per_tti:%d prach:%p (energy %d) TA:%d %s rxdata:%p index:%d\n",
+                  ru->idx,br_flag,ce_level,ru->proc.frame_prach,subframe,fp->samples_per_tti,
+                  prach[aa],dbEn0,ru->N_TA_offset,buffer,ru->common.rxdata[aa], 
+                  (subframe*fp->samples_per_tti)-ru->N_TA_offset);
         }
-LOG_M_END
+      }
     }
   }
 
@@ -306,9 +302,9 @@ LOG_M_END
   if (((eNB!=NULL) && (ru->function != NGFI_RAU_IF4p5))||
       ((eNB==NULL) && (ru->function == NGFI_RRU_IF4p5))) { // compute the DFTs of the PRACH temporal resources
     // Do forward transform
-LOG_DEBUG_BEGIN(PRACH)
-    LOG_D(PHY,"rx_prach: Doing FFT for N_RB_UL %d nb_rx:%d Ncp:%d\n",fp->N_RB_UL, nb_rx, Ncp);
-LOG_DEBUG_END
+    if (LOG_DEBUGFLAG(PRACH)) {
+      LOG_D(PHY,"rx_prach: Doing FFT for N_RB_UL %d nb_rx:%d Ncp:%d\n",fp->N_RB_UL, nb_rx, Ncp);
+    }
     for (aa=0; aa<nb_rx; aa++) {
       AssertFatal(prach[aa]!=NULL,"prach[%d] is null\n",aa);
       prach2 = prach[aa] + (Ncp<<1);
@@ -439,10 +435,10 @@ LOG_DEBUG_END
     return;
   } else if (eNB!=NULL) {
 
-LOG_DEBUG_BEGIN(PRACH)
-    int en = dB_fixed(signal_energy((int32_t*)&rxsigF[0][0],840));
-    if ((en > 60)&&(br_flag==1)) LOG_I(PHY,"PRACH (br_flag %d,ce_level %d, n_ra_prb %d, k %d): Frame %d, Subframe %d => %d dB\n",br_flag,ce_level,n_ra_prb,k,eNB->proc.frame_rx,eNB->proc.subframe_rx,en);
-LOG_DEBUG_END
+    if ( LOG_DEBUGFLAG(PRACH)) {
+      int en = dB_fixed(signal_energy((int32_t*)&rxsigF[0][0],840));
+      if ((en > 60)&&(br_flag==1)) LOG_I(PHY,"PRACH (br_flag %d,ce_level %d, n_ra_prb %d, k %d): Frame %d, Subframe %d => %d dB\n",br_flag,ce_level,n_ra_prb,k,eNB->proc.frame_rx,eNB->proc.subframe_rx,en);
+    }
   }
   
   // in case of RAU and prach received rx_thread wakes up prach
@@ -477,10 +473,10 @@ LOG_DEBUG_END
   *max_preamble_energy=0;
   for (preamble_index=0 ; preamble_index<64 ; preamble_index++) {
 
-LOG_DEBUG_BEGIN(PRACH)
-    int en = dB_fixed(signal_energy((int32_t*)&rxsigF[0][0],840));
-    if (en>60) LOG_I(PHY,"frame %d, subframe %d : Trying preamble %d (br_flag %d)\n",ru->proc.frame_prach,subframe,preamble_index,br_flag);
-LOG_DEBUG_END
+    if (LOG_DEBUGFLAG(PRACH)){
+      int en = dB_fixed(signal_energy((int32_t*)&rxsigF[0][0],840));
+      if (en>60) LOG_I(PHY,"frame %d, subframe %d : Trying preamble %d (br_flag %d)\n",ru->proc.frame_prach,subframe,preamble_index,br_flag);
+    }
     if (restricted_set == 0) {
       // This is the relative offset in the root sequence table (5.7.2-4 from 36.211) for the given preamble index
       preamble_offset = ((NCS==0)? preamble_index : (preamble_index/(N_ZC/NCS)));
@@ -563,11 +559,11 @@ LOG_DEBUG_END
     }
 
     // Compute DFT of RX signal (conjugate input, results in conjugate output) for each new rootSequenceIndex
-LOG_DEBUG_BEGIN(PRACH)
-    int en = dB_fixed(signal_energy((int32_t*)&rxsigF[0][0],840));
-    if (en>60) LOG_I(PHY,"frame %d, subframe %d : preamble index %d: offset %d, preamble shift %d (br_flag %d, en %d)\n",
-		     ru->proc.frame_prach,subframe,preamble_index,preamble_offset,preamble_shift,br_flag,en);
-LOG_DEBUG_END
+    if (LOG_DEBUGFLAG(PRACH)) {
+      int en = dB_fixed(signal_energy((int32_t*)&rxsigF[0][0],840));
+      if (en>60) LOG_I(PHY,"frame %d, subframe %d : preamble index %d: offset %d, preamble shift %d (br_flag %d, en %d)\n",
+		       ru->proc.frame_prach,subframe,preamble_index,preamble_offset,preamble_shift,br_flag,en);
+    }
     log2_ifft_size = 10;
     fft_size = 6144;
 
@@ -589,13 +585,13 @@ LOG_DEBUG_END
 	}
 
       memset(prachF, 0, sizeof(int16_t)*2*1024 );
-LOG_M_BEGIN(PRACH)      
-      if (prach[0]!= NULL) LOG_M("prach_rx0.m","prach_rx0",prach[0],6144+792,1,1);
-       LOG_M("prach_rx1.m","prach_rx1",prach[1],6144+792,1,1);
-       LOG_M("prach_rxF0.m","prach_rxF0",rxsigF[0],24576,1,1);
-       LOG_M("prach_rxF1.m","prach_rxF1",rxsigF[1],6144,1,1);
-LOG_M_END
-
+      if (LOG_GENFILEFLAG(PRACH)) {      
+        if (prach[0]!= NULL) LOG_M("prach_rx0.m","prach_rx0",prach[0],6144+792,1,1);
+         LOG_M("prach_rx1.m","prach_rx1",prach[1],6144+792,1,1);
+         LOG_M("prach_rxF0.m","prach_rxF0",rxsigF[0],24576,1,1);
+         LOG_M("prach_rxF1.m","prach_rxF1",rxsigF[1],6144,1,1);
+      }
+   
       for (aa=0;aa<nb_rx; aa++) {
       // Do componentwise product with Xu* on each antenna 
 
@@ -623,10 +619,10 @@ LOG_M_END
 	    prach_ifft[i] += (prach_ifft_tmp[i<<1]*prach_ifft_tmp[(i<<1)] + prach_ifft_tmp[1+(i<<1)]*prach_ifft_tmp[1+(i<<1)])>>10;
 	}
 
-LOG_M_BEGIN(PRACH)	
-	if (aa==0) LOG_M("prach_rxF_comp0.m","prach_rxF_comp0",prachF,1024,1,1);
-        if (aa==1) LOG_M("prach_rxF_comp1.m","prach_rxF_comp1",prachF,1024,1,1);
-LOG_M_END
+        if (LOG_GENFILEFLAG(PRACH)) {	
+	  if (aa==0) LOG_M("prach_rxF_comp0.m","prach_rxF_comp0",prachF,1024,1,1);
+          if (aa==1) LOG_M("prach_rxF_comp1.m","prach_rxF_comp1",prachF,1024,1,1);
+        }
       }// antennas_rx
     } // new dft
     
@@ -637,10 +633,10 @@ LOG_M_END
 	 eNB->frame_parms.prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[ce_level]))
 #endif
       {
-LOG_DEBUG_BEGIN(PRACH)
+      if (LOG_DEBUGFLAG(PRACH)){
         int en = dB_fixed(signal_energy((int32_t*)&rxsigF[0][0],840));
 	if (en>60) LOG_I(PHY,"frame %d, subframe %d: Checking for peak in time-domain (br_flag %d, en %d)\n",ru->proc.frame_prach,subframe,br_flag,en);
-LOG_DEBUG_END
+      }
 	preamble_shift2 = ((preamble_shift==0) ? 0 : ((preamble_shift<<log2_ifft_size)/N_ZC));
 
     
@@ -652,44 +648,48 @@ LOG_DEBUG_END
 	    *max_preamble_energy  = levdB;
 	    *max_preamble_delay   = ((i*fft_size)>>log2_ifft_size)*update_TA/update_TA2;
 	    *max_preamble         = preamble_index;
-LOG_DEBUG_BEGIN(PRACH)
-            int en = dB_fixed(signal_energy((int32_t*)&rxsigF[0][0],840));
-	    if ((en>60) && (br_flag==1)) LOG_D(PHY,"frame %d, subframe %d : max_preamble_energy %d, max_preamble_delay %d, max_preamble %d (br_flag %d,ce_level %d, levdB %d, lev %d)\n",ru->proc.frame_prach,subframe,*max_preamble_energy,*max_preamble_delay,*max_preamble,br_flag,ce_level,levdB,lev);
-LOG_DEBUG_END
+            if (LOG_DEBUGFLAG(PRACH)){
+              int en = dB_fixed(signal_energy((int32_t*)&rxsigF[0][0],840));
+	      if ((en>60) && (br_flag==1)) 
+                 LOG_D(PHY,"frame %d, subframe %d : max_preamble_energy %d, max_preamble_delay %d, max_preamble %d (br_flag %d,ce_level %d, levdB %d, lev %d)\n",
+                       ru->proc.frame_prach,subframe,
+                       *max_preamble_energy,*max_preamble_delay,
+                       *max_preamble,br_flag,ce_level,levdB,lev);
+            }
 	  }
 	}
 
       }
   }// preamble_index
 
-LOG_M_BEGIN(PRACH)
-  int en = dB_fixed(signal_energy((int32_t*)&rxsigF[0][0],840));  
-  if (en>60) {
-    k = (12*n_ra_prb) - 6*fp->N_RB_UL;
-    
-    if (k<0) k+=fp->ofdm_symbol_size;
-    
-    k*=12;
-    k+=13;
-    k*=2;
-    
-    if (br_flag == 0) {
-	LOG_M("rxsigF.m","prach_rxF",&rxsigF[0][0],12288,1,1);
-	LOG_M("prach_rxF_comp0.m","prach_rxF_comp0",prachF,1024,1,1);
-	LOG_M("Xu.m","xu",Xu,N_ZC,1,1);
-	LOG_M("prach_ifft0.m","prach_t0",prach_ifft,1024,1,1);
-    }
-    else {
-      LOG_E(PHY,"Dumping prach (br_flag %d), k = %d (n_ra_prb %d)\n",br_flag,k,n_ra_prb);
-      LOG_M("rxsigF_br.m","prach_rxF_br",&rxsigF[0][0],12288,1,1);
-      LOG_M("prach_rxF_comp0_br.m","prach_rxF_comp0_br",prachF,1024,1,1);
-      LOG_M("Xu_br.m","xu_br",Xu,N_ZC,1,1);
-      LOG_M("prach_ifft0_br.m","prach_t0_br",prach_ifft,1024,1,1);
-      exit(-1);      
-    }
+  if (LOG_GENFILEFLAG(PRACH)) {
+    int en = dB_fixed(signal_energy((int32_t*)&rxsigF[0][0],840));  
+    if (en>60) {
+      k = (12*n_ra_prb) - 6*fp->N_RB_UL;
+      
+      if (k<0) k+=fp->ofdm_symbol_size;
+      
+      k*=12;
+      k+=13;
+      k*=2;
+      
+      if (br_flag == 0) {
+  	  LOG_M("rxsigF.m","prach_rxF",&rxsigF[0][0],12288,1,1);
+  	  LOG_M("prach_rxF_comp0.m","prach_rxF_comp0",prachF,1024,1,1);
+  	  LOG_M("Xu.m","xu",Xu,N_ZC,1,1);
+  	  LOG_M("prach_ifft0.m","prach_t0",prach_ifft,1024,1,1);
+      }
+      else {
+  	LOG_E(PHY,"Dumping prach (br_flag %d), k = %d (n_ra_prb %d)\n",br_flag,k,n_ra_prb);
+  	LOG_M("rxsigF_br.m","prach_rxF_br",&rxsigF[0][0],12288,1,1);
+  	LOG_M("prach_rxF_comp0_br.m","prach_rxF_comp0_br",prachF,1024,1,1);
+  	LOG_M("Xu_br.m","xu_br",Xu,N_ZC,1,1);
+  	LOG_M("prach_ifft0_br.m","prach_t0_br",prach_ifft,1024,1,1);
+  	exit(-1);      
+      }
 
-  }
-LOG_M_END
+    }
+  } /* LOG_GENFILEFLAG(PRACH) */
   if (eNB) stop_meas(&eNB->rx_prach);
 
 }
diff --git a/openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c b/openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c
index 619d84cee2..adb0d1576f 100644
--- a/openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c
+++ b/openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c
@@ -33,7 +33,6 @@
 #include "PHY/defs_eNB.h"
 #include "PHY/phy_extern.h"
 #include "transport_eNB.h"
-//#define DEBUG_ULSCH
 #include "PHY/sse_intrin.h"
 #include "transport_common_proto.h"
 #include "PHY/LTE_ESTIMATION/lte_estimation.h"
@@ -67,7 +66,7 @@ void lte_idft(LTE_DL_FRAME_PARMS *frame_parms,uint32_t *z, uint16_t Msc_PUSCH)
 
 
 
-  //  printf("Doing lte_idft for Msc_PUSCH %d\n",Msc_PUSCH);
+  LOG_T(PHY,"Doing lte_idft for Msc_PUSCH %d\n",Msc_PUSCH);
 
   if (frame_parms->Ncp == 0) { // Normal prefix
     z0 = z;
@@ -388,13 +387,13 @@ void lte_idft(LTE_DL_FRAME_PARMS *frame_parms,uint32_t *z, uint16_t Msc_PUSCH)
 
   for (i=0,ip=0; i<Msc_PUSCH; i++,ip+=4) {
     z0[i]     = ((uint32_t*)idft_out0)[ip];
-    /*
-      printf("out0 (%d,%d),(%d,%d),(%d,%d),(%d,%d)\n",
-      ((int16_t*)&idft_out0[ip])[0],((int16_t*)&idft_out0[ip])[1],
-      ((int16_t*)&idft_out0[ip+1])[0],((int16_t*)&idft_out0[ip+1])[1],
-      ((int16_t*)&idft_out0[ip+2])[0],((int16_t*)&idft_out0[ip+2])[1],
-      ((int16_t*)&idft_out0[ip+3])[0],((int16_t*)&idft_out0[ip+3])[1]);
-    */
+      if(LOG_DEBUGFLAG(DEBUG_ULSCH)) {
+        LOG_I(PHY,"out0 (%d,%d),(%d,%d),(%d,%d),(%d,%d)\n",
+            ((int16_t*)&idft_out0[ip])[0],((int16_t*)&idft_out0[ip])[1],
+            ((int16_t*)&idft_out0[ip+1])[0],((int16_t*)&idft_out0[ip+1])[1],
+            ((int16_t*)&idft_out0[ip+2])[0],((int16_t*)&idft_out0[ip+2])[1],
+            ((int16_t*)&idft_out0[ip+3])[0],((int16_t*)&idft_out0[ip+3])[1]);
+      }
     z1[i]     = ((uint32_t*)idft_out0)[ip+1];
     z2[i]     = ((uint32_t*)idft_out0)[ip+2];
     z3[i]     = ((uint32_t*)idft_out0)[ip+3];
@@ -479,10 +478,7 @@ int32_t ulsch_qpsk_llr(LTE_DL_FRAME_PARMS *frame_parms,
 
   int i;
 
-  //  printf("qpsk llr for symbol %d (pos %d), llr offset %d\n",symbol,(symbol*frame_parms->N_RB_DL*12),llr128U-(__m128i*)ulsch_llr);
-
   for (i=0; i<(nb_rb*3); i++) {
-    //printf("%d,%d,%d,%d,%d,%d,%d,%d\n",((int16_t *)rxF)[0],((int16_t *)rxF)[1],((int16_t *)rxF)[2],((int16_t *)rxF)[3],((int16_t *)rxF)[4],((int16_t *)rxF)[5],((int16_t *)rxF)[6],((int16_t *)rxF)[7]);
     *(*llrp128) = *rxF;
     rxF++;
     (*llrp128)++;
@@ -593,7 +589,9 @@ void ulsch_64qam_llr(LTE_DL_FRAME_PARMS *frame_parms,
   ch_mag =(int16x8_t*)&ul_ch_mag[0][(symbol*frame_parms->N_RB_DL*12)];
   ch_magb =(int16x8_t*)&ul_ch_magb[0][(symbol*frame_parms->N_RB_DL*12)];
 #endif
-  //  printf("symbol %d: mag %d, magb %d\n",symbol,_mm_extract_epi16(ch_mag[0],0),_mm_extract_epi16(ch_magb[0],0));
+  if(LOG_DEBUGFLAG(DEBUG_ULSCH)) {
+     LOG_UI(PHY,"symbol %d: mag %d, magb %d\n",symbol,_mm_extract_epi16(ch_mag[0],0),_mm_extract_epi16(ch_magb[0],0));
+  }
   for (i=0; i<(nb_rb*3); i++) {
 
 
@@ -736,9 +734,9 @@ void ulsch_extract_rbs_single(int32_t **rxdataF,
     nb_rb1 = cmin(cmax((int)(frame_parms->N_RB_UL) - (int)(2*first_rb),(int)0),(int)(2*nb_rb));    // 2 times no. RBs before the DC
     nb_rb2 = 2*nb_rb - nb_rb1;                                   // 2 times no. RBs after the DC
  
-#ifdef DEBUG_ULSCH
-    printf("ulsch_extract_rbs_single: 2*nb_rb1 = %d, 2*nb_rb2 = %d\n",nb_rb1,nb_rb2);
-#endif
+    if(LOG_DEBUGFLAG(DEBUG_ULSCH)) {
+       LOG_UI(PHY,"ulsch_extract_rbs_single: 2*nb_rb1 = %d, 2*nb_rb2 = %d\n",nb_rb1,nb_rb2);
+    }
 
     rxF_ext   = &rxdataF_ext[aarx][(symbol*frame_parms->N_RB_UL*12)];
 
@@ -838,7 +836,7 @@ void ulsch_channel_compensation(int32_t **rxdataF_ext,
 
 #endif
     for (rb=0; rb<nb_rb; rb++) {
-      //            printf("comp: symbol %d rb %d\n",symbol,rb);
+      LOG_D(PHY,"comp: symbol %d rb %d\n",symbol,rb);
 
 // just compute channel magnitude without scaling, this is done after equalization for SC-FDMA
 
@@ -861,7 +859,7 @@ void ulsch_channel_compensation(int32_t **rxdataF_ext,
       mmtmpU1 = _mm_packs_epi32(mmtmpU0,mmtmpU0);
       ul_ch_mag128[2] = _mm_unpacklo_epi16(mmtmpU1,mmtmpU1);
 
-      // printf("comp: symbol %d rb %d => %d,%d,%d (output_shift %d)\n",symbol,rb,*((int16_t*)&ul_ch_mag128[0]),*((int16_t*)&ul_ch_mag128[1]),*((int16_t*)&ul_ch_mag128[2]),output_shift);
+      LOG_D(PHY,"comp: symbol %d rb %d => %d,%d,%d (output_shift %d)\n",symbol,rb,*((int16_t*)&ul_ch_mag128[0]),*((int16_t*)&ul_ch_mag128[1]),*((int16_t*)&ul_ch_mag128[2]),output_shift);
 
 
 #elif defined(__arm__)
@@ -1125,10 +1123,9 @@ void rx_ulsch(PHY_VARS_eNB *eNB,
 
   harq_pid = subframe2harq_pid(frame_parms,proc->frame_rx,subframe);
   Qm = ulsch[UE_id]->harq_processes[harq_pid]->Qm;
-#ifdef DEBUG_ULSCH
-  printf("rx_ulsch: harq_pid %d, nb_rb %d first_rb %d\n",harq_pid,ulsch[UE_id]->harq_processes[harq_pid]->nb_rb,ulsch[UE_id]->harq_processes[harq_pid]->first_rb);
-
-#endif //DEBUG_ULSCH
+  if(LOG_DEBUGFLAG(DEBUG_ULSCH)) {
+     LOG_I(PHY,"rx_ulsch: harq_pid %d, nb_rb %d first_rb %d\n",harq_pid,ulsch[UE_id]->harq_processes[harq_pid]->nb_rb,ulsch[UE_id]->harq_processes[harq_pid]->first_rb);
+  }
 
   if (ulsch[UE_id]->harq_processes[harq_pid]->nb_rb == 0) {
     LOG_E(PHY,"PUSCH (%d/%x) nb_rb=0!\n", harq_pid,ulsch[UE_id]->rnti);
@@ -1137,13 +1134,13 @@ void rx_ulsch(PHY_VARS_eNB *eNB,
 
   for (l=0; l<(frame_parms->symbols_per_tti-ulsch[UE_id]->harq_processes[harq_pid]->srs_active); l++) {
 
-#ifdef DEBUG_ULSCH
-    printf("rx_ulsch : symbol %d (first_rb %d,nb_rb %d), rxdataF %p, rxdataF_ext %p\n",l,
+  if(LOG_DEBUGFLAG(DEBUG_ULSCH)) {
+    LOG_I(PHY,"rx_ulsch : symbol %d (first_rb %d,nb_rb %d), rxdataF %p, rxdataF_ext %p\n",l,
         ulsch[UE_id]->harq_processes[harq_pid]->first_rb,
         ulsch[UE_id]->harq_processes[harq_pid]->nb_rb,
         common_vars->rxdataF,
         pusch_vars->rxdataF_ext);
-#endif //DEBUG_ULSCH
+  }
 
     ulsch_extract_rbs_single(common_vars->rxdataF,
                              pusch_vars->rxdataF_ext,
@@ -1179,21 +1176,16 @@ void rx_ulsch(PHY_VARS_eNB *eNB,
     
     pusch_vars->ulsch_power[i] = signal_energy_nodc(pusch_vars->drs_ch_estimates[i],
 						    ulsch[UE_id]->harq_processes[harq_pid]->nb_rb*12)/correction_factor;
-    /*    printf("%4.4d.%d power harq_pid %d rb %2.2d TBS %2.2d (MPR_times_Ks %d correction %d)  power %d dBtimes10\n", proc->frame_rx, proc->subframe_rx, harq_pid, ulsch[UE_id]->harq_processes[harq_pid]->nb_rb, ulsch[UE_id]->harq_processes[harq_pid]->TBS,MPR_times_100Ks,correction_factor,dB_fixed_times10(pusch_vars->ulsch_power[i])); 
-     */
+    LOG_D(PHY,"%4.4d.%d power harq_pid %d rb %2.2d TBS %2.2d (MPR_times_Ks %d correction %d)  power %d dBtimes10\n", proc->frame_rx, proc->subframe_rx, harq_pid, ulsch[UE_id]->harq_processes[harq_pid]->nb_rb, ulsch[UE_id]->harq_processes[harq_pid]->TBS,MPR_times_100Ks,correction_factor,dB_fixed_times10(pusch_vars->ulsch_power[i])); 
+     
   }
 
-
-  //LOG_M("rxdataF_ext.m","rxF_ext",pusch_vars->rxdataF_ext[eNB_id][0],300*(frame_parms->symbols_per_tti-ulsch[UE_id]->srs_active),1,1);
-  //LOG_M("ulsch_chest.m","drs_est",pusch_vars->drs_ch_estimates[eNB_id][0],300*(frame_parms->symbols_per_tti-ulsch[UE_id]->srs_active),1,1);
-
-
   ulsch_channel_level(pusch_vars->drs_ch_estimates,
 		      frame_parms,
 		      avgU,
 		      ulsch[UE_id]->harq_processes[harq_pid]->nb_rb);
   
-  //  printf("[ULSCH] avg[0] %d\n",avgU[0]);
+  LOG_D(PHY,"[ULSCH] avg[0] %d\n",avgU[0]);
   
   
   avgs = 0;
@@ -1205,9 +1197,9 @@ void rx_ulsch(PHY_VARS_eNB *eNB,
   
   log2_maxh = (log2_approx(avgs)/2)+ log2_approx(frame_parms->nb_antennas_rx-1)+4;
   
-#ifdef DEBUG_ULSCH
-  printf("[ULSCH] log2_maxh = %d (%d,%d)\n",log2_maxh,avgU[0],avgs);
-#endif
+
+  LOG_D(PHY,"[ULSCH] log2_maxh = %d (%d,%d)\n",log2_maxh,avgU[0],avgs);
+
 
 
   for (l=0; l<(frame_parms->symbols_per_tti-ulsch[UE_id]->harq_processes[harq_pid]->srs_active); l++) {
@@ -1229,9 +1221,6 @@ void rx_ulsch(PHY_VARS_eNB *eNB,
 			       ulsch[UE_id]->harq_processes[harq_pid]->nb_rb,
 			       log2_maxh); // log2_maxh+I0_shift
 
-  
-
-
     if (frame_parms->nb_antennas_rx > 1)
       ulsch_detection_mrc(frame_parms,
 			  pusch_vars->rxdataF_comp,
@@ -1240,9 +1229,7 @@ void rx_ulsch(PHY_VARS_eNB *eNB,
 			  l,
 			  ulsch[UE_id]->harq_processes[harq_pid]->nb_rb);
     
-    
-    
-    //    if ((eNB->measurements.n0_power_dB[0]+3)<pusch_vars->ulsch_power[0]) {
+    //    if ((eNB->measurements.n0_power_dB[0]+3)<pusch_vars->ulsch_power[0]) 
     if (23<pusch_vars->ulsch_power[0]) {
       freq_equalization(frame_parms,
 			pusch_vars->rxdataF_comp,
@@ -1254,22 +1241,9 @@ void rx_ulsch(PHY_VARS_eNB *eNB,
     }
   }
 
-  
-
-
-
-  //#ifdef DEBUG_ULSCH
-  // Inverse-Transform equalized outputs
-  //  printf("Doing IDFTs\n");
   lte_idft(frame_parms,
            (uint32_t*)pusch_vars->rxdataF_comp[0],
            ulsch[UE_id]->harq_processes[harq_pid]->nb_rb*12);
-  //  printf("Done\n");
-  //#endif //DEBUG_ULSCH
-
-
-
-
 
   llrp = (int16_t*)&pusch_vars->llr[0];
 
@@ -1316,9 +1290,8 @@ void rx_ulsch(PHY_VARS_eNB *eNB,
       break;
 
     default:
-#ifdef DEBUG_ULSCH
-      printf("ulsch_demodulation.c (rx_ulsch): Unknown Qm!!!!\n");
-#endif //DEBUG_ULSCH
+      LOG_E(PHY,"ulsch_demodulation.c (rx_ulsch): Unknown Qm!!!!\n");
+
       break;
     }
   }
@@ -1329,7 +1302,7 @@ void rx_ulsch_emul(PHY_VARS_eNB *eNB,
 		   eNB_rxtx_proc_t *proc,
                    uint8_t UE_index)
 {
-  printf("[PHY] EMUL eNB %d rx_ulsch_emul : subframe %d, UE_index %d\n",eNB->Mod_id,proc->subframe_rx,UE_index);
+  LOG_I(PHY,"[PHY] EMUL eNB %d rx_ulsch_emul : subframe %d, UE_index %d\n",eNB->Mod_id,proc->subframe_rx,UE_index);
   eNB->pusch_vars[UE_index]->ulsch_power[0] = 31622; //=45dB;
   eNB->pusch_vars[UE_index]->ulsch_power[1] = 31622; //=45dB;
 
@@ -1344,7 +1317,7 @@ void rx_ulsch_emul(PHY_VARS_eNB *eNB,
 
   harq_pid = subframe2harq_pid(&eNB->frame_parms,frame,subframe);
 
-  printf("Dumping ULSCH in subframe %d with harq_pid %d, round %d for NB_rb %d, TBS %d, Qm %d, N_symb %d\n", 
+  LOG_UI(PHY,"Dumping ULSCH in subframe %d with harq_pid %d, round %d for NB_rb %d, TBS %d, Qm %d, N_symb %d\n", 
 	 subframe,harq_pid,round,eNB->ulsch[UE_id]->harq_processes[harq_pid]->nb_rb,
          eNB->ulsch[UE_id]->harq_processes[harq_pid]->TBS,eNB->ulsch[UE_id]->harq_processes[harq_pid]->Qm,
          eNB->ulsch[UE_id]->harq_processes[harq_pid]->Nsymb_pusch);
diff --git a/openair1/PHY/TOOLS/lte_dfts.c b/openair1/PHY/TOOLS/lte_dfts.c
index e7a7f1a259..ca1a6d1262 100644
--- a/openair1/PHY/TOOLS/lte_dfts.c
+++ b/openair1/PHY/TOOLS/lte_dfts.c
@@ -2035,7 +2035,7 @@ static inline void transpose4_ooff(int16x4_t *x,int16x4_t *y,int off)
 
 #endif
 
-// 16-point optimized DFT kernel
+// 16-point optimized DEBUG_DFT kernel
 
 const static int16_t tw16[24] __attribute__((aligned(32))) = { 32767,0,30272,-12540,23169 ,-23170,12539 ,-30273,
                                                   32767,0,23169,-23170,0     ,-32767,-23170,-23170,
@@ -3097,10 +3097,10 @@ void dft128(int16_t *x,int16_t *y,int scale)
 
   dft64((int16_t*)(xtmp),(int16_t*)ytmp,1);
   dft64((int16_t*)(xtmp+32),(int16_t*)(ytmp+16),1);
-
-  /*  LOG_M("dft128a.m","dfta",ytmp,64,1,1);
-      LOG_M("dft128b.m","dftb",ytmp+16,64,1,1);*/
-
+  if (LOG_GENFILEFLAG(DEBUG_DFT)) {
+    LOG_M("dft128a.m","dfta",ytmp,64,1,1);
+    LOG_M("dft128b.m","dftb",ytmp+16,64,1,1);*/
+  }
   for (i=0; i<16; i++) {
     bfly2_16(ytmpp,ytmpp+16,
              y128p,y128p+16,
@@ -3149,9 +3149,10 @@ void dft128(int16_t *x,int16_t *y,int scale)
 
 
   }
-
-  /*  LOG_M("dft128out.m","dft128",y,128,1,1);
-      exit(-1);*/
+  if (LOG_GENFILEFLAG(DEBUG_DFT)) {
+     LOG_M("dft128out.m","dft128",y,128,1,1);
+     exit(-1);
+  }
   _mm_empty();
   _m_empty();
 
@@ -3176,17 +3177,17 @@ void dft128(int16_t *x,int16_t *y,int scale)
   transpose4_ooff_simd256(x256+10,xtmp+5,8);
   transpose4_ooff_simd256(x256+12,xtmp+6,8);
   transpose4_ooff_simd256(x256+14,xtmp+7,8);
-  
-  /*  LOG_M("dft128ina_256.m","dftina",xtmp,64,1,1);
-  LOG_M("dft128inb_256.m","dftinb",xtmp+8,64,1,1);
-  */
+  if (LOG_GENFILEFLAG(DEBUG_DFT)) {  
+     LOG_M("dft128ina_256.m","dftina",xtmp,64,1,1);
+     LOG_M("dft128inb_256.m","dftinb",xtmp+8,64,1,1);
+  }
 
   dft64((int16_t*)(xtmp),(int16_t*)ytmp,1);
   dft64((int16_t*)(xtmp+8),(int16_t*)(ytmp+8),1);
-  
-  /*LOG_M("dft128outa_256.m","dftouta",ytmp,64,1,1);
-  LOG_M("dft128outb_256.m","dftoutb",ytmp+8,64,1,1);
-  */
+  if (LOG_GENFILEFLAG(DEBUG_DFT)) {  
+    LOG_M("dft128outa_256.m","dftouta",ytmp,64,1,1);
+    LOG_M("dft128outb_256.m","dftoutb",ytmp+8,64,1,1);
+  }
 
   for (i=0; i<8; i++) {
     bfly2_16_256(ytmpp,ytmpp+8,
@@ -3219,9 +3220,10 @@ void dft128(int16_t *x,int16_t *y,int scale)
     y256[15] = mulhi_int16_simd256(y256[15],ONE_OVER_SQRT2_Q15_256);
 
   }
-  
-  /*  LOG_M("dft128.m","dft",y256,128,1,1);
-      exit(-1);*/
+  if (LOG_GENFILEFLAG(DEBUG_DFT)) {  
+   LOG_M("dft128.m","dft",y256,128,1,1);
+   exit(-1);
+  }
 }
 
 #endif
@@ -5422,10 +5424,11 @@ void dft1536(int16_t *input, int16_t *output, int scale)
     tmpo[1][i] = tmpo[1][i<<1];
     tmpo[2][i] = tmpo[2][i<<1];
     }*/
-
-  //  LOG_M("out0.m","o0",tmpo[0],2048,1,1);
-  //  LOG_M("out1.m","o1",tmpo[1],2048,1,1);
-  //  LOG_M("out2.m","o2",tmpo[2],2048,1,1);
+  if (LOG_GENFILEFLAG(DEBUG_DFT)) {
+    LOG_M("dft1536out0.m","o0",tmpo[0],2048,1,1);
+    LOG_M("dft1536out1.m","o1",tmpo[1],2048,1,1);
+    LOG_M("dft1536out2.m","o2",tmpo[2],2048,1,1);
+  }
   for (i=0,i2=0; i<1024; i+=8,i2+=4)  {
     bfly3((simd_q15_t*)(&tmpo[0][i2]),(simd_q15_t*)(&tmpo[1][i2]),(simd_q15_t*)(&tmpo[2][i2]),
           (simd_q15_t*)(output+i),(simd_q15_t*)(output+1024+i),(simd_q15_t*)(output+2048+i),
@@ -5585,12 +5588,20 @@ void idft6144(int16_t *input, int16_t *output,int scale)
   idft2048((int16_t*)(tmp[1]),(int16_t*)(tmpo[1]),1);
   idft2048((int16_t*)(tmp[2]),(int16_t*)(tmpo[2]),1);
 
+  if (LOG_GENFILEFLAG(DEBUG_DFT)) {
+    LOG_M("idft6144in.m","in",input,6144,1,1);
+    LOG_M("idft6144out0.m","o0",tmpo[0],2048,1,1);
+    LOG_M("idft6144out1.m","o1",tmpo[1],2048,1,1);
+    LOG_M("idft6144out2.m","o2",tmpo[2],2048,1,1);
+  }
+
   for (i=0,i2=0; i<4096; i+=8,i2+=4)  {
     ibfly3((simd_q15_t*)(&tmpo[0][i2]),(simd_q15_t*)(&tmpo[1][i2]),((simd_q15_t*)&tmpo[2][i2]),
 	   (simd_q15_t*)(output+i),(simd_q15_t*)(output+4096+i),(simd_q15_t*)(output+8192+i),
 	   (simd_q15_t*)(twa6144+i),(simd_q15_t*)(twb6144+i));
   }
 
+
   if (scale==1) {
     for (i=0; i<96; i++) {
       y128p[0]  = mulhi_int16(y128p[0],ONE_OVER_SQRT3_Q15_128);
@@ -5613,6 +5624,9 @@ void idft6144(int16_t *input, int16_t *output,int scale)
     }
   }
 
+  if (LOG_GENFILEFLAG(DEBUG_DFT)) {
+   LOG_M("idft6144out.m","out",output,6144,1,1);
+  }
   _mm_empty();
   _m_empty();
 
@@ -5643,10 +5657,11 @@ void dft6144(int16_t *input, int16_t *output,int scale)
     tmpo[1][i] = tmpo[1][i<<1];
     tmpo[2][i] = tmpo[2][i<<1];
     }*/
-
-  //  LOG_M("out0.m","o0",tmpo[0],2048,1,1);
-  //  LOG_M("out1.m","o1",tmpo[1],2048,1,1);
-  //  LOG_M("out2.m","o2",tmpo[2],2048,1,1);
+  if (LOG_GENFILEFLAG(DEBUG_DFT)) {
+    LOG_M("ft6144out0.m","o0",tmpo[0],2048,1,1);
+    LOG_M("ft6144out1.m","o1",tmpo[1],2048,1,1);
+    LOG_M("ft6144out2.m","o2",tmpo[2],2048,1,1);
+  }
   for (i=0,i2=0; i<4096; i+=8,i2+=4)  {
     bfly3((simd_q15_t*)(&tmpo[0][i2]),(simd_q15_t*)(&tmpo[1][i2]),(simd_q15_t*)(&tmpo[2][i2]),
           (simd_q15_t*)(output+i),(simd_q15_t*)(output+4096+i),(simd_q15_t*)(output+8192+i),
@@ -5707,10 +5722,11 @@ void dft12288(int16_t *input, int16_t *output,int scale)
     tmpo[1][i] = tmpo[1][i<<1];
     tmpo[2][i] = tmpo[2][i<<1];
     }*/
-
-  //  LOG_M("out0.m","o0",tmpo[0],4096,1,1);
-  //  LOG_M("out1.m","o1",tmpo[1],4096,1,1);
-  //  LOG_M("out2.m","o2",tmpo[2],4096,1,1);
+  if (LOG_GENFILEFLAG(DEBUG_DFT)) {
+    LOG_M("dft12288out0.m","o0",tmpo[0],4096,1,1);
+    LOG_M("dft12288out1.m","o1",tmpo[1],4096,1,1);
+    LOG_M("dft12288out2.m","o2",tmpo[2],4096,1,1);
+  }
   for (i=0,i2=0; i<8192; i+=8,i2+=4)  {
     bfly3((simd_q15_t*)(&tmpo[0][i2]),(simd_q15_t*)(&tmpo[1][i2]),(simd_q15_t*)(&tmpo[2][i2]),
           (simd_q15_t*)(output+i),(simd_q15_t*)(output+8192+i),(simd_q15_t*)(output+16384+i),
@@ -5758,9 +5774,18 @@ void idft12288(int16_t *input, int16_t *output,int scale)
   }
 
 
+
   idft4096((int16_t*)(tmp[0]),(int16_t*)(tmpo[0]),scale);
   idft4096((int16_t*)(tmp[1]),(int16_t*)(tmpo[1]),scale);
   idft4096((int16_t*)(tmp[2]),(int16_t*)(tmpo[2]),scale);
+
+  if (LOG_GENFILEFLAG(DEBUG_DFT)) {
+    LOG_M("idft12288in.m","in",input,12288,1,1);
+    LOG_M("idft12288out0.m","o0",tmpo[0],4096,1,1);
+    LOG_M("idft12288out1.m","o1",tmpo[1],4096,1,1);
+    LOG_M("idft12288out2.m","o2",tmpo[2],4096,1,1);
+  }
+
   for (i=0,i2=0; i<8192; i+=8,i2+=4)  {
     ibfly3((simd_q15_t*)(&tmpo[0][i2]),(simd_q15_t*)(&tmpo[1][i2]),((simd_q15_t*)&tmpo[2][i2]),
           (simd_q15_t*)(output+i),(simd_q15_t*)(output+8192+i),(simd_q15_t*)(output+16384+i),
@@ -5790,8 +5815,9 @@ void idft12288(int16_t *input, int16_t *output,int scale)
   }
   _mm_empty();
   _m_empty();
-
-  //  LOG_M("out.m","out",output,6144,1,1);
+  if (LOG_GENFILEFLAG(DEBUG_DFT)) {
+     LOG_M("idft12288out.m","out",output,6144,1,1);
+  }
 }
 
 int16_t twa18432[12288] __attribute__((aligned(32)));
@@ -5920,16 +5946,18 @@ void dft24576(int16_t *input, int16_t *output,int scale)
     tmpo[1][i] = tmpo[1][i<<1];
     tmpo[2][i] = tmpo[2][i<<1];
     }*/
-
-  //   LOG_M("out0.m","o0",tmpo[0],8192,1,1);
-  //    LOG_M("out1.m","o1",tmpo[1],8192,1,1);
-  //    LOG_M("out2.m","o2",tmpo[2],8192,1,1);
+  if (LOG_GENFILEFLAG(DEBUG_DFT)) {
+    LOG_M("dft24576out0.m","o0",tmpo[0],8192,1,1);
+    LOG_M("dft24576out1.m","o1",tmpo[1],8192,1,1);
+    LOG_M("dft24576out2.m","o2",tmpo[2],8192,1,1);
+  }
   for (i=0,i2=0; i<16384; i+=8,i2+=4)  {
     bfly3((simd_q15_t*)(&tmpo[0][i2]),(simd_q15_t*)(&tmpo[1][i2]),(simd_q15_t*)(&tmpo[2][i2]),
           (simd_q15_t*)(output+i),(simd_q15_t*)(output+16384+i),(simd_q15_t*)(output+32768+i),
           (simd_q15_t*)(twa24576+i),(simd_q15_t*)(twb24576+i));
   }
 
+
   if (scale==1) {
     for (i=0; i<384; i++) {
       y128p[0]  = mulhi_int16(y128p[0],ONE_OVER_SQRT3_Q15_128);
@@ -5953,11 +5981,14 @@ void dft24576(int16_t *input, int16_t *output,int scale)
   }
   _mm_empty();
   _m_empty();
-
-  //  LOG_M("out.m","out",output,24576,1,1);
+  if (LOG_GENFILEFLAG(DEBUG_DFT)) {
+     LOG_M("out.m","out",output,24576,1,1);
+  }
 }
 
-void idft24576(int16_t *input, int16_t *output,int scale)
+
+
+void idft24576(int16_t *input, int16_t *output)
 {
   int i,i2,j;
   uint32_t tmp[3][8192] __attribute__((aligned(32)));
@@ -5975,12 +6006,12 @@ void idft24576(int16_t *input, int16_t *output,int scale)
   idft8192((int16_t*)(tmp[1]),(int16_t*)(tmpo[1]),1);
   idft8192((int16_t*)(tmp[2]),(int16_t*)(tmpo[2]),1);
   
-  /*
-    LOG_M("in.m","in",input,24576,1,1);
-    LOG_M("out0.m","o0",tmpo[0],8192,1,1);
-    LOG_M("out1.m","o1",tmpo[1],8192,1,1);
-    LOG_M("out2.m","o2",tmpo[2],8192,1,1);
-  */
+  if (LOG_GENFILEFLAG(DEBUG_DFT)) {
+    LOG_M("idft24576in.m","in",input,24576,1,1);
+    LOG_M("idft24576out0.m","o0",tmpo[0],8192,1,1);
+    LOG_M("idft24576out1.m","o1",tmpo[1],8192,1,1);
+    LOG_M("idft24576out2.m","o2",tmpo[2],8192,1,1);
+  }
 
   for (i=0,i2=0; i<16384; i+=8,i2+=4)  {
     ibfly3((simd_q15_t*)(&tmpo[0][i2]),(simd_q15_t*)(&tmpo[1][i2]),((simd_q15_t*)&tmpo[2][i2]),
@@ -6011,7 +6042,9 @@ void idft24576(int16_t *input, int16_t *output,int scale)
   _mm_empty();
   _m_empty();
 
-  //  LOG_M("out.m","out",output,24576,1,1);
+  if (LOG_GENFILEFLAG(DEBUG_DFT)) {
+    LOG_M("idft24576out.m","out",output,24576,1,1);
+  }
 }
 
 ///  THIS SECTION IS FOR ALL PUSCH DFTS (i.e. radix 2^a * 3^b * 4^c * 5^d)
diff --git a/openair1/SCHED_UE/phy_procedures_lte_ue.c b/openair1/SCHED_UE/phy_procedures_lte_ue.c
index ed258ed47c..2b35ad936b 100644
--- a/openair1/SCHED_UE/phy_procedures_lte_ue.c
+++ b/openair1/SCHED_UE/phy_procedures_lte_ue.c
@@ -99,77 +99,77 @@ void get_dumpparam(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id, uint8_t
 
 void dump_dlsch(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uint8_t subframe,uint8_t harq_pid)
 {
-LOG_M_BEGIN(DEBUG_UE_PHYPROC)
-  unsigned int coded_bits_per_codeword;
-  uint8_t nsymb ;
-
-  get_dumpparam(ue, proc, eNB_id, 
-                ue->dlsch[ue->current_thread_id[subframe]][eNB_id][0]->harq_processes[harq_pid]->nb_rb ,
-                ue->dlsch[ue->current_thread_id[subframe]][eNB_id][0]->harq_processes[harq_pid]->rb_alloc_even,
-                subframe,
-                ue->dlsch[ue->current_thread_id[subframe]][eNB_id][0]->harq_processes[harq_pid]->Qm,
-                ue->dlsch[ue->current_thread_id[subframe]][eNB_id][0]->harq_processes[harq_pid]->Nl,                
-                ue->transmission_mode[eNB_id]<7?0:ue->transmission_mode[eNB_id],
-                &nsymb, &coded_bits_per_codeword);
-
-  LOG_M("rxsigF0.m","rxsF0", ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].rxdataF[0],2*nsymb*ue->frame_parms.ofdm_symbol_size,2,1);
-  LOG_M("rxsigF0_ext.m","rxsF0_ext", ue->pdsch_vars[ue->current_thread_id[subframe]][0]->rxdataF_ext[0],2*nsymb*ue->frame_parms.ofdm_symbol_size,1,1);
-  LOG_M("dlsch00_ch0_ext.m","dl00_ch0_ext", ue->pdsch_vars[ue->current_thread_id[subframe]][0]->dl_ch_estimates_ext[0],300*nsymb,1,1);
-  /*
-    LOG_M("dlsch01_ch0_ext.m","dl01_ch0_ext",pdsch_vars[0]->dl_ch_estimates_ext[1],300*12,1,1);
-    LOG_M("dlsch10_ch0_ext.m","dl10_ch0_ext",pdsch_vars[0]->dl_ch_estimates_ext[2],300*12,1,1);
-    LOG_M("dlsch11_ch0_ext.m","dl11_ch0_ext",pdsch_vars[0]->dl_ch_estimates_ext[3],300*12,1,1);
-    LOG_M("dlsch_rho.m","dl_rho",pdsch_vars[0]->rho[0],300*12,1,1);
-  */
-  LOG_M("dlsch_rxF_comp0.m","dlsch0_rxF_comp0", ue->pdsch_vars[ue->current_thread_id[subframe]][0]->rxdataF_comp0[0],300*12,1,1);
-  LOG_M("dlsch_rxF_llr.m","dlsch_llr", ue->pdsch_vars[ue->current_thread_id[subframe]][0]->llr[0],coded_bits_per_codeword,1,0);
+  if (LOG_GENFILEFLAG(DEBUG_UE_PHYPROC)) { 
+    unsigned int coded_bits_per_codeword;
+    uint8_t nsymb ;
+
+    get_dumpparam(ue, proc, eNB_id, 
+  		  ue->dlsch[ue->current_thread_id[subframe]][eNB_id][0]->harq_processes[harq_pid]->nb_rb ,
+  		  ue->dlsch[ue->current_thread_id[subframe]][eNB_id][0]->harq_processes[harq_pid]->rb_alloc_even,
+  		  subframe,
+  		  ue->dlsch[ue->current_thread_id[subframe]][eNB_id][0]->harq_processes[harq_pid]->Qm,
+  		  ue->dlsch[ue->current_thread_id[subframe]][eNB_id][0]->harq_processes[harq_pid]->Nl,  	      
+  		  ue->transmission_mode[eNB_id]<7?0:ue->transmission_mode[eNB_id],
+  		  &nsymb, &coded_bits_per_codeword);
+
+    LOG_M("rxsigF0.m","rxsF0", ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].rxdataF[0],2*nsymb*ue->frame_parms.ofdm_symbol_size,2,1);
+    LOG_M("rxsigF0_ext.m","rxsF0_ext", ue->pdsch_vars[ue->current_thread_id[subframe]][0]->rxdataF_ext[0],2*nsymb*ue->frame_parms.ofdm_symbol_size,1,1);
+    LOG_M("dlsch00_ch0_ext.m","dl00_ch0_ext", ue->pdsch_vars[ue->current_thread_id[subframe]][0]->dl_ch_estimates_ext[0],300*nsymb,1,1);
+    /*
+      LOG_M("dlsch01_ch0_ext.m","dl01_ch0_ext",pdsch_vars[0]->dl_ch_estimates_ext[1],300*12,1,1);
+      LOG_M("dlsch10_ch0_ext.m","dl10_ch0_ext",pdsch_vars[0]->dl_ch_estimates_ext[2],300*12,1,1);
+      LOG_M("dlsch11_ch0_ext.m","dl11_ch0_ext",pdsch_vars[0]->dl_ch_estimates_ext[3],300*12,1,1);
+      LOG_M("dlsch_rho.m","dl_rho",pdsch_vars[0]->rho[0],300*12,1,1);
+    */
+    LOG_M("dlsch_rxF_comp0.m","dlsch0_rxF_comp0", ue->pdsch_vars[ue->current_thread_id[subframe]][0]->rxdataF_comp0[0],300*12,1,1);
+    LOG_M("dlsch_rxF_llr.m","dlsch_llr", ue->pdsch_vars[ue->current_thread_id[subframe]][0]->llr[0],coded_bits_per_codeword,1,0);
 
-  LOG_M("dlsch_mag1.m","dlschmag1",ue->pdsch_vars[ue->current_thread_id[subframe]][0]->dl_ch_mag0,300*12,1,1);
-  LOG_M("dlsch_mag2.m","dlschmag2",ue->pdsch_vars[ue->current_thread_id[subframe]][0]->dl_ch_magb0,300*12,1,1);
-LOG_M_END
+    LOG_M("dlsch_mag1.m","dlschmag1",ue->pdsch_vars[ue->current_thread_id[subframe]][0]->dl_ch_mag0,300*12,1,1);
+    LOG_M("dlsch_mag2.m","dlschmag2",ue->pdsch_vars[ue->current_thread_id[subframe]][0]->dl_ch_magb0,300*12,1,1);
+    }
 }
 
 void dump_dlsch_SI(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uint8_t subframe)
 {
-LOG_M_BEGIN(DEBUG_UE_PHYPROC)
-  unsigned int coded_bits_per_codeword;
-  uint8_t nsymb;
-
-  get_dumpparam(ue, proc, eNB_id,
-                ue->dlsch_SI[eNB_id]->harq_processes[0]->nb_rb,
-                ue->dlsch_SI[eNB_id]->harq_processes[0]->rb_alloc_even,
-                subframe,2,1,0,
-                &nsymb, &coded_bits_per_codeword);
-
-  LOG_D(PHY,"[UE %d] Dumping dlsch_SI : ofdm_symbol_size %d, nsymb %d, nb_rb %d, mcs %d, nb_rb %d, num_pdcch_symbols %d,G %d\n",
-        ue->Mod_id,
-        ue->frame_parms.ofdm_symbol_size,
-        nsymb,
-        ue->dlsch_SI[eNB_id]->harq_processes[0]->nb_rb,
-        ue->dlsch_SI[eNB_id]->harq_processes[0]->mcs,
-        ue->dlsch_SI[eNB_id]->harq_processes[0]->nb_rb,
-        ue->pdcch_vars[0%RX_NB_TH][eNB_id]->num_pdcch_symbols,
-        coded_bits_per_codeword);
-
-  LOG_M("rxsig0.m","rxs0", &ue->common_vars.rxdata[0][subframe*ue->frame_parms.samples_per_tti],ue->frame_parms.samples_per_tti,1,1);
-
-  LOG_M("rxsigF0.m","rxsF0", ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].rxdataF[0],nsymb*ue->frame_parms.ofdm_symbol_size,1,1);
-  LOG_M("rxsigF0_ext.m","rxsF0_ext", ue->pdsch_vars_SI[0]->rxdataF_ext[0],2*nsymb*ue->frame_parms.ofdm_symbol_size,1,1);
-  LOG_M("dlsch00_ch0_ext.m","dl00_ch0_ext", ue->pdsch_vars_SI[0]->dl_ch_estimates_ext[0],ue->frame_parms.N_RB_DL*12*nsymb,1,1);
-  /*
-    LOG_M("dlsch01_ch0_ext.m","dl01_ch0_ext",pdsch_vars[0]->dl_ch_estimates_ext[1],300*12,1,1);
-    LOG_M("dlsch10_ch0_ext.m","dl10_ch0_ext",pdsch_vars[0]->dl_ch_estimates_ext[2],300*12,1,1);
-    LOG_M("dlsch11_ch0_ext.m","dl11_ch0_ext",pdsch_vars[0]->dl_ch_estimates_ext[3],300*12,1,1);
-    LOG_M("dlsch_rho.m","dl_rho",pdsch_vars[0]->rho[0],300*12,1,1);
-  */
-  LOG_M("dlsch_rxF_comp0.m","dlsch0_rxF_comp0", ue->pdsch_vars_SI[0]->rxdataF_comp0[0],ue->frame_parms.N_RB_DL*12*nsymb,1,1);
-  LOG_M("dlsch_rxF_llr.m","dlsch_llr", ue->pdsch_vars_SI[0]->llr[0],coded_bits_per_codeword,1,0);
-
-  LOG_M("dlsch_mag1.m","dlschmag1",ue->pdsch_vars_SI[0]->dl_ch_mag0,300*nsymb,1,1);
-  LOG_M("dlsch_mag2.m","dlschmag2",ue->pdsch_vars_SI[0]->dl_ch_magb0,300*nsymb,1,1);
-  sleep(1);
-  exit(-1);
-LOG_M_END
+  if (LOG_GENFILEFLAG(DEBUG_UE_PHYPROC)){
+    unsigned int coded_bits_per_codeword;
+    uint8_t nsymb;
+
+    get_dumpparam(ue, proc, eNB_id,
+  		  ue->dlsch_SI[eNB_id]->harq_processes[0]->nb_rb,
+  		  ue->dlsch_SI[eNB_id]->harq_processes[0]->rb_alloc_even,
+  		  subframe,2,1,0,
+  		  &nsymb, &coded_bits_per_codeword);
+
+    LOG_D(PHY,"[UE %d] Dumping dlsch_SI : ofdm_symbol_size %d, nsymb %d, nb_rb %d, mcs %d, nb_rb %d, num_pdcch_symbols %d,G %d\n",
+  	  ue->Mod_id,
+  	  ue->frame_parms.ofdm_symbol_size,
+  	  nsymb,
+  	  ue->dlsch_SI[eNB_id]->harq_processes[0]->nb_rb,
+  	  ue->dlsch_SI[eNB_id]->harq_processes[0]->mcs,
+  	  ue->dlsch_SI[eNB_id]->harq_processes[0]->nb_rb,
+  	  ue->pdcch_vars[0%RX_NB_TH][eNB_id]->num_pdcch_symbols,
+  	  coded_bits_per_codeword);
+
+    LOG_M("rxsig0.m","rxs0", &ue->common_vars.rxdata[0][subframe*ue->frame_parms.samples_per_tti],ue->frame_parms.samples_per_tti,1,1);
+
+    LOG_M("rxsigF0.m","rxsF0", ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].rxdataF[0],nsymb*ue->frame_parms.ofdm_symbol_size,1,1);
+    LOG_M("rxsigF0_ext.m","rxsF0_ext", ue->pdsch_vars_SI[0]->rxdataF_ext[0],2*nsymb*ue->frame_parms.ofdm_symbol_size,1,1);
+    LOG_M("dlsch00_ch0_ext.m","dl00_ch0_ext", ue->pdsch_vars_SI[0]->dl_ch_estimates_ext[0],ue->frame_parms.N_RB_DL*12*nsymb,1,1);
+    /*
+      LOG_M("dlsch01_ch0_ext.m","dl01_ch0_ext",pdsch_vars[0]->dl_ch_estimates_ext[1],300*12,1,1);
+      LOG_M("dlsch10_ch0_ext.m","dl10_ch0_ext",pdsch_vars[0]->dl_ch_estimates_ext[2],300*12,1,1);
+      LOG_M("dlsch11_ch0_ext.m","dl11_ch0_ext",pdsch_vars[0]->dl_ch_estimates_ext[3],300*12,1,1);
+      LOG_M("dlsch_rho.m","dl_rho",pdsch_vars[0]->rho[0],300*12,1,1);
+    */
+    LOG_M("dlsch_rxF_comp0.m","dlsch0_rxF_comp0", ue->pdsch_vars_SI[0]->rxdataF_comp0[0],ue->frame_parms.N_RB_DL*12*nsymb,1,1);
+    LOG_M("dlsch_rxF_llr.m","dlsch_llr", ue->pdsch_vars_SI[0]->llr[0],coded_bits_per_codeword,1,0);
+
+    LOG_M("dlsch_mag1.m","dlschmag1",ue->pdsch_vars_SI[0]->dl_ch_mag0,300*nsymb,1,1);
+    LOG_M("dlsch_mag2.m","dlschmag2",ue->pdsch_vars_SI[0]->dl_ch_magb0,300*nsymb,1,1);
+    sleep(1);
+    exit(-1);
+  }
 }
 
 #if defined(EXMIMO) || defined(OAI_USRP) || defined(OAI_BLADERF) || defined(OAI_LMSSDR)
@@ -234,40 +234,40 @@ unsigned int get_tx_amp(int power_dBm, int power_max_dBm, int N_RB_UL, int nb_rb
 
 void dump_dlsch_ra(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uint8_t subframe)
 {
-LOG_M_BEGIN(DEBUG_UE_PHYPROC)
-  unsigned int coded_bits_per_codeword;
-  uint8_t nsymb ;
-
-
-  get_dumpparam(ue, proc, eNB_id,
-                ue->dlsch_SI[eNB_id]->harq_processes[0]->nb_rb,
-                ue->dlsch_SI[eNB_id]->harq_processes[0]->rb_alloc_even, 
-                subframe,2,1,0,
-                &nsymb, &coded_bits_per_codeword);
-
-  LOG_D(PHY,"[UE %d] Dumping dlsch_ra : nb_rb %d, mcs %d, nb_rb %d, num_pdcch_symbols %d,G %d\n",
-        ue->Mod_id,
-        ue->dlsch_ra[eNB_id]->harq_processes[0]->nb_rb,
-        ue->dlsch_ra[eNB_id]->harq_processes[0]->mcs,
-        ue->dlsch_ra[eNB_id]->harq_processes[0]->nb_rb,
-        ue->pdcch_vars[0%RX_NB_TH][eNB_id]->num_pdcch_symbols,
-        coded_bits_per_codeword);
-
-  LOG_M("rxsigF0.m","rxsF0", ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].rxdataF[0],2*12*ue->frame_parms.ofdm_symbol_size,2,1);
-  LOG_M("rxsigF0_ext.m","rxsF0_ext", ue->pdsch_vars_ra[0]->rxdataF_ext[0],2*12*ue->frame_parms.ofdm_symbol_size,1,1);
-  LOG_M("dlsch00_ch0_ext.m","dl00_ch0_ext", ue->pdsch_vars_ra[0]->dl_ch_estimates_ext[0],300*nsymb,1,1);
-  /*
-    LOG_M("dlsch01_ch0_ext.m","dl01_ch0_ext",pdsch_vars[0]->dl_ch_estimates_ext[1],300*12,1,1);
-    LOG_M("dlsch10_ch0_ext.m","dl10_ch0_ext",pdsch_vars[0]->dl_ch_estimates_ext[2],300*12,1,1);
-    LOG_M("dlsch11_ch0_ext.m","dl11_ch0_ext",pdsch_vars[0]->dl_ch_estimates_ext[3],300*12,1,1);
-    LOG_M("dlsch_rho.m","dl_rho",pdsch_vars[0]->rho[0],300*12,1,1);
-  */
-  LOG_M("dlsch_rxF_comp0.m","dlsch0_rxF_comp0", ue->pdsch_vars_ra[0]->rxdataF_comp0[0],300*nsymb,1,1);
-  LOG_M("dlsch_rxF_llr.m","dlsch_llr", ue->pdsch_vars_ra[0]->llr[0],coded_bits_per_codeword,1,0);
+  if (LOG_GENFILEFLAG(DEBUG_UE_PHYPROC)){
+    unsigned int coded_bits_per_codeword;
+    uint8_t nsymb ;
+
+
+    get_dumpparam(ue, proc, eNB_id,
+  		  ue->dlsch_SI[eNB_id]->harq_processes[0]->nb_rb,
+  		  ue->dlsch_SI[eNB_id]->harq_processes[0]->rb_alloc_even, 
+  		  subframe,2,1,0,
+  		  &nsymb, &coded_bits_per_codeword);
+
+    LOG_D(PHY,"[UE %d] Dumping dlsch_ra : nb_rb %d, mcs %d, nb_rb %d, num_pdcch_symbols %d,G %d\n",
+  	  ue->Mod_id,
+  	  ue->dlsch_ra[eNB_id]->harq_processes[0]->nb_rb,
+  	  ue->dlsch_ra[eNB_id]->harq_processes[0]->mcs,
+  	  ue->dlsch_ra[eNB_id]->harq_processes[0]->nb_rb,
+  	  ue->pdcch_vars[0%RX_NB_TH][eNB_id]->num_pdcch_symbols,
+  	  coded_bits_per_codeword);
+
+    LOG_M("rxsigF0.m","rxsF0", ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].rxdataF[0],2*12*ue->frame_parms.ofdm_symbol_size,2,1);
+    LOG_M("rxsigF0_ext.m","rxsF0_ext", ue->pdsch_vars_ra[0]->rxdataF_ext[0],2*12*ue->frame_parms.ofdm_symbol_size,1,1);
+    LOG_M("dlsch00_ch0_ext.m","dl00_ch0_ext", ue->pdsch_vars_ra[0]->dl_ch_estimates_ext[0],300*nsymb,1,1);
+    /*
+      LOG_M("dlsch01_ch0_ext.m","dl01_ch0_ext",pdsch_vars[0]->dl_ch_estimates_ext[1],300*12,1,1);
+      LOG_M("dlsch10_ch0_ext.m","dl10_ch0_ext",pdsch_vars[0]->dl_ch_estimates_ext[2],300*12,1,1);
+      LOG_M("dlsch11_ch0_ext.m","dl11_ch0_ext",pdsch_vars[0]->dl_ch_estimates_ext[3],300*12,1,1);
+      LOG_M("dlsch_rho.m","dl_rho",pdsch_vars[0]->rho[0],300*12,1,1);
+    */
+    LOG_M("dlsch_rxF_comp0.m","dlsch0_rxF_comp0", ue->pdsch_vars_ra[0]->rxdataF_comp0[0],300*nsymb,1,1);
+    LOG_M("dlsch_rxF_llr.m","dlsch_llr", ue->pdsch_vars_ra[0]->llr[0],coded_bits_per_codeword,1,0);
 
-  LOG_M("dlsch_mag1.m","dlschmag1",ue->pdsch_vars_ra[0]->dl_ch_mag0,300*nsymb,1,1);
-  LOG_M("dlsch_mag2.m","dlschmag2",ue->pdsch_vars_ra[0]->dl_ch_magb0,300*nsymb,1,1);
-LOG_M_END
+    LOG_M("dlsch_mag1.m","dlschmag1",ue->pdsch_vars_ra[0]->dl_ch_mag0,300*nsymb,1,1);
+    LOG_M("dlsch_mag2.m","dlschmag2",ue->pdsch_vars_ra[0]->dl_ch_magb0,300*nsymb,1,1);
+  }
 }
 
 void phy_reset_ue(module_id_t Mod_id,uint8_t CC_id,uint8_t eNB_index)
@@ -362,11 +362,11 @@ void process_timing_advance_rar(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint16_t ti
   ue->timing_advance = timing_advance*4;
 
 
-LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
+  if (LOG_DEBUGFLAG(DEBUG_UE_PHYPROC)) {
   /* TODO: fix this log, what is 'HW timing advance'? */
   /*LOG_I(PHY,"[UE %d] AbsoluteSubFrame %d.%d, received (rar) timing_advance %d, HW timing advance %d\n",ue->Mod_id,proc->frame_rx, proc->subframe_rx, ue->timing_advance);*/
-  LOG_I(PHY,"[UE %d] AbsoluteSubFrame %d.%d, received (rar) timing_advance %d\n",ue->Mod_id,proc->frame_rx, proc->subframe_rx, ue->timing_advance);
-LOG_DEBUG_END
+    LOG_UI(PHY,"[UE %d] AbsoluteSubFrame %d.%d, received (rar) timing_advance %d\n",ue->Mod_id,proc->frame_rx, proc->subframe_rx, ue->timing_advance);
+  }
 
 }
 
@@ -740,17 +740,17 @@ uint16_t get_n1_pucch(PHY_VARS_UE *ue,
   } else {
 
     bundling_flag = ue->pucch_config_dedicated[eNB_id].tdd_AckNackFeedbackMode;
-LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
+    if (LOG_DEBUGFLAG(DEBUG_UE_PHYPROC)) {
 
-    if (bundling_flag==bundling) {
-      LOG_D(PHY,"[UE%d] Frame %d subframe %d : get_n1_pucch, bundling, SR %d/%d\n",ue->Mod_id,proc->frame_tx,subframe,SR,
-            ue->scheduling_request_config[eNB_id].sr_PUCCH_ResourceIndex);
-    } else {
-      LOG_D(PHY,"[UE%d] Frame %d subframe %d : get_n1_pucch, multiplexing, SR %d/%d\n",ue->Mod_id,proc->frame_tx,subframe,SR,
-            ue->scheduling_request_config[eNB_id].sr_PUCCH_ResourceIndex);
+      if (bundling_flag==bundling) {
+        LOG_D(PHY,"[UE%d] Frame %d subframe %d : get_n1_pucch, bundling, SR %d/%d\n",ue->Mod_id,proc->frame_tx,subframe,SR,
+              ue->scheduling_request_config[eNB_id].sr_PUCCH_ResourceIndex);
+      } else {
+        LOG_D(PHY,"[UE%d] Frame %d subframe %d : get_n1_pucch, multiplexing, SR %d/%d\n",ue->Mod_id,proc->frame_tx,subframe,SR,
+              ue->scheduling_request_config[eNB_id].sr_PUCCH_ResourceIndex);
+      }
     }
 
-LOG_DEBUG_END
 
     switch (frame_parms->tdd_config) {
     case 1:  // DL:S:UL:UL:DL:DL:S:UL:UL:DL
@@ -1226,9 +1226,9 @@ void ulsch_common_procedures(PHY_VARS_UE *ue, UE_rxtx_proc_t *proc, uint8_t empt
 #endif
 
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_TX_ULSCH_COMMON,VCD_FUNCTION_IN);
-LOG_DEBUG_BEGIN(UE_TIMING)
-  start_meas(&ue->ofdm_mod_stats);
-LOG_DEBUG_END
+  if ( LOG_DEBUGFLAG(UE_TIMING)) {
+    start_meas(&ue->ofdm_mod_stats);
+  }
   nsymb = (frame_parms->Ncp == 0) ? 14 : 12;
 
 #if defined(EXMIMO) || defined(OAI_USRP) || defined(OAI_BLADERF) || defined(OAI_LMSSDR)//this is the EXPRESS MIMO case
@@ -1345,9 +1345,9 @@ LOG_DEBUG_END
 
   } //nb_antennas_tx
 
-LOG_DEBUG_BEGIN(UE_TIMING)
-      stop_meas(&ue->ofdm_mod_stats);
-LOG_DEBUG_END
+  if ( LOG_DEBUGFLAG(UE_TIMING)) {
+    stop_meas(&ue->ofdm_mod_stats);
+  }
 
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_TX_ULSCH_COMMON,VCD_FUNCTION_OUT);
 
@@ -1634,30 +1634,30 @@ void ue_ulsch_uespec_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB
       }
 
 
-LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
-    if(ue->ulsch[eNB_id]->o_ACK[0])
-    {
-    	LOG_I(PHY,"PUSCH ACK\n");
-        T(T_UE_PHY_DLSCH_UE_ACK, T_INT(eNB_id), T_INT(frame_tx%1024), T_INT(subframe_tx), T_INT(ue->dlsch[ue->current_thread_id[proc->subframe_rx]][eNB_id][0]->rnti),
-                      T_INT(ue->dlsch[ue->current_thread_id[proc->subframe_rx]][eNB_id][0]->current_harq_pid));
-    }
-    else
-    {
-    	LOG_I(PHY,"PUSCH NACK\n");
-        T(T_UE_PHY_DLSCH_UE_NACK, T_INT(eNB_id), T_INT(frame_tx%1024), T_INT(subframe_tx), T_INT(ue->dlsch[ue->current_thread_id[proc->subframe_rx]][eNB_id][0]->rnti),
-                      T_INT(ue->dlsch[ue->current_thread_id[proc->subframe_rx]][eNB_id][0]->current_harq_pid));
-    }
-      LOG_I(PHY,"[UE  %d][PDSCH %x] AbsSubFrame %d.%d Generating ACK (%d,%d) for %d bits on PUSCH\n",
-        Mod_id,
-        ue->ulsch[eNB_id]->rnti,
-        frame_tx%1024,subframe_tx,
-        ue->ulsch[eNB_id]->o_ACK[0],ue->ulsch[eNB_id]->o_ACK[1],
-        ue->ulsch[eNB_id]->harq_processes[harq_pid]->O_ACK);
-LOG_DEBUG_END
+    if ( LOG_DEBUGFLAG(DEBUG_UE_PHYPROC)) {
+      if(ue->ulsch[eNB_id]->o_ACK[0])
+      {
+  	  LOG_I(PHY,"PUSCH ACK\n");
+  	  T(T_UE_PHY_DLSCH_UE_ACK, T_INT(eNB_id), T_INT(frame_tx%1024), T_INT(subframe_tx), T_INT(ue->dlsch[ue->current_thread_id[proc->subframe_rx]][eNB_id][0]->rnti),
+  			T_INT(ue->dlsch[ue->current_thread_id[proc->subframe_rx]][eNB_id][0]->current_harq_pid));
+      }
+      else
+      {
+  	  LOG_I(PHY,"PUSCH NACK\n");
+  	  T(T_UE_PHY_DLSCH_UE_NACK, T_INT(eNB_id), T_INT(frame_tx%1024), T_INT(subframe_tx), T_INT(ue->dlsch[ue->current_thread_id[proc->subframe_rx]][eNB_id][0]->rnti),
+  			T_INT(ue->dlsch[ue->current_thread_id[proc->subframe_rx]][eNB_id][0]->current_harq_pid));
+      }
+  	LOG_I(PHY,"[UE  %d][PDSCH %x] AbsSubFrame %d.%d Generating ACK (%d,%d) for %d bits on PUSCH\n",
+  	  Mod_id,
+  	  ue->ulsch[eNB_id]->rnti,
+  	  frame_tx%1024,subframe_tx,
+  	  ue->ulsch[eNB_id]->o_ACK[0],ue->ulsch[eNB_id]->o_ACK[1],
+  	  ue->ulsch[eNB_id]->harq_processes[harq_pid]->O_ACK);
     }
+  }
 
 
-LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
+  if ( LOG_DEBUGFLAG(DEBUG_UE_PHYPROC)){
         LOG_D(PHY,
               "[UE  %d][PUSCH %d] AbsSubframe %d.%d Generating PUSCH : first_rb %d, nb_rb %d, round %d, mcs %d, rv %d, "
               "cyclic_shift %d (cyclic_shift_common %d,n_DMRS2 %d,n_PRS %d), ACK (%d,%d), O_ACK %d, ack_status_cw0 %d ack_status_cw1 %d bundling %d, Nbundled %d, CQI %d, RI %d\n",
@@ -1679,7 +1679,7 @@ LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
           ue->ulsch[eNB_id]->bundling, Nbundled,
           cqi_status,
           ri_status);
-LOG_DEBUG_END
+  }
 
 
 
@@ -1701,9 +1701,9 @@ LOG_DEBUG_END
 	    ue->prach_resources[eNB_id]->Msg3[6],
 	    ue->prach_resources[eNB_id]->Msg3[7],
 	    ue->prach_resources[eNB_id]->Msg3[8]);
-LOG_DEBUG_BEGIN(UE_TIMING)
+    if ( LOG_DEBUGFLAG(UE_TIMING)) {
       start_meas(&ue->ulsch_encoding_stats);
-LOG_DEBUG_END
+    }
       
       AssertFatal(ulsch_encoding(ue->prach_resources[eNB_id]->Msg3,
 				 ue,
@@ -1713,11 +1713,11 @@ LOG_DEBUG_END
 				 ue->transmission_mode[eNB_id],0,0)==0,
 		  "ulsch_coding.c: FATAL ERROR: returning\n");
       
-LOG_DEBUG_BEGIN(UE_TIMING)
+    if ( LOG_DEBUGFLAG(UE_TIMING)) {
       stop_meas(&ue->phy_proc_tx);
       LOG_UI(PHY,"------FULL TX PROC : %5.2f ------\n",ue->phy_proc_tx.p_time/(cpuf*1000.0));
       stop_meas(&ue->ulsch_encoding_stats);
-LOG_DEBUG_END
+    }
 
       if (ue->mac_enabled == 1) {
 
@@ -1752,26 +1752,25 @@ LOG_DEBUG_END
       
 
 	
-LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
+      if (LOG_DEBUGFLAG(DEBUG_UE_PHYPROC)) {
 	LOG_D(PHY,"[UE] Frame %d, subframe %d : ULSCH SDU (TX harq_pid %d)  (%d bytes) : \n",frame_tx,subframe_tx,harq_pid, ue->ulsch[eNB_id]->harq_processes[harq_pid]->TBS>>3);
 	
 	for (i=0; i<ue->ulsch[eNB_id]->harq_processes[harq_pid]->TBS>>3; i++)
 	  LOG_T(PHY,"%x.",ulsch_input_buffer[i]);
 	
 	LOG_T(PHY,"\n");
-LOG_DEBUG_END
       }
-      else {
+     } else {
 	unsigned int taus(void);
 	
 	for (i=0; i<input_buffer_length; i++)
 	  ulsch_input_buffer[i]= (uint8_t)(taus()&0xff);
 	
-      }
+     }
       
-LOG_DEBUG_BEGIN(UE_TIMING)
+     if ( LOG_DEBUGFLAG(UE_TIMING)) {
       start_meas(&ue->ulsch_encoding_stats);
-LOG_DEBUG_END
+     }
       if (abstraction_flag==0) {
 	
 	if (ulsch_encoding(ulsch_input_buffer,
@@ -1783,16 +1782,16 @@ LOG_DEBUG_END
 			   Nbundled)!=0) {
 	  LOG_E(PHY,"ulsch_coding.c: FATAL ERROR: returning\n");
 	  VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_TX, VCD_FUNCTION_OUT);
-LOG_DEBUG_BEGIN(UE_TIMING)
-	  stop_meas(&ue->phy_proc_tx);
-LOG_DEBUG_END
+          if (LOG_DEBUGFLAG(UE_TIMING)) {
+	    stop_meas(&ue->phy_proc_tx);
+          }
 	  return;
 	}
       }
       
-LOG_DEBUG_BEGIN(UE_TIMING)
-      stop_meas(&ue->ulsch_encoding_stats);
-LOG_DEBUG_END
+      if(LOG_DEBUGFLAG(UE_TIMING)) {
+        stop_meas(&ue->ulsch_encoding_stats);
+      }
     }
     
     if (abstraction_flag == 0) {
@@ -1817,13 +1816,13 @@ LOG_DEBUG_END
     T(T_UE_PHY_PUSCH_TX_POWER, T_INT(eNB_id), T_INT(frame_tx%1024), T_INT(subframe_tx),T_INT(ue->tx_power_dBm[subframe_tx]),
       T_INT(tx_amp),T_INT(ue->ulsch[eNB_id]->f_pusch),T_INT(get_PL(Mod_id,0,eNB_id)),T_INT(nb_rb));
 
-LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
-    LOG_D(PHY,"[UE  %d][PUSCH %d] AbsSubFrame %d.%d, generating PUSCH, Po_PUSCH: %d dBm (max %d dBm), amp %d\n",
-	  Mod_id,harq_pid,frame_tx%1024,subframe_tx,ue->tx_power_dBm[subframe_tx],ue->tx_power_max_dBm, tx_amp);
-LOG_DEBUG_END
-LOG_DEBUG_BEGIN(UE_TIMING)
-    start_meas(&ue->ulsch_modulation_stats);
-LOG_DEBUG_END
+    if (LOG_DEBUGFLAG(DEBUG_UE_PHYPROC)) {
+      LOG_D(PHY,"[UE  %d][PUSCH %d] AbsSubFrame %d.%d, generating PUSCH, Po_PUSCH: %d dBm (max %d dBm), amp %d\n",
+	    Mod_id,harq_pid,frame_tx%1024,subframe_tx,ue->tx_power_dBm[subframe_tx],ue->tx_power_max_dBm, tx_amp);
+    }
+    if (LOG_DEBUGFLAG(UE_TIMING)) {
+      start_meas(&ue->ulsch_modulation_stats);
+    }
     ulsch_modulation(ue->common_vars.txdataF,
 		     tx_amp,
 		     frame_tx,
@@ -1840,9 +1839,9 @@ LOG_DEBUG_END
 			 nb_rb,
 			 aa);
 
-LOG_DEBUG_BEGIN(UE_TIMING)
-    stop_meas(&ue->ulsch_modulation_stats);
-LOG_DEBUG_END
+    if (LOG_DEBUGFLAG(UE_TIMING)) {
+      stop_meas(&ue->ulsch_modulation_stats);
+    }
 
     }
     
@@ -2219,18 +2218,18 @@ void ue_pucch_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin
       }
 
 
-LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
-      if(pucch_payload[0])
-      {
-          T(T_UE_PHY_DLSCH_UE_ACK, T_INT(eNB_id), T_INT(frame_tx%1024), T_INT(subframe_tx), T_INT(ue->dlsch[ue->current_thread_id[proc->subframe_rx]][eNB_id][0]->rnti),
-                  T_INT(ue->dlsch[ue->current_thread_id[proc->subframe_rx]][eNB_id][0]->current_harq_pid));
-      }
-      else
-      {
-          T(T_UE_PHY_DLSCH_UE_NACK, T_INT(eNB_id), T_INT(frame_tx%1024), T_INT(subframe_tx), T_INT(ue->dlsch[ue->current_thread_id[proc->subframe_rx]][eNB_id][0]->rnti),
-                  T_INT(ue->dlsch[ue->current_thread_id[proc->subframe_rx]][eNB_id][0]->current_harq_pid));
+      if (LOG_DEBUGFLAG(DEBUG_UE_PHYPROC)) {
+  	if(pucch_payload[0])
+  	{
+  	    T(T_UE_PHY_DLSCH_UE_ACK, T_INT(eNB_id), T_INT(frame_tx%1024), T_INT(subframe_tx), T_INT(ue->dlsch[ue->current_thread_id[proc->subframe_rx]][eNB_id][0]->rnti),
+  		    T_INT(ue->dlsch[ue->current_thread_id[proc->subframe_rx]][eNB_id][0]->current_harq_pid));
+  	}
+  	else
+  	{
+  	    T(T_UE_PHY_DLSCH_UE_NACK, T_INT(eNB_id), T_INT(frame_tx%1024), T_INT(subframe_tx), T_INT(ue->dlsch[ue->current_thread_id[proc->subframe_rx]][eNB_id][0]->rnti),
+  		    T_INT(ue->dlsch[ue->current_thread_id[proc->subframe_rx]][eNB_id][0]->current_harq_pid));
+  	}
       }
-LOG_DEBUG_END
 
       generate_pucch1x(ue->common_vars.txdataF,
 		       &ue->frame_parms,
@@ -2268,15 +2267,15 @@ LOG_DEBUG_END
 #endif
       T(T_UE_PHY_PUCCH_TX_POWER, T_INT(eNB_id), T_INT(frame_tx%1024), T_INT(subframe_tx),T_INT(ue->tx_power_dBm[subframe_tx]),
               T_INT(tx_amp),T_INT(ue->dlsch[ue->current_thread_id[proc->subframe_rx]][eNB_id][0]->g_pucch),T_INT(get_PL(ue->Mod_id,ue->CC_id,eNB_id)));
-LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
-      LOG_D(PHY,"[UE  %d][RNTI %x] AbsSubFrame %d.%d Generating PUCCH 2 (RI or CQI), Po_PUCCH %d, isShortenPucch %d, amp %d\n",
-              Mod_id,
-              ue->dlsch[ue->current_thread_id[proc->subframe_rx]][eNB_id][0]->rnti,
-              frame_tx%1024, subframe_tx,
-              Po_PUCCH,
-              isShortenPucch,
-              tx_amp);
-LOG_DEBUG_END
+      if( LOG_DEBUGFLAG(DEBUG_UE_PHYPROC)) {
+  	LOG_D(PHY,"[UE  %d][RNTI %x] AbsSubFrame %d.%d Generating PUCCH 2 (RI or CQI), Po_PUCCH %d, isShortenPucch %d, amp %d\n",
+  		Mod_id,
+  		ue->dlsch[ue->current_thread_id[proc->subframe_rx]][eNB_id][0]->rnti,
+  		frame_tx%1024, subframe_tx,
+  		Po_PUCCH,
+  		isShortenPucch,
+  		tx_amp);
+      }
       generate_pucch2x(ue->common_vars.txdataF,
               &ue->frame_parms,
               ue->ncs_cell,
@@ -2354,9 +2353,9 @@ void phy_procedures_UE_TX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,ui
 
 
   ue->generate_ul_signal[eNB_id] = 0;
-LOG_DEBUG_BEGIN(UE_TIMING)
-  start_meas(&ue->phy_proc_tx);
-LOG_DEBUG_END
+  if ( LOG_DEBUGFLAG(UE_TIMING)) {
+    start_meas(&ue->phy_proc_tx);
+  }
 
   ue->tx_power_dBm[subframe_tx]=-127;
 
@@ -2449,9 +2448,9 @@ LOG_DEBUG_END
   LOG_D(PHY,"****** end TX-Chain for AbsSubframe %d.%d ******\n", frame_tx, subframe_tx);
 
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_TX, VCD_FUNCTION_OUT);
-LOG_DEBUG_BEGIN(UE_TIMING)
-  stop_meas(&ue->phy_proc_tx);
-LOG_DEBUG_END
+  if ( LOG_DEBUGFLAG(UE_TIMING)) {
+    stop_meas(&ue->phy_proc_tx);
+  }
 }
 
 void phy_procedures_UE_S_TX(PHY_VARS_UE *ue,uint8_t eNB_id,uint8_t abstraction_flag)
@@ -2693,40 +2692,36 @@ void ue_pbch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc, uin
 
     }
 
-LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
+    if (LOG_DEBUGFLAG(DEBUG_UE_PHYPROC)) {
 
-    LOG_UI(PHY,"[UE %d] frame %d, subframe %d, Received PBCH (MIB): nb_antenna_ports_eNB %d, tx_ant %d, frame_tx %d. N_RB_DL %d, phich_duration %d, phich_resource %d/6!\n",
-	  ue->Mod_id,
-	  frame_rx,
-	  subframe_rx,
-	  ue->frame_parms.nb_antenna_ports_eNB,
-	  pbch_tx_ant,
-	  frame_tx,
-	  ue->frame_parms.N_RB_DL,
-	  ue->frame_parms.phich_config_common.phich_duration,
-	  ue->frame_parms.phich_config_common.phich_resource);
-LOG_DEBUG_END
+      LOG_UI(PHY,"[UE %d] frame %d, subframe %d, Received PBCH (MIB): nb_antenna_ports_eNB %d, tx_ant %d, frame_tx %d. N_RB_DL %d, phich_duration %d, phich_resource %d/6!\n",
+	    ue->Mod_id,
+	    frame_rx,
+	    subframe_rx,
+	    ue->frame_parms.nb_antenna_ports_eNB,
+	    pbch_tx_ant,
+	    frame_tx,
+	    ue->frame_parms.N_RB_DL,
+	    ue->frame_parms.phich_config_common.phich_duration,
+	    ue->frame_parms.phich_config_common.phich_resource);
+    }
 
   } else { 
 
-    /*
-    LOG_E(PHY,"[UE %d] frame %d, subframe %d, Error decoding PBCH!\n",
-    ue->Mod_id,frame_rx, subframe_rx);
-
-    LOG_I(PHY,"[UE %d] rx_offset %d\n",ue->Mod_id,ue->rx_offset);
+    if (LOG_GENFILEFLAG(DEBUG_UE_PHYPROC)) {
+      LOG_E(PHY,"[UE %d] frame %d, subframe %d, Error decoding PBCH!\n",
+      ue->Mod_id,frame_rx, subframe_rx);
 
+      LOG_I(PHY,"[UE %d] rx_offset %d\n",ue->Mod_id,ue->rx_offset);
 
-    LOG_M("rxsig0.m","rxs0", ue->common_vars.rxdata[0],ue->frame_parms.samples_per_tti,1,1);
 
-    LOG_M("H00.m","h00",&(ue->common_vars.dl_ch_estimates[0][0][0]),((ue->frame_parms.Ncp==0)?7:6)*(ue->frame_parms.ofdm_symbol_size),1,1);
-    LOG_M("H10.m","h10",&(ue->common_vars.dl_ch_estimates[0][2][0]),((ue->frame_parms.Ncp==0)?7:6)*(ue->frame_parms.ofdm_symbol_size),1,1);
+      LOG_M("rxsig0.m","rxs0", ue->common_vars.rxdata[0],ue->frame_parms.samples_per_tti,1,1);
 
-    LOG_M("rxsigF0.m","rxsF0", ue->common_vars.rxdataF[0],8*ue->frame_parms.ofdm_symbol_size,1,1);
-    LOG_M("PBCH_rxF0_ext.m","pbch0_ext",ue->pbch_vars[0]->rxdataF_ext[0],12*4*6,1,1);
-    LOG_M("PBCH_rxF0_comp.m","pbch0_comp",ue->pbch_vars[0]->rxdataF_comp[0],12*4*6,1,1);
-    LOG_M("PBCH_rxF_llr.m","pbch_llr",ue->pbch_vars[0]->llr,(ue->frame_parms.Ncp==0) ? 1920 : 1728,1,4);
-    exit(-1);
-    */
+      LOG_M("PBCH_rxF0_ext.m","pbch0_ext",ue->pbch_vars[0]->rxdataF_ext[0],12*4*6,1,1);
+      LOG_M("PBCH_rxF0_comp.m","pbch0_comp",ue->pbch_vars[0]->rxdataF_comp[0],12*4*6,1,1);
+      LOG_M("PBCH_rxF_llr.m","pbch_llr",ue->pbch_vars[0]->llr,(ue->frame_parms.Ncp==0) ? 1920 : 1728,1,4);
+      exit(-1);
+    }
 
     ue->pbch_vars[eNB_id]->pdu_errors_conseq++;
     ue->pbch_vars[eNB_id]->pdu_errors++;
@@ -2742,12 +2737,12 @@ LOG_DEBUG_END
     ue->pbch_vars[eNB_id]->pdu_errors_last = ue->pbch_vars[eNB_id]->pdu_errors;
   }
 
-LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
-  LOG_UI(PHY,"[UE %d] frame %d, slot %d, PBCH errors = %d, consecutive errors = %d!\n",
-  ue->Mod_id,frame_rx, subframe_rx,
-  ue->pbch_vars[eNB_id]->pdu_errors,
-  ue->pbch_vars[eNB_id]->pdu_errors_conseq);
-LOG_DEBUG_END
+  if (LOG_DEBUGFLAG(DEBUG_UE_PHYPROC)) {
+    LOG_UI(PHY,"[UE %d] frame %d, slot %d, PBCH errors = %d, consecutive errors = %d!\n",
+    ue->Mod_id,frame_rx, subframe_rx,
+    ue->pbch_vars[eNB_id]->pdu_errors,
+    ue->pbch_vars[eNB_id]->pdu_errors_conseq);
+  }
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_PBCH_PROCEDURES, VCD_FUNCTION_OUT);
 }
 
@@ -2767,9 +2762,9 @@ int ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint
 
   LOG_D(PHY,"DCI Decoding procedure in %d.%d\n",frame_rx,subframe_rx);
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_PDCCH_PROCEDURES, VCD_FUNCTION_IN);
-LOG_DEBUG_BEGIN(UE_TIMING)
-  start_meas(&ue->dlsch_rx_pdcch_stats);
-LOG_DEBUG_END
+  if (LOG_DEBUGFLAG(UE_TIMING)) {
+    start_meas(&ue->dlsch_rx_pdcch_stats);
+  }
 
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RX_PDCCH, VCD_FUNCTION_IN);
   rx_pdcch(ue,
@@ -2896,17 +2891,17 @@ LOG_DEBUG_END
 	
 	ue->dlsch_received[eNB_id]++;
 	
-LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
-	LOG_D(PHY,"[UE  %d] Generated UE DLSCH C_RNTI format %d\n",ue->Mod_id,dci_alloc_rx[i].format);
-	dump_dci(&ue->frame_parms, &dci_alloc_rx[i]);
-	LOG_D(PHY,"[UE %d] *********** dlsch->active in subframe %d=> %d\n",ue->Mod_id,subframe_rx,ue->dlsch[ue->current_thread_id[subframe_rx]][eNB_id][0]->active);
-LOG_DEBUG_END
+        if ( LOG_DEBUGFLAG(DEBUG_UE_PHYPROC)) {
+	  LOG_D(PHY,"[UE  %d] Generated UE DLSCH C_RNTI format %d\n",ue->Mod_id,dci_alloc_rx[i].format);
+	  dump_dci(&ue->frame_parms, &dci_alloc_rx[i]);
+	  LOG_D(PHY,"[UE %d] *********** dlsch->active in subframe %d=> %d\n",ue->Mod_id,subframe_rx,ue->dlsch[ue->current_thread_id[subframe_rx]][eNB_id][0]->active);
+        }
 	
 	// we received a CRNTI, so we're in PUSCH
 	if (ue->UE_mode[eNB_id] != PUSCH) {
-LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
+          if (LOG_DEBUGFLAG(DEBUG_UE_PHYPROC)) {
 	  LOG_D(PHY,"[UE  %d] Frame %d, subframe %d: Received DCI with CRNTI %x => Mode PUSCH\n",ue->Mod_id,frame_rx,subframe_rx,ue->pdcch_vars[subframe_rx&1][eNB_id]->crnti);
-LOG_DEBUG_END
+         }
 	  
 	  //dump_dci(&ue->frame_parms, &dci_alloc_rx[i]);
 	  ue->UE_mode[eNB_id] = PUSCH;
@@ -2921,9 +2916,9 @@ LOG_DEBUG_END
 	       ((dci_alloc_rx[i].format == format1A) || (dci_alloc_rx[i].format == format1C))) {
 
 
-LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
-	LOG_D(PHY,"[UE  %d] subframe %d: Found rnti %x, format 1%s, dci_cnt %d\n",ue->Mod_id,subframe_rx,dci_alloc_rx[i].rnti,dci_alloc_rx[i].format==format1A?"A":"C",i);
-LOG_DEBUG_END
+        if (LOG_DEBUGFLAG(DEBUG_UE_PHYPROC)) {
+	  LOG_D(PHY,"[UE  %d] subframe %d: Found rnti %x, format 1%s, dci_cnt %d\n",ue->Mod_id,subframe_rx,dci_alloc_rx[i].rnti,dci_alloc_rx[i].format==format1A?"A":"C",i);
+        }
 	
 	if (generate_ue_dlsch_params_from_dci(frame_rx,
 					      subframe_rx,
@@ -2952,9 +2947,9 @@ LOG_DEBUG_END
     else if ((dci_alloc_rx[i].rnti == P_RNTI) &&
        ((dci_alloc_rx[i].format == format1A) || (dci_alloc_rx[i].format == format1C))) {
 
-LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
-      LOG_D(PHY,"[UE  %d] subframe %d: Found rnti %x, format 1%s, dci_cnt %d\n",ue->Mod_id,subframe_rx,dci_alloc_rx[i].rnti,dci_alloc_rx[i].format==format1A?"A":"C",i);
-LOG_DEBUG_END
+      if (LOG_DEBUGFLAG(DEBUG_UE_PHYPROC)) {
+        LOG_D(PHY,"[UE  %d] subframe %d: Found rnti %x, format 1%s, dci_cnt %d\n",ue->Mod_id,subframe_rx,dci_alloc_rx[i].rnti,dci_alloc_rx[i].format==format1A?"A":"C",i);
+      }
 
 
       if (generate_ue_dlsch_params_from_dci(frame_rx,
@@ -2984,9 +2979,9 @@ LOG_DEBUG_END
        (dci_alloc_rx[i].rnti == ue->prach_resources[eNB_id]->ra_RNTI) &&
        (dci_alloc_rx[i].format == format1A)) {
 
-LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
-      LOG_D(PHY,"[UE  %d][RAPROC] subframe %d: Found RA rnti %x, format 1A, dci_cnt %d\n",ue->Mod_id,subframe_rx,dci_alloc_rx[i].rnti,i);
-LOG_DEBUG_END
+      if (LOG_DEBUGFLAG(DEBUG_UE_PHYPROC)) {
+        LOG_D(PHY,"[UE  %d][RAPROC] subframe %d: Found RA rnti %x, format 1A, dci_cnt %d\n",ue->Mod_id,subframe_rx,dci_alloc_rx[i].rnti,i);
+      }
 
 
       if (generate_ue_dlsch_params_from_dci(frame_rx,
@@ -3005,20 +3000,20 @@ LOG_DEBUG_END
 					    ue->transmission_mode[eNB_id]<7?0:ue->transmission_mode[eNB_id],
                                             0)==0) {
 	
-  ue->dlsch_ra_received[eNB_id]++;
+         ue->dlsch_ra_received[eNB_id]++;
 
-LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
-  LOG_D(PHY,"[UE  %d] Generate UE DLSCH RA_RNTI format 1A, rb_alloc %x, dlsch_ra[eNB_id] %p\n",
-        ue->Mod_id,ue->dlsch_ra[eNB_id]->harq_processes[0]->rb_alloc_even[0],ue->dlsch_ra[eNB_id]);
-LOG_DEBUG_END
+         if (LOG_DEBUGFLAG(DEBUG_UE_PHYPROC)) {
+           LOG_D(PHY,"[UE  %d] Generate UE DLSCH RA_RNTI format 1A, rb_alloc %x, dlsch_ra[eNB_id] %p\n",
+                  ue->Mod_id,ue->dlsch_ra[eNB_id]->harq_processes[0]->rb_alloc_even[0],ue->dlsch_ra[eNB_id]);
+         }
       }
     } else if( (dci_alloc_rx[i].rnti == ue->pdcch_vars[ue->current_thread_id[subframe_rx]][eNB_id]->crnti) &&
 	       (dci_alloc_rx[i].format == format0)) {
 
-LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
-      LOG_D(PHY,"[UE  %d][PUSCH] Frame %d subframe %d: Found rnti %x, format 0, dci_cnt %d\n",
-      ue->Mod_id,frame_rx,subframe_rx,dci_alloc_rx[i].rnti,i);
-LOG_DEBUG_END
+      if (LOG_DEBUGFLAG(DEBUG_UE_PHYPROC)) {
+        LOG_D(PHY,"[UE  %d][PUSCH] Frame %d subframe %d: Found rnti %x, format 0, dci_cnt %d\n",
+              ue->Mod_id,frame_rx,subframe_rx,dci_alloc_rx[i].rnti,i);
+      }
 
       ue->ulsch_no_allocation_counter[eNB_id] = 0;
       //dump_dci(&ue->frame_parms,&dci_alloc_rx[i]);
@@ -3036,42 +3031,41 @@ LOG_DEBUG_END
 					     CBA_RNTI,
 					     eNB_id,
 					     0)==0)) {
-LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
+         if (LOG_DEBUGFLAG(DEBUG_UE_PHYPROC)) {
    
-    LOG_USEDINLOG_VAR(int8_t,harq_pid) = subframe2harq_pid(&ue->frame_parms,
-                              pdcch_alloc2ul_frame(&ue->frame_parms,proc->frame_rx,proc->subframe_rx),
-                              pdcch_alloc2ul_subframe(&ue->frame_parms,proc->subframe_rx));
-    T(T_UE_PHY_ULSCH_UE_DCI, T_INT(eNB_id), T_INT(proc->frame_rx%1024), T_INT(proc->subframe_rx),
-      T_INT(dci_alloc_rx[i].rnti), 
-      T_INT(harq_pid),
-      T_INT(ue->ulsch[eNB_id]->harq_processes[harq_pid]->mcs),
-      T_INT(ue->ulsch[eNB_id]->harq_processes[harq_pid]->round),
-      T_INT(ue->ulsch[eNB_id]->harq_processes[harq_pid]->first_rb),
-      T_INT(ue->ulsch[eNB_id]->harq_processes[harq_pid]->nb_rb),
-      T_INT(ue->ulsch[eNB_id]->harq_processes[harq_pid]->TBS));
-
-      LOG_D(PHY,"[UE  %d] Generate UE ULSCH C_RNTI format 0 (subframe %d)\n",ue->Mod_id,subframe_rx);
-LOG_DEBUG_END
-
+             LOG_USEDINLOG_VAR(int8_t,harq_pid) = subframe2harq_pid(&ue->frame_parms,
+                                       pdcch_alloc2ul_frame(&ue->frame_parms,proc->frame_rx,proc->subframe_rx),
+                                       pdcch_alloc2ul_subframe(&ue->frame_parms,proc->subframe_rx));
+             T(T_UE_PHY_ULSCH_UE_DCI, T_INT(eNB_id), T_INT(proc->frame_rx%1024), T_INT(proc->subframe_rx),
+               T_INT(dci_alloc_rx[i].rnti), 
+               T_INT(harq_pid),
+               T_INT(ue->ulsch[eNB_id]->harq_processes[harq_pid]->mcs),
+               T_INT(ue->ulsch[eNB_id]->harq_processes[harq_pid]->round),
+               T_INT(ue->ulsch[eNB_id]->harq_processes[harq_pid]->first_rb),
+               T_INT(ue->ulsch[eNB_id]->harq_processes[harq_pid]->nb_rb),
+               T_INT(ue->ulsch[eNB_id]->harq_processes[harq_pid]->TBS));
+
+             LOG_D(PHY,"[UE  %d] Generate UE ULSCH C_RNTI format 0 (subframe %d)\n",ue->Mod_id,subframe_rx);
+         }
       }
     } else if( (dci_alloc_rx[i].rnti == ue->ulsch[eNB_id]->cba_rnti[0]) &&
          (dci_alloc_rx[i].format == format0)) {
       // UE could belong to more than one CBA group
       // ue->Mod_id%ue->ulsch[eNB_id]->num_active_cba_groups]
-LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
-      LOG_D(PHY,"[UE  %d][PUSCH] Frame %d subframe %d: Found cba rnti %x, format 0, dci_cnt %d\n",
-      ue->Mod_id,frame_rx,subframe_rx,dci_alloc_rx[i].rnti,i);
+      if (LOG_DEBUGFLAG(DEBUG_UE_PHYPROC)) {
+        LOG_D(PHY,"[UE  %d][PUSCH] Frame %d subframe %d: Found cba rnti %x, format 0, dci_cnt %d\n",
+                   ue->Mod_id,frame_rx,subframe_rx,dci_alloc_rx[i].rnti,i);
       /*
   if (((frame_rx%100) == 0) || (frame_rx < 20))
   dump_dci(&ue->frame_parms, &dci_alloc_rx[i]);
       */
-LOG_DEBUG_END
+      }
 
       ue->ulsch_no_allocation_counter[eNB_id] = 0;
       //dump_dci(&ue->frame_parms,&dci_alloc_rx[i]);
 
       if ((ue->UE_mode[eNB_id] > PRACH) &&
-    (generate_ue_ulsch_params_from_dci((void *)&dci_alloc_rx[i].dci_pdu,
+          (generate_ue_ulsch_params_from_dci((void *)&dci_alloc_rx[i].dci_pdu,
                ue->ulsch[eNB_id]->cba_rnti[0],
                subframe_rx,
                format0,
@@ -3084,28 +3078,28 @@ LOG_DEBUG_END
                eNB_id,
                0)==0)) {
 
-LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
-  LOG_D(PHY,"[UE  %d] Generate UE ULSCH CBA_RNTI format 0 (subframe %d)\n",ue->Mod_id,subframe_rx);
-LOG_DEBUG_END
-  ue->ulsch[eNB_id]->num_cba_dci[(subframe_rx+4)%10]++;
+        if (LOG_DEBUGFLAG(DEBUG_UE_PHYPROC)) {
+          LOG_D(PHY,"[UE  %d] Generate UE ULSCH CBA_RNTI format 0 (subframe %d)\n",ue->Mod_id,subframe_rx);
+        }
+        ue->ulsch[eNB_id]->num_cba_dci[(subframe_rx+4)%10]++;
       }
     }
 
     else {
-LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
-      LOG_D(PHY,"[UE  %d] frame %d, subframe %d: received DCI %d with RNTI=%x (C-RNTI:%x, CBA_RNTI %x) and format %d!\n",ue->Mod_id,frame_rx,subframe_rx,i,dci_alloc_rx[i].rnti,
-	    ue->pdcch_vars[ue->current_thread_id[subframe_rx]][eNB_id]->crnti,
-	    ue->ulsch[eNB_id]->cba_rnti[0],
+      if (LOG_DEBUGFLAG(DEBUG_UE_PHYPROC)) {
+        LOG_D(PHY,"[UE  %d] frame %d, subframe %d: received DCI %d with RNTI=%x (C-RNTI:%x, CBA_RNTI %x) and format %d!\n",ue->Mod_id,frame_rx,subframe_rx,i,dci_alloc_rx[i].rnti,
+	      ue->pdcch_vars[ue->current_thread_id[subframe_rx]][eNB_id]->crnti,
+	      ue->ulsch[eNB_id]->cba_rnti[0],
 	    dci_alloc_rx[i].format);
 
       //      dump_dci(&ue->frame_parms, &dci_alloc_rx[i]);
-LOG_DEBUG_END
+      }
     }
 
   }
-LOG_DEBUG_BEGIN(UE_TIMING)
-  stop_meas(&ue->dlsch_rx_pdcch_stats);
-LOG_DEBUG_END
+  if (LOG_DEBUGFLAG(UE_TIMING)) {
+      stop_meas(&ue->dlsch_rx_pdcch_stats);
+  }
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_PDCCH_PROCEDURES, VCD_FUNCTION_OUT);
   return(0);
 }
@@ -3207,14 +3201,15 @@ void ue_pmch_procedures(PHY_VARS_UE *ue, UE_rxtx_proc_t *proc,int eNB_id,int abs
 	      ue->dlsch_MCH[0]->max_turbo_iterations,
 	      ue->dlsch_MCH[0]->harq_processes[0]->G);
 	dump_mch(ue,0,ue->dlsch_MCH[0]->harq_processes[0]->G,subframe_rx);
-LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
+
+        if (LOG_DEBUGFLAG(DEBUG_UE_PHYPROC)) {
 	
-	for (int i=0; i<ue->dlsch_MCH[0]->harq_processes[0]->TBS>>3; i++) {
-	  LOG_T(PHY,"%02x.",ue->dlsch_MCH[0]->harq_processes[0]->c[0][i]);
-	}
+          for (int i=0; i<ue->dlsch_MCH[0]->harq_processes[0]->TBS>>3; i++) {
+	       LOG_T(PHY,"%02x.",ue->dlsch_MCH[0]->harq_processes[0]->c[0][i]);
+	  }
 	
-	LOG_T(PHY,"\n");
-LOG_DEBUG_END
+	  LOG_T(PHY,"\n");
+        }
 	
 	
 	//	if (subframe_rx==9)
@@ -3345,12 +3340,12 @@ void ue_pdsch_procedures(PHY_VARS_UE *ue, UE_rxtx_proc_t *proc, int eNB_id, PDSC
       else
           first_symbol_flag = 0;
 
-LOG_DEBUG_BEGIN(UE_TIMING)
-      uint8_t slot = 0;
-      if(m >= ue->frame_parms.symbols_per_tti>>1)
+      if (LOG_DEBUGFLAG(UE_TIMING)) {
+        uint8_t slot = 0;
+        if(m >= ue->frame_parms.symbols_per_tti>>1)
         slot = 1;
-      start_meas(&ue->dlsch_llr_stats_parallelization[ue->current_thread_id[subframe_rx]][slot]);
-LOG_DEBUG_END
+        start_meas(&ue->dlsch_llr_stats_parallelization[ue->current_thread_id[subframe_rx]][slot]);
+      }
       // process DLSCH received in first slot
       rx_pdsch(ue,
 	       pdsch,
@@ -3363,13 +3358,13 @@ LOG_DEBUG_END
 	       dual_stream_UE,
 	       i_mod,
 	       dlsch0->current_harq_pid);
-LOG_DEBUG_BEGIN(UE_TIMING)
-      uint8_t slot = 0;
-      if(m >= ue->frame_parms.symbols_per_tti>>1)
-        slot = 1;
-      stop_meas(&ue->dlsch_llr_stats_parallelization[ue->current_thread_id[subframe_rx]][slot]);
-      LOG_UI(PHY, "[AbsSFN %d.%d] LLR Computation Symbol %d %5.2f \n",proc->frame_rx,subframe_rx,m,ue->dlsch_llr_stats_parallelization[ue->current_thread_id[subframe_rx]][slot].p_time/(cpuf*1000.0));
-LOG_DEBUG_END
+      if (LOG_DEBUGFLAG(UE_TIMING)) {
+  	uint8_t slot = 0;
+  	if(m >= ue->frame_parms.symbols_per_tti>>1)
+  	  slot = 1;
+  	stop_meas(&ue->dlsch_llr_stats_parallelization[ue->current_thread_id[subframe_rx]][slot]);
+  	LOG_UI(PHY, "[AbsSFN %d.%d] LLR Computation Symbol %d %5.2f \n",proc->frame_rx,subframe_rx,m,ue->dlsch_llr_stats_parallelization[ue->current_thread_id[subframe_rx]][slot].p_time/(cpuf*1000.0));
+      }
 
 
 
@@ -3564,9 +3559,9 @@ void ue_dlsch_procedures(PHY_VARS_UE *ue,
 						  frame_rx,
 						  subframe_rx,
 						  ue->transmission_mode[eNB_id]<7?0:ue->transmission_mode[eNB_id]);
-LOG_DEBUG_BEGIN(UE_TIMING)
-      start_meas(&ue->dlsch_unscrambling_stats);
-LOG_DEBUG_END
+      if (LOG_DEBUGFLAG(UE_TIMING)) {
+        start_meas(&ue->dlsch_unscrambling_stats);
+      }
       dlsch_unscrambling(&ue->frame_parms,
 			 0,
 			 dlsch0,
@@ -3574,9 +3569,9 @@ LOG_DEBUG_END
 			 pdsch_vars->llr[0],
 			 0,
 			 subframe_rx<<1);
-LOG_DEBUG_BEGIN(UE_TIMING)
-      stop_meas(&ue->dlsch_unscrambling_stats);
-LOG_DEBUG_END
+      if (LOG_DEBUGFLAG(UE_TIMING)) {
+        stop_meas(&ue->dlsch_unscrambling_stats);
+      }
       
       LOG_D(PHY," ------ start turbo decoder for AbsSubframe %d.%d / %d  ------  \n", frame_rx, subframe_rx, harq_pid);
       LOG_D(PHY,"start turbo decode for CW 0 for AbsSubframe %d.%d / %d --> nb_rb %d \n", frame_rx, subframe_rx, harq_pid, dlsch0->harq_processes[harq_pid]->nb_rb);
@@ -3587,9 +3582,9 @@ LOG_DEBUG_END
       LOG_D(PHY,"start turbo decode for CW 0 for AbsSubframe %d.%d / %d  --> Kmimo  %d \n", frame_rx, subframe_rx, harq_pid, dlsch0->Kmimo);
       LOG_D(PHY,"start turbo decode for CW 0 for AbsSubframe %d.%d / %d  --> Pdcch Sym  %d \n", frame_rx, subframe_rx, harq_pid, ue->pdcch_vars[ue->current_thread_id[subframe_rx]][eNB_id]->num_pdcch_symbols);
       
-LOG_DEBUG_BEGIN(UE_TIMING)
-      start_meas(&ue->dlsch_decoding_stats[ue->current_thread_id[subframe_rx]]);
-LOG_DEBUG_END
+      if (LOG_DEBUGFLAG(UE_TIMING)) {
+        start_meas(&ue->dlsch_decoding_stats[ue->current_thread_id[subframe_rx]]);
+      }
       ret = dlsch_decoding(ue,
 			   pdsch_vars->llr[0],
 			   &ue->frame_parms,
@@ -3601,14 +3596,14 @@ LOG_DEBUG_END
 			   pdsch==PDSCH?1:0,
 			   dlsch0->harq_processes[harq_pid]->TBS>256?1:0);
       
-LOG_DEBUG_BEGIN(UE_TIMING)
-      stop_meas(&ue->dlsch_decoding_stats[ue->current_thread_id[subframe_rx]]);
-      LOG_UI(PHY, " --> Unscrambling for CW0 %5.3f\n",
-	    (ue->dlsch_unscrambling_stats.p_time)/(cpuf*1000.0));
-      LOG_UI(PHY, "AbsSubframe %d.%d --> Turbo Decoding for CW0 %5.3f\n",
-	    frame_rx%1024, subframe_rx,(ue->dlsch_decoding_stats[ue->current_thread_id[subframe_rx]].p_time)/(cpuf*1000.0));
+      if (LOG_DEBUGFLAG(UE_TIMING)) {
+        stop_meas(&ue->dlsch_decoding_stats[ue->current_thread_id[subframe_rx]]);
+        LOG_UI(PHY, " --> Unscrambling for CW0 %5.3f\n",
+	      (ue->dlsch_unscrambling_stats.p_time)/(cpuf*1000.0));
+        LOG_UI(PHY, "AbsSubframe %d.%d --> Turbo Decoding for CW0 %5.3f\n",
+	      frame_rx%1024, subframe_rx,(ue->dlsch_decoding_stats[ue->current_thread_id[subframe_rx]].p_time)/(cpuf*1000.0));
       
-LOG_DEBUG_END
+      }
       if(is_cw1_active)
 	{
           // start turbo decode for CW 1
@@ -3621,9 +3616,9 @@ LOG_DEBUG_END
 						      frame_rx,
 						      subframe_rx,
 						      ue->transmission_mode[eNB_id]<7?0:ue->transmission_mode[eNB_id]);
-LOG_DEBUG_BEGIN(UE_TIMING)
-          start_meas(&ue->dlsch_unscrambling_stats);
-LOG_DEBUG_END
+          if (LOG_DEBUGFLAG(UE_TIMING)) {
+            start_meas(&ue->dlsch_unscrambling_stats);
+          }
           dlsch_unscrambling(&ue->frame_parms,
 			     0,
 			     dlsch1,
@@ -3631,9 +3626,9 @@ LOG_DEBUG_END
 			     pdsch_vars->llr[1],
 			     1,
 			     subframe_rx<<1);
-LOG_DEBUG_BEGIN(UE_TIMING)
-          stop_meas(&ue->dlsch_unscrambling_stats);
-LOG_DEBUG_END
+          if (LOG_DEBUGFLAG(UE_TIMING)) {
+            stop_meas(&ue->dlsch_unscrambling_stats);
+          }
 	  
           LOG_D(PHY,"start turbo decode for CW 1 for AbsSubframe %d.%d / %d --> nb_rb %d \n", frame_rx, subframe_rx, harq_pid, dlsch1->harq_processes[harq_pid]->nb_rb);
           LOG_D(PHY,"start turbo decode for CW 1 for AbsSubframe %d.%d / %d  --> rb_alloc_even %x \n", frame_rx, subframe_rx, harq_pid, (uint16_t)((intptr_t)dlsch1->harq_processes[harq_pid]->rb_alloc_even));
@@ -3643,9 +3638,9 @@ LOG_DEBUG_END
           LOG_D(PHY,"start turbo decode for CW 1 for AbsSubframe %d.%d / %d  --> Kmimo  %d \n", frame_rx, subframe_rx, harq_pid, dlsch1->Kmimo);
           LOG_D(PHY,"start turbo decode for CW 1 for AbsSubframe %d.%d / %d  --> Pdcch Sym  %d \n", frame_rx, subframe_rx, harq_pid, ue->pdcch_vars[ue->current_thread_id[subframe_rx]][eNB_id]->num_pdcch_symbols);
 	  
-LOG_DEBUG_BEGIN(UE_TIMING)
-          start_meas(&ue->dlsch_decoding_stats[ue->current_thread_id[subframe_rx]]);
-LOG_DEBUG_END
+          if (LOG_DEBUGFLAG(UE_TIMING)) {
+            start_meas(&ue->dlsch_decoding_stats[ue->current_thread_id[subframe_rx]]);
+          }
 	  
           ret1 = dlsch_decoding(ue,
 				pdsch_vars->llr[1],
@@ -3658,13 +3653,13 @@ LOG_DEBUG_END
 				pdsch==PDSCH?1:0,
 				dlsch1->harq_processes[harq_pid]->TBS>256?1:0);
 	  
-LOG_DEBUG_BEGIN(UE_TIMING)
-          stop_meas(&ue->dlsch_decoding_stats[ue->current_thread_id[subframe_rx]]);
-          LOG_UI(PHY, " --> Unscrambling for CW1 %5.3f\n",
-		(ue->dlsch_unscrambling_stats.p_time)/(cpuf*1000.0));
-          LOG_UI(PHY, "AbsSubframe %d.%d --> Turbo Decoding for CW1 %5.3f\n",
-		frame_rx%1024, subframe_rx,(ue->dlsch_decoding_stats[ue->current_thread_id[subframe_rx]].p_time)/(cpuf*1000.0));
-LOG_DEBUG_END
+          if (LOG_DEBUGFLAG(UE_TIMING)) {
+            stop_meas(&ue->dlsch_decoding_stats[ue->current_thread_id[subframe_rx]]);
+            LOG_UI(PHY, " --> Unscrambling for CW1 %5.3f\n",
+		  (ue->dlsch_unscrambling_stats.p_time)/(cpuf*1000.0));
+            LOG_UI(PHY, "AbsSubframe %d.%d --> Turbo Decoding for CW1 %5.3f\n",
+		  frame_rx%1024, subframe_rx,(ue->dlsch_decoding_stats[ue->current_thread_id[subframe_rx]].p_time)/(cpuf*1000.0));
+          }
 
           LOG_D(PHY,"AbsSubframe %d.%d --> Turbo Decoding for CW1 %5.3f\n",
 		frame_rx%1024, subframe_rx,(ue->dlsch_decoding_stats[ue->current_thread_id[subframe_rx]].p_time)/(cpuf*1000.0));
@@ -3703,15 +3698,15 @@ LOG_DEBUG_END
             dlsch0->harq_processes[harq_pid]->TBS);
         }
 
-LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
-      int j;
-      LOG_D(PHY,"dlsch harq_pid %d (rx): \n",dlsch0->current_harq_pid);
+      if ( LOG_DEBUGFLAG(DEBUG_UE_PHYPROC)){
+        int j;
+        LOG_D(PHY,"dlsch harq_pid %d (rx): \n",dlsch0->current_harq_pid);
 
-      for (j=0; j<dlsch0->harq_processes[dlsch0->current_harq_pid]->TBS>>3; j++)
-  LOG_T(PHY,"%x.",dlsch0->harq_processes[dlsch0->current_harq_pid]->b[j]);
+        for (j=0; j<dlsch0->harq_processes[dlsch0->current_harq_pid]->TBS>>3; j++)
+            LOG_T(PHY,"%x.",dlsch0->harq_processes[dlsch0->current_harq_pid]->b[j]);
 
-      LOG_T(PHY,"\n");
-LOG_DEBUG_END
+        LOG_T(PHY,"\n");
+      }
 
 
       if (ue->mac_enabled == 1) {
@@ -3804,26 +3799,26 @@ LOG_DEBUG_END
         }
       }
     
-LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
-    LOG_D(PHY,"[UE  %d][PDSCH %x/%d] Frame %d subframe %d: PDSCH/DLSCH decoding iter %d (mcs %d, rv %d, TBS %d)\n",
-	  ue->Mod_id,
-	  dlsch0->rnti,harq_pid,
-	  frame_rx,subframe_rx,ret,
-	  dlsch0->harq_processes[harq_pid]->mcs,
-	  dlsch0->harq_processes[harq_pid]->rvidx,
-	  dlsch0->harq_processes[harq_pid]->TBS);
-    
-    if (frame_rx%100==0) {
-      LOG_D(PHY,"[UE  %d][PDSCH %x] Frame %d subframe %d dlsch_errors %d, dlsch_received %d, dlsch_fer %d, current_dlsch_cqi %d\n",
-	    ue->Mod_id,dlsch0->rnti,
-	    frame_rx,subframe_rx,
-	    ue->dlsch_errors[eNB_id],
-	    ue->dlsch_received[eNB_id],
-	    ue->dlsch_fer[eNB_id],
-	    ue->measurements.wideband_cqi_tot[eNB_id]);
-    }
+    if (LOG_DEBUGFLAG(DEBUG_UE_PHYPROC)) {
+      LOG_D(PHY,"[UE  %d][PDSCH %x/%d] Frame %d subframe %d: PDSCH/DLSCH decoding iter %d (mcs %d, rv %d, TBS %d)\n",
+  	    ue->Mod_id,
+  	    dlsch0->rnti,harq_pid,
+  	    frame_rx,subframe_rx,ret,
+  	    dlsch0->harq_processes[harq_pid]->mcs,
+  	    dlsch0->harq_processes[harq_pid]->rvidx,
+  	    dlsch0->harq_processes[harq_pid]->TBS);
+      
+      if (frame_rx%100==0) {
+  	LOG_D(PHY,"[UE  %d][PDSCH %x] Frame %d subframe %d dlsch_errors %d, dlsch_received %d, dlsch_fer %d, current_dlsch_cqi %d\n",
+  	      ue->Mod_id,dlsch0->rnti,
+  	      frame_rx,subframe_rx,
+  	      ue->dlsch_errors[eNB_id],
+  	      ue->dlsch_received[eNB_id],
+  	      ue->dlsch_fer[eNB_id],
+  	      ue->measurements.wideband_cqi_tot[eNB_id]);
+      }
     
-LOG_DEBUG_END
+    } /*LOG_DEBUGFLAG(DEBUG_UE_PHYPROC) */
     
   }
   
@@ -3909,9 +3904,9 @@ void *UE_thread_slot1_dl_processing(void *arg) {
         }
 
         /**** Slot1 FE Processing ****/
-LOG_DEBUG_BEGIN(UE_TIMING)
-        start_meas(&ue->ue_front_end_per_slot_stat[ue->current_thread_id[subframe_rx]][1]);
-LOG_DEBUG_END
+        if (LOG_DEBUGFLAG(UE_TIMING)) {
+          start_meas(&ue->ue_front_end_per_slot_stat[ue->current_thread_id[subframe_rx]][1]);
+        }
         // I- start dl slot1 processing
         // do first symbol of next downlink subframe for channel estimation
         /*
@@ -3936,9 +3931,9 @@ LOG_DEBUG_END
         {
             //if( (l != pilot0) && (l != pilot1))
             {
-LOG_DEBUG_BEGIN(UE_TIMING)
+            if (LOG_DEBUGFLAG(UE_TIMING)) {
                 start_meas(&ue->ofdm_demod_stats);
-LOG_DEBUG_END
+            }
                 VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP, VCD_FUNCTION_IN);
                 //printf("AbsSubframe %d.%d FFT slot %d, symbol %d\n", frame_rx,subframe_rx,slot1,l);
                 front_end_fft(ue,
@@ -3947,9 +3942,9 @@ LOG_DEBUG_END
                         0,
                         0);
                 VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP, VCD_FUNCTION_OUT);
-LOG_DEBUG_BEGIN(UE_TIMING)
-                stop_meas(&ue->ofdm_demod_stats);
-LOG_DEBUG_END
+                if (LOG_DEBUGFLAG(UE_TIMING)) {
+                  stop_meas(&ue->ofdm_demod_stats);
+                }
             }
         } // for l=1..l2
 
@@ -4002,11 +3997,10 @@ LOG_DEBUG_END
         //printf(" [slot1 dl processing] ==> Start LLR Comuptation slot1 for AbsSubframe %d.%d \n", proc->frame_rx, proc->subframe_rx);
 
 
-LOG_DEBUG_BEGIN(UE_TIMING)
-        stop_meas(&ue->ue_front_end_per_slot_stat[ue->current_thread_id[subframe_rx]][1]);
-        LOG_UI(PHY, "[AbsSFN %d.%d] Slot1: FFT + Channel Estimate + Pdsch Proc Slot0 %5.2f \n",frame_rx,subframe_rx,ue->ue_front_end_per_slot_stat[ue->current_thread_id[subframe_rx]][1].p_time/(cpuf*1000.0));
-
-LOG_DEBUG_END
+        if ( LOG_DEBUGFLAG(UE_TIMING)) {
+          stop_meas(&ue->ue_front_end_per_slot_stat[ue->current_thread_id[subframe_rx]][1]);
+          LOG_UI(PHY, "[AbsSFN %d.%d] Slot1: FFT + Channel Estimate + Pdsch Proc Slot0 %5.2f \n",frame_rx,subframe_rx,ue->ue_front_end_per_slot_stat[ue->current_thread_id[subframe_rx]][1].p_time/(cpuf*1000.0));
+        }
 
 
     //wait until pdcch is decoded
@@ -4025,9 +4019,9 @@ LOG_DEBUG_END
     //printf("AbsSubframe %d.%d Pdsch Procedure (slot1)\n",frame_rx,subframe_rx);
 
 
-LOG_DEBUG_BEGIN(UE_TIMING)
-    start_meas(&ue->pdsch_procedures_per_slot_stat[ue->current_thread_id[subframe_rx]][1]);
-LOG_DEBUG_END
+    if ( LOG_DEBUGFLAG(UE_TIMING)) {
+      start_meas(&ue->pdsch_procedures_per_slot_stat[ue->current_thread_id[subframe_rx]][1]);
+    }
     // start slave thread for Pdsch Procedure (slot1)
     // do procedures for C-RNTI
     uint8_t eNB_id = 0;
@@ -4097,10 +4091,10 @@ LOG_DEBUG_END
     proc->llr_slot1_available=1;
     //printf("Set available LLR slot1 to 1 AbsSubframe %d.%d \n",frame_rx,subframe_rx);
 
-LOG_DEBUG_BEGIN(UE_TIMING)
-    stop_meas(&ue->pdsch_procedures_per_slot_stat[ue->current_thread_id[subframe_rx]][1]);
-    LOG_UI(PHY, "[AbsSFN %d.%d] Slot1: LLR Computation %5.2f \n",frame_rx,subframe_rx,ue->pdsch_procedures_per_slot_stat[ue->current_thread_id[subframe_rx]][1].p_time/(cpuf*1000.0));
-LOG_DEBUG_END
+    if ( LOG_DEBUGFLAG(UE_TIMING)) {
+      stop_meas(&ue->pdsch_procedures_per_slot_stat[ue->current_thread_id[subframe_rx]][1]);
+      LOG_UI(PHY, "[AbsSFN %d.%d] Slot1: LLR Computation %5.2f \n",frame_rx,subframe_rx,ue->pdsch_procedures_per_slot_stat[ue->current_thread_id[subframe_rx]][1].p_time/(cpuf*1000.0));
+    }
 
 
         if (pthread_mutex_lock(&proc->mutex_slot1_dl_processing) != 0) {
@@ -4144,14 +4138,14 @@ int phy_procedures_slot_parallelization_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *pr
 
 
     // start timers
-LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
-    LOG_D(PHY," ****** start RX-Chain for AbsSubframe %d.%d ******  \n", frame_rx%1024, subframe_rx);
-LOG_DEBUG_END
+    if (LOG_DEBUGFLAG(DEBUG_UE_PHYPROC)) {
+      LOG_D(PHY," ****** start RX-Chain for AbsSubframe %d.%d ******  \n", frame_rx%1024, subframe_rx);
+    }
 
-LOG_DEBUG_BEGIN(UE_TIMING)
-    start_meas(&ue->phy_proc_rx[ue->current_thread_id[subframe_rx]]);
-    start_meas(&ue->ue_front_end_stat[ue->current_thread_id[subframe_rx]]);
-LOG_DEBUG_END
+    if (LOG_DEBUGFLAG(UE_TIMING)) {
+      start_meas(&ue->phy_proc_rx[ue->current_thread_id[subframe_rx]]);
+      start_meas(&ue->ue_front_end_stat[ue->current_thread_id[subframe_rx]]);
+    }
 
     pmch_flag = is_pmch_subframe(frame_rx,subframe_rx,&ue->frame_parms) ? 1 : 0;
 
@@ -4170,10 +4164,10 @@ LOG_DEBUG_END
             ue->dlsch_ra[eNB_id]->active = 0;
     }
 
-LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
-    LOG_D(PHY,"[UE %d] Frame %d subframe %d: Doing phy_procedures_UE_RX\n",
-                    ue->Mod_id,frame_rx, subframe_rx);
-LOG_DEBUG_END
+    if ( LOG_DEBUG_FLAG(DEBUG_UE_PHYPROC)) {
+      LOG_D(PHY,"[UE %d] Frame %d subframe %d: Doing phy_procedures_UE_RX\n",
+                      ue->Mod_id,frame_rx, subframe_rx);
+    }
 
 
 
@@ -4247,9 +4241,9 @@ LOG_DEBUG_END
 
     /**** Slot0 FE Processing ****/
     // I- start main thread for FFT/ChanEst symbol: 0/1 --> 7
-LOG_DEBUG_BEGIN(UE_TIMING)
-    start_meas(&ue->ue_front_end_per_slot_stat[ue->current_thread_id[subframe_rx]][0]);
-LOG_DEBUG_END
+    if ( LOG_DEBUGFLAG(UE_TIMING)) {
+      start_meas(&ue->ue_front_end_per_slot_stat[ue->current_thread_id[subframe_rx]][0]);
+    }
     // 1- perform FFT for pilot ofdm symbols first (ofdmSym7 ofdmSym4 or (ofdmSym6 ofdmSym3))
     //printf("AbsSubframe %d.%d FFT slot %d, symbol %d\n", frame_rx,subframe_rx,slot1,pilot0);
     front_end_fft(ue,
@@ -4282,9 +4276,9 @@ LOG_DEBUG_END
         if( (l != pilot0) && (l != pilot1))
         {
             //printf("AbsSubframe %d.%d FFT slot %d, symbol %d\n", frame_rx,subframe_rx,slot0,l);
-LOG_DEBUG_BEGIN(UE_TIMING)
-            start_meas(&ue->ofdm_demod_stats);
-LOG_DEBUG_END
+            if (LOG_DEBUGFLAG(UE_TIMING)) {
+              start_meas(&ue->ofdm_demod_stats);
+            }
             VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP, VCD_FUNCTION_IN);
             front_end_fft(ue,
                     l,
@@ -4292,9 +4286,9 @@ LOG_DEBUG_END
                     0,
                     0);
             VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP, VCD_FUNCTION_OUT);
-LOG_DEBUG_BEGIN(UE_TIMING)
-            stop_meas(&ue->ofdm_demod_stats);
-LOG_DEBUG_END
+            if (LOG_DEBUGFLAG(UE_TIMING)) {
+              stop_meas(&ue->ofdm_demod_stats);
+            }
         }
     } // for l=1..l2
 
@@ -4313,32 +4307,32 @@ LOG_DEBUG_END
     }
 
     if (do_pdcch_flag) {
-LOG_DEBUG_BEGIN(UE_TIMING)
-        start_meas(&ue->pdcch_procedures_stat[ue->current_thread_id[subframe_rx]]);
-LOG_DEBUG_END
+        if (LOG_DEBUGFLAG(UE_TIMING)) {
+          start_meas(&ue->pdcch_procedures_stat[ue->current_thread_id[subframe_rx]]);
+        }
         if (ue_pdcch_procedures(eNB_id,ue,proc,abstraction_flag) == -1) {
             LOG_E(PHY,"[UE  %d] Frame %d, subframe %d: Error in pdcch procedures\n",ue->Mod_id,frame_rx,subframe_rx);
-LOG_DEBUG_BEGIN(UE_TIMING)
+          if (LOG_DEBUGFLAG(UE_TIMING)) {
             LOG_UI(PHY, "[AbsSFN %d.%d] Slot0: PDCCH %5.2f \n",frame_rx,subframe_rx,ue->pdcch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0));
-LOG_DEBUG_END
+        }
 
             //proc->dci_slot0_available = 1;
             return(-1);
         }
         //proc->dci_slot0_available=1;
-LOG_DEBUG_BEGIN(UE_TIMING)
-        stop_meas(&ue->pdcch_procedures_stat[ue->current_thread_id[subframe_rx]]);
-        LOG_UI(PHY, "[AbsSFN %d.%d] Slot0: PDCCH %5.2f \n",frame_rx,subframe_rx,ue->pdcch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0));
-LOG_DEBUG_END
+        if (LOG_DEBUGFLAG(UE_TIMING)) {
+          stop_meas(&ue->pdcch_procedures_stat[ue->current_thread_id[subframe_rx]]);
+          LOG_UI(PHY, "[AbsSFN %d.%d] Slot0: PDCCH %5.2f \n",frame_rx,subframe_rx,ue->pdcch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0));
+        }
     }
 
     //printf("num_pdcch_symbols %d\n",ue->pdcch_vars[ue->current_thread_id[subframe_rx]][eNB_id]->num_pdcch_symbols);
 
     // first slot has been processed (FFTs + Channel Estimation, PCFICH/PHICH/PDCCH)
-LOG_DEBUG_BEGIN(UE_TIMING)
-    stop_meas(&ue->ue_front_end_per_slot_stat[ue->current_thread_id[subframe_rx]][0]);
-    LOG_UI(PHY, "[AbsSFN %d.%d] Slot0: FFT + Channel Estimate + PCFICH/PHICH/PDCCH %5.2f \n",frame_rx,subframe_rx,ue->ue_front_end_per_slot_stat[ue->current_thread_id[subframe_rx]][0].p_time/(cpuf*1000.0));
-LOG_DEBUG_END
+    if (LOG_DEBUGFLAG(UE_TIMING)) {
+      stop_meas(&ue->ue_front_end_per_slot_stat[ue->current_thread_id[subframe_rx]][0]);
+      LOG_UI(PHY, "[AbsSFN %d.%d] Slot0: FFT + Channel Estimate + PCFICH/PHICH/PDCCH %5.2f \n",frame_rx,subframe_rx,ue->ue_front_end_per_slot_stat[ue->current_thread_id[subframe_rx]][0].p_time/(cpuf*1000.0));
+    }
 
     //wait until slot1 FE is done
     uint32_t wait = 0;
@@ -4348,10 +4342,10 @@ LOG_DEBUG_END
         wait++;
     }
 
-LOG_DEBUG_BEGIN(UE_TIMING)
-    stop_meas(&ue->ue_front_end_stat[ue->current_thread_id[subframe_rx]]);
-    LOG_UI(PHY, "[AbsSFN %d.%d] FULL FE Processing %5.2f \n",frame_rx,subframe_rx,ue->ue_front_end_per_slot_stat[ue->current_thread_id[subframe_rx]][0].p_time/(cpuf*1000.0));
-LOG_DEBUG_END
+    if (LOG_DEBUGFLAG(UE_TIMING)) {
+      stop_meas(&ue->ue_front_end_stat[ue->current_thread_id[subframe_rx]]);
+      LOG_UI(PHY, "[AbsSFN %d.%d] FULL FE Processing %5.2f \n",frame_rx,subframe_rx,ue->ue_front_end_per_slot_stat[ue->current_thread_id[subframe_rx]][0].p_time/(cpuf*1000.0));
+    }
     /**** End Subframe FE Processing ****/
 
 
@@ -4365,13 +4359,13 @@ LOG_DEBUG_END
     //printf("AbsSubframe %d.%d Pdsch Procedure (slot0)\n",frame_rx%1024,subframe_rx);
     //printf("AbsSubframe %d.%d Pdsch Procedure PDSCH Active %d \n",frame_rx%1024,subframe_rx, ue->dlsch[ue->current_thread_id[subframe_rx]][0][0]->active);
 
-LOG_DEBUG_BEGIN(UE_TIMING)
-    start_meas(&ue->pdsch_procedures_stat[ue->current_thread_id[subframe_rx]]);
-LOG_DEBUG_END
+    if (LOG_DEBUGFLAG(UE_TIMING)) {
+      start_meas(&ue->pdsch_procedures_stat[ue->current_thread_id[subframe_rx]]);
+    }
 
-LOG_DEBUG_BEGIN(UE_TIMING)
-    start_meas(&ue->pdsch_procedures_per_slot_stat[ue->current_thread_id[subframe_rx]][0]);
-LOG_DEBUG_END
+    if (LOG_DEBUGFLAG(UE_TIMING)) {
+      start_meas(&ue->pdsch_procedures_per_slot_stat[ue->current_thread_id[subframe_rx]][0]);
+    }
     if (ue->dlsch[ue->current_thread_id[subframe_rx]][eNB_id][0]->active == 1) {
         VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC, VCD_FUNCTION_IN);
         ue_pdsch_procedures(ue,
@@ -4437,10 +4431,10 @@ LOG_DEBUG_END
     //printf("Set available dci slot0 to 1 AbsSubframe %d.%d \n",frame_rx%1024,subframe_rx);
 
 
-LOG_DEBUG_BEGIN(UE_TIMING)
-    stop_meas(&ue->pdsch_procedures_per_slot_stat[ue->current_thread_id[subframe_rx]][0]);
-    LOG_UI(PHY, "[AbsSFN %d.%d] Slot0: LLR Computation %5.2f \n",frame_rx,subframe_rx,ue->pdsch_procedures_per_slot_stat[ue->current_thread_id[subframe_rx]][0].p_time/(cpuf*1000.0));
-LOG_DEBUG_END
+    if (LOG_DEBUGFLAG(UE_TIMING)){
+      stop_meas(&ue->pdsch_procedures_per_slot_stat[ue->current_thread_id[subframe_rx]][0]);
+      LOG_UI(PHY, "[AbsSFN %d.%d] Slot0: LLR Computation %5.2f \n",frame_rx,subframe_rx,ue->pdsch_procedures_per_slot_stat[ue->current_thread_id[subframe_rx]][0].p_time/(cpuf*1000.0));
+    }
 
 
     //wait until LLR Slot1 is done
@@ -4453,16 +4447,16 @@ LOG_DEBUG_END
 
 
 
-LOG_DEBUG_BEGIN(UE_TIMING)
-    stop_meas(&ue->pdsch_procedures_stat[ue->current_thread_id[subframe_rx]]);
-    LOG_UI(PHY, "[AbsSFN %d.%d] Full LLR Computation %5.2f \n",frame_rx,subframe_rx,ue->pdsch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0));
-LOG_DEBUG_END
+    if (LOG_DEBUGFLAG(UE_TIMING)){
+      stop_meas(&ue->pdsch_procedures_stat[ue->current_thread_id[subframe_rx]]);
+      LOG_UI(PHY, "[AbsSFN %d.%d] Full LLR Computation %5.2f \n",frame_rx,subframe_rx,ue->pdsch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0));
+    }
 
 
     //=====================================================================//
-LOG_DEBUG_BEGIN(UE_TIMING)
-    start_meas(&ue->dlsch_procedures_stat[ue->current_thread_id[subframe_rx]]);
-LOG_DEBUG_END
+    if (LOG_DEBUGFLAG(UE_TIMING)){
+      start_meas(&ue->dlsch_procedures_stat[ue->current_thread_id[subframe_rx]]);
+    }
 
     LOG_D(PHY,"==> Start Turbo Decoder active dlsch %d SI %d RA %d \n",ue->dlsch[ue->current_thread_id[subframe_rx]][eNB_id][0]->active,
     		ue->dlsch_SI[eNB_id]->active,
@@ -4524,10 +4518,10 @@ LOG_DEBUG_END
         ue->dlsch_ra[eNB_id]->active = 0;
     }
 
-LOG_DEBUG_BEGIN(UE_TIMING)
-        stop_meas(&ue->dlsch_procedures_stat[ue->current_thread_id[subframe_rx]]);
-        LOG_UI(PHY, "[AbsSFN %d.%d] Channel Decoder: %5.2f \n",frame_rx,subframe_rx,ue->dlsch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0));
-LOG_DEBUG_END
+    if (LOG_DEBUGFLAG(UE_TIMING)
+      stop_meas(&ue->dlsch_procedures_stat[ue->current_thread_id[subframe_rx]]);
+      LOG_UI(PHY, "[AbsSFN %d.%d] Channel Decoder: %5.2f \n",frame_rx,subframe_rx,ue->dlsch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0));
+    }
 
         // duplicate harq structure
         uint8_t          current_harq_pid        = ue->dlsch[ue->current_thread_id[subframe_rx]][eNB_id][0]->current_harq_pid;
@@ -4587,10 +4581,10 @@ LOG_DEBUG_END
 
     VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_RX, VCD_FUNCTION_OUT);
 
-LOG_DEBUG_BEGIN(UE_TIMING)
+    if (LOG_DEBUGFLAG(UE_TIMING)){
     stop_meas(&ue->phy_proc_rx[ue->current_thread_id[subframe_rx]]);
     LOG_UI(PHY, "------FULL RX PROC [AbsSFN %d.%d]: %5.2f ------\n",frame_rx,subframe_rx,ue->phy_proc_rx[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0));
-LOG_DEBUG_END
+    }
 
     LOG_D(PHY," ****** end RX-Chain  for AbsSubframe %d.%d ******  \n", frame_rx%1024, subframe_rx);
     return (0);
@@ -4626,14 +4620,14 @@ int phy_procedures_UE_RX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,
 
 
   // start timers
-LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
-  LOG_I(PHY," ****** start RX-Chain for AbsSubframe %d.%d ******  \n", frame_rx%1024, subframe_rx);
-LOG_DEBUG_END
+  if ( LOG_DEBUGFLAG(DEBUG_UE_PHYPROC)) {
+    LOG_I(PHY," ****** start RX-Chain for AbsSubframe %d.%d ******  \n", frame_rx%1024, subframe_rx);
+  }
 
-LOG_DEBUG_BEGIN(UE_TIMING)
-  start_meas(&ue->phy_proc_rx[ue->current_thread_id[subframe_rx]]);
-  start_meas(&ue->generic_stat);
-LOG_DEBUG_END
+  if(LOG_DEBUGFLAG(UE_TIMING)) {
+    start_meas(&ue->phy_proc_rx[ue->current_thread_id[subframe_rx]]);
+    start_meas(&ue->generic_stat);
+  }
 
   pmch_flag = is_pmch_subframe(frame_rx,subframe_rx,&ue->frame_parms) ? 1 : 0;
 
@@ -4652,10 +4646,10 @@ LOG_DEBUG_END
     ue->dlsch_ra[eNB_id]->active = 0;
   }
 
-LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
-  LOG_D(PHY,"[UE %d] Frame %d subframe %d: Doing phy_procedures_UE_RX\n",
-  ue->Mod_id,frame_rx, subframe_rx);
-LOG_DEBUG_END
+  if (LOG_DEBUGFLAG(DEBUG_UE_PHYPROC)) {
+      LOG_D(PHY,"[UE %d] Frame %d subframe %d: Doing phy_procedures_UE_RX\n",
+      ue->Mod_id,frame_rx, subframe_rx);
+  }
 
   if (ue->frame_parms.Ncp == 0) {  // normal prefix
     pilot1 = 4;
@@ -4689,9 +4683,9 @@ LOG_DEBUG_END
   LOG_D(PHY," ------  --> FFT/ChannelEst/PDCCH slot 0: AbsSubframe %d.%d ------  \n", frame_rx%1024, subframe_rx);
   for (; l<=l2; l++) {
     if (abstraction_flag == 0) {
-LOG_DEBUG_BEGIN(UE_TIMING)
-        start_meas(&ue->ofdm_demod_stats);
-LOG_DEBUG_END
+        if (LOG_DEBUGFLAG(UE_TIMING)) {
+          start_meas(&ue->ofdm_demod_stats);
+        }
       VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP, VCD_FUNCTION_IN);
       slot_fep(ue,
          l,
@@ -4700,9 +4694,9 @@ LOG_DEBUG_END
          0,
          0);
       VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP, VCD_FUNCTION_OUT);
-LOG_DEBUG_BEGIN(UE_TIMING)
-      stop_meas(&ue->ofdm_demod_stats);
-LOG_DEBUG_END
+      if (LOG_DEBUGFLAG(UE_TIMING)) {
+        stop_meas(&ue->ofdm_demod_stats);
+        }
     }
 
     ue_measurement_procedures(l-1,ue,proc,eNB_id,(subframe_rx<<1),abstraction_flag,mode);
@@ -4743,16 +4737,16 @@ LOG_DEBUG_END
      0);
 
   // first slot has been processed (FFTs + Channel Estimation, PCFICH/PHICH/PDCCH)
-LOG_DEBUG_BEGIN(UE_TIMING)
-  stop_meas(&ue->generic_stat);
-  LOG_UI(PHY, "[SFN %d] Slot0: FFT + Channel Estimate + PCFICH/PHICH/PDCCH %5.2f \n",subframe_rx,ue->generic_stat.p_time/(cpuf*1000.0));
-LOG_DEBUG_END
+  if (LOG_DEBUGFLAG(UE_TIMING)) {
+    stop_meas(&ue->generic_stat);
+    LOG_UI(PHY, "[SFN %d] Slot0: FFT + Channel Estimate + PCFICH/PHICH/PDCCH %5.2f \n",subframe_rx,ue->generic_stat.p_time/(cpuf*1000.0));
+  }
 
 
   LOG_D(PHY," ------ --> PDSCH ChannelComp/LLR slot 0: AbsSubframe %d.%d ------  \n", frame_rx%1024, subframe_rx);
-LOG_DEBUG_BEGIN(UE_TIMING)
-  start_meas(&ue->generic_stat);
-LOG_DEBUG_END
+  if (LOG_DEBUGFLAG(UE_TIMING)) {
+    start_meas(&ue->generic_stat);
+  }
   // do procedures for C-RNTI
   if (ue->dlsch[ue->current_thread_id[subframe_rx]][eNB_id][0]->active == 1) {
     VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC, VCD_FUNCTION_IN);
@@ -4822,9 +4816,9 @@ LOG_DEBUG_END
   if (subframe_select(&ue->frame_parms,subframe_rx) != SF_S) {  // do front-end processing for second slot, and first symbol of next subframe
     for (l=1; l<ue->frame_parms.symbols_per_tti>>1; l++) {
       if (abstraction_flag == 0) {
-LOG_DEBUG_BEGIN(UE_TIMING)
+        if (LOG_DEBUGFLAG(UE_TIMING)) {
           start_meas(&ue->ofdm_demod_stats);
-LOG_DEBUG_END
+        }
 	VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP, VCD_FUNCTION_IN);
 	slot_fep(ue,
 		 l,
@@ -4833,9 +4827,9 @@ LOG_DEBUG_END
 		 0,
 		 0);
 	VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP, VCD_FUNCTION_OUT);
-LOG_DEBUG_BEGIN(UE_TIMING)
-    stop_meas(&ue->ofdm_demod_stats);
-LOG_DEBUG_END
+        if (LOG_DEBUGFLAG(UE_TIMING)) {
+          stop_meas(&ue->ofdm_demod_stats);
+        }
       }
 
       ue_measurement_procedures(l-1,ue,proc,eNB_id,1+(subframe_rx<<1),abstraction_flag,mode);
@@ -4854,10 +4848,10 @@ LOG_DEBUG_END
          0);
     }
   } // not an S-subframe
-LOG_DEBUG_BEGIN(UE_TIMING)
-  stop_meas(&ue->generic_stat);
-  LOG_UI(PHY, "[SFN %d] Slot1: FFT + Channel Estimate + Pdsch Proc Slot0 %5.2f \n",subframe_rx,ue->generic_stat.p_time/(cpuf*1000.0));
-LOG_DEBUG_END
+  if(LOG_DEBUGFLAG(UE_TIMING)) {
+    stop_meas(&ue->generic_stat);
+    LOG_UI(PHY, "[SFN %d] Slot1: FFT + Channel Estimate + Pdsch Proc Slot0 %5.2f \n",subframe_rx,ue->generic_stat.p_time/(cpuf*1000.0));
+  }
 
   LOG_D(PHY," ------  end FFT/ChannelEst/PDCCH slot 1: AbsSubframe %d.%d ------  \n", frame_rx%1024, subframe_rx);
 
@@ -4872,9 +4866,9 @@ LOG_DEBUG_END
   LOG_D(PHY," ------ --> PDSCH ChannelComp/LLR slot 0: AbsSubframe %d.%d ------  \n", frame_rx%1024, subframe_rx);
   if (ue->dlsch[ue->current_thread_id[subframe_rx]][eNB_id][0]->active == 1) {
     VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC, VCD_FUNCTION_IN);
-LOG_DEBUG_BEGIN(UE_TIMING)
-    start_meas(&ue->pdsch_procedures_stat[ue->current_thread_id[subframe_rx]]);
-LOG_DEBUG_END
+    if (LOG_DEBUGFLAG(UE_TIMING)) { 
+      start_meas(&ue->pdsch_procedures_stat[ue->current_thread_id[subframe_rx]]);
+    }
     ue_pdsch_procedures(ue,
 			proc,
 			eNB_id,
@@ -4886,10 +4880,10 @@ LOG_DEBUG_END
 			abstraction_flag);
     LOG_D(PHY," ------ end PDSCH ChannelComp/LLR slot 0: AbsSubframe %d.%d ------  \n", frame_rx%1024, subframe_rx);
     LOG_D(PHY," ------ --> PDSCH Turbo Decoder slot 0/1: AbsSubframe %d.%d ------  \n", frame_rx%1024, subframe_rx);
-LOG_DEBUG_BEGIN(UE_TIMING)
-    stop_meas(&ue->pdsch_procedures_stat[ue->current_thread_id[subframe_rx]]);
-    start_meas(&ue->dlsch_procedures_stat[ue->current_thread_id[subframe_rx]]);
-LOG_DEBUG_END
+    if (LOG_DEBUGFLAG(UE_TIMING)) { 
+      stop_meas(&ue->pdsch_procedures_stat[ue->current_thread_id[subframe_rx]]);
+      start_meas(&ue->dlsch_procedures_stat[ue->current_thread_id[subframe_rx]]);
+    }
     ue_dlsch_procedures(ue,
 			proc,
 			eNB_id,
@@ -4899,38 +4893,38 @@ LOG_DEBUG_END
 			&ue->dlsch_errors[eNB_id],
 			mode,
 			abstraction_flag);
-LOG_DEBUG_BEGIN(UE_TIMING)
-    stop_meas(&ue->dlsch_procedures_stat[ue->current_thread_id[subframe_rx]]);
-    LOG_UI(PHY, "[SFN %d] Slot1:       Pdsch Proc %5.2f\n",subframe_rx,ue->pdsch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0));
-    LOG_UI(PHY, "[SFN %d] Slot0 Slot1: Dlsch Proc %5.2f\n",subframe_rx,ue->dlsch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0));
-LOG_DEBUG_END
+    if (LOG_DEBUGFLAG(UE_TIMING)) { 
+      stop_meas(&ue->dlsch_procedures_stat[ue->current_thread_id[subframe_rx]]);
+      LOG_UI(PHY, "[SFN %d] Slot1:       Pdsch Proc %5.2f\n",subframe_rx,ue->pdsch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0));
+      LOG_UI(PHY, "[SFN %d] Slot0 Slot1: Dlsch Proc %5.2f\n",subframe_rx,ue->dlsch_procedures_stat[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0));
+    }
 
     VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC, VCD_FUNCTION_OUT);
 
   }
-LOG_DEBUG_BEGIN(UE_TIMING)
-  start_meas(&ue->generic_stat);
-LOG_DEBUG_END
+  if (LOG_DEBUGFLAG(UE_TIMING)) {
+    start_meas(&ue->generic_stat);
+  }
 
-LOG_M_BEGIN(DEBUG_UE_PHYPROC)
-  if(subframe_rx==5 &&  ue->dlsch[ue->current_thread_id[subframe_rx]][eNB_id][0]->harq_processes[ue->dlsch[ue->current_thread_id[subframe_rx]][eNB_id][0]->current_harq_pid]->nb_rb > 20){
-       //LOG_M("decoder_llr.m","decllr",dlsch_llr,G,1,0);
-       //LOG_M("llr.m","llr",  &ue->pdsch_vars[eNB_id]->llr[0][0],(14*nb_rb*12*dlsch1_harq->Qm) - 4*(nb_rb*4*dlsch1_harq->Qm),1,0);
+  if (LOG_GENFILEFLAG(DEBUG_UE_PHYPROC)) {
+    if(subframe_rx==5 &&  ue->dlsch[ue->current_thread_id[subframe_rx]][eNB_id][0]->harq_processes[ue->dlsch[ue->current_thread_id[subframe_rx]][eNB_id][0]->current_harq_pid]->nb_rb > 20){
+  	 //LOG_M("decoder_llr.m","decllr",dlsch_llr,G,1,0);
+  	 //LOG_M("llr.m","llr",  &ue->pdsch_vars[eNB_id]->llr[0][0],(14*nb_rb*12*dlsch1_harq->Qm) - 4*(nb_rb*4*dlsch1_harq->Qm),1,0);
 
-       LOG_M("rxdataF0_current.m"    , "rxdataF0", &ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[subframe_rx]].rxdataF[0][0],14*ue->frame_parms.ofdm_symbol_size,1,1);
-       //LOG_M("rxdataF0_previous.m"    , "rxdataF0_prev_sss", &ue->common_vars.common_vars_rx_data_per_thread[next_thread_id].rxdataF[0][0],14*ue->frame_parms.ofdm_symbol_size,1,1);
+  	 LOG_M("rxdataF0_current.m"    , "rxdataF0", &ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[subframe_rx]].rxdataF[0][0],14*ue->frame_parms.ofdm_symbol_size,1,1);
+  	 //LOG_M("rxdataF0_previous.m"    , "rxdataF0_prev_sss", &ue->common_vars.common_vars_rx_data_per_thread[next_thread_id].rxdataF[0][0],14*ue->frame_parms.ofdm_symbol_size,1,1);
 
-       //LOG_M("rxdataF0_previous.m"    , "rxdataF0_prev", &ue->common_vars.common_vars_rx_data_per_thread[next_thread_id].rxdataF[0][0],14*ue->frame_parms.ofdm_symbol_size,1,1);
+  	 //LOG_M("rxdataF0_previous.m"    , "rxdataF0_prev", &ue->common_vars.common_vars_rx_data_per_thread[next_thread_id].rxdataF[0][0],14*ue->frame_parms.ofdm_symbol_size,1,1);
 
-       LOG_M("dl_ch_estimates.m", "dl_ch_estimates_sfn5", &ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[subframe_rx]].dl_ch_estimates[0][0][0],14*ue->frame_parms.ofdm_symbol_size,1,1);
-       LOG_M("dl_ch_estimates_ext.m", "dl_ch_estimatesExt_sfn5", &ue->pdsch_vars[ue->current_thread_id[subframe_rx]][0]->dl_ch_estimates_ext[0][0],14*ue->frame_parms.N_RB_DL*12,1,1);
-       LOG_M("rxdataF_comp00.m","rxdataF_comp00",         &ue->pdsch_vars[ue->current_thread_id[subframe_rx]][0]->rxdataF_comp0[0][0],14*ue->frame_parms.N_RB_DL*12,1,1);
-       //LOG_M("magDLFirst.m", "magDLFirst", &phy_vars_ue->pdsch_vars[ue->current_thread_id[subframe_rx]][0]->dl_ch_mag0[0][0],14*frame_parms->N_RB_DL*12,1,1);
-       //LOG_M("magDLSecond.m", "magDLSecond", &phy_vars_ue->pdsch_vars[ue->current_thread_id[subframe_rx]][0]->dl_ch_magb0[0][0],14*frame_parms->N_RB_DL*12,1,1);
+  	 LOG_M("dl_ch_estimates.m", "dl_ch_estimates_sfn5", &ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[subframe_rx]].dl_ch_estimates[0][0][0],14*ue->frame_parms.ofdm_symbol_size,1,1);
+  	 LOG_M("dl_ch_estimates_ext.m", "dl_ch_estimatesExt_sfn5", &ue->pdsch_vars[ue->current_thread_id[subframe_rx]][0]->dl_ch_estimates_ext[0][0],14*ue->frame_parms.N_RB_DL*12,1,1);
+  	 LOG_M("rxdataF_comp00.m","rxdataF_comp00",	    &ue->pdsch_vars[ue->current_thread_id[subframe_rx]][0]->rxdataF_comp0[0][0],14*ue->frame_parms.N_RB_DL*12,1,1);
+  	 //LOG_M("magDLFirst.m", "magDLFirst", &phy_vars_ue->pdsch_vars[ue->current_thread_id[subframe_rx]][0]->dl_ch_mag0[0][0],14*frame_parms->N_RB_DL*12,1,1);
+  	 //LOG_M("magDLSecond.m", "magDLSecond", &phy_vars_ue->pdsch_vars[ue->current_thread_id[subframe_rx]][0]->dl_ch_magb0[0][0],14*frame_parms->N_RB_DL*12,1,1);
 
-       AssertFatal (0,"");
+  	 AssertFatal (0,"");
+    }
   }
-LOG_M_END
 
   // do procedures for SI-RNTI
   if ((ue->dlsch_SI[eNB_id]) && (ue->dlsch_SI[eNB_id]->active == 1)) {
@@ -5035,25 +5029,25 @@ LOG_M_END
     ue->Mod_id,frame_rx,ue->total_TBS[eNB_id],
     ue->total_TBS_last[eNB_id],(float) ue->bitrate[eNB_id]/1000.0);
 
-LOG_DEBUG_BEGIN(DEBUG_UE_PHYPROC)
-    if ((frame_rx % 100 == 0)) {
-      LOG_I(PHY,"[UE  %d] AUTOTEST Metric : UE_DLSCH_BITRATE = %5.2f kbps (frame = %d) \n", ue->Mod_id, (float) ue->bitrate[eNB_id]/1000.0, frame_rx);
+    if ( LOG_DEBUGFLAG(DEBUG_UE_PHYPROC)) {
+      if ((frame_rx % 100 == 0)) {
+        LOG_UI(PHY,"[UE  %d] AUTOTEST Metric : UE_DLSCH_BITRATE = %5.2f kbps (frame = %d) \n", ue->Mod_id, (float) ue->bitrate[eNB_id]/1000.0, frame_rx);
+      }
     }
-LOG_DEBUG_END
 
   }
 
-LOG_DEBUG_BEGIN(UE_TIMING)
-  stop_meas(&ue->generic_stat);
-  printf("after tubo until end of Rx %5.2f \n",ue->generic_stat.p_time/(cpuf*1000.0));
-LOG_DEBUG_END
+  if ( LOG_DEBUGFLAG(UE_TIMING)) {
+    stop_meas(&ue->generic_stat);
+    LOG_UI(PHY,"after tubo until end of Rx %5.2f \n",ue->generic_stat.p_time/(cpuf*1000.0));
+  }
 
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_RX, VCD_FUNCTION_OUT);
 
-LOG_DEBUG_BEGIN(UE_TIMING)
-  stop_meas(&ue->phy_proc_rx[ue->current_thread_id[subframe_rx]]);
-  LOG_UI(PHY, "------FULL RX PROC [SFN %d]: %5.2f ------\n",subframe_rx,ue->phy_proc_rx[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0));
-LOG_DEBUG_END
+  if ( LOG_DEBUGFLAG(UE_TIMING) ) {
+    stop_meas(&ue->phy_proc_rx[ue->current_thread_id[subframe_rx]]);
+    LOG_UI(PHY, "------FULL RX PROC [SFN %d]: %5.2f ------\n",subframe_rx,ue->phy_proc_rx[ue->current_thread_id[subframe_rx]].p_time/(cpuf*1000.0));
+  }
 
   LOG_D(PHY," ****** end RX-Chain  for AbsSubframe %d.%d ******  \n", frame_rx%1024, subframe_rx);
   return (0);
@@ -5083,9 +5077,9 @@ void phy_procedures_UE_lte(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,u
 
 
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_LTE,1);
-LOG_DEBUG_BEGIN(UE_TIMING)
-  start_meas(&ue->phy_proc[ue->current_thread_id[subframe_rx]]);
-LOG_DEBUG_END
+  if ( LOG_DEBUGFLAG(UE_TIMING)) {
+    start_meas(&ue->phy_proc[ue->current_thread_id[subframe_rx]]);
+  }
 
 #if defined(ENABLE_ITTI)
 
@@ -5168,9 +5162,9 @@ LOG_DEBUG_END
     }
     
     VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_LTE,0);
-LOG_DEBUG_BEGIN(UE_TIMING)
-    stop_meas(&ue->phy_proc[ue->current_thread_id[subframe_rx]]);
-LOG_DEBUG_END
+    if (LOG_DEBUGFLAG(UE_TIMING)) { 
+      stop_meas(&ue->phy_proc[ue->current_thread_id[subframe_rx]]);
+    }
   } // slot
 }
 
diff --git a/openair1/SIMULATION/LTE_PHY/dlsim.c b/openair1/SIMULATION/LTE_PHY/dlsim.c
index 7e2f1ad2e0..559540e49d 100644
--- a/openair1/SIMULATION/LTE_PHY/dlsim.c
+++ b/openair1/SIMULATION/LTE_PHY/dlsim.c
@@ -2046,24 +2046,9 @@ int main(int argc, char **argv)
       qsort (table_rx, time_vector_rx.size, sizeof(double), &compare);
 
       if (dump_table == 1 ) {
-        set_component_filelog(USIM);  // file located in /tmp/usim.txt
-        int n;
-        LOG_F(USIM,"The transmitter raw data: \n");
-
-        for (n=0; n< time_vector_tx.size; n++) {
-          printf("%f ", table_tx[n]);
-          LOG_F(USIM,"%f ", table_tx[n]);
-        }
-
-        LOG_F(USIM,"\n");
-        LOG_F(USIM,"The receiver raw data: \n");
-
-        for (n=0; n< time_vector_rx.size; n++) {
-          // printf("%f ", table_rx[n]);
-          LOG_F(USIM,"%f ", table_rx[n]);
-        }
-
-        LOG_F(USIM,"\n");
+        set_component_filelog(SIM);  // file located in /tmp/usim.txt
+        LOG_UDUMPMSG(SIM,table_tx,time_vector_tx.size,LOG_DUMP_DOUBLE,"The transmitter raw data: \n");
+        LOG_UDUMPMSG(SIM,table_rx,time_vector_rx.size,LOG_DUMP_DOUBLE,"Thereceiver raw data: \n");
       }
 
       double tx_median = table_tx[time_vector_tx.size/2];
diff --git a/openair1/SIMULATION/LTE_PHY/dlsim_tm4.c b/openair1/SIMULATION/LTE_PHY/dlsim_tm4.c
index 0c942df275..2176e272c8 100644
--- a/openair1/SIMULATION/LTE_PHY/dlsim_tm4.c
+++ b/openair1/SIMULATION/LTE_PHY/dlsim_tm4.c
@@ -5016,24 +5016,11 @@ int main(int argc, char **argv)
 
       if (dump_table == 1 ) {
         set_component_filelog(USIM);  // file located in /tmp/usim.txt
-        int n;
-        LOG_F(USIM,"The transmitter raw data: \n");
+        LOG_UDUMPMSG(RRC,(char *)table_tx,time_vector_tx.size,LOG_DUMP_DOUBLE,
+                     "The transmitter raw data: \n");
+        LOG_UDUMPMSG(RRC,(char *)table_rx,time_vector_rx.size,LOG_DUMP_DOUBLE,
+                     "The receiver raw data: \n");
 
-        for (n=0; n< time_vector_tx.size; n++) {
-          printf("%f ", table_tx[n]);
-          LOG_F(USIM,"%f ", table_tx[n]);
-        }
-
-        LOG_F(USIM,"\n");
-        LOG_F(USIM,"The receiver raw data: \n");
-
-        for (n=0; n< time_vector_rx.size; n++) {
-          // printf("%f ", table_rx[n]);
-          LOG_F(USIM,"%f ", table_rx[n]);
-        }
-
-        LOG_F(USIM,"\n");
-      }
 
       double tx_median = table_tx[time_vector_tx.size/2];
       double tx_q1 = table_tx[time_vector_tx.size/4];
diff --git a/openair1/SIMULATION/LTE_PHY/dlsim_tm7.c b/openair1/SIMULATION/LTE_PHY/dlsim_tm7.c
index b41dd5536c..570c13c0b6 100644
--- a/openair1/SIMULATION/LTE_PHY/dlsim_tm7.c
+++ b/openair1/SIMULATION/LTE_PHY/dlsim_tm7.c
@@ -3851,24 +3851,9 @@ PMI_FEEDBACK:
       qsort (table_rx, time_vector_rx.size, sizeof(double), &compare);
 
       if (dump_table == 1 ) {
-        set_component_filelog(USIM);  // file located in /tmp/usim.txt
-        int n;
-        LOG_F(USIM,"The transmitter raw data: \n");
-
-        for (n=0; n< time_vector_tx.size; n++) {
-          printf("%f ", table_tx[n]);
-          LOG_F(USIM,"%f ", table_tx[n]);
-        }
-
-        LOG_F(USIM,"\n");
-        LOG_F(USIM,"The receiver raw data: \n");
-
-        for (n=0; n< time_vector_rx.size; n++) {
-          // printf("%f ", table_rx[n]);
-          LOG_F(USIM,"%f ", table_rx[n]);
-        }
-
-        LOG_F(USIM,"\n");
+        set_component_filelog(SIM);  // file located in /tmp/usim.txt
+        LOG_UDUMPMSG(SIM,table_tx,time_vector_tx.size,LOG_DUMP_DOUBLE,"The transmitter raw data: \n");
+        LOG_UDUMPMSG(SIM,table_rx,time_vector_rx.size,LOG_DUMP_DOUBLE,"The receiver raw data: \n");
       }
 
       double tx_median = table_tx[time_vector_tx.size/2];
diff --git a/openair1/SIMULATION/LTE_PHY/ulsim.c b/openair1/SIMULATION/LTE_PHY/ulsim.c
index ab7a29b096..3fcb010685 100644
--- a/openair1/SIMULATION/LTE_PHY/ulsim.c
+++ b/openair1/SIMULATION/LTE_PHY/ulsim.c
@@ -1491,24 +1491,9 @@ int main(int argc, char **argv)
       qsort (table_rx, time_vector_rx.size, sizeof(double), &compare);
 
       if (dump_table == 1 ) {
-        int n;
         set_component_filelog(SIM); // file located in /tmp/usim.txt
-        LOG_F(SIM,"The transmitter raw data: \n");
-
-        for (n=0; n< time_vector_tx.size; n++) {
-          //   printf("%f ", table_tx[n]);
-          LOG_F(SIM,"%f ", table_tx[n]);
-        }
-
-        LOG_F(SIM,"\n");
-        LOG_F(SIM,"The receiver raw data: \n");
-
-        for (n=0; n< time_vector_rx.size; n++) {
-          // printf("%f ", table_rx[n]);
-          LOG_F(SIM,"%f ", table_rx[n]);
-        }
-
-        LOG_F(SIM,"\n");
+        LOG_UDUMPMSG(SIM,table_tx,time_vector_tx.size,LOG_DUMP_DOUBLE,"The transmitter raw data: \n");
+        LOG_UDUMPMSG(SIM,table_rx,time_vector_rx.size,LOG_DUMP_DOUBLE,"The receiver raw data: \n");
       }
 
       double tx_median = table_tx[time_vector_tx.size/2];
diff --git a/openair2/ENB_APP/enb_app.c b/openair2/ENB_APP/enb_app.c
index 40c6aeac44..6f1b66c6d0 100644
--- a/openair2/ENB_APP/enb_app.c
+++ b/openair2/ENB_APP/enb_app.c
@@ -143,7 +143,7 @@ void *eNB_app_task(void *args_p)
   uint32_t                        enb_id_start = 0;
   uint32_t                        enb_id_end = enb_id_start + enb_nb;
 # if defined(ENABLE_USE_MME)
-  uint32_t                        register_enb_pending;
+  uint32_t                        register_enb_pending=0;
   uint32_t                        registered_enb;
   long                            enb_register_retry_timer_id;
 # endif
@@ -182,15 +182,15 @@ void *eNB_app_task(void *args_p)
     configure_rrc(enb_id);
   }
 
-# if defined(ENABLE_USE_MME)
+  if (EPC_MODE_ENABLED) {
   /* Try to register each eNB */
-  registered_enb = 0;
-  register_enb_pending = eNB_app_register (enb_id_start, enb_id_end);//, enb_properties_p);
-# else
+    registered_enb = 0;
+    register_enb_pending = eNB_app_register (enb_id_start, enb_id_end);//, enb_properties_p);
+  } else {
   /* Start L2L1 task */
-  msg_p = itti_alloc_new_message(TASK_ENB_APP, INITIALIZE_MESSAGE);
-  itti_send_msg_to_task(TASK_L2L1, INSTANCE_DEFAULT, msg_p);
-# endif
+    msg_p = itti_alloc_new_message(TASK_ENB_APP, INITIALIZE_MESSAGE);
+    itti_send_msg_to_task(TASK_L2L1, INSTANCE_DEFAULT, msg_p);
+  }
 
   do {
     // Wait for a message
@@ -208,66 +208,68 @@ void *eNB_app_task(void *args_p)
       LOG_I(ENB_APP, "Received %s\n", ITTI_MSG_NAME(msg_p));
       break;
 
-# if defined(ENABLE_USE_MME)
-
     case S1AP_REGISTER_ENB_CNF:
-      LOG_I(ENB_APP, "[eNB %d] Received %s: associated MME %d\n", instance, ITTI_MSG_NAME (msg_p),
-            S1AP_REGISTER_ENB_CNF(msg_p).nb_mme);
-
-      DevAssert(register_enb_pending > 0);
-      register_enb_pending--;
-
-      /* Check if at least eNB is registered with one MME */
-      if (S1AP_REGISTER_ENB_CNF(msg_p).nb_mme > 0) {
-        registered_enb++;
-      }
-
-      /* Check if all register eNB requests have been processed */
-      if (register_enb_pending == 0) {
-        if (registered_enb == enb_nb) {
-          /* If all eNB are registered, start L2L1 task */
-          MessageDef *msg_init_p;
-
-          msg_init_p = itti_alloc_new_message (TASK_ENB_APP, INITIALIZE_MESSAGE);
-          itti_send_msg_to_task (TASK_L2L1, INSTANCE_DEFAULT, msg_init_p);
-
-        } else {
-          LOG_W(ENB_APP, " %d eNB not associated with a MME, retrying registration in %d seconds ...\n",
-                enb_nb - registered_enb,  ENB_REGISTER_RETRY_DELAY);
-
-          /* Restart the eNB registration process in ENB_REGISTER_RETRY_DELAY seconds */
-          if (timer_setup (ENB_REGISTER_RETRY_DELAY, 0, TASK_ENB_APP, INSTANCE_DEFAULT, TIMER_ONE_SHOT,
-                           NULL, &enb_register_retry_timer_id) < 0) {
-            LOG_E(ENB_APP, " Can not start eNB register retry timer, use \"sleep\" instead!\n");
-
-            sleep(ENB_REGISTER_RETRY_DELAY);
-            /* Restart the registration process */
-            registered_enb = 0;
-            register_enb_pending = eNB_app_register (enb_id_start, enb_id_end);//, enb_properties_p);
-          }
-        }
-      }
-
+      if (EPC_MODE_ENABLED) {
+  	LOG_I(ENB_APP, "[eNB %d] Received %s: associated MME %d\n", instance, ITTI_MSG_NAME (msg_p),
+  	      S1AP_REGISTER_ENB_CNF(msg_p).nb_mme);
+
+  	DevAssert(register_enb_pending > 0);
+  	register_enb_pending--;
+
+  	/* Check if at least eNB is registered with one MME */
+  	if (S1AP_REGISTER_ENB_CNF(msg_p).nb_mme > 0) {
+  	  registered_enb++;
+  	}
+
+  	/* Check if all register eNB requests have been processed */
+  	if (register_enb_pending == 0) {
+  	  if (registered_enb == enb_nb) {
+  	    /* If all eNB are registered, start L2L1 task */
+  	    MessageDef *msg_init_p;
+
+  	    msg_init_p = itti_alloc_new_message (TASK_ENB_APP, INITIALIZE_MESSAGE);
+  	    itti_send_msg_to_task (TASK_L2L1, INSTANCE_DEFAULT, msg_init_p);
+
+  	  } else {
+  	    LOG_W(ENB_APP, " %d eNB not associated with a MME, retrying registration in %d seconds ...\n",
+  		  enb_nb - registered_enb,  ENB_REGISTER_RETRY_DELAY);
+
+  	    /* Restart the eNB registration process in ENB_REGISTER_RETRY_DELAY seconds */
+  	    if (timer_setup (ENB_REGISTER_RETRY_DELAY, 0, TASK_ENB_APP, INSTANCE_DEFAULT, TIMER_ONE_SHOT,
+  			     NULL, &enb_register_retry_timer_id) < 0) {
+  	      LOG_E(ENB_APP, " Can not start eNB register retry timer, use \"sleep\" instead!\n");
+
+  	      sleep(ENB_REGISTER_RETRY_DELAY);
+  	      /* Restart the registration process */
+  	      registered_enb = 0;
+  	      register_enb_pending = eNB_app_register (enb_id_start, enb_id_end);//, enb_properties_p);
+  	    }
+  	  }
+  	}
+      } /*if (EPC_MODE_ENABLED) */
       break;
 
     case S1AP_DEREGISTERED_ENB_IND:
-      LOG_W(ENB_APP, "[eNB %d] Received %s: associated MME %d\n", instance, ITTI_MSG_NAME (msg_p),
-            S1AP_DEREGISTERED_ENB_IND(msg_p).nb_mme);
+      if (EPC_MODE_ENABLED) {
+  	LOG_W(ENB_APP, "[eNB %d] Received %s: associated MME %d\n", instance, ITTI_MSG_NAME (msg_p),
+  	      S1AP_DEREGISTERED_ENB_IND(msg_p).nb_mme);
 
-      /* TODO handle recovering of registration */
+  	/* TODO handle recovering of registration */
+      }
       break;
 
     case TIMER_HAS_EXPIRED:
-      LOG_I(ENB_APP, " Received %s: timer_id %ld\n", ITTI_MSG_NAME (msg_p), TIMER_HAS_EXPIRED(msg_p).timer_id);
-
-      if (TIMER_HAS_EXPIRED (msg_p).timer_id == enb_register_retry_timer_id) {
-        /* Restart the registration process */
-        registered_enb = 0;
-        register_enb_pending = eNB_app_register (enb_id_start, enb_id_end);//, enb_properties_p);
-      }
-
+      if (EPC_MODE_ENABLED) {
+  	LOG_I(ENB_APP, " Received %s: timer_id %ld\n", ITTI_MSG_NAME (msg_p), TIMER_HAS_EXPIRED(msg_p).timer_id);
+
+  	if (TIMER_HAS_EXPIRED (msg_p).timer_id == enb_register_retry_timer_id) {
+  	  /* Restart the registration process */
+  	  registered_enb = 0;
+  	  register_enb_pending = eNB_app_register (enb_id_start, enb_id_end);//, enb_properties_p);
+  	}
+      } /*if (EPC_MODE_ENABLED) */ 
       break;
-# endif
+
 
     default:
       LOG_E(ENB_APP, "Received unexpected message %s\n", ITTI_MSG_NAME (msg_p));
diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c
index 737397d8d4..07eb5c57c7 100644
--- a/openair2/ENB_APP/enb_config.c
+++ b/openair2/ENB_APP/enb_config.c
@@ -37,7 +37,7 @@
 #include "UTIL/OTG/otg_externs.h"
 #if defined(ENABLE_ITTI)
 # include "intertask_interface.h"
-# if defined(ENABLE_USE_MME)
+# if defined(ENABLE_USE_MME) 
 #   include "s1ap_eNB.h"
 #   include "sctp_eNB_task.h"
 # endif
@@ -198,11 +198,10 @@ void RCconfig_flexran()
     /* eNB ID from configuration, as read in by RCconfig_RRC() */
     if (!ENBParamList.paramarray[i][ENB_ENB_ID_IDX].uptr) {
       // Calculate a default eNB ID
-# if defined(ENABLE_USE_MME)
-      enb_id = i + (s1ap_generate_eNB_id () & 0xFFFF8);
-# else
-      enb_id = i;
-# endif
+      if (EPC_MODE_ENABLED)
+         enb_id = i + (s1ap_generate_eNB_id () & 0xFFFF8);
+      else
+         enb_id = i;
     } else {
         enb_id = *(ENBParamList.paramarray[i][ENB_ENB_ID_IDX].uptr);
     }
@@ -546,32 +545,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
   int32_t     srb1_max_retx_threshold       = 0;
 
   int32_t     my_int;
-
-
-  
-/* 
-  int32_t     otg_ue_id                     = 0;
-  char*             otg_app_type                  = NULL;
-  char*             otg_bg_traffic                = NULL;
-  char*             glog_level                    = NULL;
-  char*             glog_verbosity                = NULL;
-  char*             hw_log_level                  = NULL;
-  char*             hw_log_verbosity              = NULL;
-  char*             phy_log_level                 = NULL;
-  char*             phy_log_verbosity             = NULL;
-  char*             mac_log_level                 = NULL;
-  char*             mac_log_verbosity             = NULL;
-  char* 	    rlc_log_level		  = NULL;
-  char* 	    rlc_log_verbosity		  = NULL;
-  char* 	    pdcp_log_level		  = NULL;
-  char* 	    pdcp_log_verbosity  	  = NULL;
-  char* 	    rrc_log_level		  = NULL;
-  char* 	    rrc_log_verbosity		  = NULL;
-  char* 	    udp_log_verbosity		  = NULL;
-  char* 	    osa_log_level		  = NULL;
-  char* 	    osa_log_verbosity		  = NULL;
-*/  
-
   
   // for no gcc warnings 
   (void)my_int;
@@ -591,15 +564,16 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
      CCsParams[I].chkPptr = &(config_check_CCparams[I]);  
   }
 /* get global parameters, defined outside any section in the config file */
-  
+
   config_get( ENBSParams,sizeof(ENBSParams)/sizeof(paramdef_t),NULL); 
+
   num_enbs = ENBSParams[ENB_ACTIVE_ENBS_IDX].numelt;
   AssertFatal (i<num_enbs,
    	       "Failed to parse config file no %ith element in %s \n",i, ENB_CONFIG_STRING_ACTIVE_ENBS);
   
-#if defined(ENABLE_ITTI) && defined(ENABLE_USE_MME)
-
+#if defined(ENABLE_ITTI)
 
+  if (EPC_MODE_ENABLED) {
     if (strcasecmp( *(ENBSParams[ENB_ASN1_VERBOSITY_IDX].strptr), ENB_CONFIG_STRING_ASN1_VERBOSITY_NONE) == 0) {
       asn_debug      = 0;
       asn1_xer_print = 0;
@@ -613,7 +587,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
       asn_debug      = 0;
       asn1_xer_print = 0;
     }
-
+  }
 
 #endif
   
@@ -628,14 +602,14 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
       
       if (ENBParamList.paramarray[i][ENB_ENB_ID_IDX].uptr == NULL) {
 	// Calculate a default eNB ID
-# if defined(ENABLE_USE_MME)
-	uint32_t hash;
-	
-	hash = s1ap_generate_eNB_id ();
-	enb_id = i + (hash & 0xFFFF8);
-# else
-	enb_id = i;
-# endif
+        if (EPC_MODE_ENABLED) {
+  	  uint32_t hash;
+  	  
+  	  hash = s1ap_generate_eNB_id ();
+  	  enb_id = i + (hash & 0xFFFF8);
+  	  } else {
+  	  enb_id = i;
+        }
       } else {
           enb_id = *(ENBParamList.paramarray[i][ENB_ENB_ID_IDX].uptr);
       }
@@ -2255,20 +2229,23 @@ int RCconfig_S1(MessageDef *msg_p, uint32_t i) {
 
 /* get global parameters, defined outside any section in the config file */
   
-  config_get( ENBSParams,sizeof(ENBSParams)/sizeof(paramdef_t),NULL); 
-#if defined(ENABLE_ITTI) && defined(ENABLE_USE_MME)
-    if (strcasecmp( *(ENBSParams[ENB_ASN1_VERBOSITY_IDX].strptr), ENB_CONFIG_STRING_ASN1_VERBOSITY_NONE) == 0) {
-      asn_debug      = 0;
-      asn1_xer_print = 0;
-    } else if (strcasecmp( *(ENBSParams[ENB_ASN1_VERBOSITY_IDX].strptr), ENB_CONFIG_STRING_ASN1_VERBOSITY_INFO) == 0) {
-      asn_debug      = 1;
-      asn1_xer_print = 1;
-    } else if (strcasecmp(*(ENBSParams[ENB_ASN1_VERBOSITY_IDX].strptr) , ENB_CONFIG_STRING_ASN1_VERBOSITY_ANNOYING) == 0) {
-      asn_debug      = 1;
-      asn1_xer_print = 2;
-    } else {
-      asn_debug      = 0;
-      asn1_xer_print = 0;
+  config_get( ENBSParams,sizeof(ENBSParams)/sizeof(paramdef_t),NULL);
+  
+#if defined(ENABLE_ITTI) 
+    if (EPC_MODE_ENABLED) {
+      if (strcasecmp( *(ENBSParams[ENB_ASN1_VERBOSITY_IDX].strptr), ENB_CONFIG_STRING_ASN1_VERBOSITY_NONE) == 0) {
+  	asn_debug      = 0;
+  	asn1_xer_print = 0;
+      } else if (strcasecmp( *(ENBSParams[ENB_ASN1_VERBOSITY_IDX].strptr), ENB_CONFIG_STRING_ASN1_VERBOSITY_INFO) == 0) {
+  	asn_debug      = 1;
+  	asn1_xer_print = 1;
+      } else if (strcasecmp(*(ENBSParams[ENB_ASN1_VERBOSITY_IDX].strptr) , ENB_CONFIG_STRING_ASN1_VERBOSITY_ANNOYING) == 0) {
+  	asn_debug      = 1;
+  	asn1_xer_print = 2;
+      } else {
+  	asn_debug      = 0;
+  	asn1_xer_print = 0;
+      }
     }
 
 #endif
@@ -2291,17 +2268,17 @@ int RCconfig_S1(MessageDef *msg_p, uint32_t i) {
 	if (ENBParamList.paramarray[k][ENB_ENB_ID_IDX].uptr == NULL) {
 	  // Calculate a default eNB ID
 
-# if defined(ENABLE_USE_MME)
-	  uint32_t hash;
-	  
-	  hash = s1ap_generate_eNB_id ();
-	  enb_id = k + (hash & 0xFFFF8);
-# else
-	  enb_id = k;
-# endif
-	} else {
-          enb_id = *(ENBParamList.paramarray[k][ENB_ENB_ID_IDX].uptr);
-        }
+  	  if (EPC_MODE_ENABLED) {
+  		uint32_t hash;
+  		
+  		hash = s1ap_generate_eNB_id ();
+  		enb_id = k + (hash & 0xFFFF8);
+  	  } else {
+  		enb_id = k;
+  	  }
+  	} else {
+  	    enb_id = *(ENBParamList.paramarray[k][ENB_ENB_ID_IDX].uptr);
+  	}
 	
 	
 	// search if in active list
@@ -2349,11 +2326,7 @@ int RCconfig_S1(MessageDef *msg_p, uint32_t i) {
 	      strcpy(S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[l].ipv4_address,*(S1ParamList.paramarray[l][ENB_MME_IPV4_ADDRESS_IDX].strptr));
 	      strcpy(S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[l].ipv6_address,*(S1ParamList.paramarray[l][ENB_MME_IPV6_ADDRESS_IDX].strptr));
 
-	      if (strcmp(*(S1ParamList.paramarray[l][ENB_MME_IP_ADDRESS_ACTIVE_IDX].strptr), "yes") == 0) {
-#if defined(ENABLE_USE_MME)
-		EPC_MODE_ENABLED = 1;
-#endif
-	      } 
+
 	      if (strcmp(*(S1ParamList.paramarray[l][ENB_MME_IP_ADDRESS_PREFERENCE_IDX].strptr), "ipv4") == 0) {
 		S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[l].ipv4 = 1;
 	      } else if (strcmp(*(S1ParamList.paramarray[l][ENB_MME_IP_ADDRESS_PREFERENCE_IDX].strptr), "ipv6") == 0) {
@@ -2368,12 +2341,12 @@ int RCconfig_S1(MessageDef *msg_p, uint32_t i) {
 	    // SCTP SETTING
 	    S1AP_REGISTER_ENB_REQ (msg_p).sctp_out_streams = SCTP_OUT_STREAMS;
 	    S1AP_REGISTER_ENB_REQ (msg_p).sctp_in_streams  = SCTP_IN_STREAMS;
-# if defined(ENABLE_USE_MME)
-	    sprintf(aprefix,"%s.[%i].%s",ENB_CONFIG_STRING_ENB_LIST,k,ENB_CONFIG_STRING_SCTP_CONFIG);
-            config_get( SCTPParams,sizeof(SCTPParams)/sizeof(paramdef_t),aprefix); 
-            S1AP_REGISTER_ENB_REQ (msg_p).sctp_in_streams = (uint16_t)*(SCTPParams[ENB_SCTP_INSTREAMS_IDX].uptr);
-            S1AP_REGISTER_ENB_REQ (msg_p).sctp_out_streams = (uint16_t)*(SCTPParams[ENB_SCTP_OUTSTREAMS_IDX].uptr);
-#endif
+            if (EPC_MODE_ENABLED) {
+	      sprintf(aprefix,"%s.[%i].%s",ENB_CONFIG_STRING_ENB_LIST,k,ENB_CONFIG_STRING_SCTP_CONFIG);
+              config_get( SCTPParams,sizeof(SCTPParams)/sizeof(paramdef_t),aprefix); 
+              S1AP_REGISTER_ENB_REQ (msg_p).sctp_in_streams = (uint16_t)*(SCTPParams[ENB_SCTP_INSTREAMS_IDX].uptr);
+              S1AP_REGISTER_ENB_REQ (msg_p).sctp_out_streams = (uint16_t)*(SCTPParams[ENB_SCTP_OUTSTREAMS_IDX].uptr);
+              }
 
             sprintf(aprefix,"%s.[%i].%s",ENB_CONFIG_STRING_ENB_LIST,k,ENB_CONFIG_STRING_NETWORK_INTERFACES_CONFIG);
 	    // NETWORK_INTERFACES
@@ -2388,28 +2361,6 @@ int RCconfig_S1(MessageDef *msg_p, uint32_t i) {
 
 		strcpy(S1AP_REGISTER_ENB_REQ (msg_p).enb_ip_address.ipv4_address, address);
 
-		/*
-		in_addr_t  ipv4_address;
-
-				if (address) {
-		  IPV4_STR_ADDR_TO_INT_NWBO ( address, ipv4_address, "BAD IP ADDRESS FORMAT FOR eNB S1_U !\n" );
-		}
-		strcpy(S1AP_REGISTER_ENB_REQ (msg_p).enb_ip_address.ipv4_address, inet_ntoa(ipv4_address));
-		//		S1AP_REGISTER_ENB_REQ (msg_p).enb_port_for_S1U = enb_port_for_S1U;
-
-
-		S1AP_REGISTER_ENB_REQ (msg_p).enb_interface_name_for_S1_MME = strdup(enb_interface_name_for_S1_MME);
-		cidr = enb_ipv4_address_for_S1_MME;
-		address = strtok(cidr, "/");
-		
-		if (address) {
-		  IPV4_STR_ADDR_TO_INT_NWBO ( address, S1AP_REGISTER_ENB_REQ(msg_p).enb_ipv4_address_for_S1_MME, "BAD IP ADDRESS FORMAT FOR eNB S1_MME !\n" );
-		}
-*/
-	  
-
-
-
 	    break;
 	  }
 	}
@@ -2436,8 +2387,9 @@ void RCConfig(void) {
   printf("Getting ENBSParams\n");
  
   config_get( ENBSParams,sizeof(ENBSParams)/sizeof(paramdef_t),NULL); 
+  EPC_MODE_ENABLED = ((*ENBSParams[ENB_NOS1_IDX].uptr) == 0);
   RC.nb_inst = ENBSParams[ENB_ACTIVE_ENBS_IDX].numelt;
- 
+
   if (RC.nb_inst > 0) {
     RC.nb_CC = (int *)malloc((1+RC.nb_inst)*sizeof(int));
     for (int i=0;i<RC.nb_inst;i++) {
diff --git a/openair2/ENB_APP/enb_paramdef.h b/openair2/ENB_APP/enb_paramdef.h
index 23b4c2a837..c25bd13c9b 100755
--- a/openair2/ENB_APP/enb_paramdef.h
+++ b/openair2/ENB_APP/enb_paramdef.h
@@ -160,25 +160,19 @@ typedef enum {
 /* global parameters, not under a specific section   */
 #define ENB_CONFIG_STRING_ASN1_VERBOSITY           "Asn1_verbosity"
 #define ENB_CONFIG_STRING_ACTIVE_ENBS              "Active_eNBs"
+#define ENB_CONFIG_STRING_NOS1                     "noS1"
 /*--------------------------------------------------------------------------------------------------------------------------------------------------------------*/
 /*                                            global configuration parameters                                                                                   */
-/*   optname                                   helpstr   paramflags    XXXptr        defXXXval                                        type           numelt     */
+/*   optname                          helpstr      paramflags          XXXptr        defXXXval                                        type           numelt     */
 /*--------------------------------------------------------------------------------------------------------------------------------------------------------------*/
 #define ENBSPARAMS_DESC {                                                                                             \
-{ENB_CONFIG_STRING_ASN1_VERBOSITY,             NULL,     0,        uptr:NULL,   defstrval:ENB_CONFIG_STRING_ASN1_VERBOSITY_NONE,   TYPE_STRING,      0},   \
-{ENB_CONFIG_STRING_ACTIVE_ENBS,                NULL,     0,        uptr:NULL,   defstrval:NULL, 				   TYPE_STRINGLIST,  0}    \
+{ENB_CONFIG_STRING_ASN1_VERBOSITY,      NULL,     0,                   uptr:NULL,   defstrval:ENB_CONFIG_STRING_ASN1_VERBOSITY_NONE,   TYPE_STRING,      0},   \
+{ENB_CONFIG_STRING_ACTIVE_ENBS,         NULL,     0,                   uptr:NULL,   defstrval:NULL, 				       TYPE_STRINGLIST,  0},   \
+{ENB_CONFIG_STRING_NOS1,                NULL,     PARAMFLAG_BOOL,      uptr:NULL,   defintval:0, 				       TYPE_UINT,        0},   \
 }
 #define ENB_ASN1_VERBOSITY_IDX                     0
 #define ENB_ACTIVE_ENBS_IDX                        1
-
-
-/*
-{ENB_CONFIG_STRING_COMPONENT_CARRIERS,"",   "",   0,   uptr:NULL,defstrval:ENB_CONFIG_STRING_ASN1_VERBOSITY_NONE,TYPE_STRING,0},           \
-{ENB_CONFIG_STRING_CC_NODE_FUNCTION,"",   "",   0,   uptr:NULL,defstrval:ENB_CONFIG_STRING_ASN1_VERBOSITY_NONE,TYPE_STRING,0},           \
-{ENB_CONFIG_STRING_CC_NODE_TIMING,"",   "",   0,   uptr:NULL,defstrval:ENB_CONFIG_STRING_ASN1_VERBOSITY_NONE,TYPE_STRING,0},           \
-{ENB_CONFIG_STRING_CC_NODE_SYNCH_REF,"",   "",   0,   uptr:NULL,defstrval:ENB_CONFIG_STRING_ASN1_VERBOSITY_NONE,TYPE_STRING,0},           \
-*/
-
+#define ENB_NOS1_IDX                               2
 
 
 /*------------------------------------------------------------------------------------------------------------------------------------------*/
diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp.c
index e12fb80e1b..c49877f48d 100644
--- a/openair2/LAYER2/PDCP_v10.1.0/pdcp.c
+++ b/openair2/LAYER2/PDCP_v10.1.0/pdcp.c
@@ -349,16 +349,10 @@ boolean_t pdcp_data_req(
      * Ask sublayer to transmit data and check return value
      * to see if RLC succeeded
      */
-#ifdef PDCP_MSG_PRINT
-    int i=0;
-    LOG_F(PDCP,"[MSG] PDCP DL %s PDU on rb_id %d\n", (srb_flagP)? "CONTROL" : "DATA", rb_idP);
 
-    for (i = 0; i < pdcp_pdu_size; i++) {
-      LOG_F(PDCP,"%02x ", ((uint8_t*)pdcp_pdu_p->data)[i]);
-    }
+    LOG_DUMPMSG(PDCP,DEBUG_PDCP,(char *)pdcp_pdu_p->data,pdcp_pdu_size,
+                "[MSG] PDCP DL %s PDU on rb_id %d\n",(srb_flagP)? "CONTROL" : "DATA", rb_idP);
 
-    LOG_F(PDCP,"\n");
-#endif
     rlc_status = rlc_data_req(ctxt_pP, srb_flagP, MBMS_FLAG_NO, rb_idP, muiP, confirmP, pdcp_pdu_size, pdcp_pdu_p
 #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
                              ,sourceL2Id
@@ -461,17 +455,8 @@ pdcp_data_ind(
 
 
   VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDCP_DATA_IND,VCD_FUNCTION_IN);
-
-#ifdef PDCP_MSG_PRINT
-  int i=0;
-  LOG_F(PDCP,"[MSG] PDCP UL %s PDU on rb_id %d\n", (srb_flagP)? "CONTROL" : "DATA", rb_idP);
-
-  for (i = 0; i < sdu_buffer_sizeP; i++) {
-    LOG_F(PDCP,"%02x ", ((uint8_t*)sdu_buffer_pP->data)[i]);
-  }
-
-  LOG_F(PDCP,"\n");
-#endif
+  LOG_DUMPMSG(PDCP,DEBUG_PDCP,(char *)sdu_buffer_pP->data,sdu_buffer_sizeP,
+              "[MSG] PDCP UL %s PDU on rb_id %d\n", (srb_flagP)? "CONTROL" : "DATA", rb_idP);
 
 #if T_TRACER
   if (ctxt_pP->enb_flag != ENB_FLAG_NO)
diff --git a/openair2/RRC/LTE/L2_interface.c b/openair2/RRC/LTE/L2_interface.c
index a7c96a8a22..8c65e6c41c 100644
--- a/openair2/RRC/LTE/L2_interface.c
+++ b/openair2/RRC/LTE/L2_interface.c
@@ -43,9 +43,6 @@
 
 #include "flexran_agent_extern.h"
 
-//#define RRC_DATA_REQ_DEBUG
-//#define DEBUG_RRC 1
-
 
 extern RAN_CONTEXT_t RC;
 
@@ -68,10 +65,9 @@ mac_rrc_data_req(
   uint8_t sfn                     = (uint8_t)((frameP>>2)&0xff);
 
 
-#ifdef DEBUG_RRC
-  int i;
-  LOG_I(RRC,"[eNB %d] mac_rrc_data_req to SRB ID=%d\n",Mod_idP,Srb_id);
-#endif
+  if (LOG_DEBUGFLAG(DEBUG_RRC)) {
+    LOG_D(RRC,"[eNB %d] mac_rrc_data_req to SRB ID=%d\n",Mod_idP,Srb_id);
+  }
 
   eNB_RRC_INST *rrc;
   rrc_eNB_carrier_data_t *carrier;
@@ -96,15 +92,15 @@ mac_rrc_data_req(
                RC.rrc[Mod_idP]->carrier[CC_id].SIB1,
                RC.rrc[Mod_idP]->carrier[CC_id].sizeof_SIB1);
 
-#ifdef DEBUG_RRC
-        LOG_T(RRC,"[eNB %d] Frame %d : BCCH request => SIB 1\n",Mod_idP,frameP);
+        if (LOG_DEBUGFLAG(DEBUG_RRC)) {
+          LOG_T(RRC,"[eNB %d] Frame %d : BCCH request => SIB 1\n",Mod_idP,frameP);
 
-        for (i=0; i<RC.rrc[Mod_idP]->carrier[CC_id].sizeof_SIB1; i++) {
-          LOG_T(RRC,"%x.",buffer_pP[i]);
-        }
+          for (int i=0; i<RC.rrc[Mod_idP]->carrier[CC_id].sizeof_SIB1; i++) {
+            LOG_T(RRC,"%x.",buffer_pP[i]);
+          }
 
-        LOG_T(RRC,"\n");
-#endif
+          LOG_T(RRC,"\n");
+        } /* LOG_DEBUGFLAG(DEBUG_RRC) */
 
         return (RC.rrc[Mod_idP]->carrier[CC_id].sizeof_SIB1);
       } // All RFN mod 8 transmit SIB2-3 in SF 5
@@ -113,15 +109,15 @@ mac_rrc_data_req(
                RC.rrc[Mod_idP]->carrier[CC_id].SIB23,
                RC.rrc[Mod_idP]->carrier[CC_id].sizeof_SIB23);
 
-#ifdef DEBUG_RRC
-        LOG_T(RRC,"[eNB %d] Frame %d BCCH request => SIB 2-3\n",Mod_idP,frameP);
+        if (LOG_DEBUGFLAG(DEBUG_RRC)) {
+          LOG_T(RRC,"[eNB %d] Frame %d BCCH request => SIB 2-3\n",Mod_idP,frameP);
 
-        for (i=0; i<RC.rrc[Mod_idP]->carrier[CC_id].sizeof_SIB23; i++) {
-          LOG_T(RRC,"%x.",buffer_pP[i]);
-        }
+          for (int i=0; i<RC.rrc[Mod_idP]->carrier[CC_id].sizeof_SIB23; i++) {
+               LOG_T(RRC,"%x.",buffer_pP[i]);
+          }
 
-        LOG_T(RRC,"\n");
-#endif
+          LOG_T(RRC,"\n");
+        } /* LOG_DEBUGFLAG(DEBUG_RRC) */
         return(RC.rrc[Mod_idP]->carrier[CC_id].sizeof_SIB23);
       } else {
         return(0);
@@ -193,20 +189,17 @@ mac_rrc_data_req(
              RC.rrc[Mod_idP]->carrier[CC_id].MCCH_MESSAGE[mbsfn_sync_area],
              RC.rrc[Mod_idP]->carrier[CC_id].sizeof_MCCH_MESSAGE[mbsfn_sync_area]);
 
-#ifdef DEBUG_RRC
-      LOG_D(RRC,"[eNB %d] Frame %d : MCCH request => MCCH_MESSAGE \n",Mod_idP,frameP);
+     if (LOG_DEBUGFLAG(DEBUG_RRC)) {
+       LOG_D(RRC,"[eNB %d] Frame %d : MCCH request => MCCH_MESSAGE \n",Mod_idP,frameP);
 
-      for (i=0; i<RC.rrc[Mod_idP]->carrier[CC_id].sizeof_MCCH_MESSAGE[mbsfn_sync_area]; i++) {
-        LOG_T(RRC,"%x.",buffer_pP[i]);
-      }
+       for (int i=0; i<RC.rrc[Mod_idP]->carrier[CC_id].sizeof_MCCH_MESSAGE[mbsfn_sync_area]; i++) {
+            LOG_T(RRC,"%x.",buffer_pP[i]);
+       }
 
-      LOG_T(RRC,"\n");
-#endif
+       LOG_T(RRC,"\n");
+     } /* LOG_DEBUGFLAG(DEBUG_RRC) */
 
-      return (RC.rrc[Mod_idP]->carrier[CC_id].sizeof_MCCH_MESSAGE[mbsfn_sync_area]);
-      //      }
-      //else
-      //return(0);
+     return (RC.rrc[Mod_idP]->carrier[CC_id].sizeof_MCCH_MESSAGE[mbsfn_sync_area]);
     }
 
 #endif // #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0))
diff --git a/openair2/RRC/LTE/L2_interface_ue.c b/openair2/RRC/LTE/L2_interface_ue.c
index d3527b8a17..3b7219af42 100644
--- a/openair2/RRC/LTE/L2_interface_ue.c
+++ b/openair2/RRC/LTE/L2_interface_ue.c
@@ -42,7 +42,6 @@
 #endif
 
 //#define RRC_DATA_REQ_DEBUG
-//#define DEBUG_RRC 1
 
 
 
@@ -61,10 +60,7 @@ mac_rrc_data_req_ue(
 //--------------------------------------------------------------------------
 {
 
-#ifdef DEBUG_RRC
-  int i;
-  LOG_I(RRC,"[eNB %d] mac_rrc_data_req to SRB ID=%d\n",Mod_idP,Srb_id);
-#endif
+  LOG_D(RRC,"[eNB %d] mac_rrc_data_req to SRB ID=%d\n",Mod_idP,Srb_id);
 
 
 #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
diff --git a/openair2/RRC/LTE/MESSAGES/asn1_msg_NB_IoT.c b/openair2/RRC/LTE/MESSAGES/asn1_msg_NB_IoT.c
index cdfc1ac0f3..3ad955928a 100644
--- a/openair2/RRC/LTE/MESSAGES/asn1_msg_NB_IoT.c
+++ b/openair2/RRC/LTE/MESSAGES/asn1_msg_NB_IoT.c
@@ -136,7 +136,7 @@ uint8_t do_MIB_NB_IoT(
                                    carrier->MIB_NB_IoT,
                                    100);
   if(enc_rval.encoded <= 0) {
-      LOG_F(RRC, "ASN1 message encoding failed (%s, %lu)!\n",
+      LOG_E(RRC, "ASN1 message encoding failed (%s, %lu)!\n",
                enc_rval.failed_type->name, enc_rval.encoded);
   }
 
@@ -394,7 +394,7 @@ uint8_t do_SIB1_NB_IoT(uint8_t Mod_id, int CC_id,
                                    100);
 
   if (enc_rval.encoded > 0){ 
-       LOG_F(RRC,"ASN1 message encoding failed (%s, %lu)!\n",
+       LOG_E(RRC,"ASN1 message encoding failed (%s, %lu)!\n",
                enc_rval.failed_type->name, enc_rval.encoded);
   }
 
@@ -897,7 +897,7 @@ uint8_t do_RRCConnectionSetup_NB_IoT(
                                   100);
 
  if (enc_rval.encoded <= 0) {
-     LOG_F(RRC, "ASN1 message encoding failed (%s, %lu)!\n",
+     LOG_E(RRC, "ASN1 message encoding failed (%s, %lu)!\n",
               enc_rval.failed_type->name, enc_rval.encoded);
  }
 
@@ -948,7 +948,7 @@ uint8_t do_SecurityModeCommand_NB_IoT(
                                    buffer,
                                    100);
   if (enc_rval.encoded <= 0) {
-      LOG_F(RRC, "ASN1 message encoding failed (%s, %lu)!\n",
+      LOG_E(RRC, "ASN1 message encoding failed (%s, %lu)!\n",
                enc_rval.failed_type->name, enc_rval.encoded);
   }
 
@@ -1010,7 +1010,7 @@ uint8_t do_UECapabilityEnquiry_NB_IoT(
                                    buffer,
                                    100);
   if (enc_rval.encoded <= 0) {
-     LOG_F(RRC, "ASN1 message encoding failed (%s, %lu)!\n",
+     LOG_E(RRC, "ASN1 message encoding failed (%s, %lu)!\n",
                enc_rval.failed_type->name, enc_rval.encoded);
     }
 
@@ -1105,7 +1105,7 @@ uint16_t do_RRCConnectionReconfiguration_NB_IoT(
                                    buffer,
                                    RRC_BUF_SIZE);
   if (enc_rval.encoded <= 0) {
-     LOG_F(RRC, "ASN1 message encoding failed %s, %li\n",
+     LOG_E(RRC, "ASN1 message encoding failed %s, %li\n",
                enc_rval.failed_type->name, enc_rval.encoded);
   }
 
@@ -1152,7 +1152,7 @@ uint8_t do_RRCConnectionReestablishmentReject_NB_IoT(
                                    buffer,
                                    100);
   if (enc_rval.encoded <= 0) {
-     LOG_F(RRC,"ASN1 message encoding failed (%s, %lu)!\n",
+     LOG_E(RRC,"ASN1 message encoding failed (%s, %lu)!\n",
                enc_rval.failed_type->name, enc_rval.encoded);
   }
 
@@ -1223,7 +1223,7 @@ uint8_t do_RRCConnectionReject_NB_IoT(
                                    buffer,
                                    100);
   if (enc_rval.encoded <= 0) {
-     LOG_F(RRC, "ASN1 message encoding failed (%s, %ld)!\n",
+     LOG_E(RRC, "ASN1 message encoding failed (%s, %ld)!\n",
                enc_rval.failed_type->name, enc_rval.encoded);
   }
 
@@ -1351,7 +1351,7 @@ uint8_t do_RRCConnectionReestablishment_NB_IoT(
 	                                   RRC_BUF_SIZE);
 
 	if (enc_rval.encoded <= 0) {
-           LOG_F(RRC, "ASN1 message encoding failed (%s, %li)!\n",
+           LOG_E(RRC, "ASN1 message encoding failed (%s, %li)!\n",
 	               enc_rval.failed_type->name, enc_rval.encoded);
         }
 
diff --git a/openair2/RRC/LTE/rrc_UE.c b/openair2/RRC/LTE/rrc_UE.c
index c23bf12d52..8f25cd6287 100644
--- a/openair2/RRC/LTE/rrc_UE.c
+++ b/openair2/RRC/LTE/rrc_UE.c
@@ -5558,9 +5558,9 @@ void *rrc_control_socket_thread_fct(void *arg)
       //process the message
       switch (sl_ctrl_msg_recv->type) {
       case SESSION_INIT_REQ:
-LOG_DEBUG_BEGIN(DEBUG_CTRLSOCKET)
-         LOG_UI(RRC,"Received SessionInitializationRequest on socket from ProSe App (msg type: %d)\n", sl_ctrl_msg_recv->type);
-LOG_DEBUG_END
+         if (LOG_DEBUGFLAG(DEBUG_CTRLSOCKET)){
+           LOG_UI(RRC,"Received SessionInitializationRequest on socket from ProSe App (msg type: %d)\n", sl_ctrl_msg_recv->type);
+         }
          //TODO: get SL_UE_STATE from lower layer
 
          LOG_I(RRC,"Send UEStateInformation to ProSe App \n");
@@ -5579,12 +5579,12 @@ LOG_DEBUG_END
             exit(EXIT_FAILURE);
          }
 
-LOG_DEBUG_BEGIN(DEBUG_CTRLSOCKET)
-         struct sidelink_ctrl_element *ptr_ctrl_msg = NULL;
-         ptr_ctrl_msg = (struct sidelink_ctrl_element *) send_buf;
-         LOG_UI(RRC,"[UEStateInformation] msg type: %d\n",ptr_ctrl_msg->type);
-         LOG_UI(RRC,"[UEStateInformation] UE state: %d\n",ptr_ctrl_msg->sidelinkPrimitive.ue_state);
-LOG_DEBUG_END
+         if (LOG_DEBUGFLAG(DEBUG_CTRLSOCKET)){
+           struct sidelink_ctrl_element *ptr_ctrl_msg = NULL;
+           ptr_ctrl_msg = (struct sidelink_ctrl_element *) send_buf;
+           LOG_UI(RRC,"[UEStateInformation] msg type: %d\n",ptr_ctrl_msg->type);
+           LOG_UI(RRC,"[UEStateInformation] UE state: %d\n",ptr_ctrl_msg->sidelinkPrimitive.ue_state);
+         }
          /*  if (enable_notification > 0) {
               //create thread to send status notification (for testing purpose, status notification will be sent e.g., every 20 seconds)
               pthread_t notification_thread;
@@ -5599,12 +5599,12 @@ LOG_DEBUG_END
          sourceL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.sourceL2Id;
          groupL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.groupL2Id;
 
-LOG_DEBUG_BEGIN(DEBUG_CTRLSOCKET)
-         LOG_UI(RRC,"[GroupCommunicationEstablishReq] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type);
-         LOG_UI(RRC,"[GroupCommunicationEstablishReq] source Id: 0x%08x\n",sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.sourceL2Id);
-         LOG_UI(RRC,"[GroupCommunicationEstablishReq] group Id: 0x%08x\n",sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.groupL2Id);
-         LOG_UI(RRC,"[GroupCommunicationEstablishReq] group IP Address: " IPV4_ADDR "\n",IPV4_ADDR_FORMAT(sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.groupIpAddress));
-LOG_DEBUG_END
+         if (LOG_DEBUGFLAG(DEBUG_CTRLSOCKET)){
+           LOG_UI(RRC,"[GroupCommunicationEstablishReq] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type);
+           LOG_UI(RRC,"[GroupCommunicationEstablishReq] source Id: 0x%08x\n",sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.sourceL2Id);
+           LOG_UI(RRC,"[GroupCommunicationEstablishReq] group Id: 0x%08x\n",sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.groupL2Id);
+           LOG_UI(RRC,"[GroupCommunicationEstablishReq] group IP Address: " IPV4_ADDR "\n",IPV4_ADDR_FORMAT(sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.groupIpAddress));
+         }
 
          //store sourceL2Id/groupL2Id
          UE_rrc_inst[module_id].sourceL2Id = sourceL2Id;
@@ -5764,20 +5764,20 @@ LOG_DEBUG_END
             exit(EXIT_FAILURE);
          }
 
-LOG_DEBUG_BEGIN(DEBUG_CTRLSOCKET)
-         struct sidelink_ctrl_element *ptr_ctrl_msg = NULL;
-         ptr_ctrl_msg = (struct sidelink_ctrl_element *) send_buf;
-         LOG_UI(RRC,"[GroupCommunicationEstablishResponse]  msg type: %d\n",ptr_ctrl_msg->type);
-         LOG_UI(RRC,"[GroupCommunicationEstablishResponse]  slrb_id: %d\n",ptr_ctrl_msg->sidelinkPrimitive.slrb_id);
-LOG_DEBUG_END
+         if (LOG_DEBUGFLAG(DEBUG_CTRLSOCKET)){
+           struct sidelink_ctrl_element *ptr_ctrl_msg = NULL;
+           ptr_ctrl_msg = (struct sidelink_ctrl_element *) send_buf;
+           LOG_UI(RRC,"[GroupCommunicationEstablishResponse]  msg type: %d\n",ptr_ctrl_msg->type);
+           LOG_UI(RRC,"[GroupCommunicationEstablishResponse]  slrb_id: %d\n",ptr_ctrl_msg->sidelinkPrimitive.slrb_id);
+         }
          break;
 
       case GROUP_COMMUNICATION_RELEASE_REQ:
          printf("-----------------------------------\n");
-LOG_DEBUG_BEGIN(DEBUG_CTRLSOCKET)
-         LOG_UI(RRC,"[GroupCommunicationReleaseRequest] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type);
-         LOG_UI(RRC,"[GroupCommunicationReleaseRequest] Slrb Id: %i\n",sl_ctrl_msg_recv->sidelinkPrimitive.slrb_id);
-LOG_DEBUG_END
+         if (LOG_DEBUGFLAG(DEBUG_CTRLSOCKET)){
+           LOG_UI(RRC,"[GroupCommunicationReleaseRequest] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type);
+           LOG_UI(RRC,"[GroupCommunicationReleaseRequest] Slrb Id: %i\n",sl_ctrl_msg_recv->sidelinkPrimitive.slrb_id);
+         }
          //reset groupL2ID from MAC LAYER
          UE_rrc_inst[module_id].groupL2Id = 0x00000000;
          sourceL2Id = UE_rrc_inst[module_id].sourceL2Id;
@@ -5849,11 +5849,11 @@ LOG_DEBUG_END
          sourceL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.direct_comm_establish_req.sourceL2Id;
          destinationL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.direct_comm_establish_req.destinationL2Id;
 
-LOG_DEBUG_BEGIN(DEBUG_CTRLSOCKET)
-         LOG_UI(RRC,"[DirectCommunicationEstablishReq] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type);
-         LOG_UI(RRC,"[DirectCommunicationEstablishReq] source Id: 0x%08x\n",sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.sourceL2Id);
-         LOG_UI(RRC,"[DirectCommunicationEstablishReq] destination Id: 0x%08x\n",sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.groupL2Id);
-LOG_DEBUG_END
+         if (LOG_DEBUGFLAG(DEBUG_CTRLSOCKET)){
+           LOG_UI(RRC,"[DirectCommunicationEstablishReq] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type);
+           LOG_UI(RRC,"[DirectCommunicationEstablishReq] source Id: 0x%08x\n",sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.sourceL2Id);
+           LOG_UI(RRC,"[DirectCommunicationEstablishReq] destination Id: 0x%08x\n",sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.groupL2Id);
+         }
 
          //store sourceL2Id/destinationL2Id
          UE_rrc_inst[module_id].sourceL2Id = sourceL2Id;
@@ -6013,27 +6013,27 @@ LOG_DEBUG_END
          }
 
 
-LOG_DEBUG_BEGIN(DEBUG_CTRLSOCKET)
-         struct sidelink_ctrl_element *ptr_ctrl_msg = NULL;
-         ptr_ctrl_msg = (struct sidelink_ctrl_element *) send_buf;
-         LOG_UI(RRC,"[DirectCommunicationEstablishResponse]  msg type: %d\n",ptr_ctrl_msg->type);
-         LOG_UI(RRC,"[DirectCommunicationEstablishResponse]  slrb_id: %d\n",ptr_ctrl_msg->sidelinkPrimitive.slrb_id);
-LOG_DEBUG_END
+         if (LOG_DEBUGFLAG(DEBUG_CTRLSOCKET)){
+           struct sidelink_ctrl_element *ptr_ctrl_msg = NULL;
+           ptr_ctrl_msg = (struct sidelink_ctrl_element *) send_buf;
+           LOG_UI(RRC,"[DirectCommunicationEstablishResponse]  msg type: %d\n",ptr_ctrl_msg->type);
+           LOG_UI(RRC,"[DirectCommunicationEstablishResponse]  slrb_id: %d\n",ptr_ctrl_msg->sidelinkPrimitive.slrb_id);
+         }
          break;
 
       case PC5S_ESTABLISH_REQ:
-         type =  sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.type;
-         sourceL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.sourceL2Id;
-LOG_DEBUG_BEGIN(DEBUG_CTRLSOCKET)
-         LOG_UI(RRC,"[PC5EstablishReq] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type);
-         LOG_UI(RRC,"[PC5EstablishReq] type: %d\n",sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.type); //RX/TX
-         LOG_UI(RRC,"[PC5EstablishReq] source Id: 0x%08x \n",sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.sourceL2Id);
-LOG_DEBUG_END
+           type =  sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.type;
+           sourceL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.sourceL2Id;
+           if (LOG_DEBUGFLAG(DEBUG_CTRLSOCKET)){
+             LOG_UI(RRC,"[PC5EstablishReq] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type);
+             LOG_UI(RRC,"[PC5EstablishReq] type: %d\n",sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.type); //RX/TX
+             LOG_UI(RRC,"[PC5EstablishReq] source Id: 0x%08x \n",sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.sourceL2Id);
+           }
          if (type > 0) {
             destinationL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.destinationL2Id;
-LOG_DEBUG_BEGIN(DEBUG_CTRLSOCKET)
-            LOG_UI(RRC,"[PC5EstablishReq] destination Id: 0x%08x \n",sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.destinationL2Id);
-LOG_DEBUG_END
+            if (LOG_DEBUGFLAG(DEBUG_CTRLSOCKET)){
+              LOG_UI(RRC,"[PC5EstablishReq] destination Id: 0x%08x \n",sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.destinationL2Id);
+            }
          }
 
          //store sourceL2Id/destinationL2Id
@@ -6244,9 +6244,9 @@ LOG_DEBUG_END
 
       case PC5_DISCOVERY_MESSAGE:
 
-LOG_DEBUG_BEGIN(DEBUG_CTRLSOCKET)
+         if (LOG_DEBUGFLAG(DEBUG_CTRLSOCKET)){
            LOG_UI(RRC,"[PC5DiscoveryMessage] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type);
-LOG_DEBUG_END
+         }
         //prepare SL_Discovery buffer
          if (UE_rrc_inst) {
            memcpy((void*)&UE_rrc_inst[module_id].SL_Discovery[0].Tx_buffer.Payload[0], (void*)&sl_ctrl_msg_recv->sidelinkPrimitive.pc5_discovery_message.payload[0], PC5_DISCOVERY_PAYLOAD_SIZE);
diff --git a/openair2/RRC/LTE/rrc_common.c b/openair2/RRC/LTE/rrc_common.c
index d18c43d6cf..cf0196441e 100644
--- a/openair2/RRC/LTE/rrc_common.c
+++ b/openair2/RRC/LTE/rrc_common.c
@@ -43,7 +43,6 @@
 #include "rrc_eNB_UE_context.h"
 #include "common/ran_context.h"
 
-#define DEBUG_RRC 1
 extern RAN_CONTEXT_t RC;
 extern UE_MAC_INST *UE_mac_inst;
 
diff --git a/openair2/RRC/LTE/rrc_eNB.c b/openair2/RRC/LTE/rrc_eNB.c
index b0b444084c..e34758843d 100644
--- a/openair2/RRC/LTE/rrc_eNB.c
+++ b/openair2/RRC/LTE/rrc_eNB.c
@@ -839,11 +839,6 @@ rrc_eNB_free_UE(const module_id_t enb_mod_idP,const struct rrc_eNB_ue_context_s*
 
 
   protocol_ctxt_t                     ctxt;
-#if !defined(ENABLE_USE_MME)
-  module_id_t                         ue_module_id;
-  /* avoid gcc warnings */
-  (void)ue_module_id;
-#endif
   rnti_t rnti = ue_context_pP->ue_context.rnti;
   if (enb_mod_idP >= NB_eNB_INST) {
       LOG_I(RRC, "eNB inst invalid (%d/%d) for UE %x!\n",enb_mod_idP, NB_eNB_INST,rnti);
@@ -858,20 +853,21 @@ rrc_eNB_free_UE(const module_id_t enb_mod_idP,const struct rrc_eNB_ue_context_s*
     PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, enb_mod_idP, ENB_FLAG_YES, rnti, 0, 0,enb_mod_idP);
     LOG_W(RRC, "[eNB %d] Removing UE RNTI %x\n", enb_mod_idP, rnti);
 
-#if defined(ENABLE_USE_MME)
-   if((ue_context_pP->ue_context.ul_failure_timer >= 20000) &&
-      (mac_eNB_get_rrc_status(enb_mod_idP,rnti) >= RRC_CONNECTED)) {
-    LOG_I(RRC, "[eNB %d] S1AP_UE_CONTEXT_RELEASE_REQ RNTI %x\n", enb_mod_idP, rnti);
-    rrc_eNB_send_S1AP_UE_CONTEXT_RELEASE_REQ(enb_mod_idP, ue_context_pP, S1AP_CAUSE_RADIO_NETWORK, 21); // send cause 21: connection with ue lost
-    /* From 3GPP 36300v10 p129 : 19.2.2.2.2 S1 UE Context Release Request (eNB triggered)
-     * If the E-UTRAN internal reason is a radio link failure detected in the eNB, the eNB shall wait a sufficient time before
-     *  triggering the S1 UE Context Release Request procedure
-     *  in order to allow the UE to perform the NAS recovery
-     *  procedure, see TS 23.401 [17].
-     */
-     return;
+   if(EPC_MODE_ENABLED) {
+
+     if((ue_context_pP->ue_context.ul_failure_timer >= 20000) &&
+  	(mac_eNB_get_rrc_status(enb_mod_idP,rnti) >= RRC_CONNECTED)) {
+      LOG_I(RRC, "[eNB %d] S1AP_UE_CONTEXT_RELEASE_REQ RNTI %x\n", enb_mod_idP, rnti);
+      rrc_eNB_send_S1AP_UE_CONTEXT_RELEASE_REQ(enb_mod_idP, ue_context_pP, S1AP_CAUSE_RADIO_NETWORK, 21); // send cause 21: connection with ue lost
+      /* From 3GPP 36300v10 p129 : 19.2.2.2.2 S1 UE Context Release Request (eNB triggered)
+       * If the E-UTRAN internal reason is a radio link failure detected in the eNB, the eNB shall wait a sufficient time before
+       *  triggering the S1 UE Context Release Request procedure
+       *  in order to allow the UE to perform the NAS recovery
+       *  procedure, see TS 23.401 [17].
+       */
+       return;
     }
-#endif
+  }
     // add UE info to freeList
     LOG_I(RRC, "put UE %x into freeList\n", rnti);
     put_UE_in_freelist(enb_mod_idP, rnti, 1);
@@ -1018,17 +1014,13 @@ rrc_eNB_process_RRCConnectionSetupComplete(
   T(T_ENB_RRC_CONNECTION_SETUP_COMPLETE, T_INT(ctxt_pP->module_id), T_INT(ctxt_pP->frame),
     T_INT(ctxt_pP->subframe), T_INT(ctxt_pP->rnti));
 
-#if defined(ENABLE_USE_MME)
-
   if (EPC_MODE_ENABLED == 1) {
     // Forward message to S1AP layer
     rrc_eNB_send_S1AP_NAS_FIRST_REQ(
       ctxt_pP,
       ue_context_pP,
       rrcConnectionSetupComplete);
-  } else
-#endif
-  {
+  } else {
     // RRC loop back (no S1AP), send SecurityModeCommand to UE
     rrc_eNB_generate_SecurityModeCommand(
       ctxt_pP,
@@ -1058,16 +1050,8 @@ rrc_eNB_generate_SecurityModeCommand(
            ue_context_pP->ue_context.ciphering_algorithm,
            ue_context_pP->ue_context.integrity_algorithm);
 
-#ifdef RRC_MSG_PRINT
-  uint16_t i=0;
-  LOG_F(RRC,"[MSG] RRC Security Mode Command\n");
 
-  for (i = 0; i < size; i++) {
-    LOG_F(RRC,"%02x ", ((uint8_t*)buffer)[i]);
-  }
-
-  LOG_F(RRC,"\n");
-#endif
+  LOG_DUMPMSG(RRC,DEBUG_RRC,(char *)buffer,size,"[MSG] RRC Security Mode Command\n");
 
   LOG_I(RRC,
         PROTOCOL_RRC_CTXT_UE_FMT" Logical Channel DL-DCCH, Generate SecurityModeCommand (bytes %d)\n",
@@ -1166,9 +1150,6 @@ rrc_eNB_generate_RRCConnectionReject(
 )
 //-----------------------------------------------------------------------------
 {
-#ifdef RRC_MSG_PRINT
-  int                                 cnt;
-#endif
 
   T(T_ENB_RRC_CONNECTION_REJECT, T_INT(ctxt_pP->module_id), T_INT(ctxt_pP->frame),
     T_INT(ctxt_pP->subframe), T_INT(ctxt_pP->rnti));
@@ -1177,15 +1158,10 @@ rrc_eNB_generate_RRCConnectionReject(
     do_RRCConnectionReject(ctxt_pP->module_id,
                           (uint8_t*) RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Srb0.Tx_buffer.Payload);
 
-#ifdef RRC_MSG_PRINT
-  LOG_F(RRC,"[MSG] RRCConnectionReject\n");
-
-  for (cnt = 0; cnt < RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Srb0.Tx_buffer.payload_size; cnt++) {
-    LOG_F(RRC,"%02x ", ((uint8_t*)RC.rrc[ctxt_pP->module_id]->Srb0.Tx_buffer.Payload)[cnt]);
-  }
-
-  LOG_F(RRC,"\n");
-#endif
+  LOG_DUMPMSG(RRC,DEBUG_RRC,
+              (char *)(RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Srb0.Tx_buffer.Payload),
+              RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Srb0.Tx_buffer.payload_size,
+              "[MSG] RRCConnectionReject\n");
 
   MSC_LOG_TX_MESSAGE(
     MSC_RRC_ENB,
@@ -1230,17 +1206,11 @@ rrc_eNB_generate_RRCConnectionReestablishment(
                                     rrc_eNB_get_next_transaction_identifier(ctxt_pP->module_id),
                                     SRB_configList,
                                     &ue_context_pP->ue_context.physicalConfigDedicated);
-
-#ifdef RRC_MSG_PRINT
-  LOG_F(RRC,"[MSG] RRCConnectionReestablishment\n");
-
-  for (cnt = 0; cnt < RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Srb0.Tx_buffer.payload_size; cnt++) {
-    LOG_F(RRC,"%02x ", ((uint8_t*)RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Srb0.Tx_buffer.Payload)[cnt]);
-  }
-
-  LOG_F(RRC,"\n");
-#endif
-
+  LOG_DUMPMSG(RRC,DEBUG_RRC,
+              (char *)(RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Srb0.Tx_buffer.Payload),
+              RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Srb0.Tx_buffer.payload_size,
+              "[MSG] RRCConnectionReestablishment\n"
+              );
   // configure SRB1 for UE
 
   if (*SRB_configList != NULL) {
@@ -1356,10 +1326,6 @@ rrc_eNB_process_RRCConnectionReestablishmentComplete(
   struct SRB_ToAddMod                *SRB2_config = NULL;
   struct DRB_ToAddMod                *DRB_config = NULL;
   int i = 0;
-# if defined(ENABLE_USE_MME)
-  int j = 0;
-  hashtable_rc_t                      h_rc;
-#endif
   uint8_t                             buffer[RRC_BUF_SIZE];
   uint16_t                            size;
   MeasObjectToAddModList_t           *MeasObj_list                     = NULL;
@@ -1450,60 +1416,62 @@ rrc_eNB_process_RRCConnectionReestablishmentComplete(
   ue_context_pP->ue_context.Srb1.Active = 1;
   //ue_context_pP->ue_context.Srb2.Srb_info.Srb_id = 2;
 
-# if defined(ENABLE_USE_MME)
-  rrc_ue_s1ap_ids_t* rrc_ue_s1ap_ids_p = NULL;
-  uint16_t ue_initial_id = ue_context_pP->ue_context.ue_initial_id;
-  uint32_t eNB_ue_s1ap_id = ue_context_pP->ue_context.eNB_ue_s1ap_id;
-  eNB_RRC_INST *rrc_instance_p = RC.rrc[ENB_INSTANCE_TO_MODULE_ID(ctxt_pP->instance)];
-  if (eNB_ue_s1ap_id > 0) {
-    h_rc = hashtable_get(rrc_instance_p->s1ap_id2_s1ap_ids, (hash_key_t)eNB_ue_s1ap_id, (void**)&rrc_ue_s1ap_ids_p);
-    if  (h_rc == HASH_TABLE_OK) {
-      rrc_ue_s1ap_ids_p->ue_rnti = ctxt_pP->rnti;
+  if (EPC_MODE_ENABLED) {
+    hashtable_rc_t    h_rc;
+    int               j;
+    rrc_ue_s1ap_ids_t* rrc_ue_s1ap_ids_p = NULL;
+    uint16_t ue_initial_id = ue_context_pP->ue_context.ue_initial_id;
+    uint32_t eNB_ue_s1ap_id = ue_context_pP->ue_context.eNB_ue_s1ap_id;
+    eNB_RRC_INST *rrc_instance_p = RC.rrc[ENB_INSTANCE_TO_MODULE_ID(ctxt_pP->instance)];
+    if (eNB_ue_s1ap_id > 0) {
+      h_rc = hashtable_get(rrc_instance_p->s1ap_id2_s1ap_ids, (hash_key_t)eNB_ue_s1ap_id, (void**)&rrc_ue_s1ap_ids_p);
+      if  (h_rc == HASH_TABLE_OK) {
+  	rrc_ue_s1ap_ids_p->ue_rnti = ctxt_pP->rnti;
+      }
     }
-  }
-  if (ue_initial_id != 0) {
-    h_rc = hashtable_get(rrc_instance_p->initial_id2_s1ap_ids, (hash_key_t)ue_initial_id, (void**)&rrc_ue_s1ap_ids_p);
-    if  (h_rc == HASH_TABLE_OK) {
-      rrc_ue_s1ap_ids_p->ue_rnti = ctxt_pP->rnti;
+    if (ue_initial_id != 0) {
+      h_rc = hashtable_get(rrc_instance_p->initial_id2_s1ap_ids, (hash_key_t)ue_initial_id, (void**)&rrc_ue_s1ap_ids_p);
+      if  (h_rc == HASH_TABLE_OK) {
+  	rrc_ue_s1ap_ids_p->ue_rnti = ctxt_pP->rnti;
+      }
     }
-  }
 
-  gtpv1u_enb_create_tunnel_req_t  create_tunnel_req;
+    gtpv1u_enb_create_tunnel_req_t  create_tunnel_req;
 
-  /* Save e RAB information for later */
-  memset(&create_tunnel_req, 0 , sizeof(create_tunnel_req));
+    /* Save e RAB information for later */
+    memset(&create_tunnel_req, 0 , sizeof(create_tunnel_req));
 
-  for (j = 0, i = 0; i < NB_RB_MAX; i++) {
-    if (ue_context_pP->ue_context.e_rab[i].status == E_RAB_STATUS_ESTABLISHED || ue_context_pP->ue_context.e_rab[i].status == E_RAB_STATUS_DONE) {
-      create_tunnel_req.eps_bearer_id[j]       = ue_context_pP->ue_context.e_rab[i].param.e_rab_id;
-      create_tunnel_req.sgw_S1u_teid[j]        = ue_context_pP->ue_context.e_rab[i].param.gtp_teid;
+    for ( j = 0, i = 0; i < NB_RB_MAX; i++) {
+      if (ue_context_pP->ue_context.e_rab[i].status == E_RAB_STATUS_ESTABLISHED || ue_context_pP->ue_context.e_rab[i].status == E_RAB_STATUS_DONE) {
+  	create_tunnel_req.eps_bearer_id[j]	 = ue_context_pP->ue_context.e_rab[i].param.e_rab_id;
+  	create_tunnel_req.sgw_S1u_teid[j]	 = ue_context_pP->ue_context.e_rab[i].param.gtp_teid;
 
-      memcpy(&create_tunnel_req.sgw_addr[j],
-             &ue_context_pP->ue_context.e_rab[i].param.sgw_addr,
-             sizeof(transport_layer_addr_t));
-      j++;
+  	memcpy(&create_tunnel_req.sgw_addr[j],
+  	       &ue_context_pP->ue_context.e_rab[i].param.sgw_addr,
+  	       sizeof(transport_layer_addr_t));
+  	j++;
+      }
     }
-  }
 
-  create_tunnel_req.rnti       = ctxt_pP->rnti; // warning put zero above
-  create_tunnel_req.num_tunnels    = j;
+    create_tunnel_req.rnti       = ctxt_pP->rnti; // warning put zero above
+    create_tunnel_req.num_tunnels    = j;
 
-  gtpv1u_update_s1u_tunnel(
-            ctxt_pP->instance,
-            &create_tunnel_req,
-            reestablish_rnti);
-#endif
+    gtpv1u_update_s1u_tunnel(
+              ctxt_pP->instance,
+              &create_tunnel_req,
+              reestablish_rnti);
+  } /* EPC_MODE_ENABLED */
   /* Update RNTI in ue_context */
   ue_context_pP->ue_id_rnti                    = ctxt_pP->rnti; // here ue_id_rnti is just a key, may be something else
   ue_context_pP->ue_context.rnti               = ctxt_pP->rnti;
-# if defined(ENABLE_USE_MME)
-  uint8_t send_security_mode_command = FALSE;
-  rrc_pdcp_config_security(
-      ctxt_pP,
-      ue_context_pP,
-      send_security_mode_command);
-  LOG_D(RRC, "set security successfully \n");
-#endif
+  if(EPC_MODE_ENABLED) {
+    uint8_t send_security_mode_command = FALSE;
+    rrc_pdcp_config_security(
+        ctxt_pP,
+        ue_context_pP,
+        send_security_mode_command);
+    LOG_D(RRC, "set security successfully \n");
+  }
   // Measurement ID list
   MeasId_list = CALLOC(1, sizeof(*MeasId_list));
   memset((void *)MeasId_list, 0, sizeof(*MeasId_list));
@@ -1869,15 +1837,9 @@ rrc_eNB_process_RRCConnectionReestablishmentComplete(
                                          , (SCellToAddMod_r10_t*)NULL
 #endif
                                         );
+  LOG_DUMPMSG(RRC,DEBUG_RRC,(char *)buffer,size,
+              "[MSG] RRC Connection Reconfiguration\n");
 
-#ifdef RRC_MSG_PRINT
-  LOG_F(RRC,"[MSG] RRC Connection Reconfiguration\n");
-  for (i = 0; i < size; i++) {
-    LOG_F(RRC,"%02x ", ((uint8_t*)buffer)[i]);
-  }
-  LOG_F(RRC,"\n");
-  ////////////////////////////////////////
-#endif
 
 #if defined(ENABLE_ITTI)
 
@@ -1977,9 +1939,6 @@ rrc_eNB_generate_RRCConnectionReestablishmentReject(
 )
 //-----------------------------------------------------------------------------
 {
-#ifdef RRC_MSG_PRINT
-  int                                 cnt;
-#endif
   int UE_id = find_UE_id(ctxt_pP->module_id, ctxt_pP->rnti);
   if(UE_id != -1){
     RC.mac[ctxt_pP->module_id]->UE_list.UE_sched_ctrl[UE_id].ue_reestablishment_reject_timer = 1;
@@ -1997,15 +1956,11 @@ rrc_eNB_generate_RRCConnectionReestablishmentReject(
     do_RRCConnectionReestablishmentReject(ctxt_pP->module_id,
                           (uint8_t*) RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Srb0.Tx_buffer.Payload);
 
-#ifdef RRC_MSG_PRINT
-  LOG_F(RRC,"[MSG] RRCConnectionReestablishmentReject\n");
+  LOG_DUMPMSG(RRC,DEBUG_RRC,
+              (char *)(RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Srb0.Tx_buffer.Payload),
+              RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Srb0.Tx_buffer.payload_size,
+              "[MSG] RRCConnectionReestablishmentReject\n");
 
-  for (cnt = 0; cnt < RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Srb0.Tx_buffer.payload_size; cnt++) {
-    LOG_F(RRC,"%02x ", ((uint8_t*)RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Srb0.Tx_buffer.Payload)[cnt]);
-  }
-
-  LOG_F(RRC,"\n");
-#endif
 
   MSC_LOG_TX_MESSAGE(
     MSC_RRC_ENB,
@@ -2336,15 +2291,8 @@ rrc_eNB_generate_dedicatedRRCConnectionReconfiguration(const protocol_ctxt_t* co
 #endif
                                         );
  
+  LOG_DUMPMSG(RRC,DEBUG_RRC,(char *)buffer,size,"[MSG] RRC Connection Reconfiguration\n");
 
-#ifdef RRC_MSG_PRINT
-  LOG_F(RRC,"[MSG] RRC Connection Reconfiguration\n");
-  for (i = 0; i < size; i++) {
-    LOG_F(RRC,"%02x ", ((uint8_t*)buffer)[i]);
-  }
-  LOG_F(RRC,"\n");
-  ////////////////////////////////////////
-#endif
 
 #if defined(ENABLE_ITTI)
 
@@ -2606,15 +2554,8 @@ rrc_eNB_modify_dedicatedRRCConnectionReconfiguration(const protocol_ctxt_t* cons
 #endif
    	   	   	   	   	  );
 
-
-#ifdef RRC_MSG_PRINT
-  LOG_F(RRC,"[MSG] RRC Connection Reconfiguration\n");
-  for (i = 0; i < size; i++) {
-    LOG_F(RRC,"%02x ", ((uint8_t*)buffer)[i]);
-  }
-  LOG_F(RRC,"\n");
-  ////////////////////////////////////////
-#endif
+  LOG_DUMPMSG(RRC,DEBUG_RRC,(char *)buffer,size,
+              "[MSG] RRC Connection Reconfiguration\n");
 
 #if defined(ENABLE_ITTI)
 
@@ -2731,15 +2672,8 @@ rrc_eNB_generate_dedicatedRRCConnectionReconfiguration_release(  const protocol_
 #endif
                                    );
     ue_context_pP->ue_context.e_rab_release_command_flag = 1;
-
-#ifdef RRC_MSG_PRINT
-  LOG_F(RRC,"[MSG] RRC Connection Reconfiguration\n");
-  for (i = 0; i < size; i++) {
-    LOG_F(RRC,"%02x ", ((uint8_t*)buffer)[i]);
-  }
-  LOG_F(RRC,"\n");
-  ////////////////////////////////////////
-#endif
+    LOG_DUMPMSG(RRC,DEBUG_RRC,(char *)buffer,size,
+                "[MSG] RRC Connection Reconfiguration\n");
 
 #if defined(ENABLE_ITTI)
   /* Free all NAS PDUs */
@@ -3460,15 +3394,8 @@ rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t* cons
                                          , (SCellToAddMod_r10_t*)NULL
 #endif
                                         );
-
-#ifdef RRC_MSG_PRINT
-  LOG_F(RRC,"[MSG] RRC Connection Reconfiguration\n");
-  for (i = 0; i < size; i++) {
-    LOG_F(RRC,"%02x ", ((uint8_t*)buffer)[i]);
-  }
-  LOG_F(RRC,"\n");
-  ////////////////////////////////////////
-#endif
+  LOG_DUMPMSG(RRC,DEBUG_RRC,(char *)buffer,size,
+              "[MSG] RRC Connection Reconfiguration\n");
 
 #if defined(ENABLE_ITTI)
 
@@ -4052,15 +3979,8 @@ flexran_rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt
                                          , (SCellToAddMod_r10_t*)NULL
 #endif
                                         );
-
-#ifdef RRC_MSG_PRINT
-  LOG_F(RRC,"[MSG] RRC Connection Reconfiguration\n");
-  for (i = 0; i < size; i++) {
-    LOG_F(RRC,"%02x ", ((uint8_t*)buffer)[i]);
-  }
-  LOG_F(RRC,"\n");
-  ////////////////////////////////////////
-#endif
+  LOG_DUMPMSG(RRC,DEBUG_RRC,(char *)buffer,size,
+              "[MSG] RRC Connection Reconfiguration\n");
 
 #if defined(ENABLE_ITTI)
 
@@ -5438,11 +5358,9 @@ rrc_eNB_process_RRCConnectionReconfigurationComplete(
 #ifdef PDCP_USE_NETLINK
   int                                 oip_ifup = 0;
   int                                 dest_ip_offset = 0;
-  module_id_t                         ue_module_id   = -1;
   /* avoid gcc warnings */
   (void)oip_ifup;
   (void)dest_ip_offset;
-  (void)ue_module_id;
 #endif
 
   uint8_t                            *kRRCenc = NULL;
@@ -5585,6 +5503,7 @@ rrc_eNB_process_RRCConnectionReconfigurationComplete(
                        ctxt_pP->module_id + 1);  // fourth octet
 
           if (oip_ifup == 0) {    // interface is up --> send a config the DRB
+            module_id_t ue_module_id; 
             dest_ip_offset = 8;
             LOG_I(OIP,
                   "[eNB %d] Config the oai%d to send/receive pkt on DRB %ld to/from the protocol stack\n",
@@ -5754,16 +5673,10 @@ rrc_eNB_generate_RRCConnectionSetup(
                           SRB_configList,
                           &ue_context_pP->ue_context.physicalConfigDedicated);
 
-#ifdef RRC_MSG_PRINT
-  LOG_F(RRC,"[MSG] RRC Connection Setup\n");
-
-  for (cnt = 0; cnt < RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Srb0.Tx_buffer.payload_size; cnt++) {
-    LOG_F(RRC,"%02x ", ((uint8_t*)RC.rrc[ctxt_pP->module_id]->Srb0.Tx_buffer.Payload)[cnt]);
-  }
-
-  LOG_F(RRC,"\n");
-  //////////////////////////////////
-#endif
+  LOG_DUMPMSG(RRC,DEBUG_RRC,
+              (char *)(RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Srb0.Tx_buffer.Payload),
+              RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Srb0.Tx_buffer.payload_size,
+              "[MSG] RRC Connection Setup\n");
 
   // configure SRB1/SRB2, PhysicalConfigDedicated, MAC_MainConfig for UE
 
@@ -6111,15 +6024,10 @@ rrc_eNB_decode_ccch(
       T(T_ENB_RRC_CONNECTION_REESTABLISHMENT_REQUEST, T_INT(ctxt_pP->module_id), T_INT(ctxt_pP->frame),
         T_INT(ctxt_pP->subframe), T_INT(ctxt_pP->rnti));
 
-#ifdef RRC_MSG_PRINT
-      LOG_F(RRC,"[MSG] RRC Connection Reestablishment Request\n");
+      LOG_DUMPMSG(RRC,DEBUG_RRC,(char *)(Srb_info->Rx_buffer.Payload),
+                  Srb_info->Rx_buffer.payload_size,
+                  "[MSG] RRC Connection Reestablishment Request\n");
 
-      for (i = 0; i < Srb_info->Rx_buffer.payload_size; i++) {
-        LOG_F(RRC,"%02x ", ((uint8_t*)Srb_info->Rx_buffer.Payload)[i]);
-      }
-
-      LOG_F(RRC,"\n");
-#endif
       LOG_D(RRC,
             PROTOCOL_RRC_CTXT_UE_FMT"MAC_eNB--- MAC_DATA_IND (rrcConnectionReestablishmentRequest on SRB0) --> RRC_eNB\n",
             PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP));
@@ -6336,15 +6244,10 @@ rrc_eNB_decode_ccch(
       T(T_ENB_RRC_CONNECTION_REQUEST, T_INT(ctxt_pP->module_id), T_INT(ctxt_pP->frame),
         T_INT(ctxt_pP->subframe), T_INT(ctxt_pP->rnti));
 
-#ifdef RRC_MSG_PRINT
-      LOG_F(RRC,"[MSG] RRC Connection Request\n");
+      LOG_DUMPMSG(RRC,DEBUG_RRC,(char *)(Srb_info->Rx_buffer.Payload),
+                  Srb_info->Rx_buffer.payload_size,
+                  "[MSG] RRC Connection Request\n");
 
-      for (i = 0; i < Srb_info->Rx_buffer.payload_size; i++) {
-        LOG_F(RRC,"%02x ", ((uint8_t*)Srb_info->Rx_buffer.Payload)[i]);
-      }
-
-      LOG_F(RRC,"\n");
-#endif
       LOG_D(RRC,
             PROTOCOL_RRC_CTXT_UE_FMT"MAC_eNB --- MAC_DATA_IND  (rrcConnectionRequest on SRB0) --> RRC_eNB\n",
             PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP));
@@ -6631,36 +6534,7 @@ rrc_eNB_decode_dcch(
                sdu_sizeP,
                0,
                0);
-  /*
-#if defined(ENABLE_ITTI)
-#   if defined(DISABLE_ITTI_XER_PRINT)
-  {
-    MessageDef                         *message_p;
-
-    message_p = itti_alloc_new_message(TASK_RRC_ENB, RRC_UL_DCCH_MESSAGE);
-    memcpy(&message_p->ittiMsg, (void *)ul_dcch_msg, sizeof(RrcUlDcchMessage));
 
-    itti_send_msg_to_task(TASK_UNKNOWN, ctxt_pP->instance, message_p);
-  }
-#   else
-  {
-    char                                message_string[10000];
-    size_t                              message_string_size;
-
-    if ((message_string_size =
-           xer_sprint(message_string, sizeof(message_string), &asn_DEF_UL_DCCH_Message, (void *)ul_dcch_msg)) >= 0) {
-      MessageDef                         *msg_p;
-
-      msg_p = itti_alloc_new_message_sized(TASK_RRC_ENB, RRC_UL_DCCH, message_string_size + sizeof(IttiMsgText));
-      msg_p->ittiMsg.rrc_ul_dcch.size = message_string_size;
-      memcpy(&msg_p->ittiMsg.rrc_ul_dcch.text, message_string, message_string_size);
-
-      itti_send_msg_to_task(TASK_UNKNOWN, ctxt_pP->instance, msg_p);
-    }
-  }
-#   endif
-#endif
-  */
   {
     for (i = 0; i < sdu_sizeP; i++) {
       LOG_T(RRC, "%x.", Rx_sdu[i]);
@@ -6714,15 +6588,9 @@ rrc_eNB_decode_dcch(
         LOG_I(RRC, "Processing RRCConnectionReconfigurationComplete UE %x, ue_context_p is NULL\n", ctxt_pP->rnti);
         break;
       }
-#ifdef RRC_MSG_PRINT
-      LOG_F(RRC,"[MSG] RRC Connection Reconfiguration Complete\n");
-
-      for (i = 0; i < sdu_sizeP; i++) {
-        LOG_F(RRC,"%02x ", ((uint8_t*)Rx_sdu)[i]);
-      }
+      LOG_DUMPMSG(RRC,DEBUG_RRC,(char *)(Rx_sdu),sdu_sizeP,
+                  "[MSG] RRC Connection Reconfiguration Complete\n");
 
-      LOG_F(RRC,"\n");
-#endif
       MSC_LOG_RX_MESSAGE(
         MSC_RRC_ENB,
         MSC_RRC_UE,
@@ -6745,42 +6613,42 @@ rrc_eNB_decode_dcch(
           RRCConnectionReconfigurationComplete__criticalExtensions_PR_rrcConnectionReconfigurationComplete_r8) {
 	/*NN: revise the condition */
 	/*FK: left the condition as is for the case MME is used (S1 mode) but setting  dedicated_DRB = 1 otherwise (noS1 mode) so that no second RRCReconfiguration message activationg more DRB is sent as this causes problems with the nasmesh driver.*/
-#if defined(ENABLE_USE_MME)
-        if (ue_context_p->ue_context.Status == RRC_RECONFIGURED){
-	  dedicated_DRB = 1;
-	  LOG_I(RRC,
-		PROTOCOL_RRC_CTXT_UE_FMT" UE State = RRC_RECONFIGURED (dedicated DRB, xid %ld)\n",
-		PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP),ul_dcch_msg->message.choice.c1.choice.rrcConnectionReconfigurationComplete.rrc_TransactionIdentifier);
-          //clear
-          int16_t UE_id = find_UE_id(ctxt_pP->module_id, ctxt_pP->rnti);
-          if(UE_id == -1){
-            LOG_E(RRC,
-                  PROTOCOL_RRC_CTXT_UE_FMT" RRCConnectionReconfigurationComplete without rnti %x, fault\n",
-                  PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP),ctxt_pP->rnti);
-            break;
-          }
-          if(RC.mac[ctxt_pP->module_id]->UE_list.UE_sched_ctrl[UE_id].crnti_reconfigurationcomplete_flag == 1){
-            LOG_I(RRC,
-                  PROTOCOL_RRC_CTXT_UE_FMT" UE State = RRC_RECONFIGURED (dedicated DRB, xid %ld) C-RNTI Complete\n",
-                  PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP),ul_dcch_msg->message.choice.c1.choice.rrcConnectionReconfigurationComplete.rrc_TransactionIdentifier);
-            dedicated_DRB = 2;
-            RC.mac[ctxt_pP->module_id]->UE_list.UE_sched_ctrl[UE_id].crnti_reconfigurationcomplete_flag = 0;
-          }
-	} else {
-	  dedicated_DRB = 0;
-	  ue_context_p->ue_context.Status = RRC_RECONFIGURED;
-          LOG_I(RRC,
-                PROTOCOL_RRC_CTXT_UE_FMT" UE State = RRC_RECONFIGURED (default DRB, xid %ld)\n",
-                PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP),ul_dcch_msg->message.choice.c1.choice.rrcConnectionReconfigurationComplete.rrc_TransactionIdentifier);
-	}
-        ue_context_p->ue_context.reestablishment_xid = -1;
-#else
-	dedicated_DRB = 1;
-	ue_context_p->ue_context.Status = RRC_RECONFIGURED;
-	LOG_I(RRC,
-	    PROTOCOL_RRC_CTXT_UE_FMT" UE State = RRC_RECONFIGURED (dedicated DRB, xid %ld)\n",
-	    PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP),ul_dcch_msg->message.choice.c1.choice.rrcConnectionReconfigurationComplete.rrc_TransactionIdentifier);
-#endif
+        if (EPC_MODE_ENABLED) {
+  	  if (ue_context_p->ue_context.Status == RRC_RECONFIGURED){
+  	    dedicated_DRB = 1;
+  	    LOG_I(RRC,
+  		  PROTOCOL_RRC_CTXT_UE_FMT" UE State = RRC_RECONFIGURED (dedicated DRB, xid %ld)\n",
+  		  PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP),ul_dcch_msg->message.choice.c1.choice.rrcConnectionReconfigurationComplete.rrc_TransactionIdentifier);
+  	    //clear
+  	    int16_t UE_id = find_UE_id(ctxt_pP->module_id, ctxt_pP->rnti);
+  	    if(UE_id == -1){
+  	      LOG_E(RRC,
+  		    PROTOCOL_RRC_CTXT_UE_FMT" RRCConnectionReconfigurationComplete without rnti %x, fault\n",
+  		    PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP),ctxt_pP->rnti);
+  	      break;
+  	    }
+  	    if(RC.mac[ctxt_pP->module_id]->UE_list.UE_sched_ctrl[UE_id].crnti_reconfigurationcomplete_flag == 1){
+  	      LOG_I(RRC,
+  		    PROTOCOL_RRC_CTXT_UE_FMT" UE State = RRC_RECONFIGURED (dedicated DRB, xid %ld) C-RNTI Complete\n",
+  		    PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP),ul_dcch_msg->message.choice.c1.choice.rrcConnectionReconfigurationComplete.rrc_TransactionIdentifier);
+  	      dedicated_DRB = 2;
+  	      RC.mac[ctxt_pP->module_id]->UE_list.UE_sched_ctrl[UE_id].crnti_reconfigurationcomplete_flag = 0;
+  	    }
+  	  } else {
+  	    dedicated_DRB = 0;
+  	    ue_context_p->ue_context.Status = RRC_RECONFIGURED;
+  	    LOG_I(RRC,
+  		  PROTOCOL_RRC_CTXT_UE_FMT" UE State = RRC_RECONFIGURED (default DRB, xid %ld)\n",
+  		  PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP),ul_dcch_msg->message.choice.c1.choice.rrcConnectionReconfigurationComplete.rrc_TransactionIdentifier);
+  	  }
+  	  ue_context_p->ue_context.reestablishment_xid = -1;
+        } else {
+  	  dedicated_DRB = 1;
+  	  ue_context_p->ue_context.Status = RRC_RECONFIGURED;
+  	  LOG_I(RRC,
+  	      PROTOCOL_RRC_CTXT_UE_FMT" UE State = RRC_RECONFIGURED (dedicated DRB, xid %ld)\n",
+  	      PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP),ul_dcch_msg->message.choice.c1.choice.rrcConnectionReconfigurationComplete.rrc_TransactionIdentifier);
+  	}
 	
 	rrc_eNB_process_RRCConnectionReconfigurationComplete(
           ctxt_pP,
@@ -6795,7 +6663,6 @@ rrc_eNB_decode_dcch(
 	}
       }
 #if defined(ENABLE_ITTI)
-#   if defined(ENABLE_USE_MME)
       if (EPC_MODE_ENABLED == 1) {
 	if (dedicated_DRB == 1){
 //	  rrc_eNB_send_S1AP_E_RAB_SETUP_RESP(ctxt_pP,
@@ -6867,8 +6734,6 @@ if (ue_context_p->ue_context.nb_of_modify_e_rabs > 0) {
 	//	ue_context_p->ue_context.e_rab[0].status = E_RAB_STATUS_ESTABLISHED;
 	rrc_eNB_reconfigure_DRBs(ctxt_pP,ue_context_p);
       }
-      
-#endif
 #endif 
       break;
 
@@ -6876,15 +6741,8 @@ if (ue_context_p->ue_context.nb_of_modify_e_rabs > 0) {
       T(T_ENB_RRC_CONNECTION_REESTABLISHMENT_COMPLETE, T_INT(ctxt_pP->module_id), T_INT(ctxt_pP->frame),
         T_INT(ctxt_pP->subframe), T_INT(ctxt_pP->rnti));
 
-#ifdef RRC_MSG_PRINT
-      LOG_F(RRC,"[MSG] RRC Connection Reestablishment Complete\n");
-
-      for (i = 0; i < sdu_sizeP; i++) {
-        LOG_F(RRC,"%02x ", ((uint8_t*)Rx_sdu)[i]);
-      }
-
-      LOG_F(RRC,"\n");
-#endif
+      LOG_DUMPMSG(RRC,DEBUG_RRC,(char *)Rx_sdu,sdu_sizeP,
+                  "[MSG] RRC Connection Reestablishment Complete\n");
 
       MSC_LOG_RX_MESSAGE(
         MSC_RRC_ENB,
@@ -6963,15 +6821,8 @@ if (ue_context_p->ue_context.nb_of_modify_e_rabs > 0) {
         LOG_I(RRC, "Processing RRCConnectionSetupComplete UE %x, ue_context_p is NULL\n", ctxt_pP->rnti);
         break;
       }
-#ifdef RRC_MSG_PRINT
-      LOG_F(RRC,"[MSG] RRC Connection SetupComplete\n");
-
-      for (i = 0; i < sdu_sizeP; i++) {
-        LOG_F(RRC,"%02x ", ((uint8_t*)Rx_sdu)[i]);
-      }
-
-      LOG_F(RRC,"\n");
-#endif
+      LOG_DUMPMSG(RRC,DEBUG_RRC,(char *)Rx_sdu,sdu_sizeP,
+                  "[MSG] RRC Connection SetupComplete\n");
 
       MSC_LOG_RX_MESSAGE(
         MSC_RRC_ENB,
@@ -7023,15 +6874,9 @@ if (ue_context_p->ue_context.nb_of_modify_e_rabs > 0) {
         LOG_I(RRC, "Processing securityModeComplete UE %x, ue_context_p is NULL\n", ctxt_pP->rnti);
         break;
       }
-#ifdef RRC_MSG_PRINT
-      LOG_F(RRC,"[MSG] RRC Security Mode Complete\n");
-
-      for (i = 0; i < sdu_sizeP; i++) eNB->pusch_vars[UE_id]{
-        LOG_F(RRC,"%02x ", ((uint8_t*)Rx_sdu)[i]);
-      }
+      LOG_DUMPMSG(RRC,DEBUG_RRC,(char *)Rx_sdu,sdu_sizeP,
+                  "[MSG] RRC Security Mode Complete\n");
 
-      LOG_F(RRC,"\n");
-#endif
 
       MSC_LOG_RX_MESSAGE(
         MSC_RRC_ENB,
@@ -7068,15 +6913,8 @@ if (ue_context_p->ue_context.nb_of_modify_e_rabs > 0) {
       T(T_ENB_RRC_SECURITY_MODE_FAILURE, T_INT(ctxt_pP->module_id), T_INT(ctxt_pP->frame),
         T_INT(ctxt_pP->subframe), T_INT(ctxt_pP->rnti));
 
-#ifdef RRC_MSG_PRINT
-      LOG_F(RRC,"[MSG] RRC Security Mode Failure\n");
-
-      for (i = 0; i < sdu_sizeP; i++) {
-        LOG_F(RRC,"%02x ", ((uint8_t*)Rx_sdu)[i]);
-      }
-
-      LOG_F(RRC,"\n");
-#endif
+      LOG_DUMPMSG(RRC,DEBUG_RRC,(char *)Rx_sdu,sdu_sizeP,
+                  "[MSG] RRC Security Mode Failure\n");
 
       MSC_LOG_RX_MESSAGE(
         MSC_RRC_ENB,
@@ -7112,15 +6950,9 @@ if (ue_context_p->ue_context.nb_of_modify_e_rabs > 0) {
           LOG_I(RRC, "Processing ueCapabilityInformation UE %x, ue_context_p is NULL\n", ctxt_pP->rnti);
           break;
       }
-#ifdef RRC_MSG_PRINT
-      LOG_F(RRC,"[MSG] RRC UECapablility Information \n");
-
-      for (i = 0; i < sdu_sizeP; i++) {
-        LOG_F(RRC,"%02x ", ((uint8_t*)Rx_sdu)[i]);
-      }
 
-      LOG_F(RRC,"\n");
-#endif
+      LOG_DUMPMSG(RRC,DEBUG_RRC,(char *)Rx_sdu,sdu_sizeP,
+                  "[MSG] RRC UECapablility Information\n");
 
       MSC_LOG_RX_MESSAGE(
         MSC_RRC_ENB,
@@ -7174,22 +7006,22 @@ if (ue_context_p->ue_context.nb_of_modify_e_rabs > 0) {
         ue_context_p->ue_context.UE_Capability = 0;
       }
 
-#if defined(ENABLE_USE_MME)
+      if (EPC_MODE_ENABLED) {
 
-      if (EPC_MODE_ENABLED == 1) {
-        rrc_eNB_send_S1AP_UE_CAPABILITIES_IND(ctxt_pP,
-                                              ue_context_p,
-                                              ul_dcch_msg);
-      }
-#else 
-      ue_context_p->ue_context.nb_of_e_rabs = 1;
-      for (i = 0; i < ue_context_p->ue_context.nb_of_e_rabs; i++){
-	ue_context_p->ue_context.e_rab[i].status = E_RAB_STATUS_NEW;
-	ue_context_p->ue_context.e_rab[i].param.e_rab_id = 1+i;
-	ue_context_p->ue_context.e_rab[i].param.qos.qci=9;
+        if (EPC_MODE_ENABLED == 1) {
+  	  rrc_eNB_send_S1AP_UE_CAPABILITIES_IND(ctxt_pP,
+  						ue_context_p,
+  						ul_dcch_msg);
+  	}
+      } else {
+  	ue_context_p->ue_context.nb_of_e_rabs = 1;
+  	for (i = 0; i < ue_context_p->ue_context.nb_of_e_rabs; i++){
+  	  ue_context_p->ue_context.e_rab[i].status = E_RAB_STATUS_NEW;
+  	  ue_context_p->ue_context.e_rab[i].param.e_rab_id = 1+i;
+  	  ue_context_p->ue_context.e_rab[i].param.qos.qci=9;
+  	}
+  	ue_context_p->ue_context.setup_e_rabs =ue_context_p->ue_context.nb_of_e_rabs;
       }
-      ue_context_p->ue_context.setup_e_rabs =ue_context_p->ue_context.nb_of_e_rabs;
-#endif
 
       rrc_eNB_generate_defaultRRCConnectionReconfiguration(ctxt_pP,
           ue_context_p,
@@ -7212,16 +7044,8 @@ if (ue_context_p->ue_context.nb_of_modify_e_rabs > 0) {
       }
 
       LOG_D(RRC,"[MSG] RRC UL Information Transfer \n");
-#ifdef RRC_MSG_PRINT
-      LOG_F(RRC,"[MSG] RRC UL Information Transfer \n");
-
-      for (i = 0; i < sdu_sizeP; i++) {
-        LOG_F(RRC,"%02x ", ((uint8_t*)Rx_sdu)[i]);
-      }
-
-      LOG_F(RRC,"\n");
-#endif
-
+      LOG_DUMPMSG(RRC,DEBUG_RRC,(char *)Rx_sdu,sdu_sizeP,
+                  "[MSG] RRC UL Information Transfer \n");
 
       MSC_LOG_RX_MESSAGE(
         MSC_RRC_ENB,
@@ -7233,15 +7057,11 @@ if (ue_context_p->ue_context.nb_of_modify_e_rabs > 0) {
         ue_context_p->ue_context.rnti,
         sdu_sizeP);
 
-#if defined(ENABLE_USE_MME)
-
       if (EPC_MODE_ENABLED == 1) {
         rrc_eNB_send_S1AP_UPLINK_NAS(ctxt_pP,
                                      ue_context_p,
                                      ul_dcch_msg);
       }
-
-#endif
       break;
 
     case UL_DCCH_MessageType__c1_PR_counterCheckResponse:
@@ -7307,15 +7127,8 @@ if (ue_context_p->ue_context.nb_of_modify_e_rabs > 0) {
      //case UL_DCCH_MessageType__messageClassExtension__c2_PR_sidelinkUEInformation_r12: //SidelinkUEInformation
         LOG_I(RRC,"THINH [UL_DCCH_MessageType__messageClassExtension_PR_c2]\n");
 
-#ifdef RRC_MSG_PRINT
-        LOG_F(RRC,"[MSG] SidelinkUEInformation\n");
-
-        for (i = 0; i < sdu_sizeP; i++) {
-           LOG_F(RRC,"%02x ", ((uint8_t*)Rx_sdu)[i]);
-        }
-
-        LOG_F(RRC,"\n");
-#endif
+        LOG_DUMPMSG(RRC,DEBUG_RRC,(char *)Rx_sdu,sdu_sizeP,
+                    "[MSG] RRC SidelinkUEInformation \n");
 
         MSC_LOG_RX_MESSAGE(
               MSC_RRC_ENB,
diff --git a/openair2/RRC/LTE/rrc_eNB_S1AP.c b/openair2/RRC/LTE/rrc_eNB_S1AP.c
index 36e0645795..60b3c55c79 100644
--- a/openair2/RRC/LTE/rrc_eNB_S1AP.c
+++ b/openair2/RRC/LTE/rrc_eNB_S1AP.c
@@ -945,16 +945,8 @@ rrc_eNB_process_S1AP_DOWNLINK_NAS(
                S1AP_DOWNLINK_NAS (msg_p).nas_pdu.length,
                S1AP_DOWNLINK_NAS (msg_p).nas_pdu.buffer);
 
-#ifdef RRC_MSG_PRINT
-    int i=0;
-    LOG_F(RRC,"[MSG] RRC DL Information Transfer\n");
+    LOG_DUMPMSG(RRC,DEBUG_RRC,buffer,length,"[MSG] RRC DL Information Transfer\n");
 
-    for (i = 0; i < length; i++) {
-      LOG_F(RRC,"%02x ", ((uint8_t*)buffer)[i]);
-    }
-
-    LOG_F(RRC,"\n");
-#endif
     /* 
      * switch UL or DL NAS message without RRC piggybacked to SRB2 if active. 
      */
diff --git a/targets/COMMON/create_tasks.c b/targets/COMMON/create_tasks.c
index 391e448deb..4a790b8806 100644
--- a/targets/COMMON/create_tasks.c
+++ b/targets/COMMON/create_tasks.c
@@ -60,7 +60,7 @@ int create_tasks(uint32_t enb_nb)
     }
   }
 
-#   if defined(ENABLE_USE_MME)
+  if (EPC_MODE_ENABLED) {
       if (enb_nb > 0) {
         if (itti_create_task (TASK_SCTP, sctp_eNB_task, NULL) < 0) {
           LOG_E(SCTP, "Create task for SCTP failed\n");
@@ -84,7 +84,7 @@ int create_tasks(uint32_t enb_nb)
         }
       }
 
-#      endif
+  } /* if (EPC_MODE_ENABLED) */
 
     if (enb_nb > 0) {
       LOG_I(RRC,"Creating RRC eNB Task\n");
diff --git a/targets/RT/USER/lte-ru.c b/targets/RT/USER/lte-ru.c
index a0339e8f0f..e7593b8fa8 100644
--- a/targets/RT/USER/lte-ru.c
+++ b/targets/RT/USER/lte-ru.c
@@ -1882,13 +1882,13 @@ void *ru_thread_synch(void *arg) {
 
 	LOG_I(PHY,"Estimated sync_pos %d, peak_val %d => timing offset %d\n",sync_pos,peak_val,ru->rx_offset);
 	
-LOG_M_BEGIN(RU)	
-	if ((peak_val > 300000) && (sync_pos > 0)) {
-	   LOG_M("ru_sync.m","sync",(void*)&sync_corr[0],fp->samples_per_tti*5,1,2);
-	   LOG_M("ru_rx.m","rxs",&(ru->eNB_list[0]->common_vars.rxdata[0][0]),fp->samples_per_tti*10,1,1);
-	exit(-1);
-	}
-LOG_M_END
+        if (LOG_DEBUGFLAG(RU)) {	
+	  if ((peak_val > 300000) && (sync_pos > 0)) {
+	     LOG_M("ru_sync.m","sync",(void*)&sync_corr[0],fp->samples_per_tti*5,1,2);
+	     LOG_M("ru_rx.m","rxs",&(ru->eNB_list[0]->common_vars.rxdata[0][0]),fp->samples_per_tti*10,1,1);
+	  exit(-1);
+	  }
+        }
 	ru->in_synch=1;
       }
     }
diff --git a/targets/RT/USER/lte-softmodem.c b/targets/RT/USER/lte-softmodem.c
index e84f99e67f..c74cd3b443 100644
--- a/targets/RT/USER/lte-softmodem.c
+++ b/targets/RT/USER/lte-softmodem.c
@@ -788,7 +788,7 @@ int stop_L1L2(module_id_t enb_id)
   oai_exit = 1;
 
   if (!RC.ru) {
-    LOG_F(ENB_APP, "no RU configured\n");
+    LOG_UI(ENB_APP, "no RU configured\n");
     return -1;
   }
 
@@ -967,7 +967,7 @@ int main( int argc, char **argv )
 
 #if defined(ENABLE_ITTI)
 
-  printf("ITTI init\n");
+  printf("ITTI init, useMME: %i\n" ,EPC_MODE_ENABLED);
   itti_init(TASK_MAX, THREAD_MAX, MESSAGES_ID_MAX, tasks_info, messages_info);
 
   // initialize mscgen log after ITTI
diff --git a/targets/RT/USER/lte-uesoftmodem.c b/targets/RT/USER/lte-uesoftmodem.c
index a2a12f9dd9..bf0abf1507 100644
--- a/targets/RT/USER/lte-uesoftmodem.c
+++ b/targets/RT/USER/lte-uesoftmodem.c
@@ -831,17 +831,17 @@ int main( int argc, char **argv )
   set_taus_seed (0);
 
 
-    set_log(HW,      OAILOG_DEBUG,   1);
-    set_log(PHY,     OAILOG_INFO,    1);
-    set_log(MAC,     OAILOG_INFO,    1);
-    set_log(RLC,     OAILOG_INFO,    1);
-    set_log(PDCP,    OAILOG_INFO,    1);
-    set_log(OTG,     OAILOG_INFO,    1);
-    set_log(RRC,     OAILOG_INFO,    1);
+    set_log(HW,      OAILOG_DEBUG );
+    set_log(PHY,     OAILOG_INFO  );
+    set_log(MAC,     OAILOG_INFO  );
+    set_log(RLC,     OAILOG_INFO  );
+    set_log(PDCP,    OAILOG_INFO  );
+    set_log(OTG,     OAILOG_INFO  );
+    set_log(RRC,     OAILOG_INFO  );
 #if defined(ENABLE_ITTI)
-    set_log(SIM,     OAILOG_INFO,   1);
+    set_log(SIM,     OAILOG_INFO );
 # if defined(ENABLE_USE_MME)
-    set_log(NAS,     OAILOG_INFO,    1);
+    set_log(NAS,     OAILOG_INFO  );
 # endif
 #endif
 
-- 
GitLab