diff --git a/openair2/LAYER2/RLC/rlc.c b/openair2/LAYER2/RLC/rlc.c
index f34cbf0472214b327559924f007c61e29e54b914..8ff2e65194f50b6c0449e4d16dcaabe51ce14b2e 100644
--- a/openair2/LAYER2/RLC/rlc.c
+++ b/openair2/LAYER2/RLC/rlc.c
@@ -36,7 +36,7 @@ Address      : Eurecom, 2229, route des crêtes, 06560 Valbonne Sophia Antipolis
 
 #include "assertions.h"
 
-extern void pdcp_data_ind (module_id_t enb_mod_idP, module_id_t ue_mod_idP, frame_t frameP, eNB_flag_t eNB_flagP, u8_t MBMS_flag, rb_id_t rab_idP, sdu_size_t data_sizeP, mem_block_t * sdu_pP, u8 is_data_plane);
+extern void pdcp_data_ind (module_id_t enb_mod_idP, module_id_t ue_mod_idP, frame_t frameP, eNB_flag_t eNB_flagP, MBMS_flag_t MBMS_flag, rb_id_t rab_idP, sdu_size_t data_sizeP, mem_block_t * sdu_pP, u8 is_data_plane);
 
 #define DEBUG_RLC_PDCP_INTERFACE
 
