From 59eaee007b0a5340a449d38693ce9dcacd4c0a4c Mon Sep 17 00:00:00 2001
From: Raymond Knopp <raymond.knopp@eurecom.fr>
Date: Fri, 27 Feb 2015 16:37:11 +0000
Subject: [PATCH] git-svn-id: http://svn.eurecom.fr/openair4G/trunk@6635
 818b1a75-f10b-46b9-bf7c-635c3b92a50f

---
 common/utils/itti_analyzer/README             | 14 +++++++++++
 openair-cn/UDP/udp_eNB_task.c                 |  1 +
 openair2/LAYER2/MAC/eNB_scheduler.c           |  8 +++----
 openair2/LAYER2/MAC/eNB_scheduler_dlsch.c     | 12 +++++-----
 openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c      | 24 +++++++++----------
 openair2/RRC/LITE/rrc_eNB.c                   | 12 +++++-----
 targets/Makerules                             | 10 ++++++++
 .../CONF/enb.band7.tm1.exmimo2.conf           | 18 +++++++-------
 targets/RT/USER/Makefile                      |  2 +-
 targets/RT/USER/init_exmimo2.sh               | 15 ++++++++++++
 targets/RT/USER/lte-softmodem.c               |  2 +-
 targets/TEST/OAI/case11.py                    |  2 +-
 targets/build_oai.bash                        |  2 +-
 13 files changed, 81 insertions(+), 41 deletions(-)

diff --git a/common/utils/itti_analyzer/README b/common/utils/itti_analyzer/README
index e69de29bb2..31dc085b23 100644
--- a/common/utils/itti_analyzer/README
+++ b/common/utils/itti_analyzer/README
@@ -0,0 +1,14 @@
+
+To run itti_analyzer, please perform the following actions: 
+
+1) apt-get install autotools-dev automake libtool
+
+2) libtoolize
+
+3) ./autogen.sh
+
+4) ./configure
+
+5) make
+
+6) ./itt
\ No newline at end of file
diff --git a/openair-cn/UDP/udp_eNB_task.c b/openair-cn/UDP/udp_eNB_task.c
index 53de2f6249..58b8a3d407 100644
--- a/openair-cn/UDP/udp_eNB_task.c
+++ b/openair-cn/UDP/udp_eNB_task.c
@@ -383,6 +383,7 @@ void *udp_eNB_task(void *args_p)
                 } break;
 
                 case TERMINATE_MESSAGE: {
+                    LOG_W(UDP_, "Received TERMINATE_MESSAGE\n");
                     itti_exit_task();
                 } break;
 
diff --git a/openair2/LAYER2/MAC/eNB_scheduler.c b/openair2/LAYER2/MAC/eNB_scheduler.c
index dcae3c70ad..bae52efc99 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler.c
@@ -224,7 +224,7 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag,
     // Schedule ULSCH for FDD or subframeP 4 (TDD config 0,3,6)
     // Schedule Normal DLSCH
 
-    schedule_RA(module_idP,frameP,subframeP,2,nprb,nCCE);
+    // 
 
     if (mac_xface->lte_frame_parms->frame_type == FDD) {  //FDD
       schedule_ulsch(module_idP,frameP,cooperation_flag,0,4,nCCE);//,calibration_flag);
@@ -237,7 +237,9 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag,
     
     // schedule_ue_spec(module_idP,frameP,subframeP,nprb,nCCE,mbsfn_status);
 
-    fill_DLSCH_dci(module_idP,frameP,subframeP,RBalloc,1,mbsfn_status);
+    //schedule_RA(module_idP,frameP,subframeP,2,nprb,nCCE);
+    //fill_DLSCH_dci(module_idP,frameP,subframeP,RBalloc,1,mbsfn_status);
+    
     break;
 
   case 1:
@@ -262,7 +264,6 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag,
       schedule_ue_spec(module_idP,frameP,subframeP,nprb,nCCE,mbsfn_status);
       fill_DLSCH_dci(module_idP,frameP,subframeP,RBalloc,0,mbsfn_status);
       schedule_ulsch(module_idP,frameP,cooperation_flag,1,5,nCCE);
-	
     }
     break;
 
