diff --git a/openair1/PHY/LTE_TRANSPORT/dlsch_coding.c b/openair1/PHY/LTE_TRANSPORT/dlsch_coding.c
index d25bb16ebbdd471240e17852db3c3c4cd05f3519..a21566b39980a88942e6e4df0f5b303f97f092ff 100644
--- a/openair1/PHY/LTE_TRANSPORT/dlsch_coding.c
+++ b/openair1/PHY/LTE_TRANSPORT/dlsch_coding.c
@@ -131,7 +131,7 @@ LTE_eNB_DLSCH_t *new_eNB_dlsch(unsigned char Kmimo,unsigned char Mdlharq,unsigne
 
     for (i=0;i<Mdlharq;i++) {
       dlsch->harq_processes[i] = (LTE_DL_eNB_HARQ_t *)malloc16(sizeof(LTE_DL_eNB_HARQ_t));
-      printf("Required mem size %d (bw scaling %d), dlsch->harq_processes[%d] %p\n",
+      LOG_T(PHY, "Required mem size %d (bw scaling %d), dlsch->harq_processes[%d] %p\n",
 	     MAX_DLSCH_PAYLOAD_BYTES/bw_scaling,bw_scaling, i,dlsch->harq_processes[i]);
       if (dlsch->harq_processes[i]) {
           bzero(dlsch->harq_processes[i],sizeof(LTE_DL_eNB_HARQ_t));
diff --git a/openair2/NAS/DRIVER/MESH/netlink.c b/openair2/NAS/DRIVER/MESH/netlink.c
index 603c7435bf803b25832fe5673d3015f5c10959fe..49d72d921e8055e298ff6ae20d052235e59f4465 100644
--- a/openair2/NAS/DRIVER/MESH/netlink.c
+++ b/openair2/NAS/DRIVER/MESH/netlink.c
@@ -45,7 +45,7 @@
 
 #include "local.h"
 #include "proto_extern.h"
-#include "platform_constants.h"
+//#include "platform_constants.h"
 
 //#define NETLINK_DEBUG 1
 
diff --git a/openair2/UTIL/OTG/otg_defs.h b/openair2/UTIL/OTG/otg_defs.h
index 6cab5941fe3252f79c42997d3b86b5fc4fb3ef24..6b1e2d87023c06188db4d9042f5e6a76f4e53d80 100644
--- a/openair2/UTIL/OTG/otg_defs.h
+++ b/openair2/UTIL/OTG/otg_defs.h
@@ -74,41 +74,41 @@ typedef enum {
 */
 typedef enum {
   NO_PREDEFINED_TRAFFIC =0,
-  M2M,
-  SCBR,
-  MCBR,
-  BCBR,
-  AUTO_PILOT,
-  BICYCLE_RACE,
-  OPENARENA,
-  TEAM_FORTRESS,
-  FULL_BUFFER,
-  M2M_TRAFFIC,
-  AUTO_PILOT_L,			/*AUTO PILOT LOW SPEEDS*/
-  AUTO_PILOT_M,			/*AUTO PILOT MEDIEUM SPEEDS*/
-  AUTO_PILOT_H,			/*AUTO PILOT HIGH SPEEDS*/
-  AUTO_PILOT_E,			/*AUTO PILOT EMERGENCY*/
-  VIRTUAL_GAME_L,		/*VIRTUAL GAME LOW SPEEDS*/
-  VIRTUAL_GAME_M,		/*VIRTUAL GAME MEDIEUM SPEEDS*/
-  VIRTUAL_GAME_H,		/*VIRTUAL GAME HIGH SPEEDS*/
-  VIRTUAL_GAME_F,		/*VIRTUAL GAME FINISH*/
-  ALARM_HUMIDITY,  	/* SENSOR BASED ALARM : HUMIDITY */
-  ALARM_SMOKE,			/* SENSOR BASED ALARM : SMOKE */
-  ALARM_TEMPERATURE,/* SENSOR BASED ALARM : TEMPERATURE */
-  OPENARENA_DL,
-  OPENARENA_UL,
-  VOIP_G711,
-  VOIP_G729,
-  IQSIM_MANGO,
-  IQSIM_NEWSTEO,
-  OPENARENA_DL_TARMA,
-  VIDEO_VBR_10MBPS,
-  VIDEO_VBR_4MBPS,
-  VIDEO_VBR_2MBPS,
-  VIDEO_VBR_768KBPS,
-  VIDEO_VBR_384KBPS,
-  VIDEO_VBR_192KBPS,
-  BACKGROUND_USERS,
+  M2M, // 1
+  SCBR, //2 
+  MCBR, //3 
+  BCBR, //4 
+  AUTO_PILOT, //5 
+  BICYCLE_RACE, // 6
+  OPENARENA, // 7
+  TEAM_FORTRESS, // 8
+  FULL_BUFFER, // 9
+  M2M_TRAFFIC, // 10 
+  AUTO_PILOT_L,	 //11 		/*AUTO PILOT LOW SPEEDS*/
+  AUTO_PILOT_M,	// 12		/*AUTO PILOT MEDIEUM SPEEDS*/
+  AUTO_PILOT_H,	// 13 	 	/*AUTO PILOT HIGH SPEEDS*/
+  AUTO_PILOT_E, // 14  			/*AUTO PILOT EMERGENCY*/
+  VIRTUAL_GAME_L,// 15 		/*VIRTUAL GAME LOW SPEEDS*/
+  VIRTUAL_GAME_M, // 16 		/*VIRTUAL GAME MEDIEUM SPEEDS*/
+  VIRTUAL_GAME_H, // 17		/*VIRTUAL GAME HIGH SPEEDS*/
+  VIRTUAL_GAME_F, // 18		/*VIRTUAL GAME FINISH*/
+  ALARM_HUMIDITY, // 19 	/* SENSOR BASED ALARM : HUMIDITY */
+  ALARM_SMOKE,	 // 20		/* SENSOR BASED ALARM : SMOKE */
+  ALARM_TEMPERATURE, // 21 /* SENSOR BASED ALARM : TEMPERATURE */
+  OPENARENA_DL, // 22 
+  OPENARENA_UL, // 23 
+  VOIP_G711, // 24
+  VOIP_G729, // 25 
+  IQSIM_MANGO, // 26 
+  IQSIM_NEWSTEO, // 27
+  OPENARENA_DL_TARMA, // 28
+  VIDEO_VBR_10MBPS, // 29
+  VIDEO_VBR_4MBPS, // 30
+  VIDEO_VBR_2MBPS, // 31 
+  VIDEO_VBR_768KBPS, // 32 
+  VIDEO_VBR_384KBPS, // 33 
+  VIDEO_VBR_192KBPS, // 34 
+  BACKGROUND_USERS, // 35
   DUMMY
 }Application;
 
@@ -123,16 +123,16 @@ typedef enum {
 
 typedef enum {  
 	NO_TRAFFIC=0,
-	UNIFORM, 
-	GAUSSIAN,
-	EXPONENTIAL,
-	POISSON,
-	FIXED,
-	WEIBULL,
-	PARETO,
-	GAMMA,
-	CAUCHY,
-  	LOG_NORMAL,
+	UNIFORM, //1
+	GAUSSIAN, //2
+	EXPONENTIAL, //3 
+	POISSON, // 4
+	FIXED, // 5
+	WEIBULL, // 6 
+	PARETO, // 7
+	GAMMA, // 8
+	CAUCHY, // 9
+  	LOG_NORMAL, // 10 
 	TARMA,
     VIDEO,
     BACKGROUND_DIST,
diff --git a/openair2/UTIL/OTG/otg_form.c b/openair2/UTIL/OTG/otg_form.c
index 766272ed59002cdd82b1b19ad51434ea9f76e558..d41d06bd1210e31f558efd0239b6c7f3072ea1f3 100644
--- a/openair2/UTIL/OTG/otg_form.c
+++ b/openair2/UTIL/OTG/otg_form.c
@@ -52,9 +52,9 @@ fl_initialize(&tArgc,tArgv,"OTG",0,0);
       fl_show_form (form_dl->otg, FL_PLACE_HOTSPOT, FL_FULLBORDER, title);
       fl_set_form_position(form_dl->otg, 200, 200);
         if (g_otg->owd_radio_access==1)
-          fl_set_xyplot_ybounds(form_dl->owd,0,100);
-        else
           fl_set_xyplot_ybounds(form_dl->owd,0,200);
+        else
+          fl_set_xyplot_ybounds(form_dl->owd,0,400);
 
  
       fl_set_xyplot_ybounds(form_dl->throughput,0,200); 
@@ -66,9 +66,9 @@ fl_initialize(&tArgc,tArgv,"OTG",0,0);
       fl_show_form (form_ul->otg, FL_PLACE_HOTSPOT, FL_FULLBORDER, title);
       fl_set_form_position(form_ul->otg, 850, 200);
       if (g_otg->owd_radio_access==1)
-          fl_set_xyplot_ybounds(form_ul->owd,0,100);
-        else
           fl_set_xyplot_ybounds(form_ul->owd,0,200);
+      else
+	fl_set_xyplot_ybounds(form_ul->owd,0,400);
 
 
 
diff --git a/openair2/UTIL/OTG/otg_kpi.c b/openair2/UTIL/OTG/otg_kpi.c
index 5c79995d04ae74f914c2692d74a2958df5dcefcc..76e8de99ded7bb6ec133103be54009dd1d8b83ac 100644
--- a/openair2/UTIL/OTG/otg_kpi.c
+++ b/openair2/UTIL/OTG/otg_kpi.c
@@ -686,8 +686,12 @@ void add_log_metric(int src, int dst, int ctime, double metric, unsigned int lab
  case OTG_GP_BG:
    add_log_label(label, &start_log_GP_bg);
    break;
+ case OTG_JITTER:
+   add_log_label(label, &start_log_GP_bg);
+   break;
+    
  default:
-   LOG_E(OTG, "File label unknown \n");
+   LOG_E(OTG, "File label unknown %d \n", label);
  }
 
  LOG_F(label,"%d  ", ctime);
diff --git a/openair2/UTIL/OTG/otg_kpi.h b/openair2/UTIL/OTG/otg_kpi.h
index 156de9e12e3bc1697bfdde9fa6ad5a831f7d9887..58100dab52e8f1c1fd726e89d8b27e0e0e25942e 100644
--- a/openair2/UTIL/OTG/otg_kpi.h
+++ b/openair2/UTIL/OTG/otg_kpi.h
@@ -53,6 +53,7 @@ unsigned int start_log_latency=0;
 unsigned int start_log_latency_bg=0;
 unsigned int start_log_GP=0;
 unsigned int start_log_GP_bg=0;
+unsigned int start_log_jitter=0;
 
 /*! \fn void tx_throughput( int src, int dst, int application)
 * \brief compute the transmitter throughput in bytes per seconds
diff --git a/openair2/UTIL/OTG/otg_models.c b/openair2/UTIL/OTG/otg_models.c
index 9e95fd69e464442957a50eaf32859ad35fcb82f4..19dbe763cfa7babcc98afb6bc7accc8811985ae5 100644
--- a/openair2/UTIL/OTG/otg_models.c
+++ b/openair2/UTIL/OTG/otg_models.c
@@ -482,7 +482,7 @@ backgroundStream_t *backgroundStreamInit(backgroundStream_t *stream, double lamb
 	}
   }
 
-  printf("OTG BACKGROUND_USERS DEBUG: backgroundStreamInit(%d) called\n",(int)stream);
+  LOG_D(OTG,"BACKGROUND_USERS DEBUG: backgroundStreamInit(%d) called\n",(int)stream);
   backgroundPrintStream (stream);
   return stream;
 }
@@ -496,7 +496,7 @@ backgroundStream_t *backgroundStreamInit(backgroundStream_t *stream, double lamb
 void backgroundUpdateStream(backgroundStream_t *stream, int ctime){
   int numNewSessions, cnts, period;
 
-  printf("OTG BACKGROUND DEBUG: backgroundUpdateStream(stream*=%d,ctime=%d,period=%d) called\n",(int)stream, ctime);
+  LOG_D(OTG,"BACKGROUND DEBUG: backgroundUpdateStream(stream*=%d,ctime=%d,period=%d) called\n",(int)stream, ctime);
   if(stream){
 	period=ctime-stream->lastUpdateTime;
 	numNewSessions=poisson_dist(stream->meanNumSessions/5710*period);
@@ -532,7 +532,7 @@ double backgroundCalculateSize(backgroundStream_t *stream, int ctime, int idt){
   double mrate=0;
 
   backgroundUpdateStream(stream, ctime);
-  printf("OTG BACKGROUND DEBUG: backgroundCalculateSize(stream*=%d,idt=%d,ctime=%d) called\n",(int)stream, idt, ctime);
+  LOG_D(OTG,"BACKGROUND DEBUG: backgroundCalculateSize(stream*=%d,idt=%d,ctime=%d) called\n",(int)stream, idt, ctime);
   if(stream){
 	for(cnts=0; cnts<BACKGROUND_NUM_ACTIVE_MAX; cnts++){
 	  if(stream->activeSessions[cnts].endTime>ctime){
@@ -541,7 +541,7 @@ double backgroundCalculateSize(backgroundStream_t *stream, int ctime, int idt){
 	  }
 	}
 	size=mrate*idt/1000;
-	printf("OTG BACKGROUND DEBUG:     cntact=%02d, idt=%05d, agg_mrate=%05.1f, size=%04.1f\n", cntact, idt, mrate,size);
+	LOG_D(OTG,"BACKGROUND DEBUG:     cntact=%02d, idt=%05d, agg_mrate=%05.1f, size=%04.1f\n", cntact, idt, mrate,size);
   }
   return size;
 }
@@ -554,11 +554,11 @@ double backgroundCalculateSize(backgroundStream_t *stream, int ctime, int idt){
 void backgroundPrintStream(backgroundStream_t *stream){
   int cnts;
   
-  printf("OTG BACKGROUND DEBUG: backgroundPrintStream(%d)\n",(int)stream);
+  LOG_D(OTG,"BACKGROUND DEBUG: backgroundPrintStream(%d)\n",(int)stream);
   if(stream){
-	printf("OTG BACKGROUND DEBUG:     meanNumSessions(lambda_n)=%f\n",stream->meanNumSessions);
+    LOG_D(OTG,"BACKGROUND DEBUG:     meanNumSessions(lambda_n)=%f\n",stream->meanNumSessions);
 	for(cnts=0; cnts<BACKGROUND_NUM_ACTIVE_MAX; cnts++){
-	  printf("OTG BACKGROUND DEBUG:       session[%d] -> mrate=%06.3f, etime=%05d\n",
+	  LOG_D(OTG,"BACKGROUND DEBUG:       session[%d] -> mrate=%06.3f, etime=%05d\n",
 	        cnts, stream->activeSessions[cnts].meanSessionRate, stream->activeSessions[cnts].endTime);
 	}
   }
diff --git a/openair2/UTIL/OTG/otg_rx.c b/openair2/UTIL/OTG/otg_rx.c
index 37c894c4f4d94c7b9307639cb5fd1597273fc0c7..74f72db1b0159f2475acedf27a20c7b74cb0bf80 100644
--- a/openair2/UTIL/OTG/otg_rx.c
+++ b/openair2/UTIL/OTG/otg_rx.c
@@ -42,8 +42,12 @@
 #include "otg_vars.h"
 #include "../UTIL/MATH/oml.h"
 #include <math.h>
+#include <mysql.h>
+#include <m_ctype.h>
+#include <sql_common.h>
 #include "otg_form.h"
 
+
 extern unsigned char NB_eNB_INST;
 extern unsigned char NB_UE_INST;
 
@@ -84,6 +88,12 @@ int otg_rx_pkt( int src, int dst, int ctime, char *buffer_tx, unsigned int size)
       LOG_I(OTG,"[SRC %d][DST %d] [FLOW_idx %d][APP TYPE %d] RX INFO pkt at time %d: flag 0x %x, seq number %d, tx time %d, size (hdr %d, pdcp %d) \n", src, dst,otg_hdr_rx->flow_id,  otg_hdr_rx->traffic_type, ctime, otg_hdr_info_rx->flag, otg_hdr_rx->seq_num, otg_hdr_rx->time, otg_hdr_info_rx->size, size);
       bytes_read += sizeof (otg_hdr_t);
       
+      if(otg_hdr_rx->traffic_type > MAX_NUM_APPLICATION){
+	LOG_W(OTG,"RX packet: application type out of range %d for the pair of (src %d, dst %d) \n", 
+	      otg_hdr_rx->traffic_type, src, dst);
+	otg_hdr_rx->traffic_type=0;
+    }
+      
       if (otg_hdr_info_rx->flag == 0xffff){
 	seq_num_rx=otg_info->seq_num_rx[src][dst][otg_hdr_rx->traffic_type];
 	if (src<NB_eNB_INST)
diff --git a/openair2/UTIL/OTG/otg_tx.c b/openair2/UTIL/OTG/otg_tx.c
index e0ad0b72bc3b577ae9cebb898a81180fb139527e..19c78c5d35e73ad31a5f9d2ffd10fb802ea0b66b 100644
--- a/openair2/UTIL/OTG/otg_tx.c
+++ b/openair2/UTIL/OTG/otg_tx.c
@@ -105,7 +105,8 @@ int time_dist(int src, int dst,int application, int state) {
 	  break;
 	default :
 	  idt =0;
-	  LOG_W(OTG, "IDT distribution unknown, set to 0 \n");
+	  LOG_W(OTG, "IDT distribution unknown, set to 0 for (src %d, dst %d, app %d, state %d)\n", 
+		  src, dst, application, state );
   }
 
   LOG_D(OTG,"IDT :: Inter Departure Time Distribution= %d , val= %d\n", g_otg->idt_dist[src][dst][application][state],idt);
@@ -170,7 +171,8 @@ int size_dist(int src, int dst, int application, int state) {
 		                                      otg_info->ctime, otg_info->idt[src][dst][application]));
 	  	break;
 	  default:
-		LOG_E(OTG, "PKT Size Distribution unknown \n");
+	    LOG_E(OTG, "PKT Size Distribution unknown (src %d, dst %d, app %d, state %d)\n", 
+		  src, dst, application, state );
 	}
 
   }
@@ -276,7 +278,13 @@ Send Packets when:
 		otg_info->tx_total_bytes_dl+=buffer_size;
 	else
 		otg_info->tx_total_bytes_ul+=buffer_size;
-
+	
+	if (otg_info->traffic_type[src][dst] > MAX_NUM_APPLICATION) {
+	  LOG_W(OTG,"application type out of range %d for the pair of (src %d, dst %d) \n", 
+		otg_info->traffic_type[src][dst], src, dst);
+	  otg_info->traffic_type[src][dst]=0;
+	} 
+  
  	return serialize_buffer(header, payload, buffer_size, otg_info->traffic_type[src][dst], flag, flow, ctime, seq_num, otg_info->header_type_app[src][dst][flow], state, otg_info->m2m_aggregation[src][dst]);
 	}
 
@@ -327,7 +335,7 @@ unsigned char *packet_gen_multicast(int src, int dst, int ctime, int * pkt_size)
       if (size!=strlen(payload))
 	LOG_E(OTG,"[src %d][dst %d] The expected packet size does not match the payload size : size %d, strlen %d \n", src, dst, size, strlen(payload));
       else 
-	LOG_D(OTG,"[src %d][dst %d]TX INFO pkt at time %d Size= [payload %d] [Total %d] with seq num %d: |%s|%s| \n", 
+	LOG_I(OTG,"[src %d][dst %d]TX INFO pkt at time %d Size= [payload %d] [Total %d] with seq num %d: |%s|%s| \n", 
 	      src, dst, ctime, size, strlen(header)+strlen(payload)+otg_hdr_size, seq_num, header, payload);
   
       buffer_size = otg_hdr_size + strlen(header) + strlen(payload);
@@ -359,10 +367,10 @@ void init_packet_gen(int src, int dst,int ctime){
 	otg_info->traffic_type[src][dst]=0;
 	otg_info->traffic_type_background[src][dst]=0;
 	/* init background traffic*/
-	if (otg_info->idt_background[src][dst]==0){ 
+	/*	if (otg_info->idt_background[src][dst]==0){ 
 		otg_info->idt_background[src][dst]= exponential_dist(0.025);
  		otg_info->background_stream[src][dst][0]=backgroundStreamInit(0,1);	
-	}
+		} */
 }
 
 void check_ctime(int ctime){
@@ -379,15 +387,15 @@ int check_data_transmit(int src,int dst, int ctime){
   for (application=0; application<g_otg->application_idx[src][dst]; application++){  
 	otg_info->gen_pkts=0;
 
-	//LOG_D(OTG,"FLOW_INFO [src %d][dst %d] [IDX %d] [APPLICATION TYPE %d] MAX %d [M2M %d ]\n", src, dst, application , g_otg->application_type[src][dst][application],g_otg->application_idx[src][dst], g_otg->m2m[src][dst][application]);
+	LOG_T(OTG,"FLOW_INFO [src %d][dst %d] [IDX %d] [APPLICATION TYPE %d] MAX %d [M2M %d ]\n", src, dst, application , g_otg->application_type[src][dst][application],g_otg->application_idx[src][dst], g_otg->m2m[src][dst][application]);
 	
 	// do not generate packet for this pair of src, dst : no app type and/or no idt are defined	
 	
 	if (g_otg->duration[src][dst][application] > ctime){
-	  //LOG_D(OTG,"Do not generate packet for this pair of src=%d, dst =%d, duration %d < ctime %d \n", src, dst,g_otg->duration[src][dst][application], ctime); 
+	  LOG_T(OTG,"Do not generate packet for this pair of src=%d, dst =%d, duration %d < ctime %d \n", src, dst,g_otg->duration[src][dst][application], ctime); 
 	  size+=0;	
 	}else if ((g_otg->application_type[src][dst][application]==0)&&(g_otg->idt_dist[src][dst][application][PE_STATE]==0)){  
-	  //LOG_D(OTG,"Do not generate packet for this pair of src=%d, dst =%d\n", src, dst); 
+	  LOG_D(OTG,"Do not generate packet for this pair of src=%d, dst =%d, IDT zero and app not specificed\n", src, dst); 
 	  size+=0;	 
 	}
 
@@ -681,6 +689,22 @@ int k;
      for (k=0; k<g_otg->application_idx[i][j]; k++){  
 
      switch  (g_otg->application_type[i][j][k]) {
+      case NO_PREDEFINED_TRAFFIC : 
+       LOG_I(OTG, "[SRC %d][DST %d] No predefined Traffic \n", i, j);
+       g_otg->trans_proto[i][j][k] = 0;
+       g_otg->ip_v[i][j][k] = 0;
+       g_otg->idt_dist[i][j][k][PE_STATE] = 0;
+       g_otg->idt_min[i][j][k][PE_STATE] =  0; 
+       g_otg->idt_max[i][j][k][PE_STATE] =  0;
+       g_otg->size_dist[i][j][k][PE_STATE] = FIXED;
+       g_otg->size_min[i][j][k][PE_STATE] =  0;
+       g_otg->size_max[i][j][k][PE_STATE] = 0;
+#ifdef STANDALONE
+       g_otg->dst_port[i][j] = 302;
+       g_otg->duration[i][j] = 1000;
+#endif 
+       break;
+
      case  SCBR : 
        g_otg->trans_proto[i][j][k] = UDP;
        g_otg->ip_v[i][j][k] = IPV4;
@@ -688,7 +712,7 @@ int k;
        g_otg->idt_min[i][j][k][PE_STATE] =   (int)round(uniform_dist((i+1)*30,(i+1)*100));// 500+(i+1)*10; //random idt among different UEs 
        g_otg->idt_max[i][j][k][PE_STATE] =  10;
        g_otg->size_dist[i][j][k][PE_STATE] = FIXED;
-       g_otg->size_min[i][j][k][PE_STATE] =  128;
+       g_otg->size_min[i][j][k][PE_STATE] =  16;
        g_otg->size_max[i][j][k][PE_STATE] =  50;
        LOG_I(OTG,"OTG_CONFIG SCBR, src = %d, dst = %d, traffic id %d, idt %d dist type for size = %d\n", i, j, k, 
 	     g_otg->idt_min[i][j][k][PE_STATE], g_otg->size_min[i][j][k][PE_STATE]);
@@ -704,7 +728,7 @@ int k;
        g_otg->idt_min[i][j][k][PE_STATE] =   (int)round(uniform_dist((i+1)*30, (i+1)*100));// 250+(i+1)*10; 
        g_otg->idt_max[i][j][k][PE_STATE] =  10;
        g_otg->size_dist[i][j][k][PE_STATE] = FIXED;
-       g_otg->size_min[i][j][k][PE_STATE] =  256;
+       g_otg->size_min[i][j][k][PE_STATE] =  32;
        g_otg->size_max[i][j][k][PE_STATE] =  512;
        LOG_I(OTG,"OTG_CONFIG MCBR, src = %d, dst = %d,  traffic id %d, dist type for size = %d\n", i, j,k , g_otg->size_dist[i][j][k][PE_STATE]);
 #ifdef STANDALONE
@@ -719,7 +743,7 @@ int k;
        g_otg->idt_min[i][j][k][PE_STATE] =  (int)round(uniform_dist((i+1)*30,(i+1)*100)); //125+(i+1)*10; 
        g_otg->idt_max[i][j][k][PE_STATE] =  10;
        g_otg->size_dist[i][j][k][PE_STATE] = FIXED; // main param in this mode
-       g_otg->size_min[i][j][k][PE_STATE] =  512;// main param in this mode
+       g_otg->size_min[i][j][k][PE_STATE] =  128;// main param in this mode
        g_otg->size_max[i][j][k][PE_STATE] =  1024;
        LOG_I(OTG,"OTG_CONFIG BCBR, src = %d, dst = %d, dist type for size = %d\n", i, j, g_otg->size_dist[i][j][k][PE_STATE]);
 #ifdef STANDALONE
@@ -806,21 +830,7 @@ int k;
        g_otg->duration[i][j] = 1000;
 #endif 
        break;
-     case NO_PREDEFINED_TRAFFIC : 
-       LOG_I(OTG, "[SRC %d][DST %d] No predefined Traffic \n", i, j);
-       g_otg->trans_proto[i][j][k] = 0;
-       g_otg->ip_v[i][j][k] = 0;
-       g_otg->idt_dist[i][j][k][PE_STATE] = 0;
-       g_otg->idt_min[i][j][k][PE_STATE] =  0; 
-       g_otg->idt_max[i][j][k][PE_STATE] =  0;
-       g_otg->size_dist[i][j][k][PE_STATE] = FIXED;
-       g_otg->size_min[i][j][k][PE_STATE] =  0;
-       g_otg->size_max[i][j][k][PE_STATE] = 0;
-#ifdef STANDALONE
-       g_otg->dst_port[i][j] = 302;
-       g_otg->duration[i][j] = 1000;
-#endif 
-       break;
+    
    case M2M_TRAFFIC : /* example of M2M traffic  */
        LOG_I(OTG," M2M_TRAFFIC, src = %d, dst = %d \n", i, j, g_otg->application_type[i][j][k]);
        g_otg->trans_proto[i][j][k] = TCP;
@@ -853,23 +863,25 @@ case AUTO_PILOT_L :
 /* Measurements from: 
 Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Markus Laner, Kajie Zhou, Philippe Svoboda, Dejan Drajic, Serjan Krco and Milica Popovic) 
 */
-       LOG_I(OTG,"AUTO PILOT LOW SPEEDS, src = %d, dst = %d, application type = %d\n", i, j, g_otg->application_type[i][j][k]);
+      
        g_otg->trans_proto[i][j][k] = TCP;
        g_otg->ip_v[i][j][k] = IPV4;
-			 g_otg->pu_size_pkts[i][j][k]=1000;
-			 g_otg->ed_size_pkts[i][j][k]=1000;
-       g_otg->idt_dist[i][j][k][PE_STATE] = FIXED;
+       g_otg->pu_size_pkts[i][j][k]=1000;
+       g_otg->ed_size_pkts[i][j][k]=1000;
+       g_otg->idt_dist[i][j][k][PE_STATE] = UNIFORM; 
        g_otg->idt_min[i][j][k][PE_STATE] =  100;
-       g_otg->idt_max[i][j][k][PE_STATE] =  100;
-			 if (i<nb_enb_local){ /*DL*/
-      	g_otg->size_dist[i][j][k][PE_STATE] = FIXED;
-       	g_otg->size_min[i][j][k][PE_STATE] =  1000;
-       	g_otg->size_max[i][j][k][PE_STATE] =  1000;
-			 }else{ /*UL*/
-			 g_otg->size_dist[j][i][k][PE_STATE] = UNIFORM;
-       g_otg->size_min[j][i][k][PE_STATE] =  64;
-       g_otg->size_max[j][i][k][PE_STATE] =  1000;
-			 }
+       g_otg->idt_max[i][j][k][PE_STATE] =  500;
+       if (i<nb_enb_local){ /*DL*/
+	 g_otg->size_dist[i][j][k][PE_STATE] = FIXED;
+	 g_otg->size_min[i][j][k][PE_STATE] =  1000;
+	 g_otg->size_max[i][j][k][PE_STATE] =  1000;
+	 LOG_I(OTG,"AUTO PILOT LOW SPEEDS DL , src = %d, dst = %d, application type = %d\n", i, j, g_otg->application_type[i][j][k]);
+ }else{ /*UL*/
+	 g_otg->size_dist[j][i][k][PE_STATE] = UNIFORM;
+	 g_otg->size_min[j][i][k][PE_STATE] =  64;
+	 g_otg->size_max[j][i][k][PE_STATE] =  1000;
+	 LOG_I(OTG,"AUTO PILOT LOW SPEEDS UL, src = %d, dst = %d, application type = %d\n", i, j, g_otg->application_type[i][j][k]);
+       }
        g_otg->prob_off_pu[i][j][k]=0.2;
        g_otg->prob_off_ed[i][j][k]=0.3;
        g_otg->prob_off_pe[i][j][k]=0;
@@ -880,7 +892,7 @@ Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Marku
        g_otg->holding_time_off_pu[i][j][k]=100;
        g_otg->holding_time_off_ed[i][j][k]=10; 
        g_otg->holding_time_pe_off[i][j][k]=1000;
-			 g_otg->m2m[i][j][k]=1;
+       g_otg->m2m[i][j][k]=1;
 #ifdef STANDALONE
        g_otg->dst_port[i][j]= 303;
        g_otg->duration[i][j] = 1000;
@@ -890,7 +902,7 @@ case AUTO_PILOT_M :
 /* Measurements from: 
 Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Markus Laner, Kajie Zhou, Philippe Svoboda, Dejan Drajic, Serjan Krco and Milica Popovic) 
 */ 
-       LOG_I(OTG,"AUTO PILOT MEDIUM SPEEDS, src = %d, dst = %d, application type = %d\n", i, j, g_otg->application_type[i][j][k]);
+     
        g_otg->trans_proto[i][j][k] = TCP;
        g_otg->ip_v[i][j][k] = IPV4;
 			 g_otg->pu_size_pkts[i][j][k]=1000;
@@ -898,15 +910,17 @@ Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Marku
        g_otg->idt_dist[i][j][k][PE_STATE] = FIXED;
        g_otg->idt_min[i][j][k][PE_STATE] =  100;
        g_otg->idt_max[i][j][k][PE_STATE] =  100;
-		 if (i<nb_enb_local){ /*DL*/
-      	g_otg->size_dist[i][j][k][PE_STATE] = FIXED;
-       	g_otg->size_min[i][j][k][PE_STATE] =  1000;
-       	g_otg->size_max[i][j][k][PE_STATE] =  1000;
-			 }else{ /*UL*/
-			 g_otg->size_dist[j][i][k][PE_STATE] = UNIFORM;
-       g_otg->size_min[j][i][k][PE_STATE] =  64;
-       g_otg->size_max[j][i][k][PE_STATE] =  1000;
-			 }
+       if (i<nb_enb_local){ /*DL*/
+	 g_otg->size_dist[i][j][k][PE_STATE] = FIXED;
+	 g_otg->size_min[i][j][k][PE_STATE] =  1000;
+	 g_otg->size_max[i][j][k][PE_STATE] =  1000;
+	 LOG_I(OTG,"AUTO PILOT MEDIUM SPEEDS DL, src = %d, dst = %d, application type = %d\n", i, j, g_otg->application_type[i][j][k]);
+       }else{ /*UL*/
+	 g_otg->size_dist[j][i][k][PE_STATE] = UNIFORM;
+	 g_otg->size_min[j][i][k][PE_STATE] =  64;
+	 g_otg->size_max[j][i][k][PE_STATE] =  1000;
+         LOG_I(OTG,"AUTO PILOT MEDIUM SPEEDS UL, src = %d, dst = %d, application type = %d\n", i, j, g_otg->application_type[i][j][k]);
+       }
        g_otg->prob_off_pu[i][j][k]=0.2;
        g_otg->prob_off_ed[i][j][k]=0.3;
        g_otg->prob_off_pe[i][j][k]=0;
@@ -927,7 +941,7 @@ case AUTO_PILOT_H :
 /* Measurements from: 
 Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Markus Laner, Kajie Zhou, Philippe Svoboda, Dejan Drajic, Serjan Krco and Milica Popovic) 
 */
-       LOG_I(OTG,"AUTO PILOT HIGH SPEEDS, src = %d, dst = %d, application type = %d\n", i, j, g_otg->application_type[i][j][k]);
+      
        g_otg->trans_proto[i][j][k] = TCP;
        g_otg->ip_v[i][j][k] = IPV4;
 			 g_otg->pu_size_pkts[i][j][k]=1000;
@@ -939,11 +953,13 @@ Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Marku
       	g_otg->size_dist[i][j][k][PE_STATE] = FIXED;
        	g_otg->size_min[i][j][k][PE_STATE] =  1000;
        	g_otg->size_max[i][j][k][PE_STATE] =  1000;
-			 }else{ /*UL*/
+	 LOG_I(OTG,"AUTO PILOT HIGH SPEEDS DL, src = %d, dst = %d, application type = %d\n", i, j, g_otg->application_type[i][j][k]);
+		 }else{ /*UL*/
 			 g_otg->size_dist[j][i][k][PE_STATE] = UNIFORM;
        g_otg->size_min[j][i][k][PE_STATE] =  64;
        g_otg->size_max[j][i][k][PE_STATE] =  1000;
-			 }
+ LOG_I(OTG,"AUTO PILOT HIGH SPEEDS UL, src = %d, dst = %d, application type = %d\n", i, j, g_otg->application_type[i][j][k]);
+		 }
        g_otg->prob_off_pu[i][j][k]=0.2;
        g_otg->prob_off_ed[i][j][k]=0.3;
        g_otg->prob_off_pe[i][j][k]=0;
@@ -964,24 +980,26 @@ case AUTO_PILOT_E :
 /* Measurements from: 
 Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Markus Laner, Kajie Zhou, Philippe Svoboda, Dejan Drajic, Serjan Krco and Milica Popovic) 
 */
-       LOG_I(OTG,"AUTO PILOT EMERGENCY, src = %d, dst = %d, application type = %d\n", i, j, g_otg->application_type[i][j][k]);
+      
 			 /* DL SCENARIO*/
        g_otg->trans_proto[i][j][k] = TCP;
        g_otg->ip_v[i][j][k] = IPV4;
-			 g_otg->pu_size_pkts[i][j][k]=1000;
-			 g_otg->ed_size_pkts[i][j][k]=1000;
+       g_otg->pu_size_pkts[i][j][k]=1000;
+       g_otg->ed_size_pkts[i][j][k]=1000;
        g_otg->idt_dist[i][j][k][PE_STATE] = UNIFORM;
        g_otg->idt_min[i][j][k][PE_STATE] =  20;
        g_otg->idt_max[i][j][k][PE_STATE] =  25;
- 		 if (i<nb_enb_local){ /*DL*/
-      	g_otg->size_dist[i][j][k][PE_STATE] = FIXED;
-       	g_otg->size_min[i][j][k][PE_STATE] =  1000;
-       	g_otg->size_max[i][j][k][PE_STATE] =  1000;
-			 }else{ /*UL*/
-			 g_otg->size_dist[j][i][k][PE_STATE] = UNIFORM;
-       g_otg->size_min[j][i][k][PE_STATE] =  64;
-       g_otg->size_max[j][i][k][PE_STATE] =  1000;
-			 }
+       if (i<nb_enb_local){ /*DL*/
+	 g_otg->size_dist[i][j][k][PE_STATE] = FIXED;
+	 g_otg->size_min[i][j][k][PE_STATE] =  1000;
+	 g_otg->size_max[i][j][k][PE_STATE] =  1000;
+       LOG_I(OTG,"AUTO PILOT EMERGENCY DL, src = %d, dst = %d, application type = %d\n", i, j, g_otg->application_type[i][j][k]);
+       }else{ /*UL*/
+	 g_otg->size_dist[j][i][k][PE_STATE] = UNIFORM;
+	 g_otg->size_min[j][i][k][PE_STATE] =  64;
+	 g_otg->size_max[j][i][k][PE_STATE] =  1000;
+        LOG_I(OTG,"AUTO PILOT EMERGENCY UL, src = %d, dst = %d, application type = %d\n", i, j, g_otg->application_type[i][j][k]);
+       }
        g_otg->prob_off_pu[i][j][k]=0.2;
        g_otg->prob_off_ed[i][j][k]=0.3;
        g_otg->prob_off_pe[i][j][k]=0;
@@ -1102,14 +1120,14 @@ Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Marku
        LOG_I(OTG,"ALARM SMOKE, src = %d, dst = %d, application type = %d\n", i, j, g_otg->application_type[i][j][k]);
        g_otg->trans_proto[i][j][k] = TCP;
        g_otg->ip_v[i][j][k] = IPV4;
-			 g_otg->pu_size_pkts[i][j][k]=1000;
-			 g_otg->ed_size_pkts[i][j][k]=2000;
+       g_otg->pu_size_pkts[i][j][k]=1000;
+       g_otg->ed_size_pkts[i][j][k]=2000;
        g_otg->prob_off_pu[i][j][k]=0.5;
        g_otg->prob_off_ed[i][j][k]=0.5;
        g_otg->prob_pu_ed[i][j][k]=0.5;
        g_otg->holding_time_off_pu[i][j][k]=60000;		/* 1 minute*/
        g_otg->holding_time_off_ed[i][j][k]=43200000;  	/* 12 hours*/
-			 g_otg->m2m[i][j][k]=1;
+       g_otg->m2m[i][j][k]=1;
 #ifdef STANDALONE
        g_otg->dst_port[i][j] = 303;
        g_otg->duration[i][j] = 1000;
@@ -1135,19 +1153,20 @@ Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Marku
        g_otg->duration[i][j] = 1000;
 #endif 
 	   break;
-   case OPENARENA : 
+     case OPENARENA_DL : 
+     case OPENARENA_UL : 
        g_otg->trans_proto[i][j][k] = TCP;
        g_otg->ip_v[i][j][k] = IPV4;
        g_otg->idt_dist[i][j][k][PE_STATE] = FIXED;
        g_otg->size_dist[i][j][k][PE_STATE] = FIXED;
-			 g_otg->m2m[i][j][k]=1;
-			 if (i<nb_enb_local){/*DL*/
-       LOG_I(OTG,"OTG_CONFIG GAMING_OA_DL, src = %d, dst = %d, dist IDT = %d\n", i, j, g_otg->idt_dist[i][j][k][PE_STATE]);
-       g_otg->idt_min[i][j][k][PE_STATE] =  40;
-       g_otg->idt_max[i][j][k][PE_STATE] =  40;
-       g_otg->size_min[i][j][k][PE_STATE] =  140;
-       g_otg->size_max[i][j][k][PE_STATE] =  140;
-			} else{/*UL*/
+       g_otg->m2m[i][j][k]=1;
+       if (i<nb_enb_local){/*DL*/
+	 LOG_I(OTG,"OTG_CONFIG GAMING_OA_DL, src = %d, dst = %d, dist IDT = %d\n", i, j, g_otg->idt_dist[i][j][k][PE_STATE]);
+	 g_otg->idt_min[i][j][k][PE_STATE] =  40;
+	 g_otg->idt_max[i][j][k][PE_STATE] =  40;
+	 g_otg->size_min[i][j][k][PE_STATE] =  140;
+	 g_otg->size_max[i][j][k][PE_STATE] =  140;
+       } else{/*UL*/
        LOG_I(OTG,"OTG_CONFIG GAMING_OA_UL, src = %d, dst = %d, dist IDT = %d\n", i, j, g_otg->idt_dist[i][j][k][PE_STATE]);
        g_otg->idt_min[i][j][k][PE_STATE] =  11;
        g_otg->idt_max[i][j][k][PE_STATE] =  11;
@@ -1159,6 +1178,7 @@ Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Marku
        g_otg->duration[i][j] = 1000;
 #endif 
 break;
+
 	   case OPENARENA_DL_TARMA :
 		 g_otg->trans_proto[i][j][k] = TCP;
 		 g_otg->ip_v[i][j][k] = IPV4;
@@ -1261,7 +1281,7 @@ break;
     g_otg->idt_max[i][j][k][PE_STATE] =  80;
     g_otg->size_dist[i][j][k][PE_STATE] = BACKGROUND_DIST;
 		/*the background initialization*/
-	  otg_info->background_stream[i][j][k]=backgroundStreamInit(0,2);
+    //  otg_info->background_stream[i][j][k]=backgroundStreamInit(0,2);
 	  break;
 
 	case DUMMY : 
@@ -1503,7 +1523,7 @@ void state_management(int src, int dst, int application, int ctime) {
     if (otg_info->state_transition_prob[src][dst][application]==0){
       otg_info->state_transition_prob[src][dst][application]=uniform_dist(0,1);
       otg_info->state[src][dst][application]=OFF_STATE;
-      LOG_I(OTG,"[%d][%d][Appli id %d] STATE:: OFF INIT \n", src, dst, application);
+      LOG_D(OTG,"[%d][%d][Appli id %d] STATE:: OFF INIT \n", src, dst, application);
       otg_info->start_holding_time_off[src][dst][application]=0/*ctime*/;
     }
     //LOG_D(OTG,"[%d][[%d] HOLDING_TIMES OFF_PE: %d, OFF_PU: %d, OFF_ED %d, PE_OFF: %d \n", src, dst, g_otg->holding_time_off_pe[src][dst], g_otg->holding_time_off_pu[src][dst],g_otg->holding_time_off_ed[src][dst], g_otg->holding_time_pe_off[src][dst] );  
@@ -1514,7 +1534,7 @@ void state_management(int src, int dst, int application, int ctime) {
       
       if (ctime>otg_info->start_holding_time_off[src][dst][application]){
 	otg_info->c_holding_time_off[src][dst][application]= ctime - otg_info->start_holding_time_off[src][dst][application];
-	LOG_I(OTG,"[%d][%d][Appli id %d][Agg Level=%d] STATE:: OFF Holding Time %d (%d, %d)\n", src, dst,application , g_otg->aggregation_level[src][dst][application], otg_info->c_holding_time_off[src][dst][application], ctime, otg_info->start_holding_time_off[src][dst][application]);
+	LOG_D(OTG,"[%d][%d][Appli id %d][Agg Level=%d] STATE:: OFF Holding Time %d (%d, %d)\n", src, dst,application , g_otg->aggregation_level[src][dst][application], otg_info->c_holding_time_off[src][dst][application], ctime, otg_info->start_holding_time_off[src][dst][application]);
       }
       
       if ( ((otg_info->state_transition_prob[src][dst][application]>= 1-(g_otg->prob_off_pu[src][dst][application]+g_otg->prob_off_ed[src][dst][application]+g_otg->prob_off_pe[src][dst][application])) && (otg_info->state_transition_prob[src][dst][application]<1-(g_otg->prob_off_ed[src][dst][application]+g_otg->prob_off_pe[src][dst][application])))  && (otg_info->c_holding_time_off[src][dst][application]>=g_otg->holding_time_off_pu[src][dst][application])){  
@@ -1525,7 +1545,7 @@ void state_management(int src, int dst, int application, int ctime) {
       }
       else if ( ((otg_info->state_transition_prob[src][dst][application]>= 1-(g_otg->prob_off_ed[src][dst][application]+g_otg->prob_off_pe[src][dst][application])) && (otg_info->state_transition_prob[src][dst][application]< 1-g_otg->prob_off_pe[src][dst][application])) && (otg_info->c_holding_time_off[src][dst][application]>=g_otg->holding_time_off_ed[src][dst][application])){
      otg_info->state[src][dst][application]=ED_STATE;
-     LOG_I(OTG,"[%d][%d][Appli id %d][Agg Level=%d] NEW STATE:: OFF-->ED \n", src, dst,application, g_otg->aggregation_level[src][dst][application]);
+     LOG_D(OTG,"[%d][%d][Appli id %d][Agg Level=%d] NEW STATE:: OFF-->ED \n", src, dst,application, g_otg->aggregation_level[src][dst][application]);
      otg_info->state_transition_prob[src][dst][application]=uniform_dist(0,1);
   }
 
@@ -1538,7 +1558,7 @@ void state_management(int src, int dst, int application, int ctime) {
   else{
      otg_info->c_holding_time_off[src][dst][application]= ctime - otg_info->start_holding_time_off[src][dst][application];
      otg_info->state_transition_prob[src][dst][application]=uniform_dist(0,1);
-     LOG_I(OTG,"[%d][%d][Appli id %d][Agg Level=%d] STATE:: OFF\n", src, dst,application, g_otg->aggregation_level[src][dst][application]);
+     LOG_D(OTG,"[%d][%d][Appli id %d][Agg Level=%d] STATE:: OFF\n", src, dst,application, g_otg->aggregation_level[src][dst][application]);
   }
   break;
 
@@ -1548,7 +1568,7 @@ void state_management(int src, int dst, int application, int ctime) {
        otg_info->state[src][dst][application]=OFF_STATE;
        otg_info->start_holding_time_off[src][dst][application]=ctime; 
 			 otg_info->c_holding_time_off[src][dst][application]=0;
-       LOG_I(OTG,"[%d][%d][Appli id %d][Agg Level=%d] NEW STATE:: PU-->OFF \n", src, dst,application, g_otg->aggregation_level[src][dst][application]);
+       LOG_D(OTG,"[%d][%d][Appli id %d][Agg Level=%d] NEW STATE:: PU-->OFF \n", src, dst,application, g_otg->aggregation_level[src][dst][application]);
        otg_info->state_transition_prob[src][dst][application]=uniform_dist(0,1);
      }	
      else if  ((otg_info->state_transition_prob[src][dst][application]<=1-g_otg->prob_pu_pe[src][dst][application]) && (otg_info->state_transition_prob[src][dst][application]>1-(g_otg->prob_pu_ed[src][dst][application]+g_otg->prob_pu_pe[src][dst][application]))){
@@ -1561,7 +1581,7 @@ void state_management(int src, int dst, int application, int ctime) {
        //otg_info->state[src][dst]=ON_STATE;
        otg_info->state[src][dst][application]=PE_STATE;
        otg_info->start_holding_time_pe_off[src][dst][application]=ctime;
-       LOG_I(OTG,"[%d][%d][Appli id %d][Agg Level=%d] NEW STATE:: PU-->PE \n", src, dst,application, g_otg->aggregation_level[src][dst][application]);
+       LOG_D(OTG,"[%d][%d][Appli id %d][Agg Level=%d] NEW STATE:: PU-->PE \n", src, dst,application, g_otg->aggregation_level[src][dst][application]);
        otg_info->state_transition_prob[src][dst][application]=uniform_dist(0,1);
      }
   break;
@@ -1571,20 +1591,20 @@ void state_management(int src, int dst, int application, int ctime) {
        otg_info->state[src][dst][application]=OFF_STATE;
        otg_info->start_holding_time_off[src][dst][application]=ctime; 
 			 otg_info->c_holding_time_off[src][dst][application]=0;
-       LOG_I(OTG,"[%d][%d][Appli id %d][Agg Level=%d] NEW STATE:: ED-->OFF \n", src, dst,application, g_otg->aggregation_level[src][dst][application]);
+       LOG_D(OTG,"[%d][%d][Appli id %d][Agg Level=%d] NEW STATE:: ED-->OFF \n", src, dst,application, g_otg->aggregation_level[src][dst][application]);
        otg_info->state_transition_prob[src][dst][application]=uniform_dist(0,1);
      }
      else if  ((otg_info->state_transition_prob[src][dst][application]>=1-(g_otg->prob_ed_pu[src][dst][application] + g_otg->prob_ed_pe[src][dst][application] )) && (otg_info->state_transition_prob[src][dst][application]<1-g_otg->prob_ed_pe[src][dst][application]))  {
        //otg_info->state[src][dst]=ON_STATE;
        otg_info->state[src][dst][application]=PE_STATE;
-       LOG_I(OTG,"[%d][%d][Appli id %d][Agg Level=%d] NEW STATE:: ED-->PU \n", src, dst,application, g_otg->aggregation_level[src][dst][application]);
+       LOG_D(OTG,"[%d][%d][Appli id %d][Agg Level=%d] NEW STATE:: ED-->PU \n", src, dst,application, g_otg->aggregation_level[src][dst][application]);
        otg_info->state_transition_prob[src][dst][application]=uniform_dist(0,1);
      }
      else /*if ((otg_info->state_transition_prob[src][dst]>=1-g_otg->prob_ed_pe)&&(otg_info->state_transition_prob[src][dst]<=1)) */{
        //otg_info->state[src][dst]=ON_STATE;
        otg_info->state[src][dst][application]=PE_STATE;
        otg_info->start_holding_time_pe_off[src][dst][application]=ctime;
-       LOG_I(OTG,"[%d][%d][Appli id %d][Agg Level=%d] NEW STATE:: ED-->PE \n", src, dst,application, g_otg->aggregation_level[src][dst][application]);
+       LOG_D(OTG,"[%d][%d][Appli id %d][Agg Level=%d] NEW STATE:: ED-->PE \n", src, dst,application, g_otg->aggregation_level[src][dst][application]);
        otg_info->state_transition_prob[src][dst][application]=uniform_dist(0,1);
      }
   break;
@@ -1593,7 +1613,7 @@ void state_management(int src, int dst, int application, int ctime) {
      if (g_otg->holding_time_pe_off[src][dst][application]<=otg_info->c_holding_time_pe_off[src][dst][application]){
        //otg_info->state[src][dst]=OFF_STATE;
        otg_info->state[src][dst][application]=OFF_STATE;
-       LOG_I(OTG,"[%d][%d][Appli id %d][Agg Level=%d] NEW STATE:: PE->OFF\n", src, dst,application, g_otg->aggregation_level[src][dst][application]);  
+       LOG_D(OTG,"[%d][%d][Appli id %d][Agg Level=%d] NEW STATE:: PE->OFF\n", src, dst,application, g_otg->aggregation_level[src][dst][application]);  
        otg_info->c_holding_time_pe_off[src][dst][application]=0;
        otg_info->state_transition_prob[src][dst][application]=uniform_dist(0,1);
        otg_info->start_holding_time_off[src][dst][application]=ctime; 
@@ -1602,7 +1622,7 @@ void state_management(int src, int dst, int application, int ctime) {
      else /* if (g_otg->holding_time_pe_off>otg_info->c_holding_time_pe_off[src][dst])*/{
 		 	if (ctime>otg_info->start_holding_time_pe_off[src][dst][application])
           otg_info->c_holding_time_pe_off[src][dst][application]=ctime-otg_info->start_holding_time_pe_off[src][dst][application];
-      		LOG_I(OTG,"[%d][%d][Appli id %d] STATE:: PE \n", src, dst,application);
+      		LOG_D(OTG,"[%d][%d][Appli id %d] STATE:: PE \n", src, dst,application);
      	}
   break;
   default:
diff --git a/targets/SIMU/USER/Makefile b/targets/SIMU/USER/Makefile
index a293c4642194cae94e9427b92e8865e757bb9ff6..35a7e9ffe8cad31f3fd839072040c400a018e4a2 100644
--- a/targets/SIMU/USER/Makefile
+++ b/targets/SIMU/USER/Makefile
@@ -65,6 +65,13 @@ ifdef XFORMS
 CFLAGS += -DXFORMS
 endif
 
+# Check if libmysqlclient is installed and use it if found to store simulation data for postprocessing
+ENABLE_DB = $(shell if [ `dpkg -l | grep libmysqlclient -c` = "0" ]; then  echo "0" ; else  echo "1" ; fi )
+ifeq ($(ENABLE_DB), 1)
+CFLAGS +=-I/usr/include/mysql -L/usr/lib/mysql -DENABLE_DB_STATS
+DB_LDFLAGS = -lmysqlclient
+endif 
+
 ifdef PRINT_STATS
 CFLAGS += -DPRINT_STATS
 endif
@@ -309,7 +316,7 @@ oaisim : $(ASN1_MSG_OBJS1) $(OBJ) oaisim.c $(LFDS_DIR)/bin/liblfds611.a
 endif
 	@echo "Compiling oaisim.c ..."
 	@$(CC) -I$(TOP_DIR) $(L2_incl) $(UTIL_incl) -I$(ASN1_MSG_INC) $(S1AP_Incl) -o oaisim $(CFLAGS) $(EXTRA_CFLAGS) $^ \
-	-lm -lblas -lpthread -llapack_atlas -lforms -lxml2 -lX11 -lXpm -lrt $(LFDS_DIR)/bin/liblfds611.a $(PGM_LDFLAGS)
+	-lm -lblas -lpthread -llapack_atlas -lforms -lxml2 -lX11 -lXpm -lrt $(LFDS_DIR)/bin/liblfds611.a $(PGM_LDFLAGS) $(DB_LDFLAGS) 
 
 ifeq ($(rrc_cellular_eNB),1)
 	mv oaisim oaisim_eNB
@@ -320,22 +327,22 @@ endif
 
 oaisimCROWN : $(OBJ) $(ASN1_MSG_OBJS1) oaisimCROWN.c
 	@echo "Compiling oaisimCROWN.c ..."
-	@$(CC) oaisimCROWN.c -I$(TOP_DIR) $(L2_incl) $(UTIL_incl) -I$(ASN1_MSG_INC) $(S1AP_Incl) -o oaisimCROWN $(CFLAGS) $(EXTRA_CFLAGS) $(OBJ) $(ASN1_MSG_OBJS1) -lm -lblas -lpthread -llapack_atlas -lforms -lxml2 -lX11 -lXpm -lrt
+	@$(CC) oaisimCROWN.c -I$(TOP_DIR) $(L2_incl) $(UTIL_incl) -I$(ASN1_MSG_INC) $(S1AP_Incl) -o oaisimCROWN $(CFLAGS) $(EXTRA_CFLAGS) $(OBJ) $(ASN1_MSG_OBJS1) -lm -lblas -lpthread -llapack_atlas -lforms -lxml2 -lX11 -lXpm -lrt 
 
 test_nasmesh_fix:
-	(cd $(OPENAIR2_DIR)/NAS/DRIVER/MESH/RB_TOOL && make)
-	(cd $(OPENAIR2_DIR) && make nasmesh_netlink_address_fix.ko)
+	(cd $(OPENAIR2_DIR)/NAS/DRIVER/MESH/RB_TOOL && $(MAKE))
+	(cd $(OPENAIR2_DIR) && $(MAKE) nasmesh_netlink_address_fix.ko)
 	(cp $(OPENAIR2_DIR)/NAS/DRIVER/MESH/nasmesh.ko . )
 nasmesh_fix:
-	(cd $(OPENAIR2_DIR)/NAS/DRIVER/MESH/RB_TOOL && make)
-	(cd $(OPENAIR2_DIR) && make nasmesh_netlink_address_fix.ko)
+	(cd $(OPENAIR2_DIR)/NAS/DRIVER/MESH/RB_TOOL && $(MAKE))
+	(cd $(OPENAIR2_DIR) && $(MAKE) nasmesh_netlink_address_fix.ko)
 	(sudo insmod $(OPENAIR2_DIR)/NAS/DRIVER/MESH/nasmesh.ko)
 nasmesh_nl:
-	(cd $(OPENAIR2_DIR)/NAS/DRIVER/MESH/RB_TOOL && make)
-	(cd $(OPENAIR2_DIR) && make nasmesh_netlink.ko)
+	(cd $(OPENAIR2_DIR)/NAS/DRIVER/MESH/RB_TOOL && $(MAKE))
+	(cd $(OPENAIR2_DIR) && $(MAKE) nasmesh_netlink.ko)
 	(sudo insmod $(OPENAIR2_DIR)/NAS/DRIVER/MESH/nasmesh.ko)
 rb_tool:
-	(cd $(OPENAIR2_DIR)/NAS/DRIVER/MESH/RB_TOOL && make)
+	(cd $(OPENAIR2_DIR)/NAS/DRIVER/MESH/RB_TOOL && $(MAKE))
 
 nasmesh_install:
 	(sudo rmmod nasmesh)
@@ -399,13 +406,15 @@ cleancell:
 	rm -f $(OPENAIR2_DIR)/NAS/SIMU_CELLULAR/*.d
 
 print:
-	@echo $(cygwin)
-	@echo $(OCG_FLAG)
-	@echo $(CFLAGS)
-	@echo $(EXTRA_CFLAGS)
+#	@echo $(cygwin)
 	@echo $(OBJ)
-	@echo $(IS_REL10)
-	@echo $(IS_REL8)
+	@echo $(OCG_FLAG)
+	@echo "CFLAGS are "      $(CFLAGS)
+	@echo "EXTRA_CFLAGS are" $(EXTRA_CFLAGS)
+
+	@echo "IS_REL8 is "      $(IS_REL10)
+	@echo "IS_REL8 is "      $(IS_REL8)
+	@echo "ENABLE_DB is "    $(ENABLE_DB)
 
 showcflags:
 	@echo $(CFLAGS)
@@ -428,6 +437,9 @@ otg_gp:
 otg_gp_bg:
 	export TITLE="Background Goodput(Kb/s)" 
 	$(OPENAIR2_DIR)/UTIL/OTG/OTGplot "/tmp/otg_GP_bg.dat" "[$(COL1):$(COL2)]"
+otg_jitter:
+	export TITLE="Aplication Jitter(ms)" 
+	$(OPENAIR2_DIR)/UTIL/OTG/OTGplot "/tmp/otg_jitter.dat" "[$(COL1):$(COL2)]"
 
 pexpect = $(shell if [ `dpkg -l | grep pexpect -c` = "0" ]; then  echo "0" ; else  echo "1" ; fi )
 
diff --git a/targets/SIMU/USER/oaisim.c b/targets/SIMU/USER/oaisim.c
index 3aecc61673ec1d32af46a09f6f9b9a87eaa8d82c..442ce09f0a95bf9b95b4de6dffd29bdea0f696b6 100644
--- a/targets/SIMU/USER/oaisim.c
+++ b/targets/SIMU/USER/oaisim.c
@@ -489,6 +489,8 @@ int
   LOG_I(OCM,"Running with frame_type %d, Nid_cell %d, N_RB_DL %d, EP %d, mode %d, target dl_mcs %d, rate adaptation %d, nframes %d, abstraction %d, channel %s\n",
         oai_emulation.info.frame_type, Nid_cell, oai_emulation.info.N_RB_DL, oai_emulation.info.extended_prefix_flag, oai_emulation.info.transmission_mode,target_dl_mcs,rate_adaptation_flag,oai_emulation.info.n_frames,abstraction_flag,oai_emulation.environment_system_config.fading.small_scale.selected_option);
   
+  set_seed = oai_emulation.emulation_config.seed.value;
+  
   init_seed(set_seed);
 
   init_openair1();
diff --git a/targets/SIMU/USER/oaisim_config.c b/targets/SIMU/USER/oaisim_config.c
index 8d5904dffcb227c79e5f70223c3a79f2ee352416..70491beda9f9c30de6ee0e9cac3c622a6faa3fe8 100644
--- a/targets/SIMU/USER/oaisim_config.c
+++ b/targets/SIMU/USER/oaisim_config.c
@@ -123,6 +123,9 @@ mapping otg_distribution_names[] =
     {"gamma", 8},
     {"cauchy",9}, 
     {"log_normal",10},
+    {"tarma",11},
+    {"video",12},
+    {"background_dist",13},
     {NULL, -1}
 };
 
@@ -816,7 +819,7 @@ int ocg_config_app(){
 	      g_otg->holding_time_off_pe[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]=oai_emulation.application_config.customized_traffic.holding_time_off_pe[customized_traffic_config_index];	
 	      g_otg->holding_time_pe_off[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]=oai_emulation.application_config.customized_traffic.holding_time_pe_off[customized_traffic_config_index];
 			  
-	      LOG_I(OTG,"customized:: OCG_config_OTG: (1) FORMAT (%d:%d) source = %d, dest = %d, Application = %d, background %d\n", sid_start, sid_end, source_id_index, destination_id_index, g_otg->application_type[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]],  g_otg->background[source_id_index][destination_id_index]);
+	      LOG_I(OTG,"customized:: OCG_config_OTG: (1) FORMAT (%d:%d) source = %d, dest = %d, Application = %d, state %d, background %d IDT DIST %d \n", sid_start, sid_end, source_id_index, destination_id_index, g_otg->application_type[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]], state,  g_otg->background[source_id_index][destination_id_index],  g_otg->idt_dist[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state]);
 g_otg->application_idx[source_id_index][destination_id_index]+=1;
 	    }
 	  }
@@ -986,7 +989,8 @@ int ocg_config_emu(){
     LOG_I(OCG, "number of frames in emulation is set to infinity\n");
   
   oai_emulation.info.seed = (oai_emulation.emulation_config.seed.value == 0) ? oai_emulation.info.seed : oai_emulation.emulation_config.seed.value;
-  
+  LOG_I (OCG,"The seed value is set to %d \n", oai_emulation.info.seed );
+
   if (oai_emulation.info.cli_enabled == 1){
     if (cli_server_init(cli_server_recv) < 0) {
       LOG_E(EMU,"cli server init failed \n");