@@ -116,7 +116,7 @@ rlc_op_status_t rlc_stat_req     (
                   unsigned int* stat_timer_status_prohibit_timed_out) {
 //-----------------------------------------------------------------------------
     rlc_mode_t             rlc_mode = RLC_NONE;
-    void                  *rlc      = NULL;
+    void                  *rlc_p      = NULL;
 
 #ifdef OAI_EMU
     AssertFatal (enb_mod_idP >= oai_emulation.info.first_enb_local,
@@ -144,13 +144,13 @@ rlc_op_status_t rlc_stat_req     (
               AssertFatal (0 , "enB RLC not configured rb id %u  module eNB id %u!\n", rb_idP, enb_mod_idP);
               break;
           case RLC_AM:
-              rlc = (void*)&rlc_array_eNB[enb_mod_idP][ue_mod_idP][rb_idP].rlc.am;
+              rlc_p = (void*)&rlc_array_eNB[enb_mod_idP][ue_mod_idP][rb_idP].rlc.am;
               break;
           case RLC_UM:
-              rlc = (void*)&rlc_array_eNB[enb_mod_idP][ue_mod_idP][rb_idP].rlc.um;
+              rlc_p = (void*)&rlc_array_eNB[enb_mod_idP][ue_mod_idP][rb_idP].rlc.um;
               break;
           case RLC_TM:
-              rlc = (void*)&rlc_array_eNB[enb_mod_idP][ue_mod_idP][rb_idP].rlc.tm;
+              rlc_p = (void*)&rlc_array_eNB[enb_mod_idP][ue_mod_idP][rb_idP].rlc.tm;
               break;
           default:
               AssertFatal (0 , "enB RLC internal memory error rb id %u module eNB id %u!\n", rb_idP, enb_mod_idP);
@@ -162,13 +162,13 @@ rlc_op_status_t rlc_stat_req     (
               AssertFatal (0 , "UE RLC not configured rb id %u module ue id %u!\n", rb_idP, ue_mod_idP);
               break;
           case RLC_AM:
-              rlc = (void*)&rlc_array_ue[ue_mod_idP][rb_idP].rlc.am;
+              rlc_p = (void*)&rlc_array_ue[ue_mod_idP][rb_idP].rlc.am;
               break;
           case RLC_UM:
-              rlc = (void*)&rlc_array_ue[ue_mod_idP][rb_idP].rlc.um;
+              rlc_p = (void*)&rlc_array_ue[ue_mod_idP][rb_idP].rlc.um;
               break;
           case RLC_TM:
-              rlc = (void*)&rlc_array_ue[ue_mod_idP][rb_idP].rlc.tm;
+              rlc_p = (void*)&rlc_array_ue[ue_mod_idP][rb_idP].rlc.tm;
               break;
           default:
               AssertFatal (0 , "UE RLC internal memory error rb id %u module ue id %u!\n", rb_idP, ue_mod_idP);
@@ -207,7 +207,7 @@ rlc_op_status_t rlc_stat_req     (
             break;
 
         case RLC_AM:
-            rlc_am_stat_req((rlc_am_entity_t*)rlc,
+            rlc_am_stat_req((rlc_am_entity_t*)rlc_p,
                             stat_tx_pdcp_sdu,
                             stat_tx_pdcp_bytes,
                             stat_tx_pdcp_sdu_discarded,
@@ -251,7 +251,7 @@ rlc_op_status_t rlc_stat_req     (
            *stat_rx_data_bytes_out_of_window     = 0;
            *stat_timer_poll_retransmit_timed_out = 0;
            *stat_timer_status_prohibit_timed_out = 0;
-           rlc_um_stat_req ((rlc_um_entity_t*)rlc,
+           rlc_um_stat_req ((rlc_um_entity_t*)rlc_p,
                               stat_tx_pdcp_sdu,
                               stat_tx_pdcp_bytes,
                               stat_tx_pdcp_sdu_discarded,
@@ -335,22 +335,23 @@ rlc_op_status_t rlc_stat_req     (
     }
 }
 //-----------------------------------------------------------------------------
-rlc_op_status_t rlc_data_req     (module_id_t enb_mod_idP,
-                                  module_id_t ue_mod_idP,
-                                  frame_t frameP,
-                                  eNB_flag_t eNB_flagP,
-                                  MBMS_flag_t MBMS_flagP,
-                                  rb_id_t rb_idP,
-                                  mui_t muiP,
-                                  confirm_t confirmP,
-                                  sdu_size_t sdu_sizeP,
+rlc_op_status_t rlc_data_req     (module_id_t  enb_mod_idP,
+                                  module_id_t  ue_mod_idP,
+                                  frame_t      frameP,
+                                  eNB_flag_t   eNB_flagP,
+                                  MBMS_flag_t  MBMS_flagP,
+                                  rb_id_t      rb_idP,
+                                  mui_t        muiP,
+                                  confirm_t    confirmP,
+                                  sdu_size_t   sdu_sizeP,
                                   mem_block_t *sdu_pP) {
 //-----------------------------------------------------------------------------
-  mem_block_t           *new_sdu    = NULL;
-  rlc_mode_t             rlc_mode   = RLC_NONE;
-  void                  *rlc        = NULL;
+  mem_block_t           *new_sdu_p    = NULL;
+  rlc_mode_t             rlc_mode     = RLC_NONE;
+  void                  *rlc_p        = NULL;
 #ifdef Rel10
   rb_id_t                mbms_rb_id = 0;
+  rlc_um_entity_t       *rlc_um_p   = NULL;
 #endif
 #ifdef DEBUG_RLC_DATA_REQ
   LOG_D(RLC,"rlc_data_req: %s enb id  %u  ue id %u, rb_id %u (MAX %d), muip %d, confirmP %d, sud_sizeP %d, sdu_pP %p\n",
@@ -401,13 +402,13 @@ rlc_op_status_t rlc_data_req     (module_id_t enb_mod_idP,
             AssertFatal (0 , "enB RLC not configured rb id %u module %u!\n", rb_idP, enb_mod_idP);
             break;
         case RLC_AM:
-            rlc = (void*)&rlc_array_eNB[enb_mod_idP][ue_mod_idP][rb_idP].rlc.am;
+            rlc_p = (void*)&rlc_array_eNB[enb_mod_idP][ue_mod_idP][rb_idP].rlc.am;
             break;
         case RLC_UM:
-            rlc = (void*)&rlc_array_eNB[enb_mod_idP][ue_mod_idP][rb_idP].rlc.um;
+            rlc_p = (void*)&rlc_array_eNB[enb_mod_idP][ue_mod_idP][rb_idP].rlc.um;
             break;
         case RLC_TM:
-            rlc = (void*)&rlc_array_eNB[enb_mod_idP][ue_mod_idP][rb_idP].rlc.tm;
+            rlc_p = (void*)&rlc_array_eNB[enb_mod_idP][ue_mod_idP][rb_idP].rlc.tm;
             break;
         default:
             AssertFatal (0 , "enB RLC internal memory error rb id %u module %u!\n", rb_idP, enb_mod_idP);
@@ -419,13 +420,13 @@ rlc_op_status_t rlc_data_req     (module_id_t enb_mod_idP,
             AssertFatal (0 , "UE RLC not configured rb id %u module %u!\n", rb_idP, ue_mod_idP);
             break;
         case RLC_AM:
-            rlc = (void*)&rlc_array_ue[ue_mod_idP][rb_idP].rlc.am;
+            rlc_p = (void*)&rlc_array_ue[ue_mod_idP][rb_idP].rlc.am;
             break;
         case RLC_UM:
-            rlc = (void*)&rlc_array_ue[ue_mod_idP][rb_idP].rlc.um;
+            rlc_p = (void*)&rlc_array_ue[ue_mod_idP][rb_idP].rlc.um;
             break;
         case RLC_TM:
-            rlc = (void*)&rlc_array_ue[ue_mod_idP][rb_idP].rlc.tm;
+            rlc_p = (void*)&rlc_array_ue[ue_mod_idP][rb_idP].rlc.tm;
             break;
         default:
             AssertFatal (0 , "UE RLC internal memory error rb id %u module %u!\n", rb_idP, ue_mod_idP);
@@ -459,21 +460,21 @@ rlc_op_status_t rlc_data_req     (module_id_t enb_mod_idP,
 #ifdef DEBUG_RLC_DATA_REQ
               msg("RLC_AM\n");
 #endif
-              new_sdu = get_free_mem_block (sdu_sizeP + sizeof (struct rlc_am_data_req_alloc));
+              new_sdu_p = get_free_mem_block (sdu_sizeP + sizeof (struct rlc_am_data_req_alloc));
 
-              if (new_sdu != NULL) {
+              if (new_sdu_p != NULL) {
                   // PROCESS OF COMPRESSION HERE:
-                  memset (new_sdu->data, 0, sizeof (struct rlc_am_data_req_alloc));
-                  memcpy (&new_sdu->data[sizeof (struct rlc_am_data_req_alloc)], &sdu_pP->data[0], sdu_sizeP);
+                  memset (new_sdu_p->data, 0, sizeof (struct rlc_am_data_req_alloc));
+                  memcpy (&new_sdu_p->data[sizeof (struct rlc_am_data_req_alloc)], &sdu_pP->data[0], sdu_sizeP);
 
-                  ((struct rlc_am_data_req *) (new_sdu->data))->data_size = sdu_sizeP;
-                  ((struct rlc_am_data_req *) (new_sdu->data))->conf = confirmP;
-                  ((struct rlc_am_data_req *) (new_sdu->data))->mui  = muiP;
-                  ((struct rlc_am_data_req *) (new_sdu->data))->data_offset = sizeof (struct rlc_am_data_req_alloc);
+                  ((struct rlc_am_data_req *) (new_sdu_p->data))->data_size = sdu_sizeP;
+                  ((struct rlc_am_data_req *) (new_sdu_p->data))->conf = confirmP;
+                  ((struct rlc_am_data_req *) (new_sdu_p->data))->mui  = muiP;
+                  ((struct rlc_am_data_req *) (new_sdu_p->data))->data_offset = sizeof (struct rlc_am_data_req_alloc);
                   free_mem_block(sdu_pP);
                   LOG_D(RLC, "%s\n",RLC_FG_BRIGHT_COLOR_RED);
 
-                  if (((rlc_am_entity_t*)rlc)->is_data_plane) {
+                  if (((rlc_am_entity_t*)rlc_p)->is_data_plane) {
                       LOG_D(RLC, "[FRAME %5u][%s][PDCP][INST %u/%u][RB %u][--- RLC_AM_DATA_REQ/%d Bytes --->][RLC_AM][INST %u/%u][RB %u]\n",
                           frame,
                           (eNB_flagP) ? "eNB" : "UE",
@@ -497,7 +498,7 @@ rlc_op_status_t rlc_data_req     (module_id_t enb_mod_idP,
                           rb_idP);
                   }
                   LOG_D(RLC, "%s\n",RLC_FG_COLOR_DEFAULT);
-                  rlc_am_data_req((rlc_am_entity_t*)rlc, frame, new_sdu);
+                  rlc_am_data_req((rlc_am_entity_t*)rlc_p, frame, new_sdu_p);
                   return RLC_OP_STATUS_OK;
               } else {
                   return RLC_OP_STATUS_INTERNAL_ERROR;
@@ -505,19 +506,19 @@ rlc_op_status_t rlc_data_req     (module_id_t enb_mod_idP,
               break;
 
           case RLC_UM:
-              new_sdu = get_free_mem_block (sdu_sizeP + sizeof (struct rlc_um_data_req_alloc));
+            new_sdu_p = get_free_mem_block (sdu_sizeP + sizeof (struct rlc_um_data_req_alloc));
 
-              if (new_sdu != NULL) {
+              if (new_sdu_p != NULL) {
                   // PROCESS OF COMPRESSION HERE:
-                  memset (new_sdu->data, 0, sizeof (struct rlc_um_data_req_alloc));
-                  memcpy (&new_sdu->data[sizeof (struct rlc_um_data_req_alloc)], &sdu_pP->data[0], sdu_sizeP);
+                  memset (new_sdu_p->data, 0, sizeof (struct rlc_um_data_req_alloc));
+                  memcpy (&new_sdu_p->data[sizeof (struct rlc_um_data_req_alloc)], &sdu_pP->data[0], sdu_sizeP);
 
-                  ((struct rlc_um_data_req *) (new_sdu->data))->data_size = sdu_sizeP;
-                  ((struct rlc_um_data_req *) (new_sdu->data))->data_offset = sizeof (struct rlc_um_data_req_alloc);
+                  ((struct rlc_um_data_req *) (new_sdu_p->data))->data_size = sdu_sizeP;
+                  ((struct rlc_um_data_req *) (new_sdu_p->data))->data_offset = sizeof (struct rlc_um_data_req_alloc);
                   free_mem_block(sdu_pP);
 
                   LOG_D(RLC, "%s\n",RLC_FG_BRIGHT_COLOR_RED);
-                  if (((rlc_am_entity_t*)rlc)->is_data_plane) {
+                  if (((rlc_am_entity_t*)rlc_p)->is_data_plane) {
                       LOG_D(RLC, "[FRAME %5u][%s][PDCP][INST %u/%u][RB %u][--- RLC_UM_DATA_REQ/%d Bytes --->][RLC_UM][INST %u/%u][RB %u]\n",
                           frame,
                           (eNB_flagP) ? "eNB" : "UE",
@@ -541,7 +542,7 @@ rlc_op_status_t rlc_data_req     (module_id_t enb_mod_idP,
                                      rb_idP);
                   }
                   LOG_D(RLC, "%s\n",RLC_FG_COLOR_DEFAULT);
-                  rlc_um_data_req((rlc_um_entity_t*)rlc, frame, new_sdu);
+                  rlc_um_data_req((rlc_um_entity_t*)rlc_p, frame, new_sdu_p);
 
                   //free_mem_block(new_sdu);
                   return RLC_OP_STATUS_OK;
@@ -551,18 +552,18 @@ rlc_op_status_t rlc_data_req     (module_id_t enb_mod_idP,
               break;
 
           case RLC_TM:
-              new_sdu = get_free_mem_block (sdu_sizeP + sizeof (struct rlc_tm_data_req_alloc));
+            new_sdu_p = get_free_mem_block (sdu_sizeP + sizeof (struct rlc_tm_data_req_alloc));
 
-              if (new_sdu != NULL) {
+              if (new_sdu_p != NULL) {
                   // PROCESS OF COMPRESSION HERE:
-                  memset (new_sdu->data, 0, sizeof (struct rlc_tm_data_req_alloc));
-                  memcpy (&new_sdu->data[sizeof (struct rlc_tm_data_req_alloc)], &sdu_pP->data[0], sdu_sizeP);
+                  memset (new_sdu_p->data, 0, sizeof (struct rlc_tm_data_req_alloc));
+                  memcpy (&new_sdu_p->data[sizeof (struct rlc_tm_data_req_alloc)], &sdu_pP->data[0], sdu_sizeP);
 
-                  ((struct rlc_tm_data_req *) (new_sdu->data))->data_size = sdu_sizeP;
-                  ((struct rlc_tm_data_req *) (new_sdu->data))->data_offset = sizeof (struct rlc_tm_data_req_alloc);
+                  ((struct rlc_tm_data_req *) (new_sdu_p->data))->data_size = sdu_sizeP;
+                  ((struct rlc_tm_data_req *) (new_sdu_p->data))->data_offset = sizeof (struct rlc_tm_data_req_alloc);
                   free_mem_block(sdu_pP);
                   LOG_D(RLC, "%s\n",RLC_FG_BRIGHT_COLOR_RED);
-                  if (((rlc_tm_entity_t*)rlc)->is_data_plane) {
+                  if (((rlc_tm_entity_t*)rlc_p)->is_data_plane) {
                       LOG_D(RLC, "[FRAME %5u][%s][PDCP][INST %u/%u][RB %u][--- RLC_TM_DATA_REQ/%d Bytes --->][RLC_TM][INST %u/%u][RB %u]\n",
                                  frame,
                                  (eNB_flagP) ? "eNB" : "UE",
@@ -586,7 +587,7 @@ rlc_op_status_t rlc_data_req     (module_id_t enb_mod_idP,
                                      rb_idP);
                   }
                   LOG_D(RLC, "%s\n",RLC_FG_COLOR_DEFAULT);
-                  rlc_tm_data_req((rlc_tm_entity_t*)rlc, new_sdu);
+                  rlc_tm_data_req((rlc_tm_entity_t*)rlc_p, new_sdu_p);
                   return RLC_OP_STATUS_OK;
               } else {
                   //handle_event(ERROR,"FILE %s FONCTION rlc_data_req() LINE %s : out of memory\n", __FILE__, __LINE__);
@@ -605,23 +606,25 @@ rlc_op_status_t rlc_data_req     (module_id_t enb_mod_idP,
       if (rb_idP < (maxSessionPerPMCH * maxServiceCount)) {
           if (eNB_flagP) {
               mbms_rb_id = rb_idP + (maxDRB + 3) * MAX_MOBILES_PER_RG;
+              //rlc_um_p   = rlc_mbms_array_eNB[enb_mod_idP][mbms_rb_id].;
           } else {
               mbms_rb_id = rb_idP + (maxDRB + 3);
+              //rlc_um_p   = rlc_mbms_array_ue[ue_mod_idP][mbms_rb_id];
           }
 	  //  LOG_I(RLC,"DUY rlc_data_req: mbms_rb_id in RLC instant is: %d\n", mbms_rb_id);
           if (sdu_pP != NULL) {
               if (sdu_sizeP > 0) {
                   LOG_I(RLC,"received a packet with size %d for MBMS \n", sdu_sizeP);
-                  new_sdu = get_free_mem_block (sdu_sizeP + sizeof (struct rlc_um_data_req_alloc));
-                  if (new_sdu != NULL) {
+                  new_sdu_p = get_free_mem_block (sdu_sizeP + sizeof (struct rlc_um_data_req_alloc));
+                  if (new_sdu_p != NULL) {
                       // PROCESS OF COMPRESSION HERE:
-                      memset (new_sdu->data, 0, sizeof (struct rlc_um_data_req_alloc));
-                      memcpy (&new_sdu->data[sizeof (struct rlc_um_data_req_alloc)], &sdu_pP->data[0], sdu_sizeP);
-                      ((struct rlc_um_data_req *) (new_sdu->data))->data_size = sdu_sizeP;
-                      ((struct rlc_um_data_req *) (new_sdu->data))->data_offset = sizeof (struct rlc_um_data_req_alloc);
+                      memset (new_sdu_p->data, 0, sizeof (struct rlc_um_data_req_alloc));
+                      memcpy (&new_sdu_p->data[sizeof (struct rlc_um_data_req_alloc)], &sdu_pP->data[0], sdu_sizeP);
+                      ((struct rlc_um_data_req *) (new_sdu_p->data))->data_size = sdu_sizeP;
+                      ((struct rlc_um_data_req *) (new_sdu_p->data))->data_offset = sizeof (struct rlc_um_data_req_alloc);
                       free_mem_block(sdu_pP);
                       LOG_D(RLC, "%s\n",RLC_FG_BRIGHT_COLOR_RED);
-                      if (rlc[module_idP].m_rlc_um_array[rlc[module_idP].m_rlc_pointer[mbms_rb_id].rlc_index].is_data_plane) {
+                      if (rlc_um_p->is_data_plane) {
                           LOG_D(RLC, "[FRAME %5u][PDCP][INST %u/%u][RB %u][--- RLC_UM_DATA_REQ/%d Bytes (MBMS) --->][RLC_UM][INST %u/%u][RB %u]\n",
                             frame,
                             enb_mod_idP,
@@ -659,7 +662,7 @@ rlc_op_status_t rlc_data_req     (module_id_t enb_mod_idP,
                           }
                       }
                       LOG_D(RLC, "%s\n",RLC_FG_COLOR_DEFAULT);
-                      rlc_um_data_req(&rlc[module_idP].m_rlc_um_array[rlc[module_idP].m_rlc_pointer[mbms_rb_id].rlc_index], frame, new_sdu);
+                      rlc_um_data_req(rlc_um_p, frameP, new_sdu_p);
 
                       //free_mem_block(new_sdu);
                       return RLC_OP_STATUS_OK;
diff --git a/openair2/LAYER2/RLC/rlc.h b/openair2/LAYER2/RLC/rlc.h
index c7890225da8bae6e7d879bc2968a53354da36dff..d8655c75578a4e4ca5486c1c8a64eb7c761237c6 100755
--- a/openair2/LAYER2/RLC/rlc.h
+++ b/openair2/LAYER2/RLC/rlc.h
@@ -185,7 +185,8 @@ typedef struct rlc_mbms_s {
   mbms_session_id_t session_id; // lcid
   mbms_service_id_t service_id;
   rb_id_t           rb_id;
-  module_id_t            instanciated_instance;
+  module_id_t       instanciated_instance;
+  rlc_um_entity_t   um;
 } rlc_mbms_t;
 
 public_rlc(rlc_mbms_t           rlc_mbms_array_ue[NUMBER_OF_UE_MAX][16*29];) // MAX_SERVICEx MAX_SESSION
@@ -226,20 +227,19 @@ private_rlc_mac(struct mac_data_ind   mac_rlc_deserialize_tb (char*, tb_size_t,
 //   PUBLIC INTERFACE WITH RRC
 //-----------------------------------------------------------------------------
 #ifdef Rel10
-/*! \fn rlc_op_status_t rrc_rlc_config_asn1_req (module_id_t enb_mod_idP, module_id_t ue_mod_idP, frame_t frameP, eNB_flag_t eNB_flagP,  u8_t UE_index, SRB_ToAddMod_t* srb2addmod, DRB_ToAddModList_t* drb2add_listP, DRB_ToReleaseList_t*  drb2release_listP, MBMS_SessionInfoList_r9_t *SessionInfo_listP)
+/*! \fn rlc_op_status_t rrc_rlc_config_asn1_req (module_id_t enb_mod_idP, module_id_t ue_mod_idP, frame_t frameP, eNB_flag_t eNB_flagP,  SRB_ToAddMod_t* srb2addmod, DRB_ToAddModList_t* drb2add_listP, DRB_ToReleaseList_t*  drb2release_listP, MBMS_SessionInfoList_r9_t *SessionInfo_listP)
 * \brief  Function for RRC to configure a Radio Bearer.
 * \param[in]  enb_mod_idP        Virtualized enb module identifier, Not used if eNB_flagP = 0.
 * \param[in]  ue_mod_idP         Virtualized ue module identifier.
 * \param[in]  frameP              Frame index.
 * \param[in]  eNB_flagP           Flag to indicate eNB (1) or UE (0)
-* \param[in]  UE_index           Index of UE in eNB RRC
 * \param[in]  srb2add_listP      SRB configuration list to be created.
 * \param[in]  drb2add_listP      DRB configuration list to be created.
 * \param[in]  drb2release_listP  DRB configuration list to be released.
 * \param[in]  pmch_info_listP    eMBMS pmch info list to be created.
 * \return     A status about the processing, OK or error code.
 */
-public_rlc_rrc( rlc_op_status_t rrc_rlc_config_asn1_req (module_id_t, module_id_t, frame_t, eNB_flag_t, u8_t UE_index, SRB_ToAddModList_t*, DRB_ToAddModList_t*, DRB_ToReleaseList_t*, PMCH_InfoList_r9_t *pmch_info_listP);)
+public_rlc_rrc( rlc_op_status_t rrc_rlc_config_asn1_req (module_id_t, module_id_t, frame_t, eNB_flag_t, SRB_ToAddModList_t*, DRB_ToAddModList_t*, DRB_ToReleaseList_t*, PMCH_InfoList_r9_t *pmch_info_listP);)
 #else
 /*! \fn rlc_op_status_t rrc_rlc_config_asn1_req (module_id_t enb_mod_idP, module_id_t ue_mod_idP, frame_t frameP, eNB_flag_t eNB_flagP, SRB_ToAddModList_t* srb2add_listP, DRB_ToAddModList_t* drb2add_listP, DRB_ToReleaseList_t*  drb2release_listP, MBMS_SessionInfoList_r9_t *SessionInfo_listP)
 * \brief  Function for RRC to configure a Radio Bearer.
diff --git a/openair2/LAYER2/RLC/rlc_def.h b/openair2/LAYER2/RLC/rlc_def.h
index 2782eebc7e369e1e4dad344e66946282d304b7f3..d4df1185260b57ecfafea58949ce4f15fd6f4357 100755
--- a/openair2/LAYER2/RLC/rlc_def.h
+++ b/openair2/LAYER2/RLC/rlc_def.h
@@ -41,11 +41,13 @@ Address      : Eurecom, 2229, route des crêtes, 06560 Valbonne Sophia Antipolis
 #    define __RLC_DEF_H__
 //----------------------------------------------------------
 // protocol states
-#    define RLC_NULL_STATE                            0x00
-#    define RLC_DATA_TRANSFER_READY_STATE             0x01
-#    define RLC_RESET_PENDING_STATE                   0x12
-#    define RLC_RESET_AND_SUSPEND_STATE               0x14
-#    define RLC_LOCAL_SUSPEND_STATE                   0x08
+typedef enum rlc_protocol_state_e {
+  RLC_NULL_STATE                    =        0x00,
+  RLC_DATA_TRANSFER_READY_STATE     =        0x01,
+  RLC_RESET_PENDING_STATE           =        0x12,
+  RLC_RESET_AND_SUSPEND_STATE       =        0x14,
+  RLC_LOCAL_SUSPEND_STATE           =        0x08
+} rlc_protocol_state_t;
 //----------------------------------------------------------
 enum RLC_OPERATION_MODE { TRANSMITTER_ONLY = 0x00,
 RECEIVER_ONLY = 0x01,