@@ -273,7 +274,6 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag,
       schedule_ue_spec(module_idP,frameP,subframeP,nprb,nCCE,mbsfn_status);
       fill_DLSCH_dci(module_idP,frameP,subframeP,RBalloc,0,mbsfn_status);
       schedule_ulsch(module_idP,frameP,cooperation_flag,2,6,nCCE);
-    
     }
     break;
 
diff --git a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
index a9bbade67d..eeb2200a8c 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
@@ -64,7 +64,7 @@
 #endif
 
 #define ENABLE_MAC_PAYLOAD_DEBUG
-#define DEBUG_eNB_SCHEDULER 1
+//#define DEBUG_eNB_SCHEDULER 1
 
 extern inline unsigned int taus(void);
 
@@ -970,18 +970,18 @@ void schedule_ue_spec(module_id_t   module_idP,
 					 padding,
 					 post_padding);
 	  //#ifdef DEBUG_eNB_SCHEDULER
-	  if (ta_update) {
-	  LOG_I(MAC,"[eNB %d][DLSCH] Frame %d Generate header for UE_id %d on CC_id %d: sdu_length_total %d, num_sdus %d, sdu_lengths[0] %d, sdu_lcids[0] %d => payload offset %d,timing advance value : %d, padding %d,post_padding %d,(mcs %d, TBS %d, nb_rb %d),header_dcch %d, header_dtch %d\n",
+	  //	  if (ta_update) {
+	  LOG_D(MAC,"[eNB %d][DLSCH] Frame %d Generate header for UE_id %d on CC_id %d: sdu_length_total %d, num_sdus %d, sdu_lengths[0] %d, sdu_lcids[0] %d => payload offset %d,timing advance value : %d, padding %d,post_padding %d,(mcs %d, TBS %d, nb_rb %d),header_dcch %d, header_dtch %d\n",
 		module_idP,frameP, UE_id, CC_id, sdu_length_total,num_sdus,sdu_lengths[0],sdu_lcids[0],offset,
 		ta_update,padding,post_padding,mcs,TBS,nb_rb,header_len_dcch,header_len_dtch);
-	  }
-	  //#endif
 	  
+	  //#endif
+#ifdef DEBUG_eNB_SCHEDULER	  
 	  LOG_T(MAC,"[eNB %d] First 16 bytes of DLSCH : \n");
 	  for (i=0;i<16;i++)
 	    LOG_T(MAC,"%x.",dlsch_buffer[i]);
 	  LOG_T(MAC,"\n");
-	  
+#endif	  
 	  // cycle through SDUs and place in dlsch_buffer
 	  memcpy(&UE_list->DLSCH_pdu[CC_id][0][UE_id].payload[0][offset],dlsch_buffer,sdu_length_total);
 	  // memcpy(&eNB_mac_inst[0].DLSCH_pdu[0][0].payload[0][offset],dcch_buffer,sdu_lengths[0]);
diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c
index 2c3642d1ac..cc6bc20655 100755
--- a/openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c
+++ b/openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c
@@ -149,7 +149,7 @@ int pdcp_fifo_flush_sdus(const protocol_ctxt_t* const  ctxt_pP)
        }
 #endif /* defined(ENABLE_USE_MME) */
 #ifdef PDCP_DEBUG
-      LOG_I(PDCP, "PDCP->IP TTI %d INST %d: Preparing %d Bytes of data from rab %d to Nas_mesh\n",
+      LOG_D(PDCP, "PDCP->IP TTI %d INST %d: Preparing %d Bytes of data from rab %d to higher layers\n",
           ctxt_pP->frame, ((pdcp_data_ind_header_t *)(sdu_p->data))->inst,
           ((pdcp_data_ind_header_t *)(sdu_p->data))->data_size, ((pdcp_data_ind_header_t *)(sdu_p->data))->rb_id);
 #endif //PDCP_DEBUG
@@ -178,7 +178,7 @@ int pdcp_fifo_flush_sdus(const protocol_ctxt_t* const  ctxt_pP)
 #endif //NAS_FIFO
 
 #ifdef PDCP_DEBUG
-          LOG_I(PDCP, "Frame %d Sent %d Bytes of header to Nas_mesh\n",
+          LOG_D(PDCP, "Frame %d Sent %d Bytes of header to higher layers\n",
               ctxt_pP->frame,
               bytes_wrote);
 #endif //PDCP_DEBUG
@@ -209,7 +209,7 @@ int pdcp_fifo_flush_sdus(const protocol_ctxt_t* const  ctxt_pP)
 #endif // NAS_FIFO
 
 #ifdef PDCP_DEBUG
-                  LOG_I(PDCP, "PDCP->IP Frame %d INST %d: Sent %d Bytes of data from rab %d to Nas_mesh\n",
+                  LOG_D(PDCP, "PDCP->IP Frame %d INST %d: Sent %d Bytes of data from rab %d to higher layers\n",
                       ctxt_pP->frame,
                       ((pdcp_data_ind_header_t *)(sdu_p->data))->inst,
                       bytes_wrote,
@@ -319,7 +319,7 @@ int pdcp_fifo_read_input_sdus_remaining_bytes (const protocol_ctxt_t* const  ctx
               return 0;
           } else {
 #ifdef PDCP_DEBUG
-              LOG_I(PDCP, "Frame %d: IP->RADIO RECEIVED COMPLETE SDU size %d inst %d rb %d\n",
+              LOG_D(PDCP, "Frame %d: IP->RADIO RECEIVED COMPLETE SDU size %d inst %d rb %d\n",
                   ctxt_pP->frame,
                   pdcp_input_sdu_size_read,
                   pdcp_input_header.inst,
@@ -615,18 +615,18 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t* const  ctxt_pP)
               nas_nlh_rx = NLMSG_NEXT (nas_nlh_rx, len)) {
 
               if (nas_nlh_rx->nlmsg_type == NLMSG_DONE) {
-                  LOG_I(PDCP, "[PDCP][FIFO] RX NLMSG_DONE\n");
+                  LOG_D(PDCP, "[PDCP][FIFO] RX NLMSG_DONE\n");
                   //return;
               }
 
               if (nas_nlh_rx->nlmsg_type == NLMSG_ERROR) {
-                  LOG_I(PDCP, "[PDCP][FIFO] RX NLMSG_ERROR\n");
+                  LOG_E(PDCP, "[PDCP][FIFO] RX NLMSG_ERROR\n");
               }
               if (pdcp_read_state_g == 0) {
                   if (nas_nlh_rx->nlmsg_len == sizeof (pdcp_data_req_header_t) + sizeof(struct nlmsghdr)) {
                       pdcp_read_state_g = 1;  //get
                       memcpy((void *)&pdcp_read_header_g, (void *)NLMSG_DATA(nas_nlh_rx), sizeof(pdcp_data_req_header_t));
-                      LOG_I(PDCP, "[PDCP][FIFO] RX pdcp_data_req_header_t inst %u, rb_id %u data_size %d\n",
+                      LOG_D(PDCP, "[PDCP][FIFO] RX pdcp_data_req_header_t inst %u, rb_id %u data_size %d\n",
                           pdcp_read_header_g.inst, pdcp_read_header_g.rb_id, pdcp_read_header_g.data_size);
                   } else {
                       LOG_E(PDCP, "[PDCP][FIFO] WRONG size %d should be sizeof (pdcp_data_req_header_t) + sizeof(struct nlmsghdr)\n",
@@ -636,7 +636,7 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t* const  ctxt_pP)
                   pdcp_read_state_g = 0;
                   // print_active_requests()
 #ifdef PDCP_DEBUG
-                  LOG_I(PDCP, "[PDCP][FIFO] Something in socket, length %d \n",
+                  LOG_D(PDCP, "[PDCP][FIFO] Something in socket, length %d \n",
                       nas_nlh_rx->nlmsg_len - sizeof(struct nlmsghdr));
 #endif
                   //memcpy(pdcp_read_payload, (unsigned char *)NLMSG_DATA(nas_nlh_rx), nas_nlh_rx->nlmsg_len - sizeof(struct nlmsghdr));
@@ -698,7 +698,7 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t* const  ctxt_pP)
                           rab_id = rab_id % maxDRB;
                           if (pdcp_array_drb_eNB[ctxt.enb_module_id][ctxt.ue_module_id][rab_id-1].instanciated_instance) {
 #ifdef PDCP_DEBUG
-                              LOG_I(PDCP, "[FRAME %5u][eNB][NETLINK][IP->PDCP] INST %d: Received socket with length %d (nlmsg_len = %d) on Rab %d \n",
+                              LOG_D(PDCP, "[FRAME %5u][eNB][NETLINK][IP->PDCP] INST %d: Received socket with length %d (nlmsg_len = %d) on Rab %d \n",
                                     ctxt.frame,
                                     pdcp_read_header_g.inst,
                                     len,
@@ -762,7 +762,7 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t* const  ctxt_pP)
                       if (rab_id != 0) {
                           if (pdcp_array_drb_ue[ctxt.ue_module_id][rab_id-1].instanciated_instance) {
 #ifdef PDCP_DEBUG
-                              LOG_I(PDCP, "[FRAME %5u][UE][NETLINK][IP->PDCP] INST %d: Received socket with length %d (nlmsg_len = %d) on Rab %d \n",
+                              LOG_D(PDCP, "[FRAME %5u][UE][NETLINK][IP->PDCP] INST %d: Received socket with length %d (nlmsg_len = %d) on Rab %d \n",
                                     ctxt.frame,
                                     pdcp_read_header_g.inst,
                                     len,
@@ -853,7 +853,7 @@ void pdcp_fifo_read_input_sdus_from_otg (const protocol_ctxt_t* const  ctxt_pP)
       //rb_id    = (ctxt_pP->enb_flag == 1) ? ctxt_pP->enb_module_id * MAX_NUM_RB + DTCH : (NB_eNB_INST + UE_index -1 ) * MAX_NUM_RB + DTCH ;
       src_id = module_id;
       while ((otg_pkt_info = pkt_list_remove_head(&(otg_pdcp_buffer[module_id]))) != NULL) {
-          LOG_I(OTG,"Mod_id %d Frame %d Got a packet (%p), HEAD of otg_pdcp_buffer[%d] is %p and Nb elements is %d\n",
+          LOG_D(OTG,"Mod_id %d Frame %d Got a packet (%p), HEAD of otg_pdcp_buffer[%d] is %p and Nb elements is %d\n",
               module_id,ctxt_pP->frame, otg_pkt_info, module_id, pkt_list_get_head(&(otg_pdcp_buffer[module_id])), otg_pdcp_buffer[module_id].nb_elements);
           //otg_pkt_info = pkt_list_remove_head(&(otg_pdcp_buffer[module_id]));
           dst_id    = (otg_pkt_info->otg_pkt).dst_id;
@@ -947,7 +947,7 @@ void pdcp_fifo_read_input_sdus_from_otg (const protocol_ctxt_t* const  ctxt_pP)
                                 pkt_size,
                                 otg_pkt,
                                 PDCP_TRANSMISSION_MODE_DATA);
-                  LOG_I(OTG,"send packet from module %d on rab id %d (src %d, dst %d) pkt size %d\n", ctxt_pP->enb_module_id, rb_id, src_id, dst_id, pkt_size);
+                  LOG_D(OTG,"send packet from module %d on rab id %d (src %d, dst %d) pkt size %d\n", ctxt_pP->enb_module_id, rb_id, src_id, dst_id, pkt_size);
                   free(otg_pkt);
               }
               /*else {
diff --git a/openair2/RRC/LITE/rrc_eNB.c b/openair2/RRC/LITE/rrc_eNB.c
index d526776b06..908ce28c33 100644
--- a/openair2/RRC/LITE/rrc_eNB.c
+++ b/openair2/RRC/LITE/rrc_eNB.c
@@ -788,7 +788,7 @@ static void rrc_eNB_generate_defaultRRCConnectionReconfiguration(
     SRB2_rlc_config->choice.explicitValue.choice.am.ul_AM_RLC.pollPDU = PollPDU_p8;
     SRB2_rlc_config->choice.explicitValue.choice.am.ul_AM_RLC.pollByte = PollByte_kB1000;
     SRB2_rlc_config->choice.explicitValue.choice.am.ul_AM_RLC.maxRetxThreshold = UL_AM_RLC__maxRetxThreshold_t32;
-    SRB2_rlc_config->choice.explicitValue.choice.am.dl_AM_RLC.t_Reordering = T_Reordering_ms50;
+    SRB2_rlc_config->choice.explicitValue.choice.am.dl_AM_RLC.t_Reordering = T_Reordering_ms35;
     SRB2_rlc_config->choice.explicitValue.choice.am.dl_AM_RLC.t_StatusProhibit = T_StatusProhibit_ms10;
 
     SRB2_lchan_config = CALLOC(1, sizeof(*SRB2_lchan_config));
@@ -844,9 +844,9 @@ static void rrc_eNB_generate_defaultRRCConnectionReconfiguration(
     DRB_rlc_config->choice.um_Bi_Directional.ul_UM_RLC.sn_FieldLength = SN_FieldLength_size10;
     DRB_rlc_config->choice.um_Bi_Directional.dl_UM_RLC.sn_FieldLength = SN_FieldLength_size10;
 #ifdef CBA
-    DRB_rlc_config->choice.um_Bi_Directional.dl_UM_RLC.t_Reordering = T_Reordering_ms5;//T_Reordering_ms25;
+    DRB_rlc_config->choice.um_Bi_Directional.dl_UM_RLC.t_Reordering = T_Reordering_ms35;//T_Reordering_ms25;
 #else 
-    DRB_rlc_config->choice.um_Bi_Directional.dl_UM_RLC.t_Reordering = T_Reordering_ms25;
+    DRB_rlc_config->choice.um_Bi_Directional.dl_UM_RLC.t_Reordering = T_Reordering_ms35;
 #endif 
 #endif
 
@@ -1614,7 +1614,7 @@ void rrc_eNB_generate_RRCConnectionReconfiguration_handover(
     SRB1_rlc_config->choice.explicitValue.choice.am.ul_AM_RLC.pollPDU = PollPDU_p8;
     SRB1_rlc_config->choice.explicitValue.choice.am.ul_AM_RLC.pollByte = PollByte_kB1000;
     SRB1_rlc_config->choice.explicitValue.choice.am.ul_AM_RLC.maxRetxThreshold = UL_AM_RLC__maxRetxThreshold_t16;
-    SRB1_rlc_config->choice.explicitValue.choice.am.dl_AM_RLC.t_Reordering = T_Reordering_ms50;
+    SRB1_rlc_config->choice.explicitValue.choice.am.dl_AM_RLC.t_Reordering = T_Reordering_ms35;
     SRB1_rlc_config->choice.explicitValue.choice.am.dl_AM_RLC.t_StatusProhibit = T_StatusProhibit_ms10;
 
     SRB1_lchan_config = CALLOC(1, sizeof(*SRB1_lchan_config));
@@ -1838,7 +1838,7 @@ void rrc_eNB_generate_RRCConnectionReconfiguration_handover(
     SRB2_rlc_config->choice.explicitValue.choice.am.ul_AM_RLC.pollPDU = PollPDU_p8;
     SRB2_rlc_config->choice.explicitValue.choice.am.ul_AM_RLC.pollByte = PollByte_kB1000;
     SRB2_rlc_config->choice.explicitValue.choice.am.ul_AM_RLC.maxRetxThreshold = UL_AM_RLC__maxRetxThreshold_t32;
-    SRB2_rlc_config->choice.explicitValue.choice.am.dl_AM_RLC.t_Reordering = T_Reordering_ms50;
+    SRB2_rlc_config->choice.explicitValue.choice.am.dl_AM_RLC.t_Reordering = T_Reordering_ms35;
     SRB2_rlc_config->choice.explicitValue.choice.am.dl_AM_RLC.t_StatusProhibit = T_StatusProhibit_ms10;
 
     SRB2_lchan_config = CALLOC(1, sizeof(*SRB2_lchan_config));
@@ -1878,7 +1878,7 @@ void rrc_eNB_generate_RRCConnectionReconfiguration_handover(
     DRB_rlc_config->present = RLC_Config_PR_um_Bi_Directional;
     DRB_rlc_config->choice.um_Bi_Directional.ul_UM_RLC.sn_FieldLength = SN_FieldLength_size10;
     DRB_rlc_config->choice.um_Bi_Directional.dl_UM_RLC.sn_FieldLength = SN_FieldLength_size10;
-    DRB_rlc_config->choice.um_Bi_Directional.dl_UM_RLC.t_Reordering = T_Reordering_ms5;
+    DRB_rlc_config->choice.um_Bi_Directional.dl_UM_RLC.t_Reordering = T_Reordering_ms35;
 
     DRB_pdcp_config = CALLOC(1, sizeof(*DRB_pdcp_config));
     DRB_config->pdcp_Config = DRB_pdcp_config;
diff --git a/targets/Makerules b/targets/Makerules
index 8b62bb7257..a25e2c6e8b 100644
--- a/targets/Makerules
+++ b/targets/Makerules
@@ -18,28 +18,38 @@ NUM_CORES:=$(shell cat /proc/cpuinfo | grep processor | wc -l)
 NETTLE_FOUND    := $(shell if pkg-config --exists nettle; then echo "1" ; else echo "0"; fi)
 ifeq ($(NETTLE_FOUND), 1)
 NETTLE_LIBS     := $(shell pkg-config --libs nettle)
+#else 
+#@echo "package nettle not installed"
 endif
 
 OPENSSL_FOUND   := $(shell if pkg-config --exists openssl; then echo "1" ; else echo "0"; fi)
 ifeq ($(OPENSSL_FOUND), 1)
 OPENSSL_LIBS    := $(shell pkg-config --libs openssl)
+#else 
+#@echo "package openssl not installed"
 endif
 
 PGM_FOUND       := $(shell if pkg-config --exists openpgm-5.1; then echo "1" ; else echo "0"; fi)
 ifeq ($(PGM_FOUND), 1)
 PGM_CFLAGS  := $(shell pkg-config --cflags openpgm-5.1)
 PGM_LIBS    := $(shell pkg-config --libs openpgm-5.1)
+#else 
+#@echo "package pgm not installed"
 endif
 
 LIBXML2_FOUND   := $(shell if pkg-config --exists libxml-2.0; then echo "1" ; else echo "0"; fi)
 ifeq ($(LIBXML2_FOUND), 1)
 LIBXML2_CFLAGS  := $(shell pkg-config --cflags libxml-2.0)
 LIBXML2_LIBS    := $(shell pkg-config --libs libxml-2.0)
+#else 
+#@echo "package libxml2 not installed"
 endif
 
 XPM_FOUND       := $(shell if pkg-config --exists xpm; then echo "1" ; else echo "0"; fi)
 ifeq ($(XPM_FOUND), 1)
 XPM_LIBS        := $(shell pkg-config --libs xpm)
+#else 
+#@echo "package xmp not installed"
 endif
 
 LIBBLAS_FOUND   := $(shell if [ -f /usr/include/cblas.h ]; then echo "1"; else echo "0"; fi)
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.conf
index fc8a19e8bc..90b131c040 100644
--- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.conf
+++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.conf
@@ -114,26 +114,26 @@ eNBs =
     NETWORK_INTERFACES : 
     {
         ENB_INTERFACE_NAME_FOR_S1_MME            = "eth0";
-        ENB_IPV4_ADDRESS_FOR_S1_MME              = "192.168.13.171/24";
+        ENB_IPV4_ADDRESS_FOR_S1_MME              = "192.168.13.10/24";
 
         ENB_INTERFACE_NAME_FOR_S1U               = "eth0";
-        ENB_IPV4_ADDRESS_FOR_S1U                 = "192.168.13.171/24";
+        ENB_IPV4_ADDRESS_FOR_S1U                 = "192.168.13.10/24";
         ENB_PORT_FOR_S1U                         = 2152; # Spec 2152
     };
     
     log_config : 
     {
-	global_log_level                      ="info"; 
+	global_log_level                      ="debug"; 
     	global_log_verbosity                  ="medium";
-	hw_log_level                          ="debug"; 
+	hw_log_level                          ="warn"; 
     	hw_log_verbosity                      ="medium";
-	phy_log_level                         ="info"; 
+	phy_log_level                         ="warn"; 
     	phy_log_verbosity                     ="medium";
-	mac_log_level                         ="info"; 
-    	mac_log_verbosity                     ="high";
-	rlc_log_level                         ="info"; 
+	mac_log_level                         ="warn"; 
+    	mac_log_verbosity                     ="medium";
+	rlc_log_level                         ="warn"; 
     	rlc_log_verbosity                     ="medium";
-	pdcp_log_level                        ="info"; 
+	pdcp_log_level                        ="warn"; 
     	pdcp_log_verbosity                    ="medium";
 	rrc_log_level                         ="info"; 
     	rrc_log_verbosity                     ="medium";
diff --git a/targets/RT/USER/Makefile b/targets/RT/USER/Makefile
index 174c48a324..6f0f716e4f 100644
--- a/targets/RT/USER/Makefile
+++ b/targets/RT/USER/Makefile
@@ -24,7 +24,7 @@ ifndef USRP
 USRP=0
 endif
 
-CFLAGS += -DDRIVER2013 -I$(OPENAIR_TARGETS)/ARCH/COMMON  -I. 
+CFLAGS += -DDRIVER2013 -I$(OPENAIR_TARGETS)/ARCH/COMMON  -I.
 
 ifndef OPENAIR2
 OPENAIR2=1
diff --git a/targets/RT/USER/init_exmimo2.sh b/targets/RT/USER/init_exmimo2.sh
index e47f7c7098..6192c54c45 100644
--- a/targets/RT/USER/init_exmimo2.sh
+++ b/targets/RT/USER/init_exmimo2.sh
@@ -1,5 +1,20 @@
 #!/bin/bash
 
+sudo rmmod nasmesh
+sudo insmod $OPENAIR2_DIR/NAS/DRIVER/MESH/nasmesh.ko
+
+if [ "$1" = "eNB" ]; then 
+     echo "bring up oai0 interface for enb"
+     sudo ifconfig oai0 10.0.1.1 netmask 255.255.255.0 broadcast 10.0.1.255
+     $OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL/rb_tool -a -c0 -i0 -z0 -s 10.0.1.1 -t 10.0.1.9 -r 1
+else
+    if [ "$1" = "UE" ]; then 
+	echo "bring up oai0 interface for UE"
+	sudo ifconfig oai0 10.0.1.9 netmask 255.255.255.0 broadcast 10.0.1.255
+	$OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL/rb_tool -a -c0 -i0 -z0 -s 10.0.1.9 -t 10.0.1.1 -r 1
+    fi
+fi  
+
 PCI=`lspci -m | grep Xilinx`
 if [ -z "$PCI" ]; then
  echo "No card found. Stopping!"
diff --git a/targets/RT/USER/lte-softmodem.c b/targets/RT/USER/lte-softmodem.c
index d8f99ae94d..c6b5857980 100644
--- a/targets/RT/USER/lte-softmodem.c
+++ b/targets/RT/USER/lte-softmodem.c
@@ -2622,7 +2622,7 @@ int main(int argc, char **argv) {
 
   for(CC_id=0;CC_id<MAX_NUM_CCs;CC_id++) {
     rf_map[CC_id].card=0;
-    rf_map[CC_id].chain=CC_id;
+    rf_map[CC_id].chain=CC_id+1;
   }
 
   // connect the TX/RX buffers
diff --git a/targets/TEST/OAI/case11.py b/targets/TEST/OAI/case11.py
index 18d619f896..0748fd1703 100644
--- a/targets/TEST/OAI/case11.py
+++ b/targets/TEST/OAI/case11.py
@@ -57,7 +57,7 @@ def execute(oai, user, pw, host,logfile,logdir,debug):
         trace = logdir + '/log_' + case + test + '.txt;'
         tee = ' 2>&1 | tee ' + trace
         diag = 'check the compilation errors for dlsim in $OPENAIR1_DIR/SIMULATION/LTE_PHY'
-        oai.send('make cleanall;')
+        oai.send('make clean; make cleanall;')
         oai.send('rm -f ./dlsim.rel8.'+host)
         oai.send_expect_false('make dlsim -j4' + tee, makerr1,  1500)
         oai.send('cp ./dlsim ./dlsim.rel8.'+host)
diff --git a/targets/build_oai.bash b/targets/build_oai.bash
index c34e913211..923872497f 100755
--- a/targets/build_oai.bash
+++ b/targets/build_oai.bash
@@ -738,7 +738,7 @@ if [ $RUN -ne 0 ]; then
                 fi
                 echo "############# running ltesoftmodem #############"
                 if [ $RUN_GDB -eq 0 ]; then 
-                    $SUDO exec $OPENAIR_TARGETS/bin/lte-softmodem  `echo $EXE_ARGUMENTS`
+                    $SUDO $OPENAIR_TARGETS/bin/lte-softmodem  `echo $EXE_ARGUMENTS`
                 else
                     $SUDO setenv MALLOC_CHECK_ 2
                     $SUDO touch ~/.gdb_lte_softmodem
-- 
GitLab