diff --git a/openair2/COMMON/rrc_messages_types.h b/openair2/COMMON/rrc_messages_types.h
index d664c31d22b0e17180ffdd5fa251970341079ac8..d8d5fe5f9d8e51d66d13a8defc608b8c3779daca 100755
--- a/openair2/COMMON/rrc_messages_types.h
+++ b/openair2/COMMON/rrc_messages_types.h
@@ -100,9 +100,7 @@ typedef struct RadioResourceConfig_s {
   long                    pucch_delta_shift;
   long                    pucch_nRB_CQI;
   long                    pucch_nCS_AN;
-#if !defined(Rel10) && !defined(Rel14)
   long                    pucch_n1_AN;
-#endif
   long                    pdsch_referenceSignalPower;
   long                    pdsch_p_b;
   long                    pusch_n_SB;
@@ -151,6 +149,7 @@ typedef struct RadioResourceConfig_s {
   long                    ue_TimersAndConstants_n310;
   long                    ue_TimersAndConstants_n311;
   long                    ue_TransmissionMode;
+  long                    ue_multiple_max;
 #ifdef Rel14
   //SIB2 BR Options
   long*			  preambleTransMax_CE_r13;
@@ -188,7 +187,8 @@ typedef struct RrcConfigurationReq_s {
   int16_t                 N_RB_DL[MAX_NUM_CCs];// for testing, change later
   int                     nb_antenna_ports[MAX_NUM_CCs];
 
-
+  int                     eMTC_configured;
+  int                     SL_configured;
 
   RadioResourceConfig     radioresourceconfig[MAX_NUM_CCs];
   RadioResourceConfig     radioresourceconfig_BR[MAX_NUM_CCs];
diff --git a/openair2/ENB_APP/RRC_paramsvalues.h b/openair2/ENB_APP/RRC_paramsvalues.h
index 06fee0e172515ed105adb6dc54fa5d808af07491..cf47b2f97c7d1e39b970e5353b7052ea1782a6c8 100644
--- a/openair2/ENB_APP/RRC_paramsvalues.h
+++ b/openair2/ENB_APP/RRC_paramsvalues.h
@@ -35,6 +35,8 @@
 #define ENB_CONFIG_STRING_ENB_LIST                      "eNBs"
 /* component carriers configuration section name */		
 #define ENB_CONFIG_STRING_COMPONENT_CARRIERS                            "component_carriers"		 
+#define ENB_CONFIG_STRING_COMPONENT_BR_PARAMETERS                       "br_parameters"
+
 
 #define ENB_CONFIG_STRING_FRAME_TYPE                                    "frame_type"
 #define ENB_CONFIG_STRING_PBCH_REPETITION                               "pbch_repetition"
diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c
index aac52d6f2d8e8a0c3ea8493afb9d8fa576640493..bb73797f221f86683b704d82922d9ac896ba6dec 100755
--- a/openair2/ENB_APP/enb_config.c
+++ b/openair2/ENB_APP/enb_config.c
@@ -83,29 +83,38 @@ void RCconfig_flexran() {
     into the CCPARAMS_DESC macro and we need it for the Nid_cell variable ...
   */
   char *frame_type, *prefix_type, *pbch_repetition, *prach_high_speed,
-    *pusch_hoppingMode, *pusch_enable64QAM, *pusch_groupHoppingEnabled,
-    *pusch_sequenceHoppingEnabled, *phich_duration, *phich_resource,
-    *srs_enable, *srs_ackNackST, *srs_MaxUpPts, *pusch_alpha,
-    *pucch_deltaF_Format1, *pucch_deltaF_Format1b, *pucch_deltaF_Format2,
-    *pucch_deltaF_Format2a, *pucch_deltaF_Format2b,
-    *rach_preamblesGroupAConfig, *rach_messagePowerOffsetGroupB, *pcch_nB;
+       *pusch_hoppingMode, *pusch_enable64QAM, *pusch_groupHoppingEnabled,
+       *pusch_sequenceHoppingEnabled, *phich_duration, *phich_resource,
+       *srs_enable, *srs_ackNackST, *srs_MaxUpPts, *pusch_alpha,
+       *pucch_deltaF_Format1, *pucch_deltaF_Format1b, *pucch_deltaF_Format2,
+       *pucch_deltaF_Format2a, *pucch_deltaF_Format2b,
+       *rach_preamblesGroupAConfig, *rach_messagePowerOffsetGroupB, *pcch_nB;
   long long int     downlink_frequency;
   int32_t tdd_config, tdd_config_s, eutra_band, uplink_frequency_offset,
-    Nid_cell_mbsfn, N_RB_DL, nb_antenna_ports, prach_root, prach_config_index,
-    prach_zero_correlation, prach_freq_offset, pucch_delta_shift,
-    pucch_nRB_CQI, pucch_nCS_AN, pucch_n1_AN, pdsch_referenceSignalPower,
-    pdsch_p_b, pusch_n_SB, pusch_hoppingOffset, pusch_groupAssignment,
-    pusch_nDMRS1, srs_BandwidthConfig, srs_SubframeConfig, pusch_p0_Nominal,
-    pucch_p0_Nominal, msg3_delta_Preamble, rach_numberOfRA_Preambles,
-    rach_sizeOfRA_PreamblesGroupA, rach_messageSizeGroupA,
-    rach_powerRampingStep, rach_preambleInitialReceivedTargetPower,
-    rach_preambleTransMax, rach_raResponseWindowSize,
-    rach_macContentionResolutionTimer, rach_maxHARQ_Msg3Tx,
-    pcch_defaultPagingCycle, bcch_modificationPeriodCoeff,
-    ue_TimersAndConstants_t300, ue_TimersAndConstants_t301,
-    ue_TimersAndConstants_t310, ue_TimersAndConstants_t311,
-    ue_TimersAndConstants_n310, ue_TimersAndConstants_n311,
-    ue_TransmissionMode, ue_multiple_max;
+          Nid_cell_mbsfn, N_RB_DL, nb_antenna_ports, prach_root, prach_config_index,
+          prach_zero_correlation, prach_freq_offset, pucch_delta_shift,
+          pucch_nRB_CQI, pucch_nCS_AN, pucch_n1_AN, pdsch_referenceSignalPower,
+          pdsch_p_b, pusch_n_SB, pusch_hoppingOffset, pusch_groupAssignment,
+          pusch_nDMRS1, srs_BandwidthConfig, srs_SubframeConfig, pusch_p0_Nominal,
+          pucch_p0_Nominal, msg3_delta_Preamble, rach_numberOfRA_Preambles,
+          rach_sizeOfRA_PreamblesGroupA, rach_messageSizeGroupA,
+          rach_powerRampingStep, rach_preambleInitialReceivedTargetPower,
+          rach_preambleTransMax, rach_raResponseWindowSize,
+          rach_macContentionResolutionTimer, rach_maxHARQ_Msg3Tx,
+          pcch_defaultPagingCycle, bcch_modificationPeriodCoeff,
+          ue_TimersAndConstants_t300, ue_TimersAndConstants_t301,
+          ue_TimersAndConstants_t310, ue_TimersAndConstants_t311,
+          ue_TimersAndConstants_n310, ue_TimersAndConstants_n311,
+          ue_TransmissionMode, ue_multiple_max;
+  /*
+  int32_t     srb1_timer_poll_retransmit    = 0;
+  int32_t     srb1_timer_reordering         = 0;
+  int32_t     srb1_timer_status_prohibit    = 0;
+  int32_t     srb1_poll_pdu                 = 0;
+  int32_t     srb1_poll_byte                = 0;
+  int32_t     srb1_max_retx_threshold       = 0;
+  */
+
   const char       *rxPool_sc_CP_Len;
   const char       *rxPool_sc_Period;
   const char       *rxPool_data_CP_Len;
@@ -147,6 +156,157 @@ void RCconfig_flexran() {
   char             *discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf;
   libconfig_int     discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size;
   libconfig_int     discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused;
+  //note: Uncomment below when FlexRAN support for eMTC is available
+  /*
+  int32_t     eMTC_configured                    = 0;
+  int32_t     prach_root_emtc                    = 0;
+  int32_t     prach_config_index_emtc            = 0;
+  char        *prach_high_speed_emtc             = NULL;
+  int32_t     prach_zero_correlation_emtc        = 0;
+  int32_t     prach_freq_offset_emtc             = 0;
+  int32_t     pucch_delta_shift_emtc             = 0;
+  int32_t     pucch_nRB_CQI_emtc                 = 0;
+  int32_t     pucch_nCS_AN_emtc                  = 0;
+  //#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0))
+  int32_t     pucch_n1_AN_emtc                   = 0;
+  //#endif
+  int32_t     pdsch_referenceSignalPower_emtc    = 0;
+  int32_t     pdsch_p_b_emtc                     = 0;
+  int32_t     pusch_n_SB_emtc                    = 0;
+  char        *pusch_hoppingMode_emtc            = NULL;
+  int32_t     pusch_hoppingOffset_emtc           = 0;
+  char        *pusch_enable64QAM_emtc            = NULL;
+  char        *pusch_groupHoppingEnabled_emtc    = NULL;
+  int32_t     pusch_groupAssignment_emtc         = 0;
+  char        *pusch_sequenceHoppingEnabled_emtc = NULL;
+  int32_t     pusch_nDMRS1_emtc                  = 0;
+  char       *phich_duration_emtc                = NULL;
+  char       *phich_resource_emtc                = NULL;
+  char       *srs_enable_emtc                    = NULL;
+  int32_t     srs_BandwidthConfig_emtc           = 0;
+  int32_t     srs_SubframeConfig_emtc            = 0;
+  char       *srs_ackNackST_emtc                 = NULL;
+  char       *srs_MaxUpPts_emtc                  = NULL;
+  int32_t     pusch_p0_Nominal_emtc              = 0;
+  char       *pusch_alpha_emtc                   = NULL;
+  int32_t     pucch_p0_Nominal_emtc              = 0;
+  int32_t     msg3_delta_Preamble_emtc           = 0;
+  //int32_t     ul_CyclicPrefixLength_emtc         = 0;
+  char       *pucch_deltaF_Format1_emtc          = NULL;
+  //const char*       pucch_deltaF_Format1a_emtc         = NULL;
+  char       *pucch_deltaF_Format1b_emtc         = NULL;
+  char       *pucch_deltaF_Format2_emtc          = NULL;
+  char       *pucch_deltaF_Format2a_emtc         = NULL;
+  char       *pucch_deltaF_Format2b_emtc         = NULL;
+  int32_t     rach_numberOfRA_Preambles_emtc     = 0;
+  char       *rach_preamblesGroupAConfig_emtc    = NULL;
+  int32_t     rach_sizeOfRA_PreamblesGroupA_emtc = 0;
+  int32_t     rach_messageSizeGroupA_emtc        = 0;
+  char       *rach_messagePowerOffsetGroupB_emtc = NULL;
+  int32_t     rach_powerRampingStep_emtc         = 0;
+  int32_t     rach_preambleInitialReceivedTargetPower_emtc    = 0;
+  int32_t     rach_preambleTransMax_emtc         = 0;
+  int32_t     rach_raResponseWindowSize_emtc     = 10;
+  int32_t     rach_macContentionResolutionTimer_emtc = 0;
+  int32_t     rach_maxHARQ_Msg3Tx_emtc           = 0;
+  int32_t     pcch_defaultPagingCycle_emtc       = 0;
+  char       *pcch_nB_emtc                       = NULL;
+  int32_t     bcch_modificationPeriodCoeff_emtc  = 0;
+  int32_t     ue_TimersAndConstants_t300_emtc    = 0;
+  int32_t     ue_TimersAndConstants_t301_emtc    = 0;
+  int32_t     ue_TimersAndConstants_t310_emtc    = 0;
+  int32_t     ue_TimersAndConstants_t311_emtc    = 0;
+  int32_t     ue_TimersAndConstants_n310_emtc    = 0;
+  int32_t     ue_TimersAndConstants_n311_emtc    = 0;
+  int32_t     ue_TransmissionMode_emtc           = 0;
+
+  int           si_Narrowband_r13             = 0;
+  int           si_TBS_r13                    = 0;
+  
+  int           systemInfoValueTagSi_r13      = 0;
+  
+  int           firstPreamble_r13                     = 0;
+  int           lastPreamble_r13                      = 0;
+  int   ra_ResponseWindowSize_r13             = 0;
+  int   mac_ContentionResolutionTimer_r13     = 0;
+  int   rar_HoppingConfig_r13                 = 0;
+  int           rsrp_range_br                         = 0;
+  int  maxNumPreambleAttemptCE_r13           = 0;
+  int    numRepetitionPerPreambleAttempt_r13   = 0;
+  int   mpdcch_NumRepetition_RA_r13           = 0;
+  int   prach_HoppingConfig_r13               = 0;
+  int           *maxavailablenarrowband               = NULL;
+  int           pucch_info_value                      = 0;
+
+  int           prach_config_index_br                 = 0;
+  int           prach_freq_offset_br                  = 0;
+  int           prach_StartingSubframe_r13            = 0;
+  
+  int           paging_narrowbands_r13                = 0;
+  int           mpdcch_numrepetition_paging_r13       = NULL;
+  int           nb_v1310                              = NULL;
+  
+  
+  char *   pucch_NumRepetitionCE_Msg4_Level0_r13 = NULL;
+  char *   pucch_NumRepetitionCE_Msg4_Level1_r13 = NULL;
+  char *   pucch_NumRepetitionCE_Msg4_Level2_r13 = NULL;
+  char *   pucch_NumRepetitionCE_Msg4_Level3_r13 = NULL;
+  
+  int   sib2_mpdcch_pdsch_hoppingNB_r13                   = 0;
+  int   sib2_interval_DLHoppingConfigCommonModeA_r13      = 0;
+  int   sib2_interval_DLHoppingConfigCommonModeA_r13_val  = 0;
+  int   sib2_interval_DLHoppingConfigCommonModeB_r13      = 0;
+  int   sib2_interval_DLHoppingConfigCommonModeB_r13_val  = 0;
+  
+  int   sib2_interval_ULHoppingConfigCommonModeA_r13      = 0;
+  int   sib2_interval_ULHoppingConfigCommonModeA_r13_val  = 0;
+  int   sib2_interval_ULHoppingConfigCommonModeB_r13      = 0;
+  int   sib2_interval_ULHoppingConfigCommonModeB_r13_val  = 0;
+  int           sib2_mpdcch_pdsch_hoppingOffset_r13               = 0;
+  
+  int           pusch_HoppingOffset_v1310                         = 0;
+  
+  int           hyperSFN_r13                                      = 0;
+  int           eDRX_Allowed_r13                                  = 0;
+  int           q_RxLevMinCE_r13                                  = 0;
+  int           q_QualMinRSRQ_CE_r13                              = 0;
+  char*   si_WindowLength_BR_r13                            = NULL;
+  char*   si_RepetitionPattern_r13                          = NULL;
+  int           startSymbolBR_r13                                 = 0;
+  char*   si_HoppingConfigCommon_r13                        = NULL;
+  char*   si_ValidityTime_r13                               = NULL;
+  char*   mpdcch_pdsch_HoppingNB_r13                        = NULL;
+  int           interval_DLHoppingConfigCommonModeA_r13_val       = 0;
+  int           interval_DLHoppingConfigCommonModeB_r13_val       = 0;
+  int           mpdcch_pdsch_HoppingOffset_r13                    = 0;
+  char*         preambleTransMax_CE_r13                           = NULL;
+  char*         rach_numberOfRA_Preambles_br                      = NULL;
+  
+  int           schedulingInfoSIB1_BR_r13                         = 0;
+  int64_t      fdd_DownlinkOrTddSubframeBitmapBR_val_r13         = 0;
+  
+  char* cellSelectionInfoCE_r13                                       = NULL;
+  char* bandwidthReducedAccessRelatedInfo_r13                         = NULL;
+  char* fdd_DownlinkOrTddSubframeBitmapBR_r13                         = NULL;
+  char* fdd_UplinkSubframeBitmapBR_r13                                = NULL;
+  char* freqHoppingParametersDL_r13                                   = NULL;
+  char* interval_DLHoppingConfigCommonModeA_r13                       = NULL;
+  char* interval_DLHoppingConfigCommonModeB_r13                       = NULL;
+  */
+  char*   prach_ConfigCommon_v1310                          = NULL;
+  char*   mpdcch_startSF_CSS_RA_r13                         = NULL;
+  char*   mpdcch_startSF_CSS_RA_r13_val                     = NULL;
+  char*   pdsch_maxNumRepetitionCEmodeA_r13                 = NULL;
+  char*   pdsch_maxNumRepetitionCEmodeB_r13                 = NULL;
+  
+  char*   pusch_maxNumRepetitionCEmodeA_r13                 = 0;
+  char*   pusch_maxNumRepetitionCEmodeB_r13                 = 0;
+  int     prach_HoppingOffset_r13                           = 0;
+
+  // avoid gcc warnings
+  (void)pdsch_maxNumRepetitionCEmodeB_r13;
+  (void)pusch_maxNumRepetitionCEmodeB_r13;
+  
   /* get number of eNBs */
   paramdef_t ENBSParams[] = ENBSPARAMS_DESC;
   config_get(ENBSParams, sizeof(ENBSParams)/sizeof(paramdef_t), NULL);
@@ -159,6 +319,22 @@ void RCconfig_flexran() {
   paramdef_t CCsParams[] = CCPARAMS_DESC;
   paramlist_def_t CCsParamList = {ENB_CONFIG_STRING_COMPONENT_CARRIERS, NULL, 0};
 
+  // Note: these should be turned on for EMTC support inside of FlexRAN
+  //paramdef_t brParams[]              = BRPARAMS_DESC;
+  //paramdef_t schedulingInfoBrParams[] = SI_INFO_BR_DESC;
+  //paramlist_def_t schedulingInfoBrParamList = {ENB_CONFIG_STRING_SCHEDULING_INFO_BR, NULL, 0};
+  //paramdef_t rachcelevelParams[]     = RACH_CE_LEVELINFOLIST_R13_DESC;
+  //paramlist_def_t rachcelevellist    = {ENB_CONFIG_STRING_RACH_CE_LEVELINFOLIST_R13, NULL, 0};
+  //paramdef_t rsrprangeParams[]       = RSRP_RANGE_LIST_DESC;
+  //paramlist_def_t rsrprangelist      = {ENB_CONFIG_STRING_RSRP_RANGE_LIST, NULL, 0};
+  //paramdef_t prachParams[]           = PRACH_PARAMS_CE_R13_DESC;
+  //paramlist_def_t prachParamslist    = {ENB_CONFIG_STRING_PRACH_PARAMETERS_CE_R13, NULL, 0};
+  //paramdef_t n1PUCCH_ANR13Params[]   = N1PUCCH_AN_INFOLIST_R13_DESC;
+  //paramlist_def_t n1PUCCHInfoList    = {ENB_CONFIG_STRING_N1PUCCH_AN_INFOLIST_R13, NULL, 0};
+  //paramdef_t pcchv1310Params[]       = PCCH_CONFIG_V1310_DESC;
+  //paramdef_t sib2freqhoppingParams[] = SIB2_FREQ_HOPPING_R13_DESC;
+  //  paramdef_t SRB1Params[] = SRB1PARAMS_DESC;
+
   /* map parameter checking array instances to parameter definition array instances */
   for (int I = 0; I < (sizeof(CCsParams) / sizeof(paramdef_t)); I++) {
     CCsParams[I].chkPptr = &(config_check_CCparams[I]);
@@ -386,6 +562,7 @@ void RCconfig_macrlc() {
 }
 
 int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
+
   int               num_enbs                      = 0;
   int               j,k                           = 0;
   int32_t     enb_id                        = 0;
@@ -506,6 +683,76 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
   char             *discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf         = NULL;
   libconfig_int     discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size        = 0;
   libconfig_int     discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused = 0;
+  int32_t     srb1_timer_poll_retransmit    = 0;
+  int32_t     srb1_timer_reordering         = 0;
+  int32_t     srb1_timer_status_prohibit    = 0;
+  int32_t     srb1_poll_pdu                 = 0;
+  int32_t     srb1_poll_byte                = 0;
+  int32_t     srb1_max_retx_threshold       = 0;
+  int32_t     my_int;
+
+  // eMTC definitions
+  int32_t     eMTC_configured                    = 0;
+  int32_t     prach_root_emtc                    = 0;
+  int32_t     prach_config_index_emtc            = 0;
+  char        *prach_high_speed_emtc             = NULL;
+  int32_t     prach_zero_correlation_emtc        = 0;
+  int32_t     prach_freq_offset_emtc             = 0;
+  int32_t     pucch_delta_shift_emtc             = 0;
+  int32_t     pucch_nRB_CQI_emtc                 = 0;
+  int32_t     pucch_nCS_AN_emtc                  = 0;
+  //#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0))
+  int32_t     pucch_n1_AN_emtc                   = 0;
+  //#endif
+  int32_t     pdsch_referenceSignalPower_emtc    = 0;
+  int32_t     pdsch_p_b_emtc                     = 0;
+  int32_t     pusch_n_SB_emtc                    = 0;
+  char        *pusch_hoppingMode_emtc            = NULL;
+  int32_t     pusch_hoppingOffset_emtc           = 0;
+  char        *pusch_enable64QAM_emtc            = NULL;
+  char        *pusch_groupHoppingEnabled_emtc    = NULL;
+  int32_t     pusch_groupAssignment_emtc         = 0;
+  char        *pusch_sequenceHoppingEnabled_emtc = NULL;
+  int32_t     pusch_nDMRS1_emtc                  = 0;
+  char       *phich_duration_emtc                = NULL;
+  char       *phich_resource_emtc                = NULL;
+  char       *srs_enable_emtc                    = NULL;
+  int32_t     srs_BandwidthConfig_emtc           = 0;
+  int32_t     srs_SubframeConfig_emtc            = 0;
+  char       *srs_ackNackST_emtc                 = NULL;
+  char       *srs_MaxUpPts_emtc                  = NULL;
+  int32_t     pusch_p0_Nominal_emtc              = 0;
+  char       *pusch_alpha_emtc                   = NULL;
+  int32_t     pucch_p0_Nominal_emtc              = 0;
+  int32_t     msg3_delta_Preamble_emtc           = 0;
+  //int32_t     ul_CyclicPrefixLength_emtc         = 0;
+  char       *pucch_deltaF_Format1_emtc          = NULL;
+  //const char*       pucch_deltaF_Format1a_emtc         = NULL;
+  char       *pucch_deltaF_Format1b_emtc         = NULL;
+  char       *pucch_deltaF_Format2_emtc          = NULL;
+  char       *pucch_deltaF_Format2a_emtc         = NULL;
+  char       *pucch_deltaF_Format2b_emtc         = NULL;
+  int32_t     rach_numberOfRA_Preambles_emtc     = 0;
+  char       *rach_preamblesGroupAConfig_emtc    = NULL;
+  int32_t     rach_sizeOfRA_PreamblesGroupA_emtc = 0;
+  int32_t     rach_messageSizeGroupA_emtc        = 0;
+  char       *rach_messagePowerOffsetGroupB_emtc = NULL;
+  int32_t     rach_powerRampingStep_emtc         = 0;
+  int32_t     rach_preambleInitialReceivedTargetPower_emtc    = 0;
+  int32_t     rach_preambleTransMax_emtc         = 0;
+  int32_t     rach_raResponseWindowSize_emtc     = 10;
+  int32_t     rach_macContentionResolutionTimer_emtc = 0;
+  int32_t     rach_maxHARQ_Msg3Tx_emtc           = 0;
+  int32_t     pcch_defaultPagingCycle_emtc       = 0;
+  char       *pcch_nB_emtc                       = NULL;
+  int32_t     bcch_modificationPeriodCoeff_emtc  = 0;
+  int32_t     ue_TimersAndConstants_t300_emtc    = 0;
+  int32_t     ue_TimersAndConstants_t301_emtc    = 0;
+  int32_t     ue_TimersAndConstants_t310_emtc    = 0;
+  int32_t     ue_TimersAndConstants_t311_emtc    = 0;
+  int32_t     ue_TimersAndConstants_n310_emtc    = 0;
+  int32_t     ue_TimersAndConstants_n311_emtc    = 0;
+  int32_t     ue_TransmissionMode_emtc           = 0;
 
   int           si_Narrowband_r13             = 0;
   int           si_TBS_r13                    = 0;
@@ -514,90 +761,84 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
   
   int           firstPreamble_r13                     = 0;
   int           lastPreamble_r13                      = 0;
-  const char*   ra_ResponseWindowSize_r13             = NULL;
-  const char*   mac_ContentionResolutionTimer_r13     = NULL;
-  const char*   rar_HoppingConfig_r13                 = NULL;
+  int  ra_ResponseWindowSize_r13              = 0;
+  int   mac_ContentionResolutionTimer_r13     = 0;
+  int   rar_HoppingConfig_r13                 = 0;
   int           rsrp_range_br                         = 0;
   int           prach_config_index_br                 = 0;
   int           prach_freq_offset_br                  = 0;
   int           prach_StartingSubframe_r13            = 0;
-  const char*   maxNumPreambleAttemptCE_r13           = NULL;
-  const char*   numRepetitionPerPreambleAttempt_r13   = NULL;
-  const char*   mpdcch_NumRepetition_RA_r13           = NULL;
-  const char*   prach_HoppingConfig_r13               = NULL;
+
+  int   maxNumPreambleAttemptCE_r13           = 0;
+  int   numRepetitionPerPreambleAttempt_r13   = 0;
+  int   mpdcch_NumRepetition_RA_r13           = 0;
+  int   prach_HoppingConfig_r13               = 0;
   int           *maxavailablenarrowband               = NULL;
   int           pucch_info_value                      = 0;
   
   int           paging_narrowbands_r13                = 0;
-  const char*   mpdcch_numrepetition_paging_r13       = NULL;
-  const char*   nb_v1310                              = NULL;
-  
+  int           mpdcch_numrepetition_paging_r13       = NULL;
+  int           nb_v1310                              = NULL;
   
-  const char*   pucch_NumRepetitionCE_Msg4_Level0_r13 = NULL;
-  const char*   pucch_NumRepetitionCE_Msg4_Level1_r13 = NULL;
-  const char*   pucch_NumRepetitionCE_Msg4_Level2_r13 = NULL;
-  const char*   pucch_NumRepetitionCE_Msg4_Level3_r13 = NULL;
   
-  const char*   sib2_mpdcch_pdsch_hoppingNB_r13                   = NULL;
-  const char*   sib2_interval_DLHoppingConfigCommonModeA_r13      = NULL;
-  const char*   sib2_interval_DLHoppingConfigCommonModeA_r13_val  = NULL;
-  const char*   sib2_interval_DLHoppingConfigCommonModeB_r13      = NULL;
-  const char*   sib2_interval_DLHoppingConfigCommonModeB_r13_val  = NULL;
+  char *   pucch_NumRepetitionCE_Msg4_Level0_r13 = NULL;
+  char *   pucch_NumRepetitionCE_Msg4_Level1_r13 = NULL;
+  char *   pucch_NumRepetitionCE_Msg4_Level2_r13 = NULL;
+  char *   pucch_NumRepetitionCE_Msg4_Level3_r13 = NULL;
   
-  const char*   sib2_interval_ULHoppingConfigCommonModeA_r13      = NULL;
-  const char*   sib2_interval_ULHoppingConfigCommonModeA_r13_val  = NULL;
-  const char*   sib2_interval_ULHoppingConfigCommonModeB_r13      = NULL;
-  const char*   sib2_interval_ULHoppingConfigCommonModeB_r13_val  = NULL;
-  int           sib2_mpdcch_pdsch_hoppingOffset_r13               = 0;
+  int   sib2_mpdcch_pdsch_hoppingNB_r13                   = 0;
+  char  *sib2_interval_DLHoppingConfigCommonModeA_r13      = 0;
+  int   sib2_interval_DLHoppingConfigCommonModeA_r13_val  = 0;
+  char  *sib2_interval_DLHoppingConfigCommonModeB_r13      = 0;
+  int   sib2_interval_DLHoppingConfigCommonModeB_r13_val  = 0;
   
-  const char*   pdsch_maxNumRepetitionCEmodeA_r13                 = NULL;
-  const char*   pdsch_maxNumRepetitionCEmodeB_r13                 = NULL;
+  char  *sib2_interval_ULHoppingConfigCommonModeA_r13      = 0;
+  int   sib2_interval_ULHoppingConfigCommonModeA_r13_val  = 0;
+  char  *sib2_interval_ULHoppingConfigCommonModeB_r13      = 0;
+  int   sib2_interval_ULHoppingConfigCommonModeB_r13_val  = 0;
+  int   sib2_mpdcch_pdsch_hoppingOffset_r13       = 0;
   
-  const char*   pusch_maxNumRepetitionCEmodeA_r13                 = 0;
-  const char*   pusch_maxNumRepetitionCEmodeB_r13                 = 0;
+
   int           pusch_HoppingOffset_v1310                         = 0;
   
   int           hyperSFN_r13                                      = 0;
   int           eDRX_Allowed_r13                                  = 0;
   int           q_RxLevMinCE_r13                                  = 0;
   int           q_QualMinRSRQ_CE_r13                              = 0;
-  const char*   si_WindowLength_BR_r13                            = NULL;
-  const char*   si_RepetitionPattern_r13                          = NULL;
+  char   *si_WindowLength_BR_r13                            = NULL;
+  char   *si_RepetitionPattern_r13                          = NULL;
   int           startSymbolBR_r13                                 = 0;
-  const char*   si_HoppingConfigCommon_r13                        = NULL;
-  const char*   si_ValidityTime_r13                               = NULL;
-  const char*   mpdcch_pdsch_HoppingNB_r13                        = NULL;
+  char   *si_HoppingConfigCommon_r13                        = NULL;
+  char   *si_ValidityTime_r13                               = NULL;
+  char   *mpdcch_pdsch_HoppingNB_r13                        = NULL;
   int           interval_DLHoppingConfigCommonModeA_r13_val       = 0;
   int           interval_DLHoppingConfigCommonModeB_r13_val       = 0;
   int           mpdcch_pdsch_HoppingOffset_r13                    = 0;
-  const char*   preambleTransMax_CE_r13                           = NULL;
-  const char*   rach_numberOfRA_Preambles_br                      = NULL;
+  char   *preambleTransMax_CE_r13                           = NULL;
   
   int           prach_HoppingOffset_r13                           = 0;
   int           schedulingInfoSIB1_BR_r13                         = 0;
-  uint64_t      fdd_DownlinkOrTddSubframeBitmapBR_val_r13         = 0;
+  int64_t      fdd_DownlinkOrTddSubframeBitmapBR_val_r13         = 0;
   
   char* cellSelectionInfoCE_r13                                       = NULL;
   char* bandwidthReducedAccessRelatedInfo_r13                         = NULL;
   char* fdd_DownlinkOrTddSubframeBitmapBR_r13                         = NULL;
   char* fdd_UplinkSubframeBitmapBR_r13                                = NULL;
+  (void)fdd_UplinkSubframeBitmapBR_r13;
   char* freqHoppingParametersDL_r13                                   = NULL;
   char* interval_DLHoppingConfigCommonModeA_r13                       = NULL;
   char* interval_DLHoppingConfigCommonModeB_r13                       = NULL;
-  const char* prach_ConfigCommon_v1310                                = NULL;
-  const char* mpdcch_startSF_CSS_RA_r13                               = NULL;
-  const char* mpdcch_startSF_CSS_RA_r13_val                           = NULL;
-  
-
-  int32_t     srb1_timer_poll_retransmit    = 0;
-  int32_t     srb1_timer_reordering         = 0;
-  int32_t     srb1_timer_status_prohibit    = 0;
-  int32_t     srb1_poll_pdu                 = 0;
-  int32_t     srb1_poll_byte                = 0;
-  int32_t     srb1_max_retx_threshold       = 0;
-  int32_t     my_int;
+  char* prach_ConfigCommon_v1310                                = NULL;
+  char* mpdcch_startSF_CSS_RA_r13                               = NULL;
+  char* mpdcch_startSF_CSS_RA_r13_val                           = NULL;
+  char  *pdsch_maxNumRepetitionCEmodeA_r13                 = NULL;
+  char  *pdsch_maxNumRepetitionCEmodeB_r13                 = NULL;
+  char   *pusch_maxNumRepetitionCEmodeA_r13                 = NULL;
+  char   *pusch_maxNumRepetitionCEmodeB_r13                 = NULL;
   // for no gcc warnings
   (void)my_int;
+  (void)pdsch_maxNumRepetitionCEmodeB_r13;
+  (void)pusch_maxNumRepetitionCEmodeB_r13;
   paramdef_t ENBSParams[] = ENBSPARAMS_DESC;
   paramdef_t ENBParams[]  = ENBPARAMS_DESC;
   paramlist_def_t ENBParamList = {ENB_CONFIG_STRING_ENB_LIST,NULL,0};
@@ -830,14 +1071,17 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
                            RC.config_file_name, i, nb_antenna_ports);
 
             RRC_CONFIGURATION_REQ (msg_p).nb_antenna_ports[j] = nb_antenna_ports;
-            RRC_CONFIGURATION_REQ (msg_p).prach_root[j] =  prach_root;
+
+	    // Radio Resource Configuration (SIB2)
+
+            RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_root =  prach_root;
 
             if ((prach_root <0) || (prach_root > 1023))
               AssertFatal (0,
                            "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_root choice: 0..1023 !\n",
                            RC.config_file_name, i, prach_root);
 
-            RRC_CONFIGURATION_REQ (msg_p).prach_config_index[j] = prach_config_index;
+            RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_config_index = prach_config_index;
 
             if ((prach_config_index <0) || (prach_config_index > 63))
               AssertFatal (0,
@@ -849,43 +1093,43 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
                            "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n",
                            RC.config_file_name, i, ENB_CONFIG_STRING_PRACH_HIGH_SPEED);
             else if (strcmp(prach_high_speed, "ENABLE") == 0) {
-              RRC_CONFIGURATION_REQ (msg_p).prach_high_speed[j] = TRUE;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_high_speed = TRUE;
             } else if (strcmp(prach_high_speed, "DISABLE") == 0) {
-              RRC_CONFIGURATION_REQ (msg_p).prach_high_speed[j] = FALSE;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_high_speed = FALSE;
             } else
               AssertFatal (0,
                            "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prach_config choice: ENABLE,DISABLE !\n",
                            RC.config_file_name, i, prach_high_speed);
 
-            RRC_CONFIGURATION_REQ (msg_p).prach_zero_correlation[j] =prach_zero_correlation;
+            RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_zero_correlation =prach_zero_correlation;
 
             if ((prach_zero_correlation <0) || (prach_zero_correlation > 15))
               AssertFatal (0,
                            "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_zero_correlation choice: 0..15!\n",
                            RC.config_file_name, i, prach_zero_correlation);
 
-            RRC_CONFIGURATION_REQ (msg_p).prach_freq_offset[j] = prach_freq_offset;
+            RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_freq_offset = prach_freq_offset;
 
             if ((prach_freq_offset <0) || (prach_freq_offset > 94))
               AssertFatal (0,
                            "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_freq_offset choice: 0..94!\n",
                            RC.config_file_name, i, prach_freq_offset);
 
-            RRC_CONFIGURATION_REQ (msg_p).pucch_delta_shift[j] = pucch_delta_shift-1;
+            RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_delta_shift = pucch_delta_shift-1;
 
             if ((pucch_delta_shift <1) || (pucch_delta_shift > 3))
               AssertFatal (0,
                            "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_delta_shift choice: 1..3!\n",
                            RC.config_file_name, i, pucch_delta_shift);
 
-            RRC_CONFIGURATION_REQ (msg_p).pucch_nRB_CQI[j] = pucch_nRB_CQI;
+            RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_nRB_CQI = pucch_nRB_CQI;
 
             if ((pucch_nRB_CQI <0) || (pucch_nRB_CQI > 98))
               AssertFatal (0,
                            "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nRB_CQI choice: 0..98!\n",
                            RC.config_file_name, i, pucch_nRB_CQI);
 
-            RRC_CONFIGURATION_REQ (msg_p).pucch_nCS_AN[j] = pucch_nCS_AN;
+            RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_nCS_AN = pucch_nCS_AN;
 
             if ((pucch_nCS_AN <0) || (pucch_nCS_AN > 7))
               AssertFatal (0,
@@ -893,7 +1137,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
                            RC.config_file_name, i, pucch_nCS_AN);
 
             //#if (RRC_VERSION < MAKE_VERSION(10, 0, 0))
-            RRC_CONFIGURATION_REQ (msg_p).pucch_n1_AN[j] = pucch_n1_AN;
+            RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_n1_AN = pucch_n1_AN;
 
             if ((pucch_n1_AN <0) || (pucch_n1_AN > 2047))
               AssertFatal (0,
@@ -901,21 +1145,21 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
                            RC.config_file_name, i, pucch_n1_AN);
 
             //#endif
-            RRC_CONFIGURATION_REQ (msg_p).pdsch_referenceSignalPower[j] = pdsch_referenceSignalPower;
+            RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pdsch_referenceSignalPower = pdsch_referenceSignalPower;
 
             if ((pdsch_referenceSignalPower <-60) || (pdsch_referenceSignalPower > 50))
               AssertFatal (0,
                            "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_referenceSignalPower choice:-60..50!\n",
                            RC.config_file_name, i, pdsch_referenceSignalPower);
 
-            RRC_CONFIGURATION_REQ (msg_p).pdsch_p_b[j] = pdsch_p_b;
+            RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pdsch_p_b = pdsch_p_b;
 
             if ((pdsch_p_b <0) || (pdsch_p_b > 3))
               AssertFatal (0,
                            "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_p_b choice: 0..3!\n",
                            RC.config_file_name, i, pdsch_p_b);
 
-            RRC_CONFIGURATION_REQ (msg_p).pusch_n_SB[j] = pusch_n_SB;
+            RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_n_SB = pusch_n_SB;
 
             if ((pusch_n_SB <1) || (pusch_n_SB > 4))
               AssertFatal (0,
@@ -927,15 +1171,15 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
                            "Failed to parse eNB configuration file %s, enb %d define %s: interSubframe,intraAndInterSubframe!\n",
                            RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_HOPPINGMODE);
             else if (strcmp(pusch_hoppingMode,"interSubFrame")==0) {
-              RRC_CONFIGURATION_REQ (msg_p).pusch_hoppingMode[j] = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_interSubFrame;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_interSubFrame;
             }  else if (strcmp(pusch_hoppingMode,"intraAndInterSubFrame")==0) {
-              RRC_CONFIGURATION_REQ (msg_p).pusch_hoppingMode[j] = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_intraAndInterSubFrame;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_intraAndInterSubFrame;
             } else
               AssertFatal (0,
                            "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingMode choice: interSubframe,intraAndInterSubframe!\n",
                            RC.config_file_name, i, pusch_hoppingMode);
 
-            RRC_CONFIGURATION_REQ (msg_p).pusch_hoppingOffset[j] = pusch_hoppingOffset;
+            RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_hoppingOffset = pusch_hoppingOffset;
 
             if ((pusch_hoppingOffset<0) || (pusch_hoppingOffset>98))
               AssertFatal (0,
@@ -947,9 +1191,9 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
                            "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n",
                            RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_ENABLE64QAM);
             else if (strcmp(pusch_enable64QAM, "ENABLE") == 0) {
-              RRC_CONFIGURATION_REQ (msg_p).pusch_enable64QAM[j] = TRUE;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_enable64QAM = TRUE;
             }  else if (strcmp(pusch_enable64QAM, "DISABLE") == 0) {
-              RRC_CONFIGURATION_REQ (msg_p).pusch_enable64QAM[j] = FALSE;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_enable64QAM = FALSE;
             } else
               AssertFatal (0,
                            "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_enable64QAM choice: ENABLE,DISABLE!\n",
@@ -960,15 +1204,15 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
                            "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n",
                            RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN);
             else if (strcmp(pusch_groupHoppingEnabled, "ENABLE") == 0) {
-              RRC_CONFIGURATION_REQ (msg_p).pusch_groupHoppingEnabled[j] = TRUE;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_groupHoppingEnabled = TRUE;
             }  else if (strcmp(pusch_groupHoppingEnabled, "DISABLE") == 0) {
-              RRC_CONFIGURATION_REQ (msg_p).pusch_groupHoppingEnabled[j] = FALSE;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_groupHoppingEnabled= FALSE;
             } else
               AssertFatal (0,
                            "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_groupHoppingEnabled choice: ENABLE,DISABLE!\n",
                            RC.config_file_name, i, pusch_groupHoppingEnabled);
 
-            RRC_CONFIGURATION_REQ (msg_p).pusch_groupAssignment[j] = pusch_groupAssignment;
+            RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_groupAssignment = pusch_groupAssignment;
 
             if ((pusch_groupAssignment<0)||(pusch_groupAssignment>29))
               AssertFatal (0,
@@ -980,15 +1224,15 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
                            "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n",
                            RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN);
             else if (strcmp(pusch_sequenceHoppingEnabled, "ENABLE") == 0) {
-              RRC_CONFIGURATION_REQ (msg_p).pusch_sequenceHoppingEnabled[j] = TRUE;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_sequenceHoppingEnabled = TRUE;
             }  else if (strcmp(pusch_sequenceHoppingEnabled, "DISABLE") == 0) {
-              RRC_CONFIGURATION_REQ (msg_p).pusch_sequenceHoppingEnabled[j] = FALSE;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_sequenceHoppingEnabled = FALSE;
             } else
               AssertFatal (0,
                            "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_sequenceHoppingEnabled choice: ENABLE,DISABLE!\n",
                            RC.config_file_name, i, pusch_sequenceHoppingEnabled);
 
-            RRC_CONFIGURATION_REQ (msg_p).pusch_nDMRS1[j] = pusch_nDMRS1;  //cyclic_shift in RRC!
+            RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_nDMRS1= pusch_nDMRS1;  //cyclic_shift in RRC!
 
             if ((pusch_nDMRS1 <0) || (pusch_nDMRS1>7))
               AssertFatal (0,
@@ -996,48 +1240,48 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
                            RC.config_file_name, i, pusch_nDMRS1);
 
             if (strcmp(phich_duration,"NORMAL")==0) {
-              RRC_CONFIGURATION_REQ (msg_p).phich_duration[j] = PHICH_Config__phich_Duration_normal;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].phich_duration= PHICH_Config__phich_Duration_normal;
             } else if (strcmp(phich_duration,"EXTENDED")==0) {
-              RRC_CONFIGURATION_REQ (msg_p).phich_duration[j] = PHICH_Config__phich_Duration_extended;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].phich_duration= PHICH_Config__phich_Duration_extended;
             } else
               AssertFatal (0,
                            "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_duration choice: NORMAL,EXTENDED!\n",
                            RC.config_file_name, i, phich_duration);
 
             if (strcmp(phich_resource,"ONESIXTH")==0) {
-              RRC_CONFIGURATION_REQ (msg_p).phich_resource[j] = PHICH_Config__phich_Resource_oneSixth ;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].phich_resource= PHICH_Config__phich_Resource_oneSixth ;
             } else if (strcmp(phich_resource,"HALF")==0) {
-              RRC_CONFIGURATION_REQ (msg_p).phich_resource[j] = PHICH_Config__phich_Resource_half;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].phich_resource= PHICH_Config__phich_Resource_half;
             } else if (strcmp(phich_resource,"ONE")==0) {
-              RRC_CONFIGURATION_REQ (msg_p).phich_resource[j] = PHICH_Config__phich_Resource_one;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].phich_resource= PHICH_Config__phich_Resource_one;
             } else if (strcmp(phich_resource,"TWO")==0) {
-              RRC_CONFIGURATION_REQ (msg_p).phich_resource[j] = PHICH_Config__phich_Resource_two;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].phich_resource= PHICH_Config__phich_Resource_two;
             } else
               AssertFatal (0,
                            "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_resource choice: ONESIXTH,HALF,ONE,TWO!\n",
                            RC.config_file_name, i, phich_resource);
 
             printf("phich.resource %ld (%s), phich.duration %ld (%s)\n",
-                   RRC_CONFIGURATION_REQ (msg_p).phich_resource[j],phich_resource,
-                   RRC_CONFIGURATION_REQ (msg_p).phich_duration[j],phich_duration);
+                   RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].phich_resource,phich_resource,
+                   RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].phich_duration,phich_duration);
 
             if (strcmp(srs_enable, "ENABLE") == 0) {
-              RRC_CONFIGURATION_REQ (msg_p).srs_enable[j] = TRUE;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_enable= TRUE;
             } else if (strcmp(srs_enable, "DISABLE") == 0) {
-              RRC_CONFIGURATION_REQ (msg_p).srs_enable[j] = FALSE;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_enable= FALSE;
             } else
               AssertFatal (0,
                            "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n",
                            RC.config_file_name, i, srs_enable);
 
-            if (RRC_CONFIGURATION_REQ (msg_p).srs_enable[j] == TRUE) {
-              RRC_CONFIGURATION_REQ (msg_p).srs_BandwidthConfig[j] = srs_BandwidthConfig;
+            if (RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_enable== TRUE) {
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_BandwidthConfig= srs_BandwidthConfig;
 
               if ((srs_BandwidthConfig < 0) || (srs_BandwidthConfig >7))
                 AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value %d for srs_BandwidthConfig choice: 0...7\n",
                              RC.config_file_name, i, srs_BandwidthConfig);
 
-              RRC_CONFIGURATION_REQ (msg_p).srs_SubframeConfig[j] = srs_SubframeConfig;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_SubframeConfig= srs_SubframeConfig;
 
               if ((srs_SubframeConfig<0) || (srs_SubframeConfig>15))
                 AssertFatal (0,
@@ -1045,25 +1289,25 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
                              RC.config_file_name, i, srs_SubframeConfig);
 
               if (strcmp(srs_ackNackST, "ENABLE") == 0) {
-                RRC_CONFIGURATION_REQ (msg_p).srs_ackNackST[j] = TRUE;
+                RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_ackNackST= TRUE;
               } else if (strcmp(srs_ackNackST, "DISABLE") == 0) {
-                RRC_CONFIGURATION_REQ (msg_p).srs_ackNackST[j] = FALSE;
+                RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_ackNackST= FALSE;
               } else
                 AssertFatal (0,
                              "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n",
                              RC.config_file_name, i, srs_ackNackST);
 
               if (strcmp(srs_MaxUpPts, "ENABLE") == 0) {
-                RRC_CONFIGURATION_REQ (msg_p).srs_MaxUpPts[j] = TRUE;
+                RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_MaxUpPts= TRUE;
               } else if (strcmp(srs_MaxUpPts, "DISABLE") == 0) {
-                RRC_CONFIGURATION_REQ (msg_p).srs_MaxUpPts[j] = FALSE;
+                RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_MaxUpPts= FALSE;
               } else
                 AssertFatal (0,
                              "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_MaxUpPts choice: ENABLE,DISABLE !\n",
                              RC.config_file_name, i, srs_MaxUpPts);
             }
 
-            RRC_CONFIGURATION_REQ (msg_p).pusch_p0_Nominal[j] = pusch_p0_Nominal;
+            RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_p0_Nominal= pusch_p0_Nominal;
 
             if ((pusch_p0_Nominal<-126) || (pusch_p0_Nominal>24))
               AssertFatal (0,
@@ -1073,42 +1317,42 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
 #if (RRC_VERSION <= MAKE_VERSION(12, 0, 0))
 
             if (strcmp(pusch_alpha,"AL0")==0) {
-              RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al0;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= UplinkPowerControlCommon__alpha_al0;
             } else if (strcmp(pusch_alpha,"AL04")==0) {
-              RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al04;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= UplinkPowerControlCommon__alpha_al04;
             } else if (strcmp(pusch_alpha,"AL05")==0) {
-              RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al05;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= UplinkPowerControlCommon__alpha_al05;
             } else if (strcmp(pusch_alpha,"AL06")==0) {
-              RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al06;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= UplinkPowerControlCommon__alpha_al06;
             } else if (strcmp(pusch_alpha,"AL07")==0) {
-              RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al07;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= UplinkPowerControlCommon__alpha_al07;
             } else if (strcmp(pusch_alpha,"AL08")==0) {
-              RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al08;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= UplinkPowerControlCommon__alpha_al08;
             } else if (strcmp(pusch_alpha,"AL09")==0) {
-              RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al09;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= UplinkPowerControlCommon__alpha_al09;
             } else if (strcmp(pusch_alpha,"AL1")==0) {
-              RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al1;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= UplinkPowerControlCommon__alpha_al1;
             }
 
 #endif
 #if (RRC_VERSION >= MAKE_VERSION(12, 0, 0))
 
             if (strcmp(pusch_alpha,"AL0")==0) {
-              RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = Alpha_r12_al0;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= Alpha_r12_al0;
             } else if (strcmp(pusch_alpha,"AL04")==0) {
-              RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = Alpha_r12_al04;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= Alpha_r12_al04;
             } else if (strcmp(pusch_alpha,"AL05")==0) {
-              RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = Alpha_r12_al05;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= Alpha_r12_al05;
             } else if (strcmp(pusch_alpha,"AL06")==0) {
-              RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = Alpha_r12_al06;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= Alpha_r12_al06;
             } else if (strcmp(pusch_alpha,"AL07")==0) {
-              RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = Alpha_r12_al07;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= Alpha_r12_al07;
             } else if (strcmp(pusch_alpha,"AL08")==0) {
-              RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = Alpha_r12_al08;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= Alpha_r12_al08;
             } else if (strcmp(pusch_alpha,"AL09")==0) {
-              RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = Alpha_r12_al09;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= Alpha_r12_al09;
             } else if (strcmp(pusch_alpha,"AL1")==0) {
-              RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = Alpha_r12_al1;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= Alpha_r12_al1;
             }
 
 #endif
@@ -1117,14 +1361,14 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
                            "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_Alpha choice: AL0,AL04,AL05,AL06,AL07,AL08,AL09,AL1!\n",
                            RC.config_file_name, i, pusch_alpha);
 
-            RRC_CONFIGURATION_REQ (msg_p).pucch_p0_Nominal[j] = pucch_p0_Nominal;
+            RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_p0_Nominal= pucch_p0_Nominal;
 
             if ((pucch_p0_Nominal<-127) || (pucch_p0_Nominal>-96))
               AssertFatal (0,
                            "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_p0_Nominal choice: -127..-96 !\n",
                            RC.config_file_name, i, pucch_p0_Nominal);
 
-            RRC_CONFIGURATION_REQ (msg_p).msg3_delta_Preamble[j] = msg3_delta_Preamble;
+            RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].msg3_delta_Preamble= msg3_delta_Preamble;
 
             if ((msg3_delta_Preamble<-1) || (msg3_delta_Preamble>6))
               AssertFatal (0,
@@ -1132,63 +1376,63 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
                            RC.config_file_name, i, msg3_delta_Preamble);
 
             if (strcmp(pucch_deltaF_Format1,"deltaF_2")==0) {
-              RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format1[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF_2;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF_2;
             } else if (strcmp(pucch_deltaF_Format1,"deltaF0")==0) {
-              RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format1[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF0;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF0;
             } else if (strcmp(pucch_deltaF_Format1,"deltaF2")==0) {
-              RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format1[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF2;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF2;
             } else
               AssertFatal (0,
                            "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1 choice: deltaF_2,dltaF0,deltaF2!\n",
                            RC.config_file_name, i, pucch_deltaF_Format1);
 
             if (strcmp(pucch_deltaF_Format1b,"deltaF1")==0) {
-              RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format1b[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF1;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF1;
             } else if (strcmp(pucch_deltaF_Format1b,"deltaF3")==0) {
-              RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format1b[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF3;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF3;
             } else if (strcmp(pucch_deltaF_Format1b,"deltaF5")==0) {
-              RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format1b[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF5;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF5;
             } else
               AssertFatal (0,
                            "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1b choice: deltaF1,dltaF3,deltaF5!\n",
                            RC.config_file_name, i, pucch_deltaF_Format1b);
 
             if (strcmp(pucch_deltaF_Format2,"deltaF_2")==0) {
-              RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format2[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF_2;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF_2;
             } else if (strcmp(pucch_deltaF_Format2,"deltaF0")==0) {
-              RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format2[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF0;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF0;
             } else if (strcmp(pucch_deltaF_Format2,"deltaF1")==0) {
-              RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format2[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF1;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF1;
             } else if (strcmp(pucch_deltaF_Format2,"deltaF2")==0) {
-              RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format2[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF2;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF2;
             } else
               AssertFatal (0,
                            "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2 choice: deltaF_2,dltaF0,deltaF1,deltaF2!\n",
                            RC.config_file_name, i, pucch_deltaF_Format2);
 
             if (strcmp(pucch_deltaF_Format2a,"deltaF_2")==0) {
-              RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format2a[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF_2;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF_2;
             } else if (strcmp(pucch_deltaF_Format2a,"deltaF0")==0) {
-              RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format2a[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF0;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF0;
             } else if (strcmp(pucch_deltaF_Format2a,"deltaF2")==0) {
-              RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format2a[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF2;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF2;
             } else
               AssertFatal (0,
                            "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2a choice: deltaF_2,dltaF0,deltaF2!\n",
                            RC.config_file_name, i, pucch_deltaF_Format2a);
 
             if (strcmp(pucch_deltaF_Format2b,"deltaF_2")==0) {
-              RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format2b[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF_2;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF_2;
             } else if (strcmp(pucch_deltaF_Format2b,"deltaF0")==0) {
-              RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format2b[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF0;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF0;
             } else if (strcmp(pucch_deltaF_Format2b,"deltaF2")==0) {
-              RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format2b[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF2;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF2;
             } else
               AssertFatal (0,
                            "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2b choice: deltaF_2,dltaF0,deltaF2!\n",
                            RC.config_file_name, i, pucch_deltaF_Format2b);
 
-            RRC_CONFIGURATION_REQ (msg_p).rach_numberOfRA_Preambles[j] = (rach_numberOfRA_Preambles/4)-1;
+            RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles= (rach_numberOfRA_Preambles/4)-1;
 
             if ((rach_numberOfRA_Preambles <4) || (rach_numberOfRA_Preambles>64) || ((rach_numberOfRA_Preambles&3)!=0))
               AssertFatal (0,
@@ -1196,8 +1440,8 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
                            RC.config_file_name, i, rach_numberOfRA_Preambles);
 
             if (strcmp(rach_preamblesGroupAConfig, "ENABLE") == 0) {
-              RRC_CONFIGURATION_REQ (msg_p).rach_preamblesGroupAConfig[j] = TRUE;
-              RRC_CONFIGURATION_REQ (msg_p).rach_sizeOfRA_PreamblesGroupA[j] = (rach_sizeOfRA_PreamblesGroupA/4)-1;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preamblesGroupAConfig= TRUE;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_sizeOfRA_PreamblesGroupA= (rach_sizeOfRA_PreamblesGroupA/4)-1;
 
               if ((rach_numberOfRA_Preambles <4) || (rach_numberOfRA_Preambles>60) || ((rach_numberOfRA_Preambles&3)!=0))
                 AssertFatal (0,
@@ -1206,19 +1450,19 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
 
               switch (rach_messageSizeGroupA) {
 	      case 56:
-		RRC_CONFIGURATION_REQ (msg_p).rach_messageSizeGroupA[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b56;
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b56;
 		break;
 
 	      case 144:
-		RRC_CONFIGURATION_REQ (msg_p).rach_messageSizeGroupA[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b144;
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b144;
 		break;
 
 	      case 208:
-		RRC_CONFIGURATION_REQ (msg_p).rach_messageSizeGroupA[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b208;
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b208;
 		break;
 
 	      case 256:
-		RRC_CONFIGURATION_REQ (msg_p).rach_messageSizeGroupA[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b256;
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b256;
 		break;
 
 	      default:
@@ -1229,40 +1473,40 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
               }
 
               if (strcmp(rach_messagePowerOffsetGroupB,"minusinfinity")==0) {
-                RRC_CONFIGURATION_REQ (msg_p).rach_messagePowerOffsetGroupB[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_minusinfinity;
+                RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_minusinfinity;
               } else if (strcmp(rach_messagePowerOffsetGroupB,"dB0")==0) {
-                RRC_CONFIGURATION_REQ (msg_p).rach_messagePowerOffsetGroupB[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB0;
+                RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB0;
               } else if (strcmp(rach_messagePowerOffsetGroupB,"dB5")==0) {
-                RRC_CONFIGURATION_REQ (msg_p).rach_messagePowerOffsetGroupB[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB5;
+                RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB5;
               } else if (strcmp(rach_messagePowerOffsetGroupB,"dB8")==0) {
-                RRC_CONFIGURATION_REQ (msg_p).rach_messagePowerOffsetGroupB[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB8;
+                RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB8;
               } else if (strcmp(rach_messagePowerOffsetGroupB,"dB10")==0) {
-                RRC_CONFIGURATION_REQ (msg_p).rach_messagePowerOffsetGroupB[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB10;
+                RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB10;
               } else if (strcmp(rach_messagePowerOffsetGroupB,"dB12")==0) {
-                RRC_CONFIGURATION_REQ (msg_p).rach_messagePowerOffsetGroupB[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB12;
+                RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB12;
               } else if (strcmp(rach_messagePowerOffsetGroupB,"dB15")==0) {
-                RRC_CONFIGURATION_REQ (msg_p).rach_messagePowerOffsetGroupB[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB15;
+                RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB15;
               } else if (strcmp(rach_messagePowerOffsetGroupB,"dB18")==0) {
-                RRC_CONFIGURATION_REQ (msg_p).rach_messagePowerOffsetGroupB[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB18;
+                RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB18;
               } else
                 AssertFatal (0,
                              "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_messagePowerOffsetGroupB choice: minusinfinity,dB0,dB5,dB8,dB10,dB12,dB15,dB18!\n",
                              RC.config_file_name, i, rach_messagePowerOffsetGroupB);
             } else if (strcmp(rach_preamblesGroupAConfig, "DISABLE") == 0) {
-              RRC_CONFIGURATION_REQ (msg_p).rach_preamblesGroupAConfig[j] = FALSE;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preamblesGroupAConfig= FALSE;
             } else
               AssertFatal (0,
                            "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_preamblesGroupAConfig choice: ENABLE,DISABLE !\n",
                            RC.config_file_name, i, rach_preamblesGroupAConfig);
 
-            RRC_CONFIGURATION_REQ (msg_p).rach_preambleInitialReceivedTargetPower[j] = (rach_preambleInitialReceivedTargetPower+120)/2;
+            RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleInitialReceivedTargetPower= (rach_preambleInitialReceivedTargetPower+120)/2;
 
             if ((rach_preambleInitialReceivedTargetPower<-120) || (rach_preambleInitialReceivedTargetPower>-90) || ((rach_preambleInitialReceivedTargetPower&1)!=0))
               AssertFatal (0,
                            "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleInitialReceivedTargetPower choice: -120,-118,...,-90 !\n",
                            RC.config_file_name, i, rach_preambleInitialReceivedTargetPower);
 
-            RRC_CONFIGURATION_REQ (msg_p).rach_powerRampingStep[j] = rach_powerRampingStep/2;
+            RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_powerRampingStep= rach_powerRampingStep/2;
 
             if ((rach_powerRampingStep<0) || (rach_powerRampingStep>6) || ((rach_powerRampingStep&1)!=0))
               AssertFatal (0,
@@ -1273,92 +1517,92 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
 #if (RRC_VERSION < MAKE_VERSION(14, 0, 0))
 
 	    case 3:
-	      RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] =  RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n3;
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax=  RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n3;
 	      break;
 
 	    case 4:
-	      RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] =  RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n4;
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax=  RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n4;
 	      break;
 
 	    case 5:
-	      RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] =  RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n5;
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax=  RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n5;
 	      break;
 
 	    case 6:
-	      RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] =  RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n6;
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax=  RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n6;
 	      break;
 
 	    case 7:
-	      RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] =  RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n7;
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax=  RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n7;
 	      break;
 
 	    case 8:
-	      RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] =  RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n8;
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax=  RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n8;
 	      break;
 
 	    case 10:
-	      RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] =  RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n10;
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax=  RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n10;
 	      break;
 
 	    case 20:
-	      RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] =  RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n20;
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax=  RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n20;
 	      break;
 
 	    case 50:
-	      RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] =  RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n50;
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax=  RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n50;
 	      break;
 
 	    case 100:
-	      RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] =  RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n100;
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax=  RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n100;
 	      break;
 
 	    case 200:
-	      RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] =  RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n200;
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax=  RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n200;
 	      break;
 #else
 
 	    case 3:
-	      RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] =  PreambleTransMax_n3;
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax=  PreambleTransMax_n3;
 	      break;
 
 	    case 4:
-	      RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] =  PreambleTransMax_n4;
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax=  PreambleTransMax_n4;
 	      break;
 
 	    case 5:
-	      RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] =  PreambleTransMax_n5;
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax=  PreambleTransMax_n5;
 	      break;
 
 	    case 6:
-	      RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] =  PreambleTransMax_n6;
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax=  PreambleTransMax_n6;
 	      break;
 
 	    case 7:
-	      RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] =  PreambleTransMax_n7;
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax=  PreambleTransMax_n7;
 	      break;
 
 	    case 8:
-	      RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] =  PreambleTransMax_n8;
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax=  PreambleTransMax_n8;
 	      break;
 
 	    case 10:
-	      RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] =  PreambleTransMax_n10;
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax=  PreambleTransMax_n10;
 	      break;
 
 	    case 20:
-	      RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] =  PreambleTransMax_n20;
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax=  PreambleTransMax_n20;
 	      break;
 
 	    case 50:
-	      RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] =  PreambleTransMax_n50;
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax=  PreambleTransMax_n50;
 	      break;
 
 	    case 100:
-	      RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] =  PreambleTransMax_n100;
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax=  PreambleTransMax_n100;
 	      break;
 
 	    case 200:
-	      RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] =  PreambleTransMax_n200;
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax=  PreambleTransMax_n200;
 	      break;
 #endif
 
@@ -1369,21 +1613,21 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
 	      break;
             }
 
-            RRC_CONFIGURATION_REQ (msg_p).rach_raResponseWindowSize[j] =  (rach_raResponseWindowSize==10)?7:rach_raResponseWindowSize-2;
+            RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_raResponseWindowSize=  (rach_raResponseWindowSize==10)?7:rach_raResponseWindowSize-2;
 
             if ((rach_raResponseWindowSize<0)||(rach_raResponseWindowSize==9)||(rach_raResponseWindowSize>10))
               AssertFatal (0,
                            "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_raResponseWindowSize choice: 2,3,4,5,6,7,8,10!\n",
                            RC.config_file_name, i, rach_preambleTransMax);
 
-            RRC_CONFIGURATION_REQ (msg_p).rach_macContentionResolutionTimer[j] = (rach_macContentionResolutionTimer/8)-1;
+            RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_macContentionResolutionTimer= (rach_macContentionResolutionTimer/8)-1;
 
             if ((rach_macContentionResolutionTimer<8) || (rach_macContentionResolutionTimer>64) || ((rach_macContentionResolutionTimer&7)!=0))
               AssertFatal (0,
                            "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_macContentionResolutionTimer choice: 8,16,...,56,64!\n",
                            RC.config_file_name, i, rach_preambleTransMax);
 
-            RRC_CONFIGURATION_REQ (msg_p).rach_maxHARQ_Msg3Tx[j] = rach_maxHARQ_Msg3Tx;
+            RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_maxHARQ_Msg3Tx= rach_maxHARQ_Msg3Tx;
 
             if ((rach_maxHARQ_Msg3Tx<0) || (rach_maxHARQ_Msg3Tx>8))
               AssertFatal (0,
@@ -1392,19 +1636,19 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
 
             switch (pcch_defaultPagingCycle) {
 	    case 32:
-	      RRC_CONFIGURATION_REQ (msg_p).pcch_defaultPagingCycle[j] = PCCH_Config__defaultPagingCycle_rf32;
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf32;
 	      break;
 
 	    case 64:
-	      RRC_CONFIGURATION_REQ (msg_p).pcch_defaultPagingCycle[j] = PCCH_Config__defaultPagingCycle_rf64;
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf64;
 	      break;
 
 	    case 128:
-	      RRC_CONFIGURATION_REQ (msg_p).pcch_defaultPagingCycle[j] = PCCH_Config__defaultPagingCycle_rf128;
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf128;
 	      break;
 
 	    case 256:
-	      RRC_CONFIGURATION_REQ (msg_p).pcch_defaultPagingCycle[j] = PCCH_Config__defaultPagingCycle_rf256;
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf256;
 	      break;
 
 	    default:
@@ -1415,21 +1659,21 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
             }
 
             if (strcmp(pcch_nB, "fourT") == 0) {
-              RRC_CONFIGURATION_REQ (msg_p).pcch_nB[j] = PCCH_Config__nB_fourT;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_nB= PCCH_Config__nB_fourT;
             } else if (strcmp(pcch_nB, "twoT") == 0) {
-              RRC_CONFIGURATION_REQ (msg_p).pcch_nB[j] = PCCH_Config__nB_twoT;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_nB= PCCH_Config__nB_twoT;
             } else if (strcmp(pcch_nB, "oneT") == 0) {
-              RRC_CONFIGURATION_REQ (msg_p).pcch_nB[j] = PCCH_Config__nB_oneT;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_nB= PCCH_Config__nB_oneT;
             } else if (strcmp(pcch_nB, "halfT") == 0) {
-              RRC_CONFIGURATION_REQ (msg_p).pcch_nB[j] = PCCH_Config__nB_halfT;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_nB= PCCH_Config__nB_halfT;
             } else if (strcmp(pcch_nB, "quarterT") == 0) {
-              RRC_CONFIGURATION_REQ (msg_p).pcch_nB[j] = PCCH_Config__nB_quarterT;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_nB= PCCH_Config__nB_quarterT;
             } else if (strcmp(pcch_nB, "oneEighthT") == 0) {
-              RRC_CONFIGURATION_REQ (msg_p).pcch_nB[j] = PCCH_Config__nB_oneEighthT;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_nB= PCCH_Config__nB_oneEighthT;
             } else if (strcmp(pcch_nB, "oneSixteenthT") == 0) {
-              RRC_CONFIGURATION_REQ (msg_p).pcch_nB[j] = PCCH_Config__nB_oneSixteenthT;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_nB= PCCH_Config__nB_oneSixteenthT;
             } else if (strcmp(pcch_nB, "oneThirtySecondT") == 0) {
-              RRC_CONFIGURATION_REQ (msg_p).pcch_nB[j] = PCCH_Config__nB_oneThirtySecondT;
+              RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_nB= PCCH_Config__nB_oneThirtySecondT;
             } else
               AssertFatal (0,
                            "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_nB choice: fourT,twoT,oneT,halfT,quarterT,oneighthT,oneSixteenthT,oneThirtySecondT !\n",
@@ -1437,19 +1681,19 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
 
             switch (bcch_modificationPeriodCoeff) {
 	    case 2:
-	      RRC_CONFIGURATION_REQ (msg_p).bcch_modificationPeriodCoeff[j] = BCCH_Config__modificationPeriodCoeff_n2;
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff= BCCH_Config__modificationPeriodCoeff_n2;
 	      break;
 
 	    case 4:
-	      RRC_CONFIGURATION_REQ (msg_p).bcch_modificationPeriodCoeff[j] = BCCH_Config__modificationPeriodCoeff_n4;
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff= BCCH_Config__modificationPeriodCoeff_n4;
 	      break;
 
 	    case 8:
-	      RRC_CONFIGURATION_REQ (msg_p).bcch_modificationPeriodCoeff[j] = BCCH_Config__modificationPeriodCoeff_n8;
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff= BCCH_Config__modificationPeriodCoeff_n8;
 	      break;
 
 	    case 16:
-	      RRC_CONFIGURATION_REQ (msg_p).bcch_modificationPeriodCoeff[j] = BCCH_Config__modificationPeriodCoeff_n16;
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff= BCCH_Config__modificationPeriodCoeff_n16;
 	      break;
 
 	    default:
@@ -1459,40 +1703,40 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
 	      break;
             }
 
-            RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t300[j] = ue_TimersAndConstants_t300;
-            RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t301[j] = ue_TimersAndConstants_t301;
-            RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t310[j] = ue_TimersAndConstants_t310;
-            RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t311[j] = ue_TimersAndConstants_t311;
-            RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_n310[j] = ue_TimersAndConstants_n310;
-            RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_n311[j] = ue_TimersAndConstants_n311;
+            RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= ue_TimersAndConstants_t300;
+            RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= ue_TimersAndConstants_t301;
+            RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= ue_TimersAndConstants_t310;
+            RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= ue_TimersAndConstants_t311;
+            RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= ue_TimersAndConstants_n310;
+            RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= ue_TimersAndConstants_n311;
 
             switch (ue_TransmissionMode) {
 	    case 1:
-	      RRC_CONFIGURATION_REQ (msg_p).ue_TransmissionMode[j] = AntennaInfoDedicated__transmissionMode_tm1;
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm1;
 	      break;
 
 	    case 2:
-	      RRC_CONFIGURATION_REQ (msg_p).ue_TransmissionMode[j] = AntennaInfoDedicated__transmissionMode_tm2;
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm2;
 	      break;
 
 	    case 3:
-	      RRC_CONFIGURATION_REQ (msg_p).ue_TransmissionMode[j] = AntennaInfoDedicated__transmissionMode_tm3;
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm3;
 	      break;
 
 	    case 4:
-	      RRC_CONFIGURATION_REQ (msg_p).ue_TransmissionMode[j] = AntennaInfoDedicated__transmissionMode_tm4;
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm4;
 	      break;
 
 	    case 5:
-	      RRC_CONFIGURATION_REQ (msg_p).ue_TransmissionMode[j] = AntennaInfoDedicated__transmissionMode_tm5;
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm5;
 	      break;
 
 	    case 6:
-	      RRC_CONFIGURATION_REQ (msg_p).ue_TransmissionMode[j] = AntennaInfoDedicated__transmissionMode_tm6;
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm6;
 	      break;
 
 	    case 7:
-	      RRC_CONFIGURATION_REQ (msg_p).ue_TransmissionMode[j] = AntennaInfoDedicated__transmissionMode_tm7;
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm7;
 	      break;
 
 	    default:
@@ -1502,7 +1746,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
 	      break;
             }
 
-            RRC_CONFIGURATION_REQ (msg_p).ue_multiple_max[j] = ue_multiple_max;
+            RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_multiple_max= ue_multiple_max;
 
             switch (N_RB_DL) {
 	    case 25:
@@ -1539,1335 +1783,1074 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
 	    char brparamspath[MAX_OPTNAME_SIZE*2 + 16];
 	    sprintf(brparamspath,"%s.%s", ccspath, ENB_CONFIG_STRING_COMPONENT_BR_PARAMETERS);
 	    config_get( brParams, sizeof(brParams)/sizeof(paramdef_t), brparamspath);
-
-	    int cnt_pucch_NumRepetitionCE = 0;
-
-
-	    RRC_CONFIGURATION_REQ(msg_p).schedulingInfoSIB1_BR_r13[j] = schedulingInfoSIB1_BR_r13;
-
-
-	    if (!strcmp(cellSelectionInfoCE_r13, "ENABLE")) {
-	      RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[j] = TRUE;
-	      RRC_CONFIGURATION_REQ(msg_p).q_RxLevMinCE_r13[j]= q_RxLevMinCE_r13;
-	      //                            RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= calloc(1, sizeof(long));
-	      //                            *RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= q_QualMinRSRQ_CE_r13;
-	    } else {
-	      RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[j] = FALSE;
-	    }
-
-
-
-	    if (!strcmp(bandwidthReducedAccessRelatedInfo_r13, "ENABLE")) {
-	      RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[j] = TRUE;
-
-
-
-	      if (!strcmp(si_WindowLength_BR_r13, "ms20")) {
-		RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 0;
-	      } else if (!strcmp(si_WindowLength_BR_r13, "ms40")) {
-		RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 1;
-	      } else if (!strcmp(si_WindowLength_BR_r13, "ms60")) {
-		RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 2;
-	      } else if (!strcmp(si_WindowLength_BR_r13, "ms80")) {
-		RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 3;
-	      } else if (!strcmp(si_WindowLength_BR_r13, "ms120")) {
-		RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 4;
-	      } else if (!strcmp(si_WindowLength_BR_r13, "ms160")) {
-		RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 5;
-	      } else if (!strcmp(si_WindowLength_BR_r13, "ms200")) {
-		RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 6;
-	      } else if (!strcmp(si_WindowLength_BR_r13, "spare")) {
-		RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 7;
-	      }
-
-
-	      if (!strcmp(si_RepetitionPattern_r13, "everyRF")) {
-		RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = 0;
-	      } else if (!strcmp(si_RepetitionPattern_r13, "every2ndRF")) {
-		RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = 1;
-	      } else if (!strcmp(si_RepetitionPattern_r13, "every4thRF")) {
-		RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = 2;
-	      } else if (!strcmp(si_RepetitionPattern_r13, "every8thRF")) {
-		RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = 3;
+	    RRC_CONFIGURATION_REQ(msg_p).eMTC_configured = eMTC_configured&1;
+
+	    if (eMTC_configured > 0) { 
+	      printf("Found parameters for eMTC\n");
+	      RRC_CONFIGURATION_REQ(msg_p).schedulingInfoSIB1_BR_r13[j] = schedulingInfoSIB1_BR_r13;
+	      
+	      
+	      if (!strcmp(cellSelectionInfoCE_r13, "ENABLE")) {
+		RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[j] = TRUE;
+		RRC_CONFIGURATION_REQ(msg_p).q_RxLevMinCE_r13[j]= q_RxLevMinCE_r13;
+		//                            RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= calloc(1, sizeof(long));
+		//                            *RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= q_QualMinRSRQ_CE_r13;
+	      } else {
+		RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[j] = FALSE;
 	      }
-
-	    } else {
-	      RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[j] = FALSE;
-	    }
-
-	    char schedulingInfoBrPath[MAX_OPTNAME_SIZE * 2];
-	    config_getlist(&schedulingInfoBrParamList, NULL, 0, brparamspath);
-	    RRC_CONFIGURATION_REQ (msg_p).scheduling_info_br_size[j] = schedulingInfoBrParamList.numelt;
-	    int siInfoindex;
-	    for (siInfoindex = 0; siInfoindex < schedulingInfoBrParamList.numelt; siInfoindex++) {
-	      sprintf(schedulingInfoBrPath, "%s.%s.[%i]", brparamspath, ENB_CONFIG_STRING_SCHEDULING_INFO_LIST, siInfoindex);
-	      config_get(schedulingInfoBrParams, sizeof(schedulingInfoBrParams) / sizeof(paramdef_t), schedulingInfoBrPath);
-	      RRC_CONFIGURATION_REQ (msg_p).si_Narrowband_r13[j][siInfoindex] = si_Narrowband_r13;
-	      RRC_CONFIGURATION_REQ (msg_p).si_TBS_r13[j][siInfoindex] = si_TBS_r13;
-	    }
-
-
-
-	    //                        RRC_CONFIGURATION_REQ (msg_p).system_info_value_tag_SI_size[j] = 0;
-
-	    // kogo -- recheck
-	    RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = CALLOC(1, sizeof(BOOLEAN_t));
-	    if (!strcmp(fdd_DownlinkOrTddSubframeBitmapBR_r13, "subframePattern40-r13")) {
-	      *RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = FALSE;
-	      RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_val_r13[j] = fdd_DownlinkOrTddSubframeBitmapBR_val_r13;
-	    } else {
-	      *RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = TRUE;
-	      RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_val_r13[j] = fdd_DownlinkOrTddSubframeBitmapBR_val_r13;
-	    }
-
-	    RRC_CONFIGURATION_REQ(msg_p).startSymbolBR_r13[j] = startSymbolBR_r13;
-
-
-	    if (!strcmp(si_HoppingConfigCommon_r13, "off")) {
-	      RRC_CONFIGURATION_REQ(msg_p).si_HoppingConfigCommon_r13[j] = 1;
-	    } else if (!strcmp(si_HoppingConfigCommon_r13, "on")) {
-	      RRC_CONFIGURATION_REQ(msg_p).si_HoppingConfigCommon_r13[j] = 0;
-	    }
-
-
-	    RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = calloc(1, sizeof(long));
-	    if (!strcmp(si_ValidityTime_r13, "true")) {
-	      *RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = 0;
-	    } else {
-	      AssertFatal(0,
-			  "Failed to parse eNB configuration file %s, enb %d  si_ValidityTime_r13 unknown value!\n",
-			  RC.config_file_name, i);
-	    }
-
-
-	    if (!strcmp(freqHoppingParametersDL_r13, "ENABLE"))
-	      {
-		RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[j] = TRUE;
-
-		if (!strcmp(interval_DLHoppingConfigCommonModeA_r13, "interval-TDD-r13"))
-		  RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[j] = FALSE;
-		else
-		  RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[j] = TRUE;
-		RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13_val[j] = interval_DLHoppingConfigCommonModeA_r13_val;
-
-		if (!strcmp(interval_DLHoppingConfigCommonModeB_r13, "interval-TDD-r13"))
-		  RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13[j] = FALSE;
-		else
-		  RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13[j] = TRUE;
-		RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13_val[j] = interval_DLHoppingConfigCommonModeB_r13_val;
-
-		RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = calloc(1, sizeof(long));
-		if (!strcmp(mpdcch_pdsch_HoppingNB_r13, "nb2")) {
-		  *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = 0;
-		} else if (!strcmp(mpdcch_pdsch_HoppingNB_r13, "nb4")) {
-		  *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = 1;
-		} else {
-		  AssertFatal(0,
-			      "Failed to parse eNB configuration file %s, enb %d  mpdcch_pdsch_HoppingNB_r13 unknown value!\n",
-			      RC.config_file_name, i);
+	      
+	      
+	      
+	      if (!strcmp(bandwidthReducedAccessRelatedInfo_r13, "ENABLE")) {
+		RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[j] = TRUE;
+		
+		
+		
+		if (!strcmp(si_WindowLength_BR_r13, "ms20")) {
+		  RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 0;
+		} else if (!strcmp(si_WindowLength_BR_r13, "ms40")) {
+		  RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 1;
+		} else if (!strcmp(si_WindowLength_BR_r13, "ms60")) {
+		  RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 2;
+		} else if (!strcmp(si_WindowLength_BR_r13, "ms80")) {
+		  RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 3;
+		} else if (!strcmp(si_WindowLength_BR_r13, "ms120")) {
+		  RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 4;
+		} else if (!strcmp(si_WindowLength_BR_r13, "ms160")) {
+		  RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 5;
+		} else if (!strcmp(si_WindowLength_BR_r13, "ms200")) {
+		  RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 6;
+		} else if (!strcmp(si_WindowLength_BR_r13, "spare")) {
+		  RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 7;
 		}
-
-		// kogo -- recheck -- optional
-		RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = calloc(1, sizeof(long));
-		*RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = mpdcch_pdsch_HoppingOffset_r13;
-
+		
+		
+		if (!strcmp(si_RepetitionPattern_r13, "everyRF")) {
+		  RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = 0;
+		} else if (!strcmp(si_RepetitionPattern_r13, "every2ndRF")) {
+		  RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = 1;
+		} else if (!strcmp(si_RepetitionPattern_r13, "every4thRF")) {
+		  RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = 2;
+		} else if (!strcmp(si_RepetitionPattern_r13, "every8thRF")) {
+		  RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = 3;
+		}
+		
+	      } else {
+		RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[j] = FALSE;
 	      }
-	    else
-	      {
-		RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[j] = FALSE;
+	      
+	      char schedulingInfoBrPath[MAX_OPTNAME_SIZE * 2];
+	      config_getlist(&schedulingInfoBrParamList, NULL, 0, brparamspath);
+	      RRC_CONFIGURATION_REQ (msg_p).scheduling_info_br_size[j] = schedulingInfoBrParamList.numelt;
+	      int siInfoindex;
+	      for (siInfoindex = 0; siInfoindex < schedulingInfoBrParamList.numelt; siInfoindex++) {
+		sprintf(schedulingInfoBrPath, "%s.%s.[%i]", brparamspath, ENB_CONFIG_STRING_SCHEDULING_INFO_LIST, siInfoindex);
+		config_get(schedulingInfoBrParams, sizeof(schedulingInfoBrParams) / sizeof(paramdef_t), schedulingInfoBrPath);
+		RRC_CONFIGURATION_REQ (msg_p).si_Narrowband_r13[j][siInfoindex] = si_Narrowband_r13;
+		RRC_CONFIGURATION_REQ (msg_p).si_TBS_r13[j][siInfoindex] = si_TBS_r13;
 	      }
-
-	    /** ------------------------------SIB23------------------------------------------ */
-
-
-
-	    RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = calloc(1, sizeof(long));
-	    if (!strcmp(preambleTransMax_CE_r13, "n3")) {
-	      *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 0;
-	    } else if (!strcmp(preambleTransMax_CE_r13, "n4")) {
-	      *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 1;
-	    } else if (!strcmp(preambleTransMax_CE_r13, "n5")) {
-	      *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 2;
-	    } else if (!strcmp(preambleTransMax_CE_r13, "n6")) {
-	      *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 3;
-	    } else if (!strcmp(preambleTransMax_CE_r13, "n7")) {
-	      *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 4;
-	    } else if (!strcmp(preambleTransMax_CE_r13, "n8")) {
-	      *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 5;
-	    } else if (!strcmp(preambleTransMax_CE_r13, "n10")) {
-	      *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 6;
-	    } else if (!strcmp(preambleTransMax_CE_r13, "n20")) {
-	      *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 7;
-	    } else if (!strcmp(preambleTransMax_CE_r13, "n50")) {
-	      *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 8;
-	    } else if (!strcmp(preambleTransMax_CE_r13, "n100")) {
-	      *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 9;
-	    } else if (!strcmp(preambleTransMax_CE_r13, "n200")) {
-	      *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 10;
-	    } else {
-	      AssertFatal(0,
-			  "Failed to parse eNB configuration file %s, enb %d  preambleTransMax_CE_r13 unknown value!\n",
-			  RC.config_file_name, i);
-	    }
-
-
-
-
-	    if (!strcmp(rach_numberOfRA_Preambles, "n4")) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (4 / 4) - 1;
-	    } else if (!strcmp(rach_numberOfRA_Preambles, "n8")) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (8 / 4) - 1;
-	    } else if (!strcmp(rach_numberOfRA_Preambles, "n12")) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (12 / 4) - 1;
-	    } else if (!strcmp(rach_numberOfRA_Preambles, "n16")) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (16 / 4) - 1;
-	    } else if (!strcmp(rach_numberOfRA_Preambles, "n20")) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (20 / 4) - 1;
-	    } else if (!strcmp(rach_numberOfRA_Preambles, "n24")) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (24 / 4) - 1;
-	    } else if (!strcmp(rach_numberOfRA_Preambles, "n28")) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (28 / 4) - 1;
-	    } else if (!strcmp(rach_numberOfRA_Preambles, "n32")) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (32 / 4) - 1;
-	    } else if (!strcmp(rach_numberOfRA_Preambles, "n36")) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (36 / 4) - 1;
-	    } else if (!strcmp(rach_numberOfRA_Preambles, "n40")) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (40 / 4) - 1;
-	    } else if (!strcmp(rach_numberOfRA_Preambles, "n44")) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (44 / 4) - 1;
-	    } else if (!strcmp(rach_numberOfRA_Preambles, "n48")) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (48 / 4) - 1;
-	    } else if (!strcmp(rach_numberOfRA_Preambles, "n52")) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (52 / 4) - 1;
-	    } else if (!strcmp(rach_numberOfRA_Preambles, "n56")) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (56 / 4) - 1;
-	    } else if (!strcmp(rach_numberOfRA_Preambles, "n60")) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (60 / 4) - 1;
-	    } else if (!strcmp(rach_numberOfRA_Preambles, "n64")) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (64 / 4) - 1;
-	    } else {
-	      AssertFatal(0,
-			  "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_numberOfRA_Preambles choice: 4,8,12,...,64!\n",
-			  RC.config_file_name, i, rach_numberOfRA_Preambles);
-
-	    }
-
-
-
-	    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_powerRampingStep = rach_powerRampingStep / 2;
-
-
-	    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleInitialReceivedTargetPower = (rach_preambleInitialReceivedTargetPower + 120) / 2;
-
-	    if ((rach_preambleInitialReceivedTargetPower<-120) || (rach_preambleInitialReceivedTargetPower>-90) || ((rach_preambleInitialReceivedTargetPower&1)!=0))
-	      AssertFatal (0,
-			   "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleInitialReceivedTargetPower choice: -120,-118,...,-90 !\n",
-			   RC.config_file_name, i, rach_preambleInitialReceivedTargetPower);
-
-
-	    switch (rach_preambleTransMax) {
-	    case 3:
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax = PreambleTransMax_n3;
-	      break;
-	    case 4:
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax = PreambleTransMax_n4;
-	      break;
-	    case 5:
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax = PreambleTransMax_n5;
-	      break;
-	    case 6:
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax = PreambleTransMax_n6;
-	      break;
-	    case 7:
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax = PreambleTransMax_n7;
-	      break;
-	    case 8:
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax = PreambleTransMax_n8;
-	      break;
-	    case 10:
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax = PreambleTransMax_n10;
-	      break;
-	    case 20:
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax = PreambleTransMax_n20;
-	      break;
-	    case 50:
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax = PreambleTransMax_n50;
-	      break;
-	    case 100:
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax = PreambleTransMax_n100;
-	      break;
-	    case 200:
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax = PreambleTransMax_n200;
-	      break;
-	    default:
-	      AssertFatal (0,
-			   "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleTransMax choice: 3,4,5,6,7,8,10,20,50,100,200!\n",
-			   RC.config_file_name, i, rach_preambleTransMax);
-	      break;
-	    }
-
-
-	    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_raResponseWindowSize=  (rach_raResponseWindowSize==10)?7:rach_raResponseWindowSize-2;
-
-	    if ((rach_raResponseWindowSize<0)||(rach_raResponseWindowSize==9)||(rach_raResponseWindowSize>10))
-	      AssertFatal (0,
-			   "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_raResponseWindowSize choice: 2,3,4,5,6,7,8,10!\n",
-			   RC.config_file_name, i, rach_preambleTransMax);
-
-	    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_macContentionResolutionTimer= (rach_macContentionResolutionTimer/8)-1;
-
-	    if ((rach_macContentionResolutionTimer<8) || (rach_macContentionResolutionTimer>64) || ((rach_macContentionResolutionTimer&7)!=0))
-	      AssertFatal (0,
-			   "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_macContentionResolutionTimer choice: 8,16,...,56,64!\n",
-			   RC.config_file_name, i, rach_preambleTransMax);
-
-
-	    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_maxHARQ_Msg3Tx= rach_maxHARQ_Msg3Tx;
-
-	    if ((rach_maxHARQ_Msg3Tx<0) || (rach_maxHARQ_Msg3Tx>8))
-	      AssertFatal (0,
-			   "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_maxHARQ_Msg3Tx choice: 1..8!\n",
-			   RC.config_file_name, i, rach_preambleTransMax);
-
-
-	    char rachCELevelInfoListPath[MAX_OPTNAME_SIZE * 2];
-	    config_getlist(&rachcelevellist, NULL, 0, brparamspath);
-	    RRC_CONFIGURATION_REQ (msg_p).rach_CE_LevelInfoList_r13_size[j] = rachcelevellist.numelt;
-	    int rachCEInfoIndex;
-	    for (rachCEInfoIndex = 0; rachCEInfoIndex < rachcelevellist.numelt; rachCEInfoIndex++) {
-	      sprintf(rachCELevelInfoListPath, "%s.%s.[%i]", brparamspath, ENB_CONFIG_STRING_RACH_CE_LEVELINFOLIST_R13, rachCEInfoIndex);
-	      config_get(rachcelevelParams, sizeof(rachcelevelParams) / sizeof(paramdef_t), rachCELevelInfoListPath);
-
-	      RRC_CONFIGURATION_REQ (msg_p).firstPreamble_r13[j][rachCEInfoIndex] = firstPreamble_r13;
-	      RRC_CONFIGURATION_REQ (msg_p).lastPreamble_r13[j][rachCEInfoIndex]  = lastPreamble_r13;
-
-
-
-
-	      if (!strcmp(ra_ResponseWindowSize_r13, "sf20")) {
-		RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rachCEInfoIndex] = 0;
-	      } else if (!strcmp(ra_ResponseWindowSize_r13, "sf50")) {
-		RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rachCEInfoIndex] = 1;
-	      } else if (!strcmp(ra_ResponseWindowSize_r13, "sf80")) {
-		RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rachCEInfoIndex] = 2;
-	      } else if (!strcmp(ra_ResponseWindowSize_r13, "sf120")) {
-		RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rachCEInfoIndex] = 3;
-	      } else if (!strcmp(ra_ResponseWindowSize_r13, "sf180")) {
-		RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rachCEInfoIndex] = 4;
-	      } else if (!strcmp(ra_ResponseWindowSize_r13, "sf240")) {
-		RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rachCEInfoIndex] = 5;
-	      } else if (!strcmp(ra_ResponseWindowSize_r13, "sf320")) {
-		RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rachCEInfoIndex] = 6;
-	      } else if (!strcmp(ra_ResponseWindowSize_r13, "sf400")) {
-		RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rachCEInfoIndex] = 7;
+	      
+	      
+	      
+	      //                        RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].system_info_value_tag_SI_size[j] = 0;
+	      
+	      
+	      RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = CALLOC(1, sizeof(BOOLEAN_t));
+	      if (!strcmp(fdd_DownlinkOrTddSubframeBitmapBR_r13, "subframePattern40-r13")) {
+		*RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = FALSE;
+		RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_val_r13[j] = fdd_DownlinkOrTddSubframeBitmapBR_val_r13;
 	      } else {
-		AssertFatal (0,
-			     "Failed to parse eNB configuration file %s, ra_ResponseWindowSize_r13 unknown value!\n",
-			     RC.config_file_name);
+		*RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = TRUE;
+		RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_val_r13[j] = fdd_DownlinkOrTddSubframeBitmapBR_val_r13;
 	      }
-
-	      if (!strcmp(mac_ContentionResolutionTimer_r13, "sf80")) {
-		RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rachCEInfoIndex] = 0;
-	      } else if (!strcmp(mac_ContentionResolutionTimer_r13, "sf100")) {
-		RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rachCEInfoIndex] = 1;
-	      } else if (!strcmp(mac_ContentionResolutionTimer_r13, "sf120")) {
-		RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rachCEInfoIndex] = 2;
-	      } else if (!strcmp(mac_ContentionResolutionTimer_r13, "sf160")) {
-		RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rachCEInfoIndex] = 3;
-	      } else if (!strcmp(mac_ContentionResolutionTimer_r13, "sf200")) {
-		RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rachCEInfoIndex] = 4;
-	      } else if (!strcmp(mac_ContentionResolutionTimer_r13, "sf240")) {
-		RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rachCEInfoIndex] = 5;
-	      } else if (!strcmp(mac_ContentionResolutionTimer_r13, "sf480")) {
-		RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rachCEInfoIndex] = 6;
-	      } else if (!strcmp(mac_ContentionResolutionTimer_r13, "sf960")) {
-		RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rachCEInfoIndex] = 7;
-	      } else {
-		AssertFatal (0,
-			     "Failed to parse eNB configuration file %s, mac_ContentionResolutionTimer_r13 unknown value!\n",
-			     RC.config_file_name);
+	      
+	      RRC_CONFIGURATION_REQ(msg_p).startSymbolBR_r13[j] = startSymbolBR_r13;
+	      
+	      
+	      if (!strcmp(si_HoppingConfigCommon_r13, "off")) {
+		RRC_CONFIGURATION_REQ(msg_p).si_HoppingConfigCommon_r13[j] = 1;
+	      } else if (!strcmp(si_HoppingConfigCommon_r13, "on")) {
+		RRC_CONFIGURATION_REQ(msg_p).si_HoppingConfigCommon_r13[j] = 0;
 	      }
-
-	      if (!strcmp(rar_HoppingConfig_r13, "on")) {
-		RRC_CONFIGURATION_REQ (msg_p).rar_HoppingConfig_r13[j][rachCEInfoIndex] = 0;
-	      } else if (!strcmp(rar_HoppingConfig_r13, "off")) {
-		RRC_CONFIGURATION_REQ (msg_p).rar_HoppingConfig_r13[j][rachCEInfoIndex] = 1;
+	      
+	      
+	      RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = calloc(1, sizeof(long));
+	      if (!strcmp(si_ValidityTime_r13, "true")) {
+		*RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = 0;
 	      } else {
-		AssertFatal (0,
-			     "Failed to parse eNB configuration file %s, rar_HoppingConfig_r13 unknown value!\n",
-			     RC.config_file_name);
+		AssertFatal(0,
+			    "Failed to parse eNB configuration file %s, enb %d  si_ValidityTime_r13 unknown value!\n",
+			    RC.config_file_name, i);
 	      }
-
-	    } // end for loop (rach ce level info)
-
-
-	    /**  BCCH CONFIG */
-	    switch (bcch_modificationPeriodCoeff) {
-	    case 2:
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n2;
-	      break;
-	    case 4:
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n4;
-	      break;
-	    case 8:
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n8;
-	      break;
-	    case 16:
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n16;
-	      break;
-	    default:
-	      AssertFatal (0,
-			   "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for bcch_modificationPeriodCoeff choice: 2,4,8,16",
-			   RC.config_file_name, i, bcch_modificationPeriodCoeff);
-
-	      break;
-	    }
-
-	    /**  PCCH CONFIG */
-	    if (!strcmp(pcch_defaultPagingCycle, "rf32")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle = PCCH_Config__defaultPagingCycle_rf32;
-	    } else if (!strcmp(pcch_defaultPagingCycle, "rf64")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle = PCCH_Config__defaultPagingCycle_rf64;
-	    } else if (!strcmp(pcch_defaultPagingCycle, "rf128")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle = PCCH_Config__defaultPagingCycle_rf128;
-	    } else if (!strcmp(pcch_defaultPagingCycle, "rf256")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle = PCCH_Config__defaultPagingCycle_rf256;
-	    } else {
-	      AssertFatal (0,
-			   "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_defaultPagingCycle choice: 32,64,128,256!\n",
-			   RC.config_file_name, i, pcch_defaultPagingCycle);
-	    }
-
-
-
-	    if (strcmp(pcch_nB, "fourT") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_fourT;
-	    }
-	    else if (strcmp(pcch_nB, "twoT") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_twoT;
-	    }
-	    else if (strcmp(pcch_nB, "oneT") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneT;
-	    }
-	    else if (strcmp(pcch_nB, "halfT") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_halfT;
-	    }
-	    else if (strcmp(pcch_nB, "quarterT") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_quarterT;
-	    }
-	    else if (strcmp(pcch_nB, "oneEighthT") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneEighthT;
-	    }
-	    else if (strcmp(pcch_nB, "oneSixteenthT") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneSixteenthT;
-	    }
-	    else if (strcmp(pcch_nB, "oneThirtySecondT") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneThirtySecondT;
-	    }
-	    else
-	      AssertFatal(0,
-			  "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_nB choice: fourT,twoT,oneT,halfT,quarterT,oneighthT,oneSixteenthT,oneThirtySecondT !\n",
-			  RC.config_file_name, i, pcch_defaultPagingCycle);
-
-
-	    /** PRACH CONFIG */
-
-	    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_root =  prach_root;
-	    if ((prach_root <0) || (prach_root > 1023))
-	      AssertFatal (0,
-			   "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_root choice: 0..1023 !\n",
-			   RC.config_file_name, i, prach_root);
-
+	      
+	      
+	      if (!strcmp(freqHoppingParametersDL_r13, "ENABLE"))
+		{
+		  RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[j] = TRUE;
+		  
+		  if (!strcmp(interval_DLHoppingConfigCommonModeA_r13, "interval-TDD-r13"))
+		    RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[j] = FALSE;
+		  else
+		    RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[j] = TRUE;
+		  RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13_val[j] = interval_DLHoppingConfigCommonModeA_r13_val;
+		  
+		  if (!strcmp(interval_DLHoppingConfigCommonModeB_r13, "interval-TDD-r13"))
+		    RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13[j] = FALSE;
+		  else
+		    RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13[j] = TRUE;
+		  RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13_val[j] = interval_DLHoppingConfigCommonModeB_r13_val;
+		  
+		  RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = calloc(1, sizeof(long));
+		  if (!strcmp(mpdcch_pdsch_HoppingNB_r13, "nb2")) {
+		    *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = 0;
+		  } else if (!strcmp(mpdcch_pdsch_HoppingNB_r13, "nb4")) {
+		    *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = 1;
+		  } else {
+		    AssertFatal(0,
+				"Failed to parse eNB configuration file %s, enb %d  mpdcch_pdsch_HoppingNB_r13 unknown value!\n",
+				RC.config_file_name, i);
+		}
 
 
-
-
-	    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_config_index = prach_config_index;
-	    if ((prach_config_index <0) || (prach_config_index > 63))
-	      AssertFatal (0,
-			   "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_config_index choice: 0..1023 !\n",
-			   RC.config_file_name, i, prach_config_index);
-
-
-
-
-
-	    if (!prach_high_speed)
-	      AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n",
-			   RC.config_file_name, i, ENB_CONFIG_STRING_PRACH_HIGH_SPEED);
-	    else if (strcmp(prach_high_speed, "ENABLE") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_high_speed = TRUE;
-	    }
-	    else if (strcmp(prach_high_speed, "DISABLE") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_high_speed = FALSE;
-	    }
-	    else
-	      AssertFatal(0,
-			  "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prach_config choice: ENABLE,DISABLE !\n",
-			  RC.config_file_name, i, prach_high_speed);
-
-
-
-
-	    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_zero_correlation = prach_zero_correlation;
-	    if ((prach_zero_correlation <0) || (prach_zero_correlation > 15))
-	      AssertFatal (0,
-			   "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_zero_correlation choice: 0..15!\n",
-			   RC.config_file_name, i, prach_zero_correlation);
-
-
-
-	    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_freq_offset = prach_freq_offset;
-	    if ((prach_freq_offset <0) || (prach_freq_offset > 94))
-	      AssertFatal (0,
-			   "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_freq_offset choice: 0..94!\n",
-			   RC.config_file_name, i, prach_freq_offset);
-
-
-
-
-	    /** PDSCH Config Common */
-
-	    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pdsch_referenceSignalPower = pdsch_referenceSignalPower;
-	    if ((pdsch_referenceSignalPower <-60) || (pdsch_referenceSignalPower > 50))
-	      AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_referenceSignalPower choice:-60..50!\n",
-			   RC.config_file_name, i, pdsch_referenceSignalPower);
-
-
-
-
-	    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pdsch_p_b = pdsch_p_b;
-	    if ((pdsch_p_b <0) || (pdsch_p_b > 3))
-	      AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_p_b choice: 0..3!\n",
-			   RC.config_file_name, i, pdsch_p_b);
-
-
-
-
-
-
-	    /** PUSCH Config Common */
-
-	    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_n_SB = pusch_n_SB;
-	    if ((pusch_n_SB <1) || (pusch_n_SB > 4))
-	      AssertFatal (0,
-			   "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_n_SB choice: 1..4!\n",
-			   RC.config_file_name, i, pusch_n_SB);
-
-
-
-
-
-	    if (!pusch_hoppingMode)
-	      AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d define %s: interSubframe,intraAndInterSubframe!\n",
-			   RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_HOPPINGMODE);
-	    else if (strcmp(pusch_hoppingMode, "interSubFrame") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_interSubFrame;
-	    }
-	    else if (strcmp(pusch_hoppingMode, "intraAndInterSubFrame") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_intraAndInterSubFrame;
-	    }
-	    else
-	      AssertFatal(0,
-			  "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingMode choice: interSubframe,intraAndInterSubframe!\n",
-			  RC.config_file_name, i, pusch_hoppingMode);
-
-
-
-
-
-	    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_hoppingOffset = pusch_hoppingOffset;
-	    if ((pusch_hoppingOffset<0) || (pusch_hoppingOffset>98))
-	      AssertFatal (0,
-			   "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingOffset choice: 0..98!\n",
-			   RC.config_file_name, i, pusch_hoppingMode);
-
-
-
-
-	    if (!pusch_enable64QAM)
-	      AssertFatal (0,
-			   "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n",
-			   RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_ENABLE64QAM);
-	    else if (strcmp(pusch_enable64QAM, "ENABLE") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_enable64QAM = TRUE;
-	    }
-	    else if (strcmp(pusch_enable64QAM, "DISABLE") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_enable64QAM = FALSE;
-	    }
-	    else
-	      AssertFatal(0,
-			  "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_enable64QAM choice: ENABLE,DISABLE!\n",
-			  RC.config_file_name, i, pusch_enable64QAM);
-
-
-
-
-	    if (!pusch_groupHoppingEnabled)
-	      AssertFatal(0,
-			  "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n",
-			  RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN);
-	    else if (strcmp(pusch_groupHoppingEnabled, "ENABLE") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_groupHoppingEnabled = TRUE;
-	    }
-	    else if (strcmp(pusch_groupHoppingEnabled, "DISABLE") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_groupHoppingEnabled = FALSE;
-	    }
-	    else
-	      AssertFatal(0,
-			  "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_groupHoppingEnabled choice: ENABLE,DISABLE!\n",
-			  RC.config_file_name, i, pusch_groupHoppingEnabled);
-
-
-
-
-
-	    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_groupAssignment = pusch_groupAssignment;
-	    if ((pusch_groupAssignment<0)||(pusch_groupAssignment>29))
-	      AssertFatal (0,
-			   "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_groupAssignment choice: 0..29!\n",
-			   RC.config_file_name, i, pusch_groupAssignment);
-
-
-
-
-	    if (!pusch_sequenceHoppingEnabled)
-	      AssertFatal (0,
-			   "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n",
-			   RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN);
-	    else if (strcmp(pusch_sequenceHoppingEnabled, "ENABLE") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_sequenceHoppingEnabled = TRUE;
-	    }
-	    else if (strcmp(pusch_sequenceHoppingEnabled, "DISABLE") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_sequenceHoppingEnabled = FALSE;
-	    }
-	    else
-	      AssertFatal(0,
-			  "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_sequenceHoppingEnabled choice: ENABLE,DISABLE!\n",
-			  RC.config_file_name, i, pusch_sequenceHoppingEnabled);
-
-
-
-
-
-	    /** PUCCH Config Common */
-	    /** TO BE CONTINUED */
-
-	    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_delta_shift = pucch_delta_shift-1;
-
-	    if ((pucch_delta_shift <1) || (pucch_delta_shift > 3))
-	      AssertFatal (0,
-			   "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_delta_shift choice: 1..3!\n",
-			   RC.config_file_name, i, pucch_delta_shift);
-
-
-	    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_nRB_CQI = pucch_nRB_CQI;
-
-	    if ((pucch_nRB_CQI <0) || (pucch_nRB_CQI > 98))
-	      AssertFatal (0,
-			   "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nRB_CQI choice: 0..98!\n",
-			   RC.config_file_name, i, pucch_nRB_CQI);
-
-	    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_nCS_AN = pucch_nCS_AN;
-
-	    if ((pucch_nCS_AN <0) || (pucch_nCS_AN > 7))
-	      AssertFatal (0,
-			   "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nCS_AN choice: 0..7!\n",
-			   RC.config_file_name, i, pucch_nCS_AN);
-
-
-	    /**
-	       check if pucch_n1_AN is in necessary the BR parameters
-	    */
-
-
-
-	    RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_p0_Nominal = pusch_p0_Nominal;
-
-	    if ((pusch_p0_Nominal < -126) || (pusch_p0_Nominal > 24))
-	      AssertFatal(0,
-			  "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_p0_Nominal choice: -126..24 !\n",
-			  RC.config_file_name, i, pusch_p0_Nominal);
-
-	    if (strcmp(pusch_alpha, "AL0") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al0;
-	    } else if (strcmp(pusch_alpha, "AL04") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al04;
-	    } else if (strcmp(pusch_alpha, "AL05") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al05;
-	    } else if (strcmp(pusch_alpha, "AL06") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al06;
-	    } else if (strcmp(pusch_alpha, "AL07") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al07;
-	    } else if (strcmp(pusch_alpha, "AL08") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al08;
-	    } else if (strcmp(pusch_alpha, "AL09") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al09;
-	    } else if (strcmp(pusch_alpha, "AL1") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al1;
-	    }
-	    else
-	      AssertFatal(0,
-			  "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_Alpha choice: AL0,AL04,AL05,AL06,AL07,AL08,AL09,AL1!\n",
-			  RC.config_file_name, i, pusch_alpha);
-
-	    RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_p0_Nominal = pucch_p0_Nominal;
-	    if ((pucch_p0_Nominal < -127) || (pucch_p0_Nominal > -96))
-	      AssertFatal(0,
-			  "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_p0_Nominal choice: -127..-96 !\n",
-			  RC.config_file_name, i, pucch_p0_Nominal);
-
-	    if (strcmp(pucch_deltaF_Format1, "deltaF_2") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1 = DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF_2;
-	    }
-	    else if (strcmp(pucch_deltaF_Format1, "deltaF0") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF0;
-	    }
-	    else if (strcmp(pucch_deltaF_Format1, "deltaF2") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF2;
-	    }
-	    else
-	      AssertFatal(0,
-			  "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1 choice: deltaF_2,dltaF0,deltaF2!\n",
-			  RC.config_file_name, i, pucch_deltaF_Format1);
-
-	    if (strcmp(pucch_deltaF_Format1b, "deltaF1") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF1;
-	    }
-	    else if (strcmp(pucch_deltaF_Format1b, "deltaF3") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF3;
-	    }
-	    else if (strcmp(pucch_deltaF_Format1b, "deltaF5") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF5;
-	    }
-	    else
-	      AssertFatal(0,
-			  "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1b choice: deltaF1,dltaF3,deltaF5!\n",
-			  RC.config_file_name, i, pucch_deltaF_Format1b);
-
-
-	    if (strcmp(pucch_deltaF_Format2, "deltaF_2") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF_2;
-	    }
-	    else if (strcmp(pucch_deltaF_Format2, "deltaF0") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF0;
-	    }
-	    else if (strcmp(pucch_deltaF_Format2, "deltaF1") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF1;
-	    }
-	    else if (strcmp(pucch_deltaF_Format2, "deltaF2") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF2;
-	    }
-	    else
-	      AssertFatal(0,
-			  "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2 choice: deltaF_2,dltaF0,deltaF1,deltaF2!\n",
-			  RC.config_file_name, i, pucch_deltaF_Format2);
-
-	    if (strcmp(pucch_deltaF_Format2a, "deltaF_2") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF_2;
-	    }
-	    else if (strcmp(pucch_deltaF_Format2a, "deltaF0") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF0;
-	    }
-	    else if (strcmp(pucch_deltaF_Format2a, "deltaF2") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF2;
-	    }
-	    else
-	      AssertFatal(0,
-			  "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2a choice: deltaF_2,dltaF0,deltaF2!\n",
-			  RC.config_file_name, i, pucch_deltaF_Format2a);
-
-	    if (strcmp(pucch_deltaF_Format2b, "deltaF_2") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF_2;
-	    }
-	    else if (strcmp(pucch_deltaF_Format2b, "deltaF0") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF0;
-	    }
-	    else if (strcmp(pucch_deltaF_Format2b, "deltaF2") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF2;
-	    }
-	    else
-	      AssertFatal(0,
-			  "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2b choice: deltaF_2,dltaF0,deltaF2!\n",
-			  RC.config_file_name, i, pucch_deltaF_Format2b);
-
-
-
-	    RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].msg3_delta_Preamble = msg3_delta_Preamble;
-
-	    if ((msg3_delta_Preamble < -1) || (msg3_delta_Preamble > 6))
-	      AssertFatal(0,
-			  "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for msg3_delta_Preamble choice: -1..6 !\n",
-			  RC.config_file_name, i, msg3_delta_Preamble);
-
-
-
-
-	    if (!strcmp(prach_ConfigCommon_v1310, "ENABLE"))
-	      {
-		RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_ConfigCommon_v1310 = TRUE;
-
-		RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = calloc(1, sizeof(BOOLEAN_t));
-
-		if (!strcmp(mpdcch_startSF_CSS_RA_r13, "tdd-r13")) {
-		  *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = FALSE;
-		} else {
-		  *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = TRUE;
+		  RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = calloc(1, sizeof(long));
+		  *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = mpdcch_pdsch_HoppingOffset_r13;
+		  
 		}
-
-		if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "v1")) {
-		  RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 0;
-		} else if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "v1dot5")) {
-		  RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 1;
-		} else if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "v2")) {
-		  RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 2;
-		} else if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "v2dot5")) {
-		  RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 3;
-		} else if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "v4")) {
-		  RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 4;
-		} else if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "v5")) {
-		  RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 5;
-		} else if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "v8")) {
-		  RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 6;
-		} else if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "10")) {
-		  RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 7;
-		} else {
-		  AssertFatal(0,
-			      "Failed to parse eNB configuration file %s, enb %d mpdcch_startSF_CSS_RA_r13_val! Unknown Value !!\n",
-			      RC.config_file_name, i);
+	      else
+		{
+		  RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[j] = FALSE;
 		}
-
-
-		RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_HoppingOffset_r13 = calloc(1, sizeof(long));
-		*RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_HoppingOffset_r13 = prach_HoppingOffset_r13;
-	      } else {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_ConfigCommon_v1310 = FALSE;
-	    }
-
-
-	    RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeA_r13[j] = CALLOC(1, sizeof(long));
-	    if (!strcmp(pdsch_maxNumRepetitionCEmodeA_r13, "r16")) {
-	      *RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeA_r13[j] = 0;
-	    } else if (!strcmp(pdsch_maxNumRepetitionCEmodeA_r13, "r32")) {
-	      *RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeA_r13[j] = 1;
-	    } else {
-	      AssertFatal (0,
-			   "Failed to parse eNB configuration file %s, pdsch_maxNumRepetitionCEmodeA_r13 unknown value!\n",
-			   RC.config_file_name);
-	    }
-
-
-	    RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeA_r13[j] = CALLOC(1, sizeof(long));
-	    if (!strcmp(pusch_maxNumRepetitionCEmodeA_r13, "r8")) {
-	      *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeA_r13[j] =  0;
-	    } else if (!strcmp(pusch_maxNumRepetitionCEmodeA_r13, "r16")) {
-	      *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeA_r13[j] =  1;
-	    } else if (!strcmp(pusch_maxNumRepetitionCEmodeA_r13, "r32")) {
-	      *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeA_r13[j] =  2;
-	    } else {
-	      AssertFatal (0,
-			   "Failed to parse eNB configuration file %s, pusch_maxNumRepetitionCEmodeA_r13 unknown value!\n",
-			   RC.config_file_name);
-	    }
-
-
-
-	    char rsrpRangeListPath[MAX_OPTNAME_SIZE * 2];
-	    config_getlist(&rsrprangelist, NULL, 0, brparamspath);
-	    RRC_CONFIGURATION_REQ (msg_p).rsrp_range_list_size[j] = rsrprangelist.numelt;
-
-
-	    int rsrprangeindex;
-	    for (rsrprangeindex = 0; rsrprangeindex < rsrprangelist.numelt; rsrprangeindex++) {
-	      sprintf(rsrpRangeListPath, "%s.%s.[%i]", brparamspath, ENB_CONFIG_STRING_RSRP_RANGE_LIST, rsrprangeindex);
-	      config_get(rsrprangeParams, sizeof(rsrprangeParams) / sizeof(paramdef_t), rsrpRangeListPath);
-	      RRC_CONFIGURATION_REQ (msg_p).rsrp_range[j][rsrprangeindex] = rsrp_range_br;
-
-	    }
-
-
-	    char prachparameterscePath[MAX_OPTNAME_SIZE * 2];
-	    config_getlist(&prachParamslist, NULL, 0, brparamspath);
-	    RRC_CONFIGURATION_REQ (msg_p).prach_parameters_list_size[j] = prachParamslist.numelt;
-
-	    int prachparamsindex;
-	    for (prachparamsindex = 0; prachparamsindex < prachParamslist.numelt; prachparamsindex++) {
-	      sprintf(prachparameterscePath, "%s.%s.[%i]", brparamspath, ENB_CONFIG_STRING_PRACH_PARAMETERS_CE_R13, prachparamsindex);
-	      config_get(prachParams, sizeof(prachParams) / sizeof(paramdef_t), prachparameterscePath);
-
-	      RRC_CONFIGURATION_REQ (msg_p).prach_config_index[j][prachparamsindex]                  = prach_config_index_br;
-	      RRC_CONFIGURATION_REQ (msg_p).prach_freq_offset[j][prachparamsindex]                   = prach_freq_offset_br;
-
-	      RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prachparamsindex] = calloc(1, sizeof(long));
-	      *RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prachparamsindex] = prach_StartingSubframe_r13;
-
-	      RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prachparamsindex] = calloc(1, sizeof(long));
-	      if (!strcmp(maxNumPreambleAttemptCE_r13, "n3")) {
-		*RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prachparamsindex] = 0;
-	      } else if (!strcmp(maxNumPreambleAttemptCE_r13, "n4")) {
-		*RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prachparamsindex] = 1;
-	      } else if (!strcmp(maxNumPreambleAttemptCE_r13, "n5")) {
-		*RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prachparamsindex] = 2;
-	      } else if (!strcmp(maxNumPreambleAttemptCE_r13, "n6")) {
-		*RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prachparamsindex] = 3;
-	      } else if (!strcmp(maxNumPreambleAttemptCE_r13, "n7")) {
-		*RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prachparamsindex] = 4;
-	      } else if (!strcmp(maxNumPreambleAttemptCE_r13, "n8")) {
-		*RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prachparamsindex] = 5;
-	      } else if (!strcmp(maxNumPreambleAttemptCE_r13, "n10")) {
-		*RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prachparamsindex] = 6;
-	      } else if (!strcmp(maxNumPreambleAttemptCE_r13, "spare1")) {
-		*RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prachparamsindex] = 7;
-	      } else {
+	      
+	      /** ------------------------------SIB2/3 BR------------------------------------------ */
+	      
+	      
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_root =  prach_root_emtc;
+	      
+	      if ((prach_root_emtc <0) || (prach_root_emtc > 1023))
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_root choice: 0..1023 !\n",
+			     RC.config_file_name, i, prach_root_emtc);
+	      
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_config_index = prach_config_index_emtc;
+	      
+	      if ((prach_config_index_emtc <0) || (prach_config_index_emtc > 63))
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_config_index choice: 0..1023 !\n",
+			     RC.config_file_name, i, prach_config_index);
+	      
+	      if (!prach_high_speed_emtc)
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n",
+			     RC.config_file_name, i, ENB_CONFIG_STRING_PRACH_HIGH_SPEED);
+	      else if (strcmp(prach_high_speed_emtc, "ENABLE") == 0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_high_speed = TRUE;
+	      } else if (strcmp(prach_high_speed_emtc, "DISABLE") == 0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_high_speed = FALSE;
+	      } else
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prach_config choice: ENABLE,DISABLE !\n",
+			     RC.config_file_name, i, prach_high_speed_emtc);
+	      
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_zero_correlation =prach_zero_correlation_emtc;
+	      
+	      if ((prach_zero_correlation_emtc <0) || (prach_zero_correlation_emtc > 15))
 		AssertFatal (0,
-			     "Failed to parse eNB configuration file %s, maxNumPreambleAttemptCE_r13 unknown value !! %d!\n",
-			     RC.config_file_name, nb_cc++);
+			     "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_zero_correlation choice: 0..15!\n",
+			     RC.config_file_name, i, prach_zero_correlation_emtc);
+	      
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_freq_offset = prach_freq_offset_emtc;
+	      
+	      if ((prach_freq_offset_emtc <0) || (prach_freq_offset_emtc > 94))
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_freq_offset choice: 0..94!\n",
+			     RC.config_file_name, i, prach_freq_offset);
+	      
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_delta_shift = pucch_delta_shift_emtc-1;
+	      
+	      if ((pucch_delta_shift_emtc <1) || (pucch_delta_shift_emtc > 3))
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_delta_shift choice: 1..3!\n",
+			     RC.config_file_name, i, pucch_delta_shift_emtc);
+	      
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_nRB_CQI = pucch_nRB_CQI_emtc;
+	      
+	      if ((pucch_nRB_CQI_emtc <0) || (pucch_nRB_CQI_emtc > 98))
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nRB_CQI choice: 0..98!\n",
+			     RC.config_file_name, i, pucch_nRB_CQI_emtc);
+	      
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_nCS_AN = pucch_nCS_AN_emtc;
+	      
+	      if ((pucch_nCS_AN_emtc <0) || (pucch_nCS_AN_emtc > 7))
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nCS_AN choice: 0..7!\n",
+			     RC.config_file_name, i, pucch_nCS_AN_emtc);
+	      
+	      //#if (RRC_VERSION < MAKE_VERSION(10, 0, 0))
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_n1_AN = pucch_n1_AN_emtc;
+	      
+	      if ((pucch_n1_AN_emtc <0) || (pucch_n1_AN_emtc > 2047))
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_n1_AN choice: 0..2047!\n",
+			     RC.config_file_name, i, pucch_n1_AN_emtc);
+	      
+	      //#endif
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pdsch_referenceSignalPower = pdsch_referenceSignalPower_emtc;
+	      
+	      if ((pdsch_referenceSignalPower_emtc <-60) || (pdsch_referenceSignalPower_emtc > 50))
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_referenceSignalPower choice:-60..50!\n",
+			     RC.config_file_name, i, pdsch_referenceSignalPower);
+	      
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pdsch_p_b = pdsch_p_b_emtc;
+	      
+	      if ((pdsch_p_b_emtc <0) || (pdsch_p_b_emtc > 3))
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_p_b choice: 0..3!\n",
+			     RC.config_file_name, i, pdsch_p_b_emtc);
+	      
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_n_SB = pusch_n_SB_emtc;
+	      
+	      if ((pusch_n_SB_emtc <1) || (pusch_n_SB_emtc > 4))
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_n_SB choice: 1..4!\n",
+			     RC.config_file_name, i, pusch_n_SB_emtc);
+	      
+	      if (!pusch_hoppingMode_emtc)
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d define %s: interSubframe,intraAndInterSubframe!\n",
+			     RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_HOPPINGMODE);
+	      else if (strcmp(pusch_hoppingMode_emtc,"interSubFrame")==0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_interSubFrame;
+	      }  else if (strcmp(pusch_hoppingMode_emtc,"intraAndInterSubFrame")==0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_intraAndInterSubFrame;
+	      } else
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingMode choice: interSubframe,intraAndInterSubframe!\n",
+			     RC.config_file_name, i, pusch_hoppingMode_emtc);
+	      
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_hoppingOffset = pusch_hoppingOffset_emtc;
+	      
+	      if ((pusch_hoppingOffset_emtc<0) || (pusch_hoppingOffset_emtc>98))
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingOffset choice: 0..98!\n",
+			     RC.config_file_name, i, pusch_hoppingMode_emtc);
+	      
+	      if (!pusch_enable64QAM_emtc)
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n",
+			     RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_ENABLE64QAM);
+	      else if (strcmp(pusch_enable64QAM_emtc, "ENABLE") == 0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_enable64QAM = TRUE;
+	      }  else if (strcmp(pusch_enable64QAM_emtc, "DISABLE") == 0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_enable64QAM = FALSE;
+	      } else
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_enable64QAM choice: ENABLE,DISABLE!\n",
+			     RC.config_file_name, i, pusch_enable64QAM_emtc);
+	      
+	      if (!pusch_groupHoppingEnabled_emtc)
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n",
+			     RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN);
+	      else if (strcmp(pusch_groupHoppingEnabled_emtc, "ENABLE") == 0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_groupHoppingEnabled = TRUE;
+	      }  else if (strcmp(pusch_groupHoppingEnabled_emtc, "DISABLE") == 0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_groupHoppingEnabled= FALSE;
+	      } else
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_groupHoppingEnabled choice: ENABLE,DISABLE!\n",
+			     RC.config_file_name, i, pusch_groupHoppingEnabled_emtc);
+	      
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_groupAssignment = pusch_groupAssignment_emtc;
+	      
+	      if ((pusch_groupAssignment_emtc<0)||(pusch_groupAssignment_emtc>29))
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_groupAssignment choice: 0..29!\n",
+			     RC.config_file_name, i, pusch_groupAssignment_emtc);
+	      
+	      if (!pusch_sequenceHoppingEnabled_emtc)
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n",
+			     RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN);
+	      else if (strcmp(pusch_sequenceHoppingEnabled_emtc, "ENABLE") == 0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_sequenceHoppingEnabled = TRUE;
+	      }  else if (strcmp(pusch_sequenceHoppingEnabled_emtc, "DISABLE") == 0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_sequenceHoppingEnabled = FALSE;
+	      } else
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_sequenceHoppingEnabled choice: ENABLE,DISABLE!\n",
+			     RC.config_file_name, i, pusch_sequenceHoppingEnabled_emtc);
+	      
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_nDMRS1= pusch_nDMRS1_emtc;  //cyclic_shift in RRC!
+	      
+	      if ((pusch_nDMRS1_emtc <0) || (pusch_nDMRS1_emtc>7))
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_nDMRS1 choice: 0..7!\n",
+			     RC.config_file_name, i, pusch_nDMRS1_emtc);
+	      
+	      if (strcmp(phich_duration_emtc,"NORMAL")==0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].phich_duration= PHICH_Config__phich_Duration_normal;
+	      } else if (strcmp(phich_duration_emtc,"EXTENDED")==0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].phich_duration= PHICH_Config__phich_Duration_extended;
+	      } else
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_duration choice: NORMAL,EXTENDED!\n",
+			     RC.config_file_name, i, phich_duration_emtc);
+	      
+	      if (strcmp(phich_resource_emtc,"ONESIXTH")==0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].phich_resource= PHICH_Config__phich_Resource_oneSixth ;
+	      } else if (strcmp(phich_resource_emtc,"HALF")==0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].phich_resource= PHICH_Config__phich_Resource_half;
+	      } else if (strcmp(phich_resource_emtc,"ONE")==0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].phich_resource= PHICH_Config__phich_Resource_one;
+	      } else if (strcmp(phich_resource_emtc,"TWO")==0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].phich_resource= PHICH_Config__phich_Resource_two;
+	      } else
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_resource choice: ONESIXTH,HALF,ONE,TWO!\n",
+			     RC.config_file_name, i, phich_resource_emtc);
+	      
+	      printf("phich.resource eMTC %ld (%s), phich.duration eMTC %ld (%s)\n",
+		     RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].phich_resource,phich_resource_emtc,
+		     RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].phich_duration,phich_duration_emtc);
+	      
+	      if (strcmp(srs_enable_emtc, "ENABLE") == 0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_enable= TRUE;
+	      } else if (strcmp(srs_enable_emtc, "DISABLE") == 0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_enable= FALSE;
+	      } else
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n",
+			     RC.config_file_name, i, srs_enable_emtc);
+	      
+	      if (RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_enable== TRUE) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_BandwidthConfig= srs_BandwidthConfig_emtc;
+		
+		if ((srs_BandwidthConfig_emtc < 0) || (srs_BandwidthConfig_emtc >7))
+		  AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value %d for srs_BandwidthConfig choice: 0...7\n",
+			       RC.config_file_name, i, srs_BandwidthConfig_emtc);
+		
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_SubframeConfig= srs_SubframeConfig_emtc;
+		
+		if ((srs_SubframeConfig_emtc<0) || (srs_SubframeConfig_emtc>15))
+		  AssertFatal (0,
+			       "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for srs_SubframeConfig choice: 0..15 !\n",
+			       RC.config_file_name, i, srs_SubframeConfig_emtc);
+		
+		if (strcmp(srs_ackNackST_emtc, "ENABLE") == 0) {
+		  RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_ackNackST= TRUE;
+		} else if (strcmp(srs_ackNackST, "DISABLE") == 0) {
+		  RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_ackNackST= FALSE;
+		} else
+		  AssertFatal (0,
+			       "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n",
+			       RC.config_file_name, i, srs_ackNackST_emtc);
+		
+		if (strcmp(srs_MaxUpPts_emtc, "ENABLE") == 0) {
+		  RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_MaxUpPts= TRUE;
+		} else if (strcmp(srs_MaxUpPts_emtc, "DISABLE") == 0) {
+		  RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_MaxUpPts= FALSE;
+		} else
+		  AssertFatal (0,
+			       "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_MaxUpPts choice: ENABLE,DISABLE !\n",
+			       RC.config_file_name, i, srs_MaxUpPts_emtc);
 	      }
-
-
-
-	      if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n1")) {
-		RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prachparamsindex] = 0;
-	      } else if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n2")) {
-		RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prachparamsindex] = 1;
-	      } else if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n4")) {
-		RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prachparamsindex] = 2;
-	      } else if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n8")) {
-		RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prachparamsindex] = 3;
-	      } else if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n16")) {
-		RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prachparamsindex] = 4;
-	      } else if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n32")) {
-		RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prachparamsindex] = 5;
-	      } else if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n64")) {
-		RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prachparamsindex] = 6;
-	      } else if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n128")) {
-		RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prachparamsindex] = 7;
-	      } else {
+	      
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_p0_Nominal= pusch_p0_Nominal_emtc;
+	      
+	      if ((pusch_p0_Nominal_emtc<-126) || (pusch_p0_Nominal_emtc>24))
 		AssertFatal (0,
-			     "Failed to parse eNB configuration file %s, numRepetitionPerPreambleAttempt_r13 unknown value !! %d!\n",
-			     RC.config_file_name, nb_cc++);
+			     "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_p0_Nominal choice: -126..24 !\n",
+			     RC.config_file_name, i, pusch_p0_Nominal);
+	      
+#if (RRC_VERSION <= MAKE_VERSION(12, 0, 0))
+	      
+	      if (strcmp(pusch_alpha_emtc,"AL0")==0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= UplinkPowerControlCommon__alpha_al0;
+	      } else if (strcmp(pusch_alpha_emtc,"AL04")==0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= UplinkPowerControlCommon__alpha_al04;
+	      } else if (strcmp(pusch_alpha_emtc,"AL05")==0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= UplinkPowerControlCommon__alpha_al05;
+	      } else if (strcmp(pusch_alpha_emtc,"AL06")==0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= UplinkPowerControlCommon__alpha_al06;
+	      } else if (strcmp(pusch_alpha_emtc,"AL07")==0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= UplinkPowerControlCommon__alpha_al07;
+	      } else if (strcmp(pusch_alpha_emtc,"AL08")==0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= UplinkPowerControlCommon__alpha_al08;
+	      } else if (strcmp(pusch_alpha_emtc,"AL09")==0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= UplinkPowerControlCommon__alpha_al09;
+	      } else if (strcmp(pusch_alpha_emtc,"AL1")==0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= UplinkPowerControlCommon__alpha_al1;
 	      }
-
-
-
-
-	      if (!strcmp(mpdcch_NumRepetition_RA_r13, "r1")) {
-		RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 0;
-	      } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r2")) {
-		RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 1;
-	      } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r4")) {
-		RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 2;
-	      } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r8")) {
-		RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 3;
-	      } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r16")) {
-		RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 4;
-	      } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r32")) {
-		RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 5;
-	      } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r64")) {
-		RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 6;
-	      } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r128")) {
-		RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 7;
-	      } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r256")) {
-		RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 8;
-	      } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r512")) {
-		RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 9;
-	      } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r1024")) {
-		RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 10;
-	      } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r2048")) {
-		RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 11;
-	      } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "spare4")) {
-		RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 12;
-	      } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "spare3")) {
-		RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 13;
-	      } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "spare2")) {
-		RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 14;
-	      } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "spare1")) {
-		RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 15;
+	      
+#endif
+#if (RRC_VERSION >= MAKE_VERSION(12, 0, 0))
+	      
+	      if (strcmp(pusch_alpha_emtc,"AL0")==0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= Alpha_r12_al0;
+	      } else if (strcmp(pusch_alpha_emtc,"AL04")==0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= Alpha_r12_al04;
+	      } else if (strcmp(pusch_alpha_emtc,"AL05")==0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= Alpha_r12_al05;
+	      } else if (strcmp(pusch_alpha_emtc,"AL06")==0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= Alpha_r12_al06;
+	      } else if (strcmp(pusch_alpha_emtc,"AL07")==0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= Alpha_r12_al07;
+	      } else if (strcmp(pusch_alpha_emtc,"AL08")==0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= Alpha_r12_al08;
+	      } else if (strcmp(pusch_alpha_emtc,"AL09")==0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= Alpha_r12_al09;
+	      } else if (strcmp(pusch_alpha_emtc,"AL1")==0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= Alpha_r12_al1;
+	      }
+	      
+#endif
+	      else
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_Alpha choice: AL0,AL04,AL05,AL06,AL07,AL08,AL09,AL1!\n",
+			     RC.config_file_name, i, pusch_alpha);
+	      
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_p0_Nominal= pucch_p0_Nominal_emtc;
+	      
+	      if ((pucch_p0_Nominal_emtc<-127) || (pucch_p0_Nominal_emtc>-96))
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_p0_Nominal choice: -127..-96 !\n",
+			     RC.config_file_name, i, pucch_p0_Nominal_emtc);
+	      
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].msg3_delta_Preamble= msg3_delta_Preamble_emtc;
+	      
+	      if ((msg3_delta_Preamble_emtc<-1) || (msg3_delta_Preamble_emtc>6))
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for msg3_delta_Preamble choice: -1..6 !\n",
+			     RC.config_file_name, i, msg3_delta_Preamble_emtc);
+	      
+	      if (strcmp(pucch_deltaF_Format1_emtc,"deltaF_2")==0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF_2;
+	      } else if (strcmp(pucch_deltaF_Format1_emtc,"deltaF0")==0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF0;
+	      } else if (strcmp(pucch_deltaF_Format1_emtc,"deltaF2")==0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF2;
+	      } else
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1 choice: deltaF_2,dltaF0,deltaF2!\n",
+			     RC.config_file_name, i, pucch_deltaF_Format1_emtc);
+	      
+	      if (strcmp(pucch_deltaF_Format1b_emtc,"deltaF1")==0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF1;
+	      } else if (strcmp(pucch_deltaF_Format1b_emtc,"deltaF3")==0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF3;
+	      } else if (strcmp(pucch_deltaF_Format1b_emtc,"deltaF5")==0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF5;
+	      } else
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1b choice: deltaF1,dltaF3,deltaF5!\n",
+			     RC.config_file_name, i, pucch_deltaF_Format1b_emtc);
+	      
+	      if (strcmp(pucch_deltaF_Format2_emtc,"deltaF_2")==0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF_2;
+	      } else if (strcmp(pucch_deltaF_Format2_emtc,"deltaF0")==0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF0;
+	      } else if (strcmp(pucch_deltaF_Format2_emtc,"deltaF1")==0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF1;
+	      } else if (strcmp(pucch_deltaF_Format2_emtc,"deltaF2")==0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF2;
+	      } else
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2 choice: deltaF_2,dltaF0,deltaF1,deltaF2!\n",
+			     RC.config_file_name, i, pucch_deltaF_Format2_emtc);
+	      
+	      if (strcmp(pucch_deltaF_Format2a_emtc,"deltaF_2")==0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF_2;
+	      } else if (strcmp(pucch_deltaF_Format2a_emtc,"deltaF0")==0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF0;
+	      } else if (strcmp(pucch_deltaF_Format2a_emtc,"deltaF2")==0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF2;
+	      } else
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2a choice: deltaF_2,dltaF0,deltaF2!\n",
+			     RC.config_file_name, i, pucch_deltaF_Format2a_emtc);
+	      
+	      if (strcmp(pucch_deltaF_Format2b_emtc,"deltaF_2")==0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF_2;
+	      } else if (strcmp(pucch_deltaF_Format2b_emtc,"deltaF0")==0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF0;
+	      } else if (strcmp(pucch_deltaF_Format2b_emtc,"deltaF2")==0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF2;
+	      } else
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2b choice: deltaF_2,dltaF0,deltaF2!\n",
+			     RC.config_file_name, i, pucch_deltaF_Format2b_emtc);
+	      
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles= (rach_numberOfRA_Preambles_emtc/4)-1;
+	      
+	      if ((rach_numberOfRA_Preambles_emtc <4) || (rach_numberOfRA_Preambles_emtc >64) || ((rach_numberOfRA_Preambles_emtc&3)!=0))
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_numberOfRA_Preambles choice: 4,8,12,...,64!\n",
+			     RC.config_file_name, i, rach_numberOfRA_Preambles_emtc);
+	      
+	      if (strcmp(rach_preamblesGroupAConfig_emtc, "ENABLE") == 0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preamblesGroupAConfig= TRUE;
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_sizeOfRA_PreamblesGroupA= (rach_sizeOfRA_PreamblesGroupA_emtc/4)-1;
+		
+		if ((rach_numberOfRA_Preambles_emtc <4) || (rach_numberOfRA_Preambles_emtc>60) || ((rach_numberOfRA_Preambles_emtc&3)!=0))
+		  AssertFatal (0,
+			       "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_sizeOfRA_PreamblesGroupA choice: 4,8,12,...,60!\n",
+			       RC.config_file_name, i, rach_sizeOfRA_PreamblesGroupA_emtc);
+		
+		switch (rach_messageSizeGroupA_emtc) {
+		case 56:
+		  RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b56;
+		  break;
+		  
+		case 144:
+		  RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b144;
+		  break;
+		  
+		case 208:
+		  RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b208;
+		  break;
+		  
+		case 256:
+		  RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b256;
+		  break;
+		  
+		default:
+		  AssertFatal (0,
+			       "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_messageSizeGroupA choice: 56,144,208,256!\n",
+			       RC.config_file_name, i, rach_messageSizeGroupA_emtc);
+		  break;
+		}
+		
+		if (strcmp(rach_messagePowerOffsetGroupB_emtc,"minusinfinity")==0) {
+		  RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_minusinfinity;
+		} else if (strcmp(rach_messagePowerOffsetGroupB_emtc,"dB0")==0) {
+		  RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB0;
+		} else if (strcmp(rach_messagePowerOffsetGroupB_emtc,"dB5")==0) {
+		  RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB5;
+		} else if (strcmp(rach_messagePowerOffsetGroupB_emtc,"dB8")==0) {
+		  RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB8;
+		} else if (strcmp(rach_messagePowerOffsetGroupB_emtc,"dB10")==0) {
+		  RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB10;
+		} else if (strcmp(rach_messagePowerOffsetGroupB_emtc,"dB12")==0) {
+		  RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB12;
+		} else if (strcmp(rach_messagePowerOffsetGroupB_emtc,"dB15")==0) {
+		  RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB15;
+		} else if (strcmp(rach_messagePowerOffsetGroupB_emtc,"dB18")==0) {
+		  RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB18;
+		} else
+		  AssertFatal (0,
+			       "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_messagePowerOffsetGroupB choice: minusinfinity,dB0,dB5,dB8,dB10,dB12,dB15,dB18!\n",
+			       RC.config_file_name, i, rach_messagePowerOffsetGroupB_emtc);
+	      } else if (strcmp(rach_preamblesGroupAConfig_emtc, "DISABLE") == 0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preamblesGroupAConfig= FALSE;
+	      } else
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_preamblesGroupAConfig choice: ENABLE,DISABLE !\n",
+			     RC.config_file_name, i, rach_preamblesGroupAConfig_emtc);
+	      
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleInitialReceivedTargetPower= (rach_preambleInitialReceivedTargetPower_emtc+120)/2;
+	      
+	      if ((rach_preambleInitialReceivedTargetPower_emtc<-120) || (rach_preambleInitialReceivedTargetPower_emtc>-90) || ((rach_preambleInitialReceivedTargetPower_emtc&1)!=0))
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleInitialReceivedTargetPower choice: -120,-118,...,-90 !\n",
+			     RC.config_file_name, i, rach_preambleInitialReceivedTargetPower_emtc);
+	      
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_powerRampingStep= rach_powerRampingStep_emtc/2;
+	      
+	      if ((rach_powerRampingStep_emtc<0) || (rach_powerRampingStep_emtc>6) || ((rach_powerRampingStep_emtc&1)!=0))
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_powerRampingStep choice: 0,2,4,6 !\n",
+			     RC.config_file_name, i, rach_powerRampingStep_emtc);
+	      
+	      switch (rach_preambleTransMax_emtc) {
+#if (RRC_VERSION < MAKE_VERSION(14, 0, 0))
+		
+	      case 3:
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax=  RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n3;
+		break;
+		
+	      case 4:
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax=  RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n4;
+		break;
+		
+	      case 5:
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax=  RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n5;
+		break;
+		
+	      case 6:
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax=  RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n6;
+		break;
+		
+	      case 7:
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax=  RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n7;
+		break;
+		
+	      case 8:
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax=  RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n8;
+		break;
+		
+	      case 10:
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax=  RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n10;
+		break;
+		
+	      case 20:
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax=  RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n20;
+		break;
+		
+	      case 50:
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax=  RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n50;
+		break;
+		
+	      case 100:
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax=  RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n100;
+		break;
+		
+	      case 200:
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax=  RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n200;
+		break;
+#else
+		
+	      case 3:
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax=  PreambleTransMax_n3;
+		break;
+		
+	      case 4:
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax=  PreambleTransMax_n4;
+		break;
+		
+	      case 5:
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax=  PreambleTransMax_n5;
+		break;
+		
+	      case 6:
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax=  PreambleTransMax_n6;
+		break;
+		
+	      case 7:
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax=  PreambleTransMax_n7;
+		break;
+		
+	      case 8:
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax=  PreambleTransMax_n8;
+		break;
+		
+	      case 10:
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax=  PreambleTransMax_n10;
+		break;
+		
+	      case 20:
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax=  PreambleTransMax_n20;
+		break;
+		
+	      case 50:
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax=  PreambleTransMax_n50;
+		break;
+		
+	      case 100:
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax=  PreambleTransMax_n100;
+		break;
+		
+	      case 200:
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax=  PreambleTransMax_n200;
+		break;
+#endif
+		
+	      default:
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleTransMax choice: 3,4,5,6,7,8,10,20,50,100,200!\n",
+			     RC.config_file_name, i, rach_preambleTransMax_emtc);
+		break;
+	      }
+	      
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_raResponseWindowSize=  (rach_raResponseWindowSize_emtc==10)?7:rach_raResponseWindowSize_emtc-2;
+	      
+	      if ((rach_raResponseWindowSize_emtc<0)||(rach_raResponseWindowSize_emtc==9)||(rach_raResponseWindowSize_emtc>10))
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_raResponseWindowSize choice: 2,3,4,5,6,7,8,10!\n",
+			     RC.config_file_name, i, rach_raResponseWindowSize_emtc);
+	      
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_macContentionResolutionTimer= (rach_macContentionResolutionTimer_emtc/8)-1;
+	      
+	      if ((rach_macContentionResolutionTimer_emtc<8) || (rach_macContentionResolutionTimer_emtc>64) || ((rach_macContentionResolutionTimer_emtc&7)!=0))
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_macContentionResolutionTimer choice: 8,16,...,56,64!\n",
+			     RC.config_file_name, i, rach_macContentionResolutionTimer_emtc);
+	      
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_maxHARQ_Msg3Tx= rach_maxHARQ_Msg3Tx_emtc;
+	      
+	      if ((rach_maxHARQ_Msg3Tx_emtc<0) || (rach_maxHARQ_Msg3Tx_emtc>8))
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_maxHARQ_Msg3Tx choice: 1..8!\n",
+			     RC.config_file_name, i, rach_maxHARQ_Msg3Tx_emtc);
+	      
+	      switch (pcch_defaultPagingCycle_emtc) {
+	      case 32:
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf32;
+		break;
+		
+	      case 64:
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf64;
+		break;
+		
+	      case 128:
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf128;
+		break;
+		
+	      case 256:
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf256;
+		break;
+		
+	      default:
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_defaultPagingCycle choice: 32,64,128,256!\n",
+			     RC.config_file_name, i, pcch_defaultPagingCycle_emtc);
+		break;
+	      }
+	      
+	      if (strcmp(pcch_nB_emtc, "fourT") == 0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_fourT;
+	      } else if (strcmp(pcch_nB_emtc, "twoT") == 0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_twoT;
+	      } else if (strcmp(pcch_nB_emtc, "oneT") == 0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneT;
+	      } else if (strcmp(pcch_nB_emtc, "halfT") == 0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_halfT;
+	      } else if (strcmp(pcch_nB_emtc, "quarterT") == 0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_quarterT;
+	      } else if (strcmp(pcch_nB_emtc, "oneEighthT") == 0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneEighthT;
+	      } else if (strcmp(pcch_nB_emtc, "oneSixteenthT") == 0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneSixteenthT;
+	      } else if (strcmp(pcch_nB_emtc, "oneThirtySecondT") == 0) {
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneThirtySecondT;
+	      } else
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pcch_nB choice: fourT,twoT,oneT,halfT,quarterT,oneighthT,oneSixteenthT,oneThirtySecondT !\n",
+			     RC.config_file_name, i, pcch_nB_emtc);
+	      
+	      switch (bcch_modificationPeriodCoeff_emtc) {
+	      case 2:
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff= BCCH_Config__modificationPeriodCoeff_n2;
+		break;
+		
+	      case 4:
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff= BCCH_Config__modificationPeriodCoeff_n4;
+		break;
+		
+	      case 8:
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff= BCCH_Config__modificationPeriodCoeff_n8;
+		break;
+		
+	      case 16:
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff= BCCH_Config__modificationPeriodCoeff_n16;
+		break;
+		
+	      default:
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for bcch_modificationPeriodCoeff choice: 2,4,8,16",
+			     RC.config_file_name, i, bcch_modificationPeriodCoeff);
+		break;
+	      }
+	      
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300= ue_TimersAndConstants_t300;
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= ue_TimersAndConstants_t301;
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= ue_TimersAndConstants_t310;
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= ue_TimersAndConstants_t311;
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= ue_TimersAndConstants_n310;
+	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= ue_TimersAndConstants_n311;
+	      
+	      switch (ue_TransmissionMode_emtc) {
+	      case 1:
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm1;
+		break;
+		
+	      case 2:
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm2;
+		break;
+		
+	      case 3:
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm3;
+		break;
+		
+	      case 4:
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm4;
+		break;
+		
+	      case 5:
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm5;
+		break;
+		
+	      case 6:
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm6;
+		break;
+		
+	      case 7:
+		RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm7;
+		break;
+		
+	      default:
+		AssertFatal (0,
+			     "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TransmissionMode choice: 1,2,3,4,5,6,7",
+			     RC.config_file_name, i, ue_TransmissionMode);
+		break;
+	      }
+	      
+	      
+	      
+	      
+	      RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeA_r13[j] = CALLOC(1, sizeof(long));
+	      if (!strcmp(pdsch_maxNumRepetitionCEmodeA_r13, "r16")) {
+		*RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeA_r13[j] = 0;
+	      } else if (!strcmp(pdsch_maxNumRepetitionCEmodeA_r13, "r32")) {
+		*RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeA_r13[j] = 1;
 	      } else {
 		AssertFatal (0,
-			     "Failed to parse eNB configuration file %s, mpdcch_NumRepetition_RA_r13 unknown value !! %d!\n",
-			     RC.config_file_name, nb_cc++);
+			     "Failed to parse eNB configuration file %s, pdsch_maxNumRepetitionCEmodeA_r13 unknown value!\n",
+			     RC.config_file_name);
 	      }
-
-
-
-	      if (!strcmp(prach_HoppingConfig_r13, "off")) {
-		RRC_CONFIGURATION_REQ (msg_p).prach_HoppingConfig_r13[j][prachparamsindex] = 1;
-	      } else if (!strcmp(prach_HoppingConfig_r13, "on")) {
-		RRC_CONFIGURATION_REQ (msg_p).prach_HoppingConfig_r13[j][prachparamsindex] = 0;
+	      
+	      
+	      RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeA_r13[j] = CALLOC(1, sizeof(long));
+	      if (!strcmp(pusch_maxNumRepetitionCEmodeA_r13, "r8")) {
+		*RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeA_r13[j] =  0;
+	      } else if (!strcmp(pusch_maxNumRepetitionCEmodeA_r13, "r16")) {
+		*RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeA_r13[j] =  1;
+	      } else if (!strcmp(pusch_maxNumRepetitionCEmodeA_r13, "r32")) {
+		*RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeA_r13[j] =  2;
 	      } else {
 		AssertFatal (0,
-			     "Failed to parse eNB configuration file %s, prach_HoppingConfig_r13 unknown value !! %d!\n",
-			     RC.config_file_name, nb_cc++);
+			     "Failed to parse eNB configuration file %s, pusch_maxNumRepetitionCEmodeA_r13 unknown value!\n",
+			     RC.config_file_name);
 	      }
-
-
-
-
-
-	      int maxavailablenarrowband_count = prachParams[7].numelt;
-
-	      RRC_CONFIGURATION_REQ (msg_p).max_available_narrow_band_size[j][prachparamsindex] = maxavailablenarrowband_count;
-	      int narrow_band_index;
-	      for (narrow_band_index = 0; narrow_band_index < maxavailablenarrowband_count; narrow_band_index++)
-		{
+	      
+	      char rachCELevelInfoListPath[MAX_OPTNAME_SIZE * 2];
+	      config_getlist(&rachcelevellist, NULL, 0, brparamspath);
+	      RRC_CONFIGURATION_REQ (msg_p).rach_CE_LevelInfoList_r13_size[j] = rachcelevellist.numelt;
+	      int rachCEInfoIndex;
+	      for (rachCEInfoIndex = 0; rachCEInfoIndex < rachcelevellist.numelt; rachCEInfoIndex++) {
+		sprintf(rachCELevelInfoListPath, "%s.%s.[%i]", brparamspath, ENB_CONFIG_STRING_RACH_CE_LEVELINFOLIST_R13, rachCEInfoIndex);
+		config_get(rachcelevelParams, sizeof(rachcelevelParams) / sizeof(paramdef_t), rachCELevelInfoListPath);
+		
+		RRC_CONFIGURATION_REQ (msg_p).firstPreamble_r13[j][rachCEInfoIndex] = firstPreamble_r13;
+		RRC_CONFIGURATION_REQ (msg_p).lastPreamble_r13[j][rachCEInfoIndex]  = lastPreamble_r13;
+		
+		RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rachCEInfoIndex] = ra_ResponseWindowSize_r13;
+		AssertFatal(ra_ResponseWindowSize_r13 == 20 ||
+			    ra_ResponseWindowSize_r13 == 50 ||
+			    ra_ResponseWindowSize_r13 == 80 ||
+			    ra_ResponseWindowSize_r13 == 120 ||
+			    ra_ResponseWindowSize_r13 == 180 ||
+			    ra_ResponseWindowSize_r13 == 240 ||
+			    ra_ResponseWindowSize_r13 == 320 ||
+			    ra_ResponseWindowSize_r13 == 400,
+			    "Illegal ra_ResponseWindowSize_r13 %d\n",ra_ResponseWindowSize_r13);
+		
+		RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rachCEInfoIndex] = mac_ContentionResolutionTimer_r13;
+		AssertFatal(mac_ContentionResolutionTimer_r13 == 80 ||
+			    mac_ContentionResolutionTimer_r13 == 100 ||
+			    mac_ContentionResolutionTimer_r13 == 120 ||
+			    mac_ContentionResolutionTimer_r13 == 80 ||
+			    mac_ContentionResolutionTimer_r13 == 160 ||
+			    mac_ContentionResolutionTimer_r13 == 200 ||
+			    mac_ContentionResolutionTimer_r13 == 240 ||
+			    mac_ContentionResolutionTimer_r13 == 480 ||
+			    mac_ContentionResolutionTimer_r13 == 960,
+			    "Illegal mac_ContentionResolutionTimer_r13 %d\n",
+			    mac_ContentionResolutionTimer_r13);
+		
+		RRC_CONFIGURATION_REQ (msg_p).rar_HoppingConfig_r13[j][rachCEInfoIndex] = rar_HoppingConfig_r13;
+		AssertFatal(rar_HoppingConfig_r13 == 0 || rar_HoppingConfig_r13 == 1,
+			    "illegal rar_HoppingConfig_r13 %d\n",rar_HoppingConfig_r13);
+	      } // end for loop (rach ce level info)
+	      
+	      char rsrpRangeListPath[MAX_OPTNAME_SIZE * 2];
+	      config_getlist(&rsrprangelist, NULL, 0, brparamspath);
+	      RRC_CONFIGURATION_REQ (msg_p).rsrp_range_list_size[j] = rsrprangelist.numelt;
+	      
+	      
+	      int rsrprangeindex;
+	      for (rsrprangeindex = 0; rsrprangeindex < rsrprangelist.numelt; rsrprangeindex++) {
+		sprintf(rsrpRangeListPath, "%s.%s.[%i]", brparamspath, ENB_CONFIG_STRING_RSRP_RANGE_LIST, rsrprangeindex);
+		config_get(rsrprangeParams, sizeof(rsrprangeParams) / sizeof(paramdef_t), rsrpRangeListPath);
+		RRC_CONFIGURATION_REQ (msg_p).rsrp_range[j][rsrprangeindex] = rsrp_range_br;
+		
+	      }
+	      
+	      
+	      char prachparameterscePath[MAX_OPTNAME_SIZE * 2];
+	      config_getlist(&prachParamslist, NULL, 0, brparamspath);
+	      RRC_CONFIGURATION_REQ (msg_p).prach_parameters_list_size[j] = prachParamslist.numelt;
+	      
+	      int prachparamsindex;
+	      for (prachparamsindex = 0; prachparamsindex < prachParamslist.numelt; prachparamsindex++) {
+		sprintf(prachparameterscePath, "%s.%s.[%i]", brparamspath, ENB_CONFIG_STRING_PRACH_PARAMETERS_CE_R13, prachparamsindex);
+		config_get(prachParams, sizeof(prachParams) / sizeof(paramdef_t), prachparameterscePath);
+		
+		RRC_CONFIGURATION_REQ (msg_p).prach_config_index[j][prachparamsindex]                  = prach_config_index_br;
+		RRC_CONFIGURATION_REQ (msg_p).prach_freq_offset[j][prachparamsindex]                   = prach_freq_offset_br;
+		
+		RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prachparamsindex] = calloc(1, sizeof(long));
+		*RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prachparamsindex] = prach_StartingSubframe_r13;
+		
+		RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prachparamsindex] = calloc(1, sizeof(long));
+		*RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prachparamsindex] = maxNumPreambleAttemptCE_r13-3;
+		AssertFatal(maxNumPreambleAttemptCE_r13 > 2 && maxNumPreambleAttemptCE_r13 <11,
+			    "prachparamsindex %d: Illegal maxNumPreambleAttemptCE_r13 %d\n",
+			    prachparamsindex,maxNumPreambleAttemptCE_r13);
+		
+		RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prachparamsindex] = numRepetitionPerPreambleAttempt_r13;
+		AssertFatal(numRepetitionPerPreambleAttempt_r13 == 1 ||
+			    numRepetitionPerPreambleAttempt_r13 == 2 ||
+			    numRepetitionPerPreambleAttempt_r13 == 4 ||
+			    numRepetitionPerPreambleAttempt_r13 == 8 ||
+			    numRepetitionPerPreambleAttempt_r13 == 16 ||
+			    numRepetitionPerPreambleAttempt_r13 == 32 ||
+			    numRepetitionPerPreambleAttempt_r13 == 64 ||
+			    numRepetitionPerPreambleAttempt_r13 == 128,
+			    "illegal numReptitionPerPreambleAttempt %d\n",
+			    numRepetitionPerPreambleAttempt_r13);
+		
+		RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = mpdcch_NumRepetition_RA_r13;
+		AssertFatal (mpdcch_NumRepetition_RA_r13 == 1 ||
+			     mpdcch_NumRepetition_RA_r13 == 2 ||
+			     mpdcch_NumRepetition_RA_r13 == 4 ||
+			     mpdcch_NumRepetition_RA_r13 == 8 ||
+			     mpdcch_NumRepetition_RA_r13 == 16 ||
+			     mpdcch_NumRepetition_RA_r13 == 32 ||
+			     mpdcch_NumRepetition_RA_r13 == 64 ||
+			     mpdcch_NumRepetition_RA_r13 == 128 ||
+			     mpdcch_NumRepetition_RA_r13 == 256 ||
+			     mpdcch_NumRepetition_RA_r13 == 512 ||
+			     mpdcch_NumRepetition_RA_r13 == 1024 ||
+			     mpdcch_NumRepetition_RA_r13 == 2048,
+			     "illegal mpdcch_NumRepeition_RA_r13 %d\n",
+			     mpdcch_NumRepetition_RA_r13);
+		
+		
+		RRC_CONFIGURATION_REQ (msg_p).prach_HoppingConfig_r13[j][prachparamsindex] = prach_HoppingConfig_r13;
+		
+		AssertFatal (prach_HoppingConfig_r13 >=0 && prach_HoppingConfig_r13 < 2,
+			     "Illegal prach_HoppingConfig_r13 %d\n",prach_HoppingConfig_r13);
+		
+		
+		int maxavailablenarrowband_count = prachParams[7].numelt;
+		
+		RRC_CONFIGURATION_REQ (msg_p).max_available_narrow_band_size[j][prachparamsindex] = maxavailablenarrowband_count;
+		int narrow_band_index;
+		for (narrow_band_index = 0; narrow_band_index < maxavailablenarrowband_count; narrow_band_index++) {
 		  RRC_CONFIGURATION_REQ (msg_p).max_available_narrow_band[j][prachparamsindex][narrow_band_index] = prachParams[7].iptr[narrow_band_index];
-
 		}
+	      }
 
-
-	    }
-
-	    char n1PUCCHInfoParamsPath[MAX_OPTNAME_SIZE * 2];
-	    config_getlist(&n1PUCCHInfoList, NULL, 0, brparamspath);
-	    RRC_CONFIGURATION_REQ (msg_p).pucch_info_value_size[j] = n1PUCCHInfoList.numelt;
-
-	    int n1PUCCHinfolistindex;
-	    for (n1PUCCHinfolistindex = 0; n1PUCCHinfolistindex < n1PUCCHInfoList.numelt; n1PUCCHinfolistindex++) {
-	      sprintf(n1PUCCHInfoParamsPath, "%s.%s.[%i]", brparamspath, ENB_CONFIG_STRING_N1PUCCH_AN_INFOLIST_R13, n1PUCCHinfolistindex);
-	      config_get(n1PUCCH_ANR13Params, sizeof(n1PUCCH_ANR13Params) / sizeof(paramdef_t), n1PUCCHInfoParamsPath);
-	      RRC_CONFIGURATION_REQ (msg_p).pucch_info_value[j][n1PUCCHinfolistindex] = pucch_info_value;
-	    }
-
-	    /**  UE Timers And Constants */
-
-
-	    if (!strcmp(ue_TimersAndConstants_t300, "ms100")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms100;
-	    } else if (!strcmp(ue_TimersAndConstants_t300, "ms200")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms200;
-	    } else if (!strcmp(ue_TimersAndConstants_t300, "ms300")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms300;
-	    } else if (!strcmp(ue_TimersAndConstants_t300, "ms400")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms400;
-	    } else if (!strcmp(ue_TimersAndConstants_t300, "ms600")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms600;
-	    } else if (!strcmp(ue_TimersAndConstants_t300, "ms1000")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms1000;
-	    } else if (!strcmp(ue_TimersAndConstants_t300, "ms1500")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms1500;
-	    } else if (!strcmp(ue_TimersAndConstants_t300, "ms2000")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms2000;
-	    } else {
-	      AssertFatal (0,
-			   "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t300 unknown value !!",
-			   RC.config_file_name, i, ue_TimersAndConstants_t300);
-	    }
-
-	    if (!strcmp(ue_TimersAndConstants_t301, "ms100")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms100;
-	    } else if (!strcmp(ue_TimersAndConstants_t301, "ms200")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms200;
-	    } else if (!strcmp(ue_TimersAndConstants_t301, "ms300")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms300;
-	    } else if (!strcmp(ue_TimersAndConstants_t301, "ms400")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms400;
-	    } else if (!strcmp(ue_TimersAndConstants_t301, "ms600")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms600;
-	    } else if (!strcmp(ue_TimersAndConstants_t301, "ms1000")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms1000;
-	    } else if (!strcmp(ue_TimersAndConstants_t301, "ms1500")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms1500;
-	    } else if (!strcmp(ue_TimersAndConstants_t301, "ms2000")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms2000;
-	    } else {
-	      AssertFatal (0,
-			   "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t301 !!",
-			   RC.config_file_name, i, ue_TimersAndConstants_t301);
-	    }
-
-
-	    if (!strcmp(ue_TimersAndConstants_t310, "ms0")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms0;
-	    } else if (!strcmp(ue_TimersAndConstants_t310, "ms50")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms50;
-	    } else if (!strcmp(ue_TimersAndConstants_t310, "ms100")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms100;
-	    } else if (!strcmp(ue_TimersAndConstants_t310, "ms200")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms200;
-	    } else if (!strcmp(ue_TimersAndConstants_t310, "ms500")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms500;
-	    } else if (!strcmp(ue_TimersAndConstants_t310, "ms1000")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms1000;
-	    } else if (!strcmp(ue_TimersAndConstants_t310, "ms2000")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms2000;
-	    } else {
-	      AssertFatal (0,
-			   "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t310 !!",
-			   RC.config_file_name, i, ue_TimersAndConstants_t310);
-	    }
-
-
-	    if (!strcmp(ue_TimersAndConstants_t311, "ms1000")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms1000;
-	    } else if (!strcmp(ue_TimersAndConstants_t311, "ms3000")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms3000;
-	    } else if (!strcmp(ue_TimersAndConstants_t311, "ms5000")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms5000;
-	    } else if (!strcmp(ue_TimersAndConstants_t311, "ms10000")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms10000;
-	    } else if (!strcmp(ue_TimersAndConstants_t311, "ms15000")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms15000;
-	    } else if (!strcmp(ue_TimersAndConstants_t311, "ms20000")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms20000;
-	    } else if (!strcmp(ue_TimersAndConstants_t311, "ms30000")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms30000;
-	    } else {
-	      AssertFatal (0,
-			   "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t311 !!",
-			   RC.config_file_name, i, ue_TimersAndConstants_t311);
-	    }
-
-
-	    if (!strcmp(ue_TimersAndConstants_n310, "n1")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n1;
-	    } else if (!strcmp(ue_TimersAndConstants_n310, "n2")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n2;
-	    } else if (!strcmp(ue_TimersAndConstants_n310, "n3")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n3;
-	    } else if (!strcmp(ue_TimersAndConstants_n310, "n4")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n4;
-	    } else if (!strcmp(ue_TimersAndConstants_n310, "n6")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n6;
-	    } else if (!strcmp(ue_TimersAndConstants_n310, "n8")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n8;
-	    } else if (!strcmp(ue_TimersAndConstants_n310, "n10")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n10;
-	    } else if (!strcmp(ue_TimersAndConstants_n310, "n20")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n20;
-	    } else {
-	      AssertFatal (0,
-			   "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_n310 !!",
-			   RC.config_file_name, i, ue_TimersAndConstants_n310);
-	    }
-
-
-	    if (!strcmp(ue_TimersAndConstants_n311, "n1")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n1;
-	    } else if (!strcmp(ue_TimersAndConstants_n311, "n2")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n2;
-	    } else if (!strcmp(ue_TimersAndConstants_n311, "n3")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n3;
-	    } else if (!strcmp(ue_TimersAndConstants_n311, "n4")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n4;
-	    } else if (!strcmp(ue_TimersAndConstants_n311, "n5")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n5;
-	    } else if (!strcmp(ue_TimersAndConstants_n311, "n6")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n6;
-	    } else if (!strcmp(ue_TimersAndConstants_n311, "n8")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n8;
-	    } else if (!strcmp(ue_TimersAndConstants_n311, "n10")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n10;
-	    } else {
-	      AssertFatal (0,
-			   "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_n311!!",
-			   RC.config_file_name, i, ue_TimersAndConstants_n311);
-	    }
-
-
-	    if (!strcmp(ue_TransmissionMode, "tm1")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm1;
-	    } else if (!strcmp(ue_TransmissionMode, "tm2")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm2;
-	    } else if (!strcmp(ue_TransmissionMode, "tm3")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm3;
-	    } else if (!strcmp(ue_TransmissionMode, "tm4")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm4;
-	    } else if (!strcmp(ue_TransmissionMode, "tm5")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm5;
-	    } else if (!strcmp(ue_TransmissionMode, "tm6")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm6;
-	    } else if (!strcmp(ue_TransmissionMode, "tm7")) {
-	      RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm7;
-	    } else {
-	      AssertFatal (0,
-			   "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TransmissionMode !!",
-			   RC.config_file_name, i, ue_TransmissionMode);
-	    }
-
-
-	    char PCCHConfigv1310Path[MAX_OPTNAME_SIZE*2 + 16];
-	    sprintf(PCCHConfigv1310Path, "%s.%s", brparamspath, ENB_CONFIG_STRING_PCCH_CONFIG_V1310);
-	    config_get(pcchv1310Params, sizeof(pcchv1310Params)/sizeof(paramdef_t), PCCHConfigv1310Path);
-
-
-
-	    /** PCCH CONFIG V1310 */
-
-	    RRC_CONFIGURATION_REQ(msg_p).pcch_config_v1310[j] = TRUE;
-	    RRC_CONFIGURATION_REQ(msg_p).paging_narrowbands_r13[j] = paging_narrowbands_r13;
-
-	    if (!strcmp(mpdcch_numrepetition_paging_r13, "r1")) {
-	      RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 0;
-	    } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r2")) {
-	      RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 1;
-	    } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r4")) {
-	      RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 2;
-	    } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r8")) {
-	      RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 3;
-	    } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r16")) {
-	      RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 4;
-	    } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r32")) {
-	      RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 5;
-	    } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r64")) {
-	      RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 6;
-	    } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r128")) {
-	      RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 7;
-	    } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r256")) {
-	      RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 8;
-	    } else {
-	      AssertFatal(0,
-			  "Failed to parse eNB configuration file %s, nb_v1310, unknown value !\n",
-			  RC.config_file_name);
-	    }
-
-
-	    //                        RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = CALLOC(1, sizeof(long));
-	    //                        if (!strcmp(nb_v1310, "one64thT")) {
-	    //                            *RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = 0;
-	    //                        } else if (!strcmp(nb_v1310, "one128thT")) {
-	    //                            *RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = 1;
-	    //                        } else if (!strcmp(nb_v1310, "one256thT")) {
-	    //                            *RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = 2;
-	    //                        } else {
-	    //                            AssertFatal(0,
-	    //                                        "Failed to parse eNB configuration file %s, nb_v1310, unknown value !\n",
-	    //                                        RC.config_file_name);
-	    //                        }
-
-
-
-	    RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = CALLOC(1, sizeof(long));
-	    // ++cnt; // check this ,, the conter is up above
-	    if (!strcmp(pucch_NumRepetitionCE_Msg4_Level0_r13, "n1")) {
-	      *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = 0;
-	    } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level0_r13, "n2")) {
-	      *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = 1;
-	    } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level0_r13, "n4")) {
-	      *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = 2;
-	    } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level0_r13, "n8")) {
-	      *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = 3;
-	    } else {
-	      AssertFatal (0,
-			   "Failed to parse eNB configuration file %s, pucch_NumRepetitionCE_Msg4_Level0_r13 unknown value!\n",
-			   RC.config_file_name);
-	    }
-
-
-
-	    /** SIB2 FREQ HOPPING PARAMETERS R13 */
-	    RRC_CONFIGURATION_REQ(msg_p).sib2_freq_hoppingParameters_r13_exists[j] = TRUE;
-
-	    char sib2FreqHoppingParametersR13Path[MAX_OPTNAME_SIZE*2 + 16];
-	    sprintf(sib2FreqHoppingParametersR13Path, "%s.%s", brparamspath, ENB_CONFIG_STRING_SIB2_FREQ_HOPPINGPARAMETERS_R13);
-	    config_get(sib2freqhoppingParams, sizeof(sib2freqhoppingParams)/sizeof(paramdef_t), sib2FreqHoppingParametersR13Path);
-
-
-	    RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j] = CALLOC(1, sizeof(long));
-	    if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13, "FDD")) {
-	      *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j] = 0;
-	      if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int1")) {
-		RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 0;
-	      } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int2")) {
-		RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 1;
-	      } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int4")) {
-		RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 2;
-	      } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int8")) {
-		RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 3;
+	      char n1PUCCHInfoParamsPath[MAX_OPTNAME_SIZE * 2];
+	      config_getlist(&n1PUCCHInfoList, NULL, 0, brparamspath);
+	      RRC_CONFIGURATION_REQ (msg_p).pucch_info_value_size[j] = n1PUCCHInfoList.numelt;
+	      
+	      int n1PUCCHinfolistindex;
+	      for (n1PUCCHinfolistindex = 0; n1PUCCHinfolistindex < n1PUCCHInfoList.numelt; n1PUCCHinfolistindex++) {
+		sprintf(n1PUCCHInfoParamsPath, "%s.%s.[%i]", brparamspath, ENB_CONFIG_STRING_N1PUCCH_AN_INFOLIST_R13, n1PUCCHinfolistindex);
+		config_get(n1PUCCH_ANR13Params, sizeof(n1PUCCH_ANR13Params) / sizeof(paramdef_t), n1PUCCHInfoParamsPath);
+		RRC_CONFIGURATION_REQ (msg_p).pucch_info_value[j][n1PUCCHinfolistindex] = pucch_info_value;
+	      }
+	      
+	      char PCCHConfigv1310Path[MAX_OPTNAME_SIZE*2 + 16];
+	      sprintf(PCCHConfigv1310Path, "%s.%s", brparamspath, ENB_CONFIG_STRING_PCCH_CONFIG_V1310);
+	      config_get(pcchv1310Params, sizeof(pcchv1310Params)/sizeof(paramdef_t), PCCHConfigv1310Path);
+	      
+	      
+	      
+	      /** PCCH CONFIG V1310 */
+	      
+	      RRC_CONFIGURATION_REQ(msg_p).pcch_config_v1310[j] = TRUE;
+	      RRC_CONFIGURATION_REQ(msg_p).paging_narrowbands_r13[j] = paging_narrowbands_r13;
+	      RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = mpdcch_numrepetition_paging_r13;
+	      AssertFatal (mpdcch_numrepetition_paging_r13 == 1 ||
+			   mpdcch_numrepetition_paging_r13 == 2 ||
+			   mpdcch_numrepetition_paging_r13 == 4 ||
+			   mpdcch_numrepetition_paging_r13 == 8 ||
+			   mpdcch_numrepetition_paging_r13 == 16 ||
+			   mpdcch_numrepetition_paging_r13 == 32 ||
+			   mpdcch_numrepetition_paging_r13 == 64 ||
+			   mpdcch_numrepetition_paging_r13 == 128 ||
+			   mpdcch_numrepetition_paging_r13 == 256,
+			   "illegal mpdcch_numrepetition_paging_r13 %d\n",
+			   mpdcch_numrepetition_paging_r13);
+	      
+	      
+	      //                        RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = CALLOC(1, sizeof(long));
+	      //                        if (!strcmp(nb_v1310, "one64thT")) {
+	      //                            *RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = 0;
+	      //                        } else if (!strcmp(nb_v1310, "one128thT")) {
+	      //                            *RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = 1;
+	      //                        } else if (!strcmp(nb_v1310, "one256thT")) {
+	      //                            *RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = 2;
+	      //                        } else {
+	      //                            AssertFatal(0,
+	      //                                        "Failed to parse eNB configuration file %s, nb_v1310, unknown value !\n",
+	      //                                        RC.config_file_name);
+	      //                        }
+	      
+	      
+	      
+	      RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = CALLOC(1, sizeof(long));
+	      // ++cnt; // check this ,, the conter is up above
+	      if (!strcmp(pucch_NumRepetitionCE_Msg4_Level0_r13, "n1")) {
+		*RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = 0;
+	      } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level0_r13, "n2")) {
+		*RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = 1;
+	      } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level0_r13, "n4")) {
+		*RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = 2;
+	      } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level0_r13, "n8")) {
+		*RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = 3;
 	      } else {
 		AssertFatal (0,
-			     "Failed to parse eNB configuration file %s, sib2_interval_ULHoppingConfigCommonModeA_r13_val unknown value !!\n",
+			     "Failed to parse eNB configuration file %s, pucch_NumRepetitionCE_Msg4_Level0_r13 unknown value!\n",
 			     RC.config_file_name);
 	      }
-	    } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13, "TDD")) {
-	      *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j] = 1;
-	      if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int1")) {
-		RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 0;
-	      } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int5")) {
-		RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 1;
-	      } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int10")) {
-		RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 2;
-	      } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int20")) {
-		RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 3;
+	      
+	      
+	      
+	      /** SIB2 FREQ HOPPING PARAMETERS R13 */
+	      RRC_CONFIGURATION_REQ(msg_p).sib2_freq_hoppingParameters_r13_exists[j] = TRUE;
+	      
+	      char sib2FreqHoppingParametersR13Path[MAX_OPTNAME_SIZE*2 + 16];
+	      sprintf(sib2FreqHoppingParametersR13Path, "%s.%s", brparamspath, ENB_CONFIG_STRING_SIB2_FREQ_HOPPINGPARAMETERS_R13);
+	      config_get(sib2freqhoppingParams, sizeof(sib2freqhoppingParams)/sizeof(paramdef_t), sib2FreqHoppingParametersR13Path);
+	      
+	      
+	      RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j] = CALLOC(1, sizeof(long));
+	      if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13, "FDD")) {
+		*RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j] = 0;
+		RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = sib2_interval_ULHoppingConfigCommonModeA_r13_val;
+		AssertFatal(sib2_interval_ULHoppingConfigCommonModeA_r13_val==1 ||
+			    sib2_interval_ULHoppingConfigCommonModeA_r13_val==2 ||
+			    sib2_interval_ULHoppingConfigCommonModeA_r13_val==4 ||
+			    sib2_interval_ULHoppingConfigCommonModeA_r13_val==8,
+			    "illegal sib2_interval_ULHoppingConfigCommonModeA_r13_val %d\n",
+			    sib2_interval_ULHoppingConfigCommonModeA_r13_val);
+	      } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13, "TDD")) {
+		*RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j] = 1;
+		RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = sib2_interval_ULHoppingConfigCommonModeA_r13_val;
+		AssertFatal(sib2_interval_ULHoppingConfigCommonModeA_r13_val==1 ||
+			    sib2_interval_ULHoppingConfigCommonModeA_r13_val==5 ||
+			    sib2_interval_ULHoppingConfigCommonModeA_r13_val==10 ||
+			    sib2_interval_ULHoppingConfigCommonModeA_r13_val==20,
+			    "illegal sib2_interval_ULHoppingConfigCommonModeA_r13_val %d\n",
+			    sib2_interval_ULHoppingConfigCommonModeA_r13_val);
 	      } else {
-		AssertFatal (0,
-			     "Failed to parse eNB configuration file %s, sib2_interval_ULHoppingConfigCommonModeA_r13_val unknown value !!\n",
+		AssertFatal (1==0,
+			     "Failed to parse eNB configuration file %s, sib2_interval_ULHoppingConfigCommonModeA_r13 unknown value !!\n",
 			     RC.config_file_name);
 	      }
-	    } else {
-	      AssertFatal (0,
-			   "Failed to parse eNB configuration file %s, sib2_interval_ULHoppingConfigCommonModeA_r13 unknown value !!\n",
-			   RC.config_file_name);
-	    }
-
-
-	    if (strcmp(rach_preamblesGroupAConfig, "ENABLE") == 0)
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_preamblesGroupAConfig= TRUE;
-
-
-
-	    RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_nDMRS1 = pusch_nDMRS1;  //cyclic_shift in RRC!
-
-
-	    if ((pusch_nDMRS1 <0) || (pusch_nDMRS1>7))
-	      AssertFatal (0,
-			   "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_nDMRS1 choice: 0..7!\n",
-			   RC.config_file_name, i, pusch_nDMRS1);
-
-
-	    if (strcmp(phich_duration, "NORMAL") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_duration = PHICH_Config__phich_Duration_normal;
-	    }
-	    else if (strcmp(phich_duration, "EXTENDED") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_duration = PHICH_Config__phich_Duration_extended;
-	    }
-	    else
-	      AssertFatal(0,
-			  "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_duration choice: NORMAL,EXTENDED!\n",
-			  RC.config_file_name, i, phich_duration);
-
-
-
-	    if (strcmp(phich_resource, "ONESIXTH") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_oneSixth;
-	    }
-	    else if (strcmp(phich_resource, "HALF") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_half;
-	    }
-	    else if (strcmp(phich_resource, "ONE") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_one;
-	    }
-	    else if (strcmp(phich_resource, "TWO") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_two;
-	    }
+	      RRC_CONFIGURATION_REQ (msg_p).eMTC_configured=1;
+	    } // BR parameters > 0
 	    else {
-	      AssertFatal(0,
-			  "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_resource choice: ONESIXTH,HALF,ONE,TWO!\n",
-			  RC.config_file_name, i, phich_resource);
+	      printf("No eMTC configuration, skipping it\n");
+	      RRC_CONFIGURATION_REQ (msg_p).eMTC_configured=0;
 	    }
 
-
-
-	    printf("phich.resource %d (%s), phich.duration %d (%s)\n",
-		   RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource, phich_resource,
-		   RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_duration, phich_duration);
-
-	    if (strcmp(srs_enable, "ENABLE") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_enable = TRUE;
-	    }
-	    else if (strcmp(srs_enable, "DISABLE") == 0) {
-	      RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_enable = FALSE;
-	    }
-	    else {
-	      AssertFatal(0,
-			  "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n",
-			  RC.config_file_name, i, srs_enable);
-	    }
-
-
-
-
-            //TTN - for D2D
+	    // Sidelink Resource pool information
             //SIB18
             if (strcmp(rxPool_sc_CP_Len,"normal")==0) {
               RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_CP_Len[j] = SL_CP_Len_r12_normal;
@@ -3671,8 +3654,9 @@ int RCconfig_X2(MessageDef *msg_p, uint32_t i) {
     pucch_nRB_CQI, pucch_nCS_AN, pucch_n1_AN, pdsch_referenceSignalPower,
     pdsch_p_b, pusch_n_SB, pusch_hoppingOffset, pusch_groupAssignment,
     pusch_nDMRS1, srs_BandwidthConfig, srs_SubframeConfig, pusch_p0_Nominal,
-    pucch_p0_Nominal, msg3_delta_Preamble, rach_numberOfRA_Preambles,
-    rach_sizeOfRA_PreamblesGroupA, rach_messageSizeGroupA,
+    pucch_p0_Nominal, msg3_delta_Preamble;
+  char *rach_numberOfRA_Preambles;
+  int32_t rach_sizeOfRA_PreamblesGroupA, rach_messageSizeGroupA,
     rach_powerRampingStep, rach_preambleInitialReceivedTargetPower,
     rach_preambleTransMax, rach_raResponseWindowSize,
     rach_macContentionResolutionTimer, rach_maxHARQ_Msg3Tx,
@@ -3681,6 +3665,20 @@ int RCconfig_X2(MessageDef *msg_p, uint32_t i) {
     ue_TimersAndConstants_t310, ue_TimersAndConstants_t311,
     ue_TimersAndConstants_n310, ue_TimersAndConstants_n311,
     ue_TransmissionMode, ue_multiple_max;
+  char*   prach_ConfigCommon_v1310                          = NULL;
+  char*   mpdcch_startSF_CSS_RA_r13                         = NULL;
+  char*   mpdcch_startSF_CSS_RA_r13_val                     = NULL;
+  char*   pdsch_maxNumRepetitionCEmodeA_r13                 = NULL;
+  char*   pdsch_maxNumRepetitionCEmodeB_r13                 = NULL;
+  
+  char*   pusch_maxNumRepetitionCEmodeA_r13                 = 0;
+  char*   pusch_maxNumRepetitionCEmodeB_r13                 = 0;
+  int     prach_HoppingOffset_r13                           = 0;
+
+  // avoid gcc warnings
+  (void)pdsch_maxNumRepetitionCEmodeB_r13;
+  (void)pusch_maxNumRepetitionCEmodeB_r13;
+
   const char       *rxPool_sc_CP_Len;
   const char       *rxPool_sc_Period;
   const char       *rxPool_data_CP_Len;
@@ -3829,6 +3827,7 @@ int RCconfig_X2(MessageDef *msg_p, uint32_t i) {
   //char ccspath[MAX_OPTNAME_SIZE*2 + 16];
   for (J = 0; J < CCsParamList.numelt ; J++) {
   sprintf(aprefix, "%s.[%i].%s.[%i]", ENB_CONFIG_STRING_ENB_LIST, k, ENB_CONFIG_STRING_COMPONENT_CARRIERS, J);
+  printf("X2: Getting %s\n",aprefix);
   config_get(CCsParams, sizeof(CCsParams)/sizeof(paramdef_t), aprefix);
   X2AP_REGISTER_ENB_REQ (msg_p).eutra_band[J] = eutra_band;
   X2AP_REGISTER_ENB_REQ (msg_p).downlink_frequency[J] = (uint32_t) downlink_frequency;
diff --git a/openair2/ENB_APP/enb_paramdef.h b/openair2/ENB_APP/enb_paramdef.h
index eb020c45176b052c761b98bb92b88f142e39bc80..9e43b8c61e6031fe6056a1d70d452c93dc6be146 100755
--- a/openair2/ENB_APP/enb_paramdef.h
+++ b/openair2/ENB_APP/enb_paramdef.h
@@ -312,16 +312,7 @@ typedef enum {
 #define ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL3    "pucch_NumRepetitionCE_Msg4_Level3_r13"
 
 #define ENB_CONFIG_STRING_FREQ_HOPPING_PARAMETERS_R13                      "sib2_freq_hoppingParameters_r13"
-#define ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_NB_R13                      "sib2_mpdcch_pdsch_hoppingNB_r13"
-#define ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13     "sib2_interval_DLHoppingConfigCommonModeA_r13"
-#define ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13_VAL "sib2_interval_DLHoppingConfigCommonModeA_r13_val" 
-#define ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13     "sib2_interval_DLHoppingConfigCommonModeB_r13"
-#define ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13_VAL "sib2_interval_DLHoppingConfigCommonModeB_r13_val"
-#define ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_A_R13     "sib2_interval_ULHoppingConfigCommonModeA_r13"
-#define ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_A_R13_VAL "sib2_interval_ULHoppingConfigCommonModeA_r13_val"
-#define ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_B_R13     "sib2_interval_ULHoppingConfigCommonModeB_r13"
-#define ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_B_R13_VAL "sib2_interval_ULHoppingConfigCommonModeB_r13_val"
-#define ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_OFFSET_R13                  "sib2_mpdcch_pdsch_hoppingOffset_r13"
+
 
 #define ENB_CONFIG_STRING_PDSCH_RS_EPRE                                 "pdsch_referenceSignalPower"
 #define ENB_CONFIG_STRING_PDSCH_PB                                      "pdsch_p_b"
@@ -545,6 +536,12 @@ typedef enum {
                           { .s5= {NULL }} ,						     \
                           { .s5= {NULL }} ,						     \
                           { .s5= {NULL }} ,						     \
+                          { .s5= {NULL }} ,						     \
+                          { .s5= {NULL }} ,						     \
+                          { .s5= {NULL }} ,						     \
+                          { .s5= {NULL }} ,						     \
+                          { .s5= {NULL }} ,						     \
+                          { .s5= {NULL }}						     \
 }
 /*---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
 /*                                     component carriers configuration parameters                                                                                                                   */
@@ -594,18 +591,12 @@ typedef enum {
 {ENB_CONFIG_STRING_PUSCH_ALPHA,                                  NULL,   0,           strptr:&pusch_alpha,                            defstrval:"AL1",           TYPE_STRING,     0},  \
 {ENB_CONFIG_STRING_PUCCH_PO_NOMINAL,                             NULL,   0,           iptr:&pucch_p0_Nominal,                         defintval:-96,             TYPE_INT,        0},  \
 {ENB_CONFIG_STRING_MSG3_DELTA_PREAMBLE,                          NULL,   0,           iptr:&msg3_delta_Preamble,                      defintval:6,               TYPE_UINT,       0},  \
-{ENB_CONFIG_STRING_PRACH_CONFIG_COMMON_V1310,                    NULL,   0,           strptr:&prach_ConfigCommon_v1310,               defstrval:"ENABLE",        TYPE_STRING,     0}, \
-{ENB_CONFIG_STRING_MPDCCH_START_SF_CSS_RA_R13,                   NULL,   0,           strptr:&mpdcch_startSF_CSS_RA_r13,              defstrval:"fdd-r13",       TYPE_STRING,     0}, \
-{ENB_CONFIG_STRING_MPDCCH_START_SF_CSS_RA_R13_VAL,               NULL,   0,           strptr:&mpdcch_startSF_CSS_RA_r13_val,          defstrval:"v1",            TYPE_STRING,     0}, \
-{ENB_CONFIG_STRING_PRACH_HOPPING_OFFSET_R13,                     NULL,   0,           iptr:&prach_HoppingOffset_r13,                  defintval:0,               TYPE_INT,        0}, \
-{ENB_CONFIG_STRING_PDSCH_MAX_NUM_REPETITION_CE_MODE_A_R13,       NULL,   0,           strptr:&pdsch_maxNumRepetitionCEmodeA_r13,      defstrval:"r16",           TYPE_STRING,     0}, \
-{ENB_CONFIG_STRING_PUSCH_MAX_NUM_REPETITION_CE_MODE_A_R13,       NULL,   0,           strptr:&pusch_maxNumRepetitionCEmodeA_r13,      defstrval:"r8",            TYPE_STRING,     0},  \
 {ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1,                         NULL,   0,           strptr:&pucch_deltaF_Format1,                   defstrval:"DELTAF2",       TYPE_STRING,     0},  \
 {ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1b,                        NULL,   0,           strptr:&pucch_deltaF_Format1b,                  defstrval:"deltaF3",       TYPE_STRING,     0},  \
 {ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2,                         NULL,   0,           strptr:&pucch_deltaF_Format2,                   defstrval:"deltaF0",       TYPE_STRING,     0},  \
 {ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2A,                        NULL,   0,           strptr:&pucch_deltaF_Format2a,                  defstrval:"deltaF0",       TYPE_STRING,     0},  \
 {ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2B,                        NULL,   0,           strptr:&pucch_deltaF_Format2b,                  defstrval:"deltaF0",       TYPE_STRING,     0},  \
-{ENB_CONFIG_STRING_RACH_NUM_RA_PREAMBLES,                        NULL,   0,           strptr:&rach_numberOfRA_Preambles,              defstrval:"n64",           TYPE_STRING,     0},  \
+{ENB_CONFIG_STRING_RACH_NUM_RA_PREAMBLES,                        NULL,   0,           iptr:&rach_numberOfRA_Preambles,                defintval:4,               TYPE_UINT,       0},  \
 {ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG,                   NULL,   0,           strptr:&rach_preamblesGroupAConfig,             defstrval:"DISABLE",       TYPE_STRING,     0},  \
 {ENB_CONFIG_STRING_RACH_SIZEOFRA_PREAMBLESGROUPA,                NULL,   0,           iptr:&rach_sizeOfRA_PreamblesGroupA,            defintval:0,               TYPE_UINT,       0},  \
 {ENB_CONFIG_STRING_RACH_MESSAGESIZEGROUPA,                       NULL,   0,           iptr:&rach_messageSizeGroupA,                   defintval:56,              TYPE_UINT,       0},  \
@@ -616,7 +607,7 @@ typedef enum {
 {ENB_CONFIG_STRING_RACH_RARESPONSEWINDOWSIZE,                    NULL,   0,           iptr:&rach_raResponseWindowSize,                defintval:10,              TYPE_INT,        0},  \
 {ENB_CONFIG_STRING_RACH_MACCONTENTIONRESOLUTIONTIMER,            NULL,   0,           iptr:&rach_macContentionResolutionTimer,        defintval:48,              TYPE_UINT,       0},  \
 {ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX,                           NULL,   0,           iptr:&rach_maxHARQ_Msg3Tx,                      defintval:4,               TYPE_UINT,       0},  \
-{ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE,                    NULL,   0,           strptr:&pcch_defaultPagingCycle,                defstrval:"rf128",         TYPE_STRING,     0},  \
+{ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE,                    NULL,   0,           iptr:&pcch_defaultPagingCycle,                  defintval:128,             TYPE_INT,        0},  \
 {ENB_CONFIG_STRING_PCCH_NB,                                      NULL,   0,           strptr:&pcch_nB,                                defstrval:"oneT",          TYPE_STRING,     0},  \
 {ENB_CONFIG_STRING_BCCH_MODIFICATIONPERIODCOEFF,                 NULL,   0,           iptr:&bcch_modificationPeriodCoeff,             defintval:2,               TYPE_UINT,       0},  \
 {ENB_CONFIG_STRING_UETIMERS_T300,                                NULL,   0,           iptr:&ue_TimersAndConstants_t300,               defintval:1000,            TYPE_UINT,       0},  \
@@ -664,217 +655,16 @@ typedef enum {
 {ENB_CONFIG_STRING_DISCRXPOOLPS_RC_SFBITMAP_PRESENT,               NULL,   0,   strptr:(char **)&discRxPoolPS_ResourceConfig_subframeBitmap_present,            defstrval:"prNothing",  TYPE_STRING,  0}, \
 {ENB_CONFIG_STRING_DISCRXPOOLPS_RC_SFBITMAP_CHOICE_BS_BUF,         NULL,   0,   strptr:(char **)&discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf,            defstrval:"001001",  TYPE_STRING,  0}, \
 {ENB_CONFIG_STRING_DISCRXPOOLPS_RC_SFBITMAP_CHOICE_BS_SIZE,        NULL,   0,   iptr:(int32_t *)&discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size,         defintval:1,       TYPE_UINT,    0}, \
-{ENB_CONFIG_STRING_DISCRXPOOLPS_RC_SFBITMAP_CHOICE_BS_ASN_BITS_UNUSED,NULL,   0,   iptr:(int32_t *)&discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused,         defintval:1,       TYPE_UINT,    0} \
-
-}
-
-#define ENB_CONFIG_STRING_SCHEDULING_INFO_LIST                   "scheduling_info_br"
-
-
-
-#define ENB_CONFIG_STRING_SCHEDULING_INFO_SIB1_BR_R13                      "schedulingInfoSIB1_BR_r13"
-#define ENB_CONFIG_STRING_CELL_SELECTION_INFO_CE_R13                       "cellSelectionInfoCE_r13"
-#define ENB_CONFIG_STRING_Q_RX_LEV_MIN_CE_R13                              "q_RxLevMinCE_r13"
-#define ENB_CONFIG_STRING_BANDWIDTH_REDUCED_ACCESS_RELATED_INFO_R13        "bandwidthReducedAccessRelatedInfo_r13"
-#define ENB_CONFIG_STRING_SI_WINDOW_LENGTH_BR_R13                          "si_WindowLength_BR_r13"
-#define ENB_CONFIG_STRING_SI_REPETITION_PATTERN_R13                        "si_RepetitionPattern_r13"
-#define ENB_CONFIG_STRING_FDD_DOWNLINK_OR_TDD_SUBFRAME_BITMAP_BR_R13       "fdd_DownlinkOrTddSubframeBitmapBR_r13"
-#define ENB_CONFIG_STRING_FDD_DOWNLINK_OR_TDD_SUBFRAME_BITMAP_BR_VAL_R13   "fdd_DownlinkOrTddSubframeBitmapBR_val_r13"
-#define ENB_CONFIG_STRING_START_SYMBOL_BR_R13                              "startSymbolBR_r13"
-#define ENB_CONFIG_STRING_SI_HOPPING_CONFIG_COMMON_R13                     "si_HoppingConfigCommon_r13"
-#define ENB_CONFIG_STRING_SI_VALIDITY_TIME_R13                             "si_ValidityTime_r13"
-#define ENB_CONFIG_STRING_FREQ_HOPPING_PARAMETERS_DL_R13                   "freqHoppingParametersDL_r13"
-#define ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_NB_R13                      "mpdcch_pdsch_HoppingNB_r13"
-#define ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13     "interval_DLHoppingConfigCommonModeA_r13"
-#define ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13_VAL "interval_DLHoppingConfigCommonModeA_r13_val"
-#define ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13     "interval_DLHoppingConfigCommonModeB_r13"
-#define ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13_VAL "interval_DLHoppingConfigCommonModeB_r13_val"
-#define ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_OFFSET_R13                  "mpdcch_pdsch_HoppingOffset_r13"
-
-
-#define ENB_CONFIG_STRING_PDSCH_MAX_NUM_REPETITION_CE_MODE_A_R13        "pdsch_maxNumRepetitionCEmodeA_r13"
-#define ENB_CONFIG_STRING_PUSCH_MAX_NUM_REPETITION_CE_MODE_A_R13        "pusch_maxNumRepetitionCEmodeA_r13"
-
-
-
-#define ENB_CONFIG_STRING_BR_PARAMETERS                          "br_parameters"
-#define BRPARAMS_DESC { \
-{ENB_CONFIG_STRING_SCHEDULING_INFO_SIB1_BR_R13,                          NULL,   0,           iptr:&schedulingInfoSIB1_BR_r13,                   defintval:4,                       TYPE_UINT,         0}, \
-{ENB_CONFIG_STRING_CELL_SELECTION_INFO_CE_R13,                           NULL,   0,           strptr:&cellSelectionInfoCE_r13,                   defstrval:"ENABLE",                TYPE_STRING,       0}, \
-{ENB_CONFIG_STRING_Q_RX_LEV_MIN_CE_R13,                                  NULL,   0,           iptr:&q_RxLevMinCE_r13,                            defintval:-70,                     TYPE_INT,          0}, \
-{ENB_CONFIG_STRING_BANDWIDTH_REDUCED_ACCESS_RELATED_INFO_R13,            NULL,   0,           strptr:&bandwidthReducedAccessRelatedInfo_r13,     defstrval:"ENABLE",                TYPE_STRING,       0}, \
-{ENB_CONFIG_STRING_SI_WINDOW_LENGTH_BR_R13,                              NULL,   0,           strptr:&si_WindowLength_BR_r13,                    defstrval:"ms20",                  TYPE_STRING,       0}, \
-{ENB_CONFIG_STRING_SI_REPETITION_PATTERN_R13,                            NULL,   0,           strptr:&si_RepetitionPattern_r13,                  defstrval:"everyRF",               TYPE_STRING,       0},			\
-{ENB_CONFIG_STRING_FDD_DOWNLINK_OR_TDD_SUBFRAME_BITMAP_BR_R13,           NULL,   0,           strptr:&fdd_DownlinkOrTddSubframeBitmapBR_r13,     defstrval:"subframePattern40-r13", TYPE_STRING,       0}, \
-{ENB_CONFIG_STRING_FDD_DOWNLINK_OR_TDD_SUBFRAME_BITMAP_BR_VAL_R13,       NULL,   0,           i64ptr:&fdd_DownlinkOrTddSubframeBitmapBR_val_r13, defint64val:0xFFFFFFFFFF,          TYPE_UINT64,       0}, \
-{ENB_CONFIG_STRING_START_SYMBOL_BR_R13,                                  NULL,   0,           iptr:&startSymbolBR_r13,                           defintval:3,                       TYPE_UINT,         0}, \
-{ENB_CONFIG_STRING_SI_HOPPING_CONFIG_COMMON_R13,                         NULL,   0,           strptr:&si_HoppingConfigCommon_r13 ,               defstrval:"off",                   TYPE_STRING,       0}, \
-{ENB_CONFIG_STRING_SI_VALIDITY_TIME_R13,                                 NULL,   0,           strptr:&si_ValidityTime_r13,                       defstrval:"true",                  TYPE_STRING,       0}, \
-{ENB_CONFIG_STRING_FREQ_HOPPING_PARAMETERS_DL_R13,                       NULL,   0,           strptr:&freqHoppingParametersDL_r13,               defstrval:"DISABLE",               TYPE_STRING,       0}, \
-{ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_NB_R13,                          NULL,   0,           strptr:&mpdcch_pdsch_HoppingNB_r13,                defstrval:"nb2",                   TYPE_STRING,       0}, \
-{ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13,         NULL,   0,           strptr:&interval_DLHoppingConfigCommonModeA_r13,   defstrval:"interval-FDD-r13",      TYPE_STRING,       0}, \
-{ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13_VAL,     NULL,   0,           iptr:&interval_DLHoppingConfigCommonModeA_r13_val, defintval:0,                       TYPE_UINT,         0}, \
-{ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13,         NULL,   0,           strptr:&interval_DLHoppingConfigCommonModeB_r13,   defstrval:"interval-FDD-r13",      TYPE_STRING,       0}, \
-{ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13_VAL,     NULL,   0,           iptr:&interval_DLHoppingConfigCommonModeB_r13_val, defintval:0,                       TYPE_UINT,         0}, \
-{ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_OFFSET_R13,                      NULL,   0,           iptr:&mpdcch_pdsch_HoppingOffset_r13,              defintval:1,                       TYPE_UINT,         0}, \
-{ENB_CONFIG_STRING_FRAME_TYPE,                                           NULL,   0,           strptr:&frame_type,                                defstrval:"FDD",                   TYPE_STRING,       0},  \
-{ENB_CONFIG_STRING_PREAMBLE_TRANSMAX_CE_R13,                             NULL,   0,           strptr:&preambleTransMax_CE_r13,                   defstrval:"n10",                   TYPE_STRING,       0},  \
-{ENB_CONFIG_STRING_TDD_CONFIG,                                           NULL,   0,           iptr:&tdd_config,                                  defintval:3,                       TYPE_UINT,         0},  \
-{ENB_CONFIG_STRING_TDD_CONFIG_S,                                         NULL,   0,           iptr:&tdd_config_s,                                defintval:0,                       TYPE_UINT,         0},  \
-{ENB_CONFIG_STRING_PREFIX_TYPE,                                          NULL,   0,           strptr:&prefix_type,                               defstrval:"NORMAL",                TYPE_STRING,       0},  \
-{ENB_CONFIG_STRING_PBCH_REPETITION,                                      NULL,   0,           strptr:&pbch_repetition,                           defstrval:"FALSE",                 TYPE_STRING,       0},  \
-{ENB_CONFIG_STRING_EUTRA_BAND,                                           NULL,   0,           iptr:&eutra_band,                                  defintval:7,                       TYPE_UINT,       0},  \
-{ENB_CONFIG_STRING_DOWNLINK_FREQUENCY,                                   NULL,   0,           i64ptr:(int64_t *)&downlink_frequency,             defint64val:2680000000,            TYPE_UINT64,     0},  \
-{ENB_CONFIG_STRING_UPLINK_FREQUENCY_OFFSET,                              NULL,   0,           iptr:&uplink_frequency_offset,                     defintval:-120000000,              TYPE_INT,        0},  \
-{ENB_CONFIG_STRING_NID_CELL,                                             NULL,   0,           iptr:&Nid_cell,                                    defintval:0,                       TYPE_UINT,       0},  \
-{ENB_CONFIG_STRING_N_RB_DL,                                              NULL,   0,           iptr:&N_RB_DL,                                     defintval:25,                      TYPE_UINT,       0},  \
-{ENB_CONFIG_STRING_CELL_MBSFN,                                           NULL,   0,           iptr:&Nid_cell_mbsfn,                              defintval:0,                       TYPE_INT,        0},  \
-{ENB_CONFIG_STRING_NB_ANT_PORTS,                                         NULL,   0,           iptr:&nb_antenna_ports,                            defintval:1,                       TYPE_UINT,       0},  \
-{ENB_CONFIG_STRING_PRACH_ROOT,                                           NULL,   0,           iptr:&prach_root,                                  defintval:0,                       TYPE_UINT,       0},  \
-{ENB_CONFIG_STRING_PRACH_CONFIG_INDEX,                                   NULL,   0,           iptr:&prach_config_index,                          defintval:0,                       TYPE_INT,        0},  \
-{ENB_CONFIG_STRING_PRACH_HIGH_SPEED,                                     NULL,   0,           strptr:&prach_high_speed,                          defstrval:"DISABLE",               TYPE_STRING,     0},  \
-{ENB_CONFIG_STRING_PRACH_ZERO_CORRELATION,                               NULL,   0,           iptr:&prach_zero_correlation,                      defintval:1,                       TYPE_UINT,       0},  \
-{ENB_CONFIG_STRING_PRACH_FREQ_OFFSET,                                    NULL,   0,           iptr:&prach_freq_offset,                           defintval:2,                       TYPE_UINT,       0},  \
-{ENB_CONFIG_STRING_PUCCH_DELTA_SHIFT,                                    NULL,   0,           iptr:&pucch_delta_shift,                           defintval:1,                       TYPE_UINT,       0},  \
-{ENB_CONFIG_STRING_PUCCH_NRB_CQI,                                        NULL,   0,           iptr:&pucch_nRB_CQI,                               defintval:1,                       TYPE_UINT,       0},  \
-{ENB_CONFIG_STRING_PUCCH_NCS_AN,                                         NULL,   0,           iptr:&pucch_nCS_AN,                                defintval:0,                       TYPE_UINT,       0},  \
-{ENB_CONFIG_STRING_PUCCH_N1_AN,                                          NULL,   0,           iptr:&pucch_n1_AN,                                 defintval:32,                      TYPE_UINT,       0},  \
-{ENB_CONFIG_STRING_PDSCH_RS_EPRE,                                        NULL,   0,           iptr:&pdsch_referenceSignalPower,                  defintval:-29,                     TYPE_INT,        0},  \
-{ENB_CONFIG_STRING_PDSCH_PB,                                             NULL,   0,           iptr:&pdsch_p_b,                                   defintval:0,                       TYPE_INT,        0},  \
-{ENB_CONFIG_STRING_PUSCH_N_SB,                                           NULL,   0,           iptr:&pusch_n_SB,                                  defintval:1,                       TYPE_INT,        0},  \
-{ENB_CONFIG_STRING_PUSCH_HOPPINGMODE,                                    NULL,   0,           strptr:&pusch_hoppingMode,                         defstrval:"interSubFrame",         TYPE_STRING,     0},  \
-{ENB_CONFIG_STRING_PUSCH_HOPPINGOFFSET,                                  NULL,   0,           iptr:&pusch_hoppingOffset,                         defintval:0,                       TYPE_UINT,       0},  \
-{ENB_CONFIG_STRING_PUSCH_ENABLE64QAM,                                    NULL,   0,           strptr:&pusch_enable64QAM,                         defstrval:"DISABLE",               TYPE_STRING,     0},  \
-{ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN,                               NULL,   0,           strptr:&pusch_groupHoppingEnabled,                 defstrval:"ENABLE",                TYPE_STRING,     0},  \
-{ENB_CONFIG_STRING_PUSCH_GROUP_ASSIGNMENT,                               NULL,   0,           iptr:&pusch_groupAssignment,                       defintval:0,                       TYPE_INT,        0},  \
-{ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN,                            NULL,   0,           strptr:&pusch_sequenceHoppingEnabled,              defstrval:"DISABLE",               TYPE_STRING,     0},  \
-{ENB_CONFIG_STRING_PUSCH_NDMRS1,                                         NULL,   0,           iptr:&pusch_nDMRS1,                                defintval:0,                       TYPE_UINT,       0},  \
-{ENB_CONFIG_STRING_PHICH_DURATION,                                       NULL,   0,           strptr:&phich_duration,                            defstrval:"NORMAL",                TYPE_STRING,     0},  \
-{ENB_CONFIG_STRING_PHICH_RESOURCE,                                       NULL,   0,           strptr:&phich_resource,                            defstrval:"ONESIXTH",              TYPE_STRING,     0},  \
-{ENB_CONFIG_STRING_SRS_ENABLE,                                           NULL,   0,           strptr:&srs_enable,                                defstrval:"DISABLE",               TYPE_STRING,     0},  \
-{ENB_CONFIG_STRING_SRS_BANDWIDTH_CONFIG,                                 NULL,   0,           iptr:&srs_BandwidthConfig,                         defintval:0,                       TYPE_UINT,       0},  \
-{ENB_CONFIG_STRING_SRS_SUBFRAME_CONFIG,                                  NULL,   0,           iptr:&srs_SubframeConfig,                          defintval:0,                       TYPE_UINT,       0},  \
-{ENB_CONFIG_STRING_SRS_ACKNACKST_CONFIG,                                 NULL,   0,           strptr:&srs_ackNackST,                             defstrval:"DISABLE",               TYPE_STRING,     0},  \
-{ENB_CONFIG_STRING_SRS_MAXUPPTS,                                         NULL,   0,           strptr:&srs_MaxUpPts,                              defstrval:"DISABLE",               TYPE_STRING,     0},  \
-{ENB_CONFIG_STRING_PUSCH_PO_NOMINAL,                                     NULL,   0,           iptr:&pusch_p0_Nominal,                            defintval:-90,                     TYPE_INT,        0},  \
-{ENB_CONFIG_STRING_PUSCH_ALPHA,                                          NULL,   0,           strptr:&pusch_alpha,                               defstrval:"AL1",                   TYPE_STRING,     0},  \
-{ENB_CONFIG_STRING_PUCCH_PO_NOMINAL,                                     NULL,   0,           iptr:&pucch_p0_Nominal,                            defintval:-96,                     TYPE_INT,        0},  \
-{ENB_CONFIG_STRING_MSG3_DELTA_PREAMBLE,                                  NULL,   0,           iptr:&msg3_delta_Preamble,                         defintval:6,                       TYPE_UINT,       0},  \
-{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1,                                 NULL,   0,           strptr:&pucch_deltaF_Format1,                      defstrval:"DELTAF2",               TYPE_STRING,     0},  \
-{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1b,                                NULL,   0,           strptr:&pucch_deltaF_Format1b,                     defstrval:"deltaF3",               TYPE_STRING,     0},  \
-{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2,                                 NULL,   0,           strptr:&pucch_deltaF_Format2,                      defstrval:"deltaF0",               TYPE_STRING,     0},  \
-{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2A,                                NULL,   0,           strptr:&pucch_deltaF_Format2a,                     defstrval:"deltaF0",               TYPE_STRING,     0},  \
-{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2B,                                NULL,   0,           strptr:&pucch_deltaF_Format2b,                     defstrval:"deltaF0",               TYPE_STRING,     0},  \
-{ENB_CONFIG_STRING_RACH_NUM_RA_PREAMBLES,                                NULL,   0,           iptr:&rach_numberOfRA_Preambles,                   defstrval:"n4",                    TYPE_STRING,     0},  \
-{ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG,                           NULL,   0,           strptr:&rach_preamblesGroupAConfig,                defstrval:"DISABLE",               TYPE_STRING,     0},  \
-{ENB_CONFIG_STRING_RACH_SIZEOFRA_PREAMBLESGROUPA,                        NULL,   0,           iptr:&rach_sizeOfRA_PreamblesGroupA,               defintval:0,                       TYPE_UINT,       0},  \
-{ENB_CONFIG_STRING_RACH_MESSAGESIZEGROUPA,                               NULL,   0,           iptr:&rach_messageSizeGroupA,                      defintval:56,                      TYPE_UINT,       0},  \
-{ENB_CONFIG_STRING_RACH_MESSAGEPOWEROFFSETGROUPB,                        NULL,   0,           strptr:&rach_messagePowerOffsetGroupB,             defstrval:"minusinfinity",         TYPE_STRING,     0},  \
-{ENB_CONFIG_STRING_RACH_POWERRAMPINGSTEP,                                NULL,   0,           iptr:&rach_powerRampingStep,                       defintval:4,                       TYPE_INT,        0},  \
-{ENB_CONFIG_STRING_RACH_PREAMBLEINITIALRECEIVEDTARGETPOWER,              NULL,   0,           iptr:&rach_preambleInitialReceivedTargetPower,     defintval:-100,                    TYPE_INT,        0},  \
-{ENB_CONFIG_STRING_RACH_PREAMBLETRANSMAX,                                NULL,   0,           iptr:&rach_preambleTransMax,                       defintval:10,                      TYPE_INT,        0},  \
-{ENB_CONFIG_STRING_RACH_RARESPONSEWINDOWSIZE,                            NULL,   0,           iptr:&rach_raResponseWindowSize,                   defintval:10,                      TYPE_INT,        0},  \
-{ENB_CONFIG_STRING_RACH_MACCONTENTIONRESOLUTIONTIMER,                    NULL,   0,           iptr:&rach_macContentionResolutionTimer,           defintval:48,                      TYPE_UINT,       0},  \
-{ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX,                                   NULL,   0,           iptr:&rach_maxHARQ_Msg3Tx,                         defintval:4,                       TYPE_UINT,       0},  \
-{ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE,                            NULL,   0,           strptr:&pcch_defaultPagingCycle,                   defstrval:"rf128",                 TYPE_STRING,     0},  \
-{ENB_CONFIG_STRING_PCCH_NB,                                              NULL,   0,           strptr:&pcch_nB,                                   defstrval:"oneT",                  TYPE_STRING,     0},  \
-{ENB_CONFIG_STRING_BCCH_MODIFICATIONPERIODCOEFF,                         NULL,   0,           iptr:&bcch_modificationPeriodCoeff,                defintval:2,                       TYPE_UINT,       0},  \
-{ENB_CONFIG_STRING_UETIMERS_T300,                                        NULL,   0,           strptr:&ue_TimersAndConstants_t300,                defstrval:"ms1000",                TYPE_STRING,     0},  \
-{ENB_CONFIG_STRING_UETIMERS_T301,                                        NULL,   0,           strptr:&ue_TimersAndConstants_t301,                defstrval:"ms1000",                TYPE_STRING,     0},  \
-{ENB_CONFIG_STRING_UETIMERS_T310,                                        NULL,   0,           strptr:&ue_TimersAndConstants_t310,                defstrval:"ms1000",                TYPE_STRING,     0},  \
-{ENB_CONFIG_STRING_UETIMERS_T311,                                        NULL,   0,           strptr:&ue_TimersAndConstants_t311,                defstrval:"ms10000",               TYPE_STRING,     0},  \
-{ENB_CONFIG_STRING_UETIMERS_N310,                                        NULL,   0,           strptr:&ue_TimersAndConstants_n310,                defstrval:"n20",                   TYPE_STRING,     0},  \
-{ENB_CONFIG_STRING_UETIMERS_N311,                                        NULL,   0,           strptr:&ue_TimersAndConstants_n311,                defstrval:"n1",                    TYPE_STRING,     0},  \
-{ENB_CONFIG_STRING_UE_TRANSMISSION_MODE,                                 NULL,   0,           strptr:&ue_TransmissionMode,                       defstrval:"tm1",                   TYPE_STRING,     0}, \
-{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL0,                  NULL,   0,           strptr:&pucch_NumRepetitionCE_Msg4_Level0_r13,     defstrval:"n1",                    TYPE_STRING,     0}, \
-{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL1,                  NULL,   0,           strptr:&pucch_NumRepetitionCE_Msg4_Level1_r13,     defstrval:"",                      TYPE_STRING,     0}, \
-{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL2,                  NULL,   0,           strptr:&pucch_NumRepetitionCE_Msg4_Level2_r13,     defstrval:"",                      TYPE_STRING,     0}, \
-{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL3,                  NULL,   0,           strptr:&pucch_NumRepetitionCE_Msg4_Level3_r13,     defstrval:"",                      TYPE_STRING,     0}, \
-{ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG,                           NULL,   0,           strptr:&rach_preamblesGroupAConfig,                defstrval:"",                      TYPE_STRING,     0}, \
-}
-
-#define ENB_CONFIG_STRING_SYSTEM_INFO_VALUE_TAG_LIST                    "system_info_value_tag_SI"
-#define RSRP_RANGE_LIST_DESC { \
-{"systemInfoValueTagSi_r13", NULL,   0,           iptr:&systemInfoValueTagSi_r13,                              defintval:0,              TYPE_UINT,       0} \
-  }
-
-
-#define ENB_CONFIG_STRING_SCHEDULING_INFO_BR                           "scheduling_info_br"
-#define SI_INFO_BR_DESC { \
-{"si_Narrowband_r13", NULL,   0,           iptr:&si_Narrowband_r13,             defintval:5,             TYPE_UINT,       0}, \
-{"si_TBS_r13",        NULL,   0,           iptr:&si_TBS_r13,                    defintval:5,             TYPE_UINT,       0} \
-}
-
-#define ENB_CONFIG_STRING_RSRP_RANGE_LIST "rsrp_range_list"
-#define RSRP_RANGE_LIST_DESC { \
-{"rsrp_range_br", NULL,   0,           iptr:&rsrp_range_br,                     defintval:0,     TYPE_UINT,       0} \
-  }
-
-
-#define ENB_CONFIG_STRING_FIRST_PREAMBLE_R13                      "firstPreamble_r13"
-#define ENB_CONFIG_STRING_LAST_PREAMBLE_R13                       "lastPreamble_r13"
-#define ENB_CONFIG_STRING_RA_RESPONSE_WINDOW_SIZE_R13             "ra_ResponseWindowSize_r13"
-#define ENB_CONFIG_STRING_MAC_CONTENTION_RESOLUTION_TIMER_R13     "mac_ContentionResolutionTimer_r13"
-#define ENB_CONFIG_STRING_RAR_HOPPING_CONFIG_R13                  "rar_HoppingConfig_r13  "
-
-#define ENB_CONFIG_STRING_RACH_CE_LEVELINFOLIST_R13 "rach_CE_LevelInfoList_r13"
-#define RACH_CE_LEVELINFOLIST_R13_DESC { \
-{ENB_CONFIG_STRING_FIRST_PREAMBLE_R13,                     NULL,   0,           iptr:&firstPreamble_r13,                 defintval:60,            TYPE_UINT,       0}, \
-{ENB_CONFIG_STRING_LAST_PREAMBLE_R13,                      NULL,   0,           iptr:&lastPreamble_r13,                  defintval:63,            TYPE_UINT,       0}, \
-{ENB_CONFIG_STRING_RA_RESPONSE_WINDOW_SIZE_R13,            NULL,   0,           iptr:&ra_ResponseWindowSize_r13,         defintval:"sf20",        TYPE_STRING,     0}, \
-{ENB_CONFIG_STRING_MAC_CONTENTION_RESOLUTION_TIMER_R13,    NULL,   0,           iptr:&mac_ContentionResolutionTimer_r13, defintval:"sf80",        TYPE_STRING,     0}, \
-{ENB_CONFIG_STRING_RAR_HOPPING_CONFIG_R13,                 NULL,   0,           iptr:&rar_HoppingConfig_r13,             defintval:"off",         TYPE_STRING,     0}\
-}
-
-#define ENB_CONFIG_STRING_PRACH_CONFIG_INDEX_BR                     "prach_config_index_br"
-#define ENB_CONFIG_STRING_PRACH_FREQ_OFFSET_BR                      "prach_freq_offset_br"
-#define ENB_CONFIG_STRING_PRACH_STARTING_SUBFRAME_R13               "prach_StartingSubframe_r13"
-#define ENB_CONFIG_STRING_MAX_NUM_PER_PREAMBLE_ATTEMPT_CE_R13       "maxNumPreambleAttemptCE_r13"
-#define ENB_CONFIG_STRING_NUM_REPETITION_PER_PREAMBLE_ATTEMPT_R13   "numRepetitionPerPreambleAttempt_r13"
-#define ENB_CONFIG_STRING_MPDCCH_NUM_REPETITION_RA_R13              "mpdcch_NumRepetition_RA_r13"
-#define ENB_CONFIG_STRING_PRACH_HOPPING_CONFIG_R13                  "prach_HoppingConfig_r13"
-#define ENB_CONFIG_SRING_MAX_AVAILABLE_NARROW_BAND                  "max_available_narrow_band"
-
-#define ENB_CONFIG_STRING_PRACH_PARAMETERS_CE_R13 "prach_parameters_ce_r13"							
-#define PRACH_PARAMS_CE_R13_DESC { \
-{ENB_CONFIG_STRING_PRACH_CONFIG_INDEX_BR,                   NULL,   0,           iptr:&prach_config_index_br,                 defintval:3,             TYPE_UINT,       0}, \
-{ENB_CONFIG_STRING_PRACH_FREQ_OFFSET_BR,                    NULL,   0,           iptr:&prach_freq_offset_br,                  defintval:1,             TYPE_UINT,       0}, \
-{ENB_CONFIG_STRING_PRACH_STARTING_SUBFRAME_R13,             NULL,   0,           iptr:&prach_StartingSubframe_r13,            defintval:0,             TYPE_UINT,       0}, \
-{ENB_CONFIG_STRING_MAX_NUM_PER_PREAMBLE_ATTEMPT_CE_R13,     NULL,   0,           strptr:&maxNumPreambleAttemptCE_r13,         defstrval:"n10",         TYPE_STRING,     0}, \
-{ENB_CONFIG_STRING_NUM_REPETITION_PER_PREAMBLE_ATTEMPT_R13, NULL,   0,           strptr:&numRepetitionPerPreambleAttempt_r13, defstrval:"n1",          TYPE_STRING,     0}, \
-{ENB_CONFIG_STRING_MPDCCH_NUM_REPETITION_RA_R13,            NULL,   0,           strptr:&mpdcch_NumRepetition_RA_r13,         defstrval:"r1",          TYPE_STRING,     0}, \
-{ENB_CONFIG_STRING_PRACH_HOPPING_CONFIG_R13,                NULL,   0,           strptr:&prach_HoppingConfig_r13,             defstrval:"off",         TYPE_STRING,     0}, \
-{ENB_CONFIG_SRING_MAX_AVAILABLE_NARROW_BAND,                NULL,   0,           uptr:NULL,                                  defintarrayval:NULL,     TYPE_INTARRAY,   0} \
-}
-
-#define ENB_CONFIG_STRING_PUCCH_INFO_VALUE                      "pucch_info_value"
-
-#define ENB_CONFIG_STRING_N1PUCCH_AN_INFOLIST_R13 "n1PUCCH_AN_InfoList_r13"
-#define N1PUCCH_AN_INFOLIST_R13_DESC { \
-{ENB_CONFIG_STRING_PUCCH_INFO_VALUE,                     NULL,   0,           iptr:&pucch_info_value,                    defintval:0,             TYPE_UINT,       0} \
-}
-
-#define ENB_CONFIG_STRING_PCCH_CONFIG_V1310 "pcch_config_v1310"
-#define PCCH_CONFIG_V1310_DESC { \
-{ENB_CONFIG_STRING_PAGING_NARROWBANDS_R13,          NULL,   0,           iptr:&paging_narrowbands_r13,                   defintval:1,             TYPE_UINT,       0}, \
-{ENB_CONFIG_STRING_MPDCCH_NUMREPETITION_PAGING_R13, NULL,   0,           iptr:&mpdcch_numrepetition_paging_r13,          defintval:"r1",          TYPE_STRING,     0}, \
-{ENB_CONFIG_STRING_NB_V1310,                        NULL,   0,           iptr:&nb_v1310,                                 defintval:"one256thT",   TYPE_STRING,     0} \
+{ENB_CONFIG_STRING_DISCRXPOOLPS_RC_SFBITMAP_CHOICE_BS_ASN_BITS_UNUSED,NULL,   0,   iptr:(int32_t *)&discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused,         defintval:1,       TYPE_UINT,    0}, \
+{ENB_CONFIG_STRING_PRACH_CONFIG_COMMON_V1310,                    NULL,   0,           strptr:&prach_ConfigCommon_v1310,               defstrval:"ENABLE",        TYPE_STRING,     0}, \
+{ENB_CONFIG_STRING_MPDCCH_START_SF_CSS_RA_R13,                   NULL,   0,           strptr:&mpdcch_startSF_CSS_RA_r13,              defstrval:"fdd-r13",       TYPE_STRING,     0}, \
+{ENB_CONFIG_STRING_MPDCCH_START_SF_CSS_RA_R13_VAL,               NULL,   0,           strptr:&mpdcch_startSF_CSS_RA_r13_val,          defstrval:"v1",            TYPE_STRING,     0}, \
+{ENB_CONFIG_STRING_PRACH_HOPPING_OFFSET_R13,                     NULL,   0,           iptr:&prach_HoppingOffset_r13,                  defintval:0,               TYPE_INT,        0}, \
+{ENB_CONFIG_STRING_PDSCH_MAX_NUM_REPETITION_CE_MODE_A_R13,       NULL,   0,           strptr:&pdsch_maxNumRepetitionCEmodeA_r13,      defstrval:"r16",           TYPE_STRING,     0}, \
+{ENB_CONFIG_STRING_PUSCH_MAX_NUM_REPETITION_CE_MODE_A_R13,       NULL,   0,           strptr:&pusch_maxNumRepetitionCEmodeA_r13,      defstrval:"r8",            TYPE_STRING,     0}  \
 }
 
-#define ENB_CONFIG_STRING_SIB2_FREQ_HOPPINGPARAMETERS_R13          "sib2_freq_hoppingParameters_r13" 
-#define SIB2_FREQ_HOPPING_R13_DESC { \
-{ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_NB_R13,                      NULL,   0,           strptr:&sib2_mpdcch_pdsch_hoppingNB_r13,                  defstrval:"",            TYPE_STRING,       0}, \
-{"sib2_interval_DLHoppingConfigCommonModeA_r13",                     NULL,   0,           iptr:&sib2_interval_DLHoppingConfigCommonModeA_r13,       defintval:"",            TYPE_STRING,       0}, \
-{"sib2_interval_DLHoppingConfigCommonModeA_r13_val",                 NULL,   0,           iptr:&sib2_interval_DLHoppingConfigCommonModeA_r13_val,   defintval:"",            TYPE_STRING,       0}, \
-{"sib2_interval_DLHoppingConfigCommonModeB_r13",                     NULL,   0,           iptr:&sib2_interval_DLHoppingConfigCommonModeB_r13,       defintval:"",            TYPE_STRING,       0}, \
-{"sib2_interval_DLHoppingConfigCommonModeB_r13_val",                 NULL,   0,           iptr:&sib2_interval_DLHoppingConfigCommonModeB_r13_val,   defintval:"",            TYPE_STRING,       0}, \
-{ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_A_R13,     NULL,   0,           strptr:&sib2_interval_ULHoppingConfigCommonModeA_r13,     defstrval:"FDD",         TYPE_STRING,       0}, \
-{ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_A_R13_VAL, NULL,   0,           strptr:&sib2_interval_ULHoppingConfigCommonModeA_r13_val, defstrval:"int4",        TYPE_STRING,       0}, \
-{"sib2_interval_ULHoppingConfigCommonModeB_r13",                     NULL,   0,           iptr:&sib2_interval_ULHoppingConfigCommonModeB_r13,       defintval:"",            TYPE_STRING,       0}, \
-{"sib2_interval_ULHoppingConfigCommonModeB_r13_val",                 NULL,   0,           iptr:&sib2_interval_ULHoppingConfigCommonModeB_r13_val,   defintval:"",            TYPE_STRING,       0}, \
-{"sib2_mpdcch_pdsch_hoppingOffset_r13",                              NULL,   0,           iptr:&sib2_mpdcch_pdsch_hoppingOffset_r13,                defintval:1,             TYPE_UINT,         0} \
 
-}
 
 #define ENB_CONFIG_FRAME_TYPE_IDX                            0  			     
 #define ENB_CONFIG_TDD_CONFIG_IDX                            1  			     
@@ -1208,3 +998,5 @@ typedef enum {
 #define CONFIG_HLP_WORKER                          "coding and FEP worker thread WORKER_DISABLE or WORKER_ENABLE\n"
 #define CONFIG_HLP_PARALLEL                        "PARALLEL_SINGLE_THREAD, PARALLEL_RU_L1_SPLIT, or PARALLEL_RU_L1_TRX_SPLIT(RU_L1_TRX_SPLIT by defult)\n"
 /*-------------------------------------------------------------------------------------------------------------------------------------------------------------*/
+
+#include "enb_paramdef_emtc.h"
diff --git a/openair2/ENB_APP/enb_paramdef_emtc.h b/openair2/ENB_APP/enb_paramdef_emtc.h
new file mode 100644
index 0000000000000000000000000000000000000000..2ae0a1752d4b6117b74d6834bc3e299f4216c827
--- /dev/null
+++ b/openair2/ENB_APP/enb_paramdef_emtc.h
@@ -0,0 +1,231 @@
+/*
+ * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The OpenAirInterface Software Alliance licenses this file to You under
+ * the OAI Public License, Version 1.1  (the "License"); you may not use this file
+ * except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.openairinterface.org/?page_id=698
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *-------------------------------------------------------------------------------
+ * For more information about the OpenAirInterface (OAI) Software Alliance:
+ *      contact@openairinterface.org
+ */
+
+/*! \file openair2/ENB_APP/enb_paramdef_emtc.h
+ * \brief definition of configuration parameters for emtc eNodeB modules 
+ * \author Raymond KNOPP
+ * \date 2018
+ * \version 0.1
+ * \company EURECOM France
+ * \email: raymond.knopp@eurecom.fr
+ * \note
+ * \warning
+ */
+
+#include "common/config/config_paramdesc.h"
+#include "RRC_paramsvalues.h"
+
+#define ENB_CONFIG_STRING_SCHEDULING_INFO_LIST                   "scheduling_info_br"
+
+
+
+#define ENB_CONFIG_STRING_SCHEDULING_INFO_SIB1_BR_R13                      "schedulingInfoSIB1_BR_r13"
+#define ENB_CONFIG_STRING_CELL_SELECTION_INFO_CE_R13                       "cellSelectionInfoCE_r13"
+#define ENB_CONFIG_STRING_Q_RX_LEV_MIN_CE_R13                              "q_RxLevMinCE_r13"
+#define ENB_CONFIG_STRING_BANDWIDTH_REDUCED_ACCESS_RELATED_INFO_R13        "bandwidthReducedAccessRelatedInfo_r13"
+#define ENB_CONFIG_STRING_SI_WINDOW_LENGTH_BR_R13                          "si_WindowLength_BR_r13"
+#define ENB_CONFIG_STRING_SI_REPETITION_PATTERN_R13                        "si_RepetitionPattern_r13"
+#define ENB_CONFIG_STRING_FDD_DOWNLINK_OR_TDD_SUBFRAME_BITMAP_BR_R13       "fdd_DownlinkOrTddSubframeBitmapBR_r13"
+#define ENB_CONFIG_STRING_FDD_DOWNLINK_OR_TDD_SUBFRAME_BITMAP_BR_VAL_R13   "fdd_DownlinkOrTddSubframeBitmapBR_val_r13"
+#define ENB_CONFIG_STRING_START_SYMBOL_BR_R13                              "startSymbolBR_r13"
+#define ENB_CONFIG_STRING_SI_HOPPING_CONFIG_COMMON_R13                     "si_HoppingConfigCommon_r13"
+#define ENB_CONFIG_STRING_SI_VALIDITY_TIME_R13                             "si_ValidityTime_r13"
+#define ENB_CONFIG_STRING_FREQ_HOPPING_PARAMETERS_DL_R13                   "freqHoppingParametersDL_r13"
+#define ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_NB_R13                      "mpdcch_pdsch_HoppingNB_r13"
+#define ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13     "interval_DLHoppingConfigCommonModeA_r13"
+#define ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13_VAL "interval_DLHoppingConfigCommonModeA_r13_val"
+#define ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13     "interval_DLHoppingConfigCommonModeB_r13"
+#define ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13_VAL "interval_DLHoppingConfigCommonModeB_r13_val"
+#define ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_OFFSET_R13                  "mpdcch_pdsch_HoppingOffset_r13"
+#define ENB_CONFIG_STRING_PREAMBLE_TRANSMAX_CE_R13                         "preamble_TransMax_ce_r13"
+#define ENB_CONFIG_STRING_PREAMBLE_TRANSMAX_CE_R13_VAL                     "preamble_TransMax_ce_r13_val"
+
+#define ENB_CONFIG_STRING_PDSCH_MAX_NUM_REPETITION_CE_MODE_A_R13        "pdsch_maxNumRepetitionCEmodeA_r13"
+#define ENB_CONFIG_STRING_PUSCH_MAX_NUM_REPETITION_CE_MODE_A_R13        "pusch_maxNumRepetitionCEmodeA_r13"
+
+
+
+#define ENB_CONFIG_STRING_BR_PARAMETERS                          "br_parameters"
+#define BRPARAMS_DESC { \
+{"eMTC_configured",                                                      NULL,   0,           iptr:&eMTC_configured,                             defintval:0,                       TYPE_UINT,         0}, \
+{ENB_CONFIG_STRING_SCHEDULING_INFO_SIB1_BR_R13,                          NULL,   0,           iptr:&schedulingInfoSIB1_BR_r13,                   defintval:4,                       TYPE_UINT,         0}, \
+{ENB_CONFIG_STRING_CELL_SELECTION_INFO_CE_R13,                           NULL,   0,           strptr:&cellSelectionInfoCE_r13,                   defstrval:"ENABLE",                TYPE_STRING,       0}, \
+{ENB_CONFIG_STRING_Q_RX_LEV_MIN_CE_R13,                                  NULL,   0,           iptr:&q_RxLevMinCE_r13,                            defintval:-70,                     TYPE_INT,          0}, \
+{ENB_CONFIG_STRING_BANDWIDTH_REDUCED_ACCESS_RELATED_INFO_R13,            NULL,   0,           strptr:&bandwidthReducedAccessRelatedInfo_r13,     defstrval:"ENABLE",                TYPE_STRING,       0}, \
+{ENB_CONFIG_STRING_SI_WINDOW_LENGTH_BR_R13,                              NULL,   0,           strptr:&si_WindowLength_BR_r13,                    defstrval:"ms20",                  TYPE_STRING,       0}, \
+{ENB_CONFIG_STRING_SI_REPETITION_PATTERN_R13,                            NULL,   0,           strptr:&si_RepetitionPattern_r13,                  defstrval:"everyRF",               TYPE_STRING,       0},			\
+{ENB_CONFIG_STRING_FDD_DOWNLINK_OR_TDD_SUBFRAME_BITMAP_BR_R13,           NULL,   0,           strptr:&fdd_DownlinkOrTddSubframeBitmapBR_r13,     defstrval:"subframePattern40-r13", TYPE_STRING,       0}, \
+{ENB_CONFIG_STRING_FDD_DOWNLINK_OR_TDD_SUBFRAME_BITMAP_BR_VAL_R13,       NULL,   0,           i64ptr:&fdd_DownlinkOrTddSubframeBitmapBR_val_r13, defint64val:0xFFFFFFFFFF,          TYPE_UINT64,       0}, \
+{ENB_CONFIG_STRING_START_SYMBOL_BR_R13,                                  NULL,   0,           iptr:&startSymbolBR_r13,                           defintval:3,                       TYPE_UINT,         0}, \
+{ENB_CONFIG_STRING_SI_HOPPING_CONFIG_COMMON_R13,                         NULL,   0,           strptr:&si_HoppingConfigCommon_r13 ,               defstrval:"off",                   TYPE_STRING,       0}, \
+{ENB_CONFIG_STRING_SI_VALIDITY_TIME_R13,                                 NULL,   0,           strptr:&si_ValidityTime_r13,                       defstrval:"true",                  TYPE_STRING,       0}, \
+{ENB_CONFIG_STRING_FREQ_HOPPING_PARAMETERS_DL_R13,                       NULL,   0,           strptr:&freqHoppingParametersDL_r13,               defstrval:"DISABLE",               TYPE_STRING,       0}, \
+{ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_NB_R13,                          NULL,   0,           strptr:&mpdcch_pdsch_HoppingNB_r13,                defstrval:"nb2",                   TYPE_STRING,       0}, \
+{ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13,         NULL,   0,           strptr:&interval_DLHoppingConfigCommonModeA_r13,   defstrval:"interval-FDD-r13",      TYPE_STRING,       0}, \
+{ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13_VAL,     NULL,   0,           iptr:&interval_DLHoppingConfigCommonModeA_r13_val, defintval:0,                       TYPE_UINT,         0}, \
+{ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13,         NULL,   0,           strptr:&interval_DLHoppingConfigCommonModeB_r13,   defstrval:"interval-FDD-r13",      TYPE_STRING,       0}, \
+{ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13_VAL,     NULL,   0,           iptr:&interval_DLHoppingConfigCommonModeB_r13_val, defintval:0,                       TYPE_UINT,         0}, \
+{ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_OFFSET_R13,                      NULL,   0,           iptr:&mpdcch_pdsch_HoppingOffset_r13,              defintval:1,                       TYPE_UINT,         0}, \
+{ENB_CONFIG_STRING_PREAMBLE_TRANSMAX_CE_R13,                             NULL,   0,           strptr:&preambleTransMax_CE_r13,                   defstrval:"n10",                   TYPE_STRING,       0},  \
+{ENB_CONFIG_STRING_PRACH_ROOT,                                           NULL,   0,           iptr:&prach_root_emtc,                                  defintval:0,                       TYPE_UINT,       0},  \
+{ENB_CONFIG_STRING_PRACH_CONFIG_INDEX,                                   NULL,   0,           iptr:&prach_config_index_emtc,                          defintval:0,                       TYPE_INT,        0},  \
+{ENB_CONFIG_STRING_PRACH_HIGH_SPEED,                                     NULL,   0,           strptr:&prach_high_speed_emtc,                          defstrval:"DISABLE",               TYPE_STRING,     0},  \
+{ENB_CONFIG_STRING_PRACH_ZERO_CORRELATION,                               NULL,   0,           iptr:&prach_zero_correlation_emtc,                      defintval:1,                       TYPE_UINT,       0},  \
+{ENB_CONFIG_STRING_PRACH_FREQ_OFFSET,                                    NULL,   0,           iptr:&prach_freq_offset_emtc,                           defintval:2,                       TYPE_UINT,       0},  \
+{ENB_CONFIG_STRING_PUCCH_DELTA_SHIFT,                                    NULL,   0,           iptr:&pucch_delta_shift_emtc,                           defintval:1,                       TYPE_UINT,       0},  \
+{ENB_CONFIG_STRING_PUCCH_NRB_CQI,                                        NULL,   0,           iptr:&pucch_nRB_CQI_emtc,                               defintval:1,                       TYPE_UINT,       0},  \
+{ENB_CONFIG_STRING_PUCCH_NCS_AN,                                         NULL,   0,           iptr:&pucch_nCS_AN_emtc,                                defintval:0,                       TYPE_UINT,       0},  \
+{ENB_CONFIG_STRING_PUCCH_N1_AN,                                          NULL,   0,           iptr:&pucch_n1_AN_emtc,                                 defintval:32,                      TYPE_UINT,       0},  \
+{ENB_CONFIG_STRING_PDSCH_RS_EPRE,                                        NULL,   0,           iptr:&pdsch_referenceSignalPower_emtc,                  defintval:-29,                     TYPE_INT,        0},  \
+{ENB_CONFIG_STRING_PDSCH_PB,                                             NULL,   0,           iptr:&pdsch_p_b_emtc,                                   defintval:0,                       TYPE_INT,        0},  \
+{ENB_CONFIG_STRING_PUSCH_N_SB,                                           NULL,   0,           iptr:&pusch_n_SB_emtc,                                  defintval:1,                       TYPE_INT,        0},  \
+{ENB_CONFIG_STRING_PUSCH_HOPPINGMODE,                                    NULL,   0,           strptr:&pusch_hoppingMode_emtc,                         defstrval:"interSubFrame",         TYPE_STRING,     0},  \
+{ENB_CONFIG_STRING_PUSCH_HOPPINGOFFSET,                                  NULL,   0,           iptr:&pusch_hoppingOffset_emtc,                         defintval:0,                       TYPE_UINT,       0},  \
+{ENB_CONFIG_STRING_PUSCH_ENABLE64QAM,                                    NULL,   0,           strptr:&pusch_enable64QAM_emtc,                         defstrval:"DISABLE",               TYPE_STRING,     0},  \
+{ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN,                               NULL,   0,           strptr:&pusch_groupHoppingEnabled_emtc,                 defstrval:"ENABLE",                TYPE_STRING,     0},  \
+{ENB_CONFIG_STRING_PUSCH_GROUP_ASSIGNMENT,                               NULL,   0,           iptr:&pusch_groupAssignment_emtc,                       defintval:0,                       TYPE_INT,        0},  \
+{ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN,                            NULL,   0,           strptr:&pusch_sequenceHoppingEnabled_emtc,              defstrval:"DISABLE",               TYPE_STRING,     0},  \
+{ENB_CONFIG_STRING_PUSCH_NDMRS1,                                         NULL,   0,           iptr:&pusch_nDMRS1_emtc,                                defintval:0,                       TYPE_UINT,       0},  \
+{ENB_CONFIG_STRING_PHICH_DURATION,                                       NULL,   0,           strptr:&phich_duration_emtc,                            defstrval:"NORMAL",                TYPE_STRING,     0},  \
+{ENB_CONFIG_STRING_PHICH_RESOURCE,                                       NULL,   0,           strptr:&phich_resource_emtc,                            defstrval:"ONESIXTH",              TYPE_STRING,     0},  \
+{ENB_CONFIG_STRING_SRS_ENABLE,                                           NULL,   0,           strptr:&srs_enable_emtc,                                defstrval:"DISABLE",               TYPE_STRING,     0},  \
+{ENB_CONFIG_STRING_SRS_BANDWIDTH_CONFIG,                                 NULL,   0,           iptr:&srs_BandwidthConfig_emtc,                         defintval:0,                       TYPE_UINT,       0},  \
+{ENB_CONFIG_STRING_SRS_SUBFRAME_CONFIG,                                  NULL,   0,           iptr:&srs_SubframeConfig_emtc,                          defintval:0,                       TYPE_UINT,       0},  \
+{ENB_CONFIG_STRING_SRS_ACKNACKST_CONFIG,                                 NULL,   0,           strptr:&srs_ackNackST_emtc,                             defstrval:"DISABLE",               TYPE_STRING,     0},  \
+{ENB_CONFIG_STRING_SRS_MAXUPPTS,                                         NULL,   0,           strptr:&srs_MaxUpPts_emtc,                              defstrval:"DISABLE",               TYPE_STRING,     0},  \
+{ENB_CONFIG_STRING_PUSCH_PO_NOMINAL,                                     NULL,   0,           iptr:&pusch_p0_Nominal_emtc,                            defintval:-90,                     TYPE_INT,        0},  \
+{ENB_CONFIG_STRING_PUSCH_ALPHA,                                          NULL,   0,           strptr:&pusch_alpha_emtc,                               defstrval:"AL1",                   TYPE_STRING,     0},  \
+{ENB_CONFIG_STRING_PUCCH_PO_NOMINAL,                                     NULL,   0,           iptr:&pucch_p0_Nominal_emtc,                            defintval:-96,                     TYPE_INT,        0},  \
+{ENB_CONFIG_STRING_MSG3_DELTA_PREAMBLE,                                  NULL,   0,           iptr:&msg3_delta_Preamble_emtc,                         defintval:6,                       TYPE_UINT,       0},  \
+{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1,                                 NULL,   0,           strptr:&pucch_deltaF_Format1_emtc,                      defstrval:"DELTAF2",               TYPE_STRING,     0},  \
+{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1b,                                NULL,   0,           strptr:&pucch_deltaF_Format1b_emtc,                     defstrval:"deltaF3",               TYPE_STRING,     0},  \
+{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2,                                 NULL,   0,           strptr:&pucch_deltaF_Format2_emtc,                      defstrval:"deltaF0",               TYPE_STRING,     0},  \
+{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2A,                                NULL,   0,           strptr:&pucch_deltaF_Format2a_emtc,                     defstrval:"deltaF0",               TYPE_STRING,     0},  \
+{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2B,                                NULL,   0,           strptr:&pucch_deltaF_Format2b_emtc,                     defstrval:"deltaF0",               TYPE_STRING,     0},  \
+{ENB_CONFIG_STRING_RACH_NUM_RA_PREAMBLES,                                NULL,   0,           iptr:&rach_numberOfRA_Preambles_emtc,                   defstrval:"n4",                    TYPE_STRING,     0},  \
+{ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG,                           NULL,   0,           strptr:&rach_preamblesGroupAConfig_emtc,                defstrval:"DISABLE",               TYPE_STRING,     0},  \
+{ENB_CONFIG_STRING_RACH_SIZEOFRA_PREAMBLESGROUPA,                        NULL,   0,           iptr:&rach_sizeOfRA_PreamblesGroupA_emtc,               defintval:0,                       TYPE_UINT,       0},  \
+{ENB_CONFIG_STRING_RACH_MESSAGESIZEGROUPA,                               NULL,   0,           iptr:&rach_messageSizeGroupA_emtc,                      defintval:56,                      TYPE_UINT,       0},  \
+{ENB_CONFIG_STRING_RACH_MESSAGEPOWEROFFSETGROUPB,                        NULL,   0,           strptr:&rach_messagePowerOffsetGroupB_emtc,             defstrval:"minusinfinity",         TYPE_STRING,     0},  \
+{ENB_CONFIG_STRING_RACH_POWERRAMPINGSTEP,                                NULL,   0,           iptr:&rach_powerRampingStep_emtc,                       defintval:4,                       TYPE_INT,        0},  \
+{ENB_CONFIG_STRING_RACH_PREAMBLEINITIALRECEIVEDTARGETPOWER,              NULL,   0,           iptr:&rach_preambleInitialReceivedTargetPower_emtc,     defintval:-100,                    TYPE_INT,        0},  \
+{ENB_CONFIG_STRING_RACH_PREAMBLETRANSMAX,                                NULL,   0,           iptr:&rach_preambleTransMax_emtc,                       defintval:10,                      TYPE_INT,        0},  \
+{ENB_CONFIG_STRING_RACH_RARESPONSEWINDOWSIZE,                            NULL,   0,           iptr:&rach_raResponseWindowSize_emtc,                   defintval:10,                      TYPE_INT,        0},  \
+{ENB_CONFIG_STRING_RACH_MACCONTENTIONRESOLUTIONTIMER,                    NULL,   0,           iptr:&rach_macContentionResolutionTimer_emtc,           defintval:48,                      TYPE_UINT,       0},  \
+{ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX,                                   NULL,   0,           iptr:&rach_maxHARQ_Msg3Tx_emtc,                         defintval:4,                       TYPE_UINT,       0},  \
+{ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE,                            NULL,   0,           iptr:&pcch_defaultPagingCycle_emtc,                     defintval:128,                 TYPE_INT,     0},  \
+{ENB_CONFIG_STRING_PCCH_NB,                                              NULL,   0,           strptr:&pcch_nB_emtc,                                   defstrval:"oneT",                  TYPE_STRING,     0},  \
+{ENB_CONFIG_STRING_BCCH_MODIFICATIONPERIODCOEFF,                         NULL,   0,           iptr:&bcch_modificationPeriodCoeff_emtc,                defintval:2,                       TYPE_UINT,       0},  \
+{ENB_CONFIG_STRING_UETIMERS_T300,                                NULL,   0,           iptr:&ue_TimersAndConstants_t300_emtc,               defintval:1000,            TYPE_UINT,       0},  \
+{ENB_CONFIG_STRING_UETIMERS_T301,                                NULL,   0,           iptr:&ue_TimersAndConstants_t301_emtc,               defintval:1000,            TYPE_UINT,       0},  \
+{ENB_CONFIG_STRING_UETIMERS_T310,                                NULL,   0,           iptr:&ue_TimersAndConstants_t310_emtc,               defintval:1000,            TYPE_UINT,       0},  \
+{ENB_CONFIG_STRING_UETIMERS_T311,                                NULL,   0,           iptr:&ue_TimersAndConstants_t311_emtc,               defintval:10000,           TYPE_UINT,       0},  \
+{ENB_CONFIG_STRING_UETIMERS_N310,                                NULL,   0,           iptr:&ue_TimersAndConstants_n310_emtc,               defintval:20,              TYPE_UINT,       0},  \
+{ENB_CONFIG_STRING_UETIMERS_N311,                                NULL,   0,           iptr:&ue_TimersAndConstants_n311_emtc,               defintval:1,               TYPE_UINT,       0},  \
+{ENB_CONFIG_STRING_UE_TRANSMISSION_MODE,                         NULL,   0,           iptr:&ue_TransmissionMode_emtc,                      defintval:1,               TYPE_UINT,       0},  \
+{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL0,                  NULL,   0,           strptr:&pucch_NumRepetitionCE_Msg4_Level0_r13,     defstrval:"n1",                    TYPE_STRING,     0}, \
+{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL1,                  NULL,   0,           strptr:&pucch_NumRepetitionCE_Msg4_Level1_r13,     defstrval:"",                      TYPE_STRING,     0}, \
+{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL2,                  NULL,   0,           strptr:&pucch_NumRepetitionCE_Msg4_Level2_r13,     defstrval:"",                      TYPE_STRING,     0}, \
+{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL3,                  NULL,   0,           strptr:&pucch_NumRepetitionCE_Msg4_Level3_r13,     defstrval:"",                      TYPE_STRING,     0}, \
+{ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG,                           NULL,   0,           strptr:&rach_preamblesGroupAConfig_emtc,                defstrval:"",                      TYPE_STRING,     0}, \
+}
+
+#define ENB_CONFIG_STRING_SYSTEM_INFO_VALUE_TAG_LIST                    "system_info_value_tag_SI"
+#define SYSTEM_INFO_VALUE_TAG_SI_DESC {							\
+{"systemInfoValueTagSi_r13", NULL,   0,           iptr:&systemInfoValueTagSi_r13,                              defintval:0,              TYPE_UINT,       0} \
+  }
+
+
+#define ENB_CONFIG_STRING_SCHEDULING_INFO_BR                           "scheduling_info_br"
+#define SI_INFO_BR_DESC { \
+{"si_Narrowband_r13", NULL,   0,           iptr:&si_Narrowband_r13,             defintval:5,             TYPE_UINT,       0}, \
+{"si_TBS_r13",        NULL,   0,           iptr:&si_TBS_r13,                    defintval:5,             TYPE_UINT,       0} \
+}
+
+#define ENB_CONFIG_STRING_RSRP_RANGE_LIST "rsrp_range_list"
+#define RSRP_RANGE_LIST_DESC { \
+{"rsrp_range_br", NULL,   0,           iptr:&rsrp_range_br,                     defintval:0,     TYPE_UINT,       0} \
+  }
+
+
+#define ENB_CONFIG_STRING_FIRST_PREAMBLE_R13                      "firstPreamble_r13"
+#define ENB_CONFIG_STRING_LAST_PREAMBLE_R13                       "lastPreamble_r13"
+#define ENB_CONFIG_STRING_RA_RESPONSE_WINDOW_SIZE_R13             "ra_ResponseWindowSize_r13"
+#define ENB_CONFIG_STRING_MAC_CONTENTION_RESOLUTION_TIMER_R13     "mac_ContentionResolutionTimer_r13"
+#define ENB_CONFIG_STRING_RAR_HOPPING_CONFIG_R13                  "rar_HoppingConfig_r13  "
+
+#define ENB_CONFIG_STRING_RACH_CE_LEVELINFOLIST_R13 "rach_CE_LevelInfoList_r13"
+#define RACH_CE_LEVELINFOLIST_R13_DESC { \
+{ENB_CONFIG_STRING_FIRST_PREAMBLE_R13,                     NULL,   0,           iptr:&firstPreamble_r13,                 defintval:60,            TYPE_UINT,       0}, \
+{ENB_CONFIG_STRING_LAST_PREAMBLE_R13,                      NULL,   0,           iptr:&lastPreamble_r13,                  defintval:63,            TYPE_UINT,       0}, \
+{ENB_CONFIG_STRING_RA_RESPONSE_WINDOW_SIZE_R13,            NULL,   0,           iptr:&ra_ResponseWindowSize_r13,         defintval:20,        TYPE_UINT,     0}, \
+{ENB_CONFIG_STRING_MAC_CONTENTION_RESOLUTION_TIMER_R13,    NULL,   0,           iptr:&mac_ContentionResolutionTimer_r13, defintval:80,        TYPE_UINT,     0}, \
+{ENB_CONFIG_STRING_RAR_HOPPING_CONFIG_R13,                 NULL,   0,           iptr:&rar_HoppingConfig_r13,             defintval:0,         TYPE_UINT,     0}\
+}
+
+#define ENB_CONFIG_STRING_PRACH_CONFIG_INDEX_BR                     "prach_config_index_br"
+#define ENB_CONFIG_STRING_PRACH_FREQ_OFFSET_BR                      "prach_freq_offset_br"
+#define ENB_CONFIG_STRING_PRACH_STARTING_SUBFRAME_R13               "prach_StartingSubframe_r13"
+#define ENB_CONFIG_STRING_MAX_NUM_PER_PREAMBLE_ATTEMPT_CE_R13       "maxNumPreambleAttemptCE_r13"
+#define ENB_CONFIG_STRING_NUM_REPETITION_PER_PREAMBLE_ATTEMPT_R13   "numRepetitionPerPreambleAttempt_r13"
+#define ENB_CONFIG_STRING_MPDCCH_NUM_REPETITION_RA_R13              "mpdcch_NumRepetition_RA_r13"
+#define ENB_CONFIG_STRING_PRACH_HOPPING_CONFIG_R13                  "prach_HoppingConfig_r13"
+#define ENB_CONFIG_SRING_MAX_AVAILABLE_NARROW_BAND                  "max_available_narrow_band"
+
+#define ENB_CONFIG_STRING_PRACH_PARAMETERS_CE_R13 "prach_parameters_ce_r13"							
+#define PRACH_PARAMS_CE_R13_DESC { \
+{ENB_CONFIG_STRING_PRACH_CONFIG_INDEX_BR,                   NULL,   0,           iptr:&prach_config_index_br,                 defintval:3,             TYPE_UINT,       0}, \
+{ENB_CONFIG_STRING_PRACH_FREQ_OFFSET_BR,                    NULL,   0,           iptr:&prach_freq_offset_br,                  defintval:1,             TYPE_UINT,       0}, \
+{ENB_CONFIG_STRING_PRACH_STARTING_SUBFRAME_R13,             NULL,   0,           iptr:&prach_StartingSubframe_r13,            defintval:0,             TYPE_UINT,       0}, \
+{ENB_CONFIG_STRING_MAX_NUM_PER_PREAMBLE_ATTEMPT_CE_R13,     NULL,   0,           iptr:&maxNumPreambleAttemptCE_r13,         defintval:10,         TYPE_UINT,     0}, \
+{ENB_CONFIG_STRING_NUM_REPETITION_PER_PREAMBLE_ATTEMPT_R13, NULL,   0,           iptr:&numRepetitionPerPreambleAttempt_r13, defintval:1,          TYPE_UINT,     0}, \
+{ENB_CONFIG_STRING_MPDCCH_NUM_REPETITION_RA_R13,            NULL,   0,           iptr:&mpdcch_NumRepetition_RA_r13,         defintval:1,          TYPE_UINT,     0}, \
+{ENB_CONFIG_STRING_PRACH_HOPPING_CONFIG_R13,                NULL,   0,           iptr:&prach_HoppingConfig_r13,             defintval:0,         TYPE_UINT,     0}, \
+{ENB_CONFIG_SRING_MAX_AVAILABLE_NARROW_BAND,                NULL,   0,           uptr:NULL,                                  defintarrayval:NULL,     TYPE_INTARRAY,   0} \
+}
+
+#define ENB_CONFIG_STRING_PUCCH_INFO_VALUE                      "pucch_info_value"
+
+#define ENB_CONFIG_STRING_N1PUCCH_AN_INFOLIST_R13 "n1PUCCH_AN_InfoList_r13"
+#define N1PUCCH_AN_INFOLIST_R13_DESC { \
+{ENB_CONFIG_STRING_PUCCH_INFO_VALUE,                     NULL,   0,           iptr:&pucch_info_value,                    defintval:0,             TYPE_UINT,       0} \
+}
+
+#define ENB_CONFIG_STRING_PCCH_CONFIG_V1310 "pcch_config_v1310"
+#define PCCH_CONFIG_V1310_DESC { \
+{ENB_CONFIG_STRING_PAGING_NARROWBANDS_R13,          NULL,   0,           iptr:&paging_narrowbands_r13,                   defintval:1,             TYPE_UINT,       0}, \
+{ENB_CONFIG_STRING_MPDCCH_NUMREPETITION_PAGING_R13, NULL,   0,           iptr:&mpdcch_numrepetition_paging_r13,          defintval:1,          TYPE_UINT,     0}, \
+{ENB_CONFIG_STRING_NB_V1310,                        NULL,   0,           iptr:&nb_v1310,                                 defintval:256,   TYPE_UINT,     0} \
+}
+
+#define ENB_CONFIG_STRING_SIB2_FREQ_HOPPINGPARAMETERS_R13          "sib2_freq_hoppingParameters_r13" 
+#define SIB2_FREQ_HOPPING_R13_DESC { \
+{ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_NB_R13,                      NULL,   0,           iptr:&sib2_mpdcch_pdsch_hoppingNB_r13,                  defintval:0,            TYPE_UINT,       0}, \
+{"sib2_interval_DLHoppingConfigCommonModeA_r13",                     NULL,   0,           strptr:&sib2_interval_DLHoppingConfigCommonModeA_r13,       defstrval:"FDD",            TYPE_STRING,       0}, \
+{"sib2_interval_DLHoppingConfigCommonModeA_r13_val",                 NULL,   0,           iptr:&sib2_interval_DLHoppingConfigCommonModeA_r13_val,   defintval:0,            TYPE_UINT,       0}, \
+{"sib2_interval_DLHoppingConfigCommonModeB_r13",                     NULL,   0,           strptr:&sib2_interval_DLHoppingConfigCommonModeB_r13,       defstrval:"FDD",            TYPE_STRING,       0}, \
+{"sib2_interval_DLHoppingConfigCommonModeB_r13_val",                 NULL,   0,           iptr:&sib2_interval_DLHoppingConfigCommonModeB_r13_val,   defintval:0,            TYPE_UINT,       0}, \
+{"sib2_interval_ULHoppingConfigCommonModeA_r13",     NULL,   0,           strptr:&sib2_interval_ULHoppingConfigCommonModeA_r13,     defstrval:"FDD",         TYPE_STRING,       0}, \
+{"sib2_interval_ULHoppingConfigCommonModeA_r13_val", NULL,   0,           iptr:&sib2_interval_ULHoppingConfigCommonModeA_r13_val, defintval:4,        TYPE_UINT,       0}, \
+{"sib2_interval_ULHoppingConfigCommonModeB_r13",                     NULL,   0,           strptr:&sib2_interval_ULHoppingConfigCommonModeB_r13,       defstrval:"FDD",            TYPE_STRING,       0}, \
+{"sib2_interval_ULHoppingConfigCommonModeB_r13_val",                 NULL,   0,           iptr:&sib2_interval_ULHoppingConfigCommonModeB_r13_val,   defintval:0,            TYPE_UINT,       0}, \
+{"sib2_mpdcch_pdsch_hoppingOffset_r13",                              NULL,   0,           iptr:&sib2_mpdcch_pdsch_hoppingOffset_r13,                defintval:1,             TYPE_UINT,         0} \
+}
diff --git a/openair2/ENB_APP/flexran_agent_ran_api.c b/openair2/ENB_APP/flexran_agent_ran_api.c
index 973d322a5f30177871bad5ac6984411c447d49dd..2f4b527480f4a9e0f7a8bddb38e5e314e12f239a 100644
--- a/openair2/ENB_APP/flexran_agent_ran_api.c
+++ b/openair2/ENB_APP/flexran_agent_ran_api.c
@@ -670,13 +670,13 @@ uint8_t flexran_get_special_subframe_assignment(mid_t mod_id, uint8_t cc_id)
 long flexran_get_ra_ResponseWindowSize(mid_t mod_id, uint8_t cc_id)
 {
   if (!rrc_is_present(mod_id)) return 0;
-  return RC.rrc[mod_id]->configuration.rach_raResponseWindowSize[cc_id];
+  return RC.rrc[mod_id]->configuration.radioresourceconfig[cc_id].rach_raResponseWindowSize;
 }
 
 long flexran_get_mac_ContentionResolutionTimer(mid_t mod_id, uint8_t cc_id)
 {
   if (!rrc_is_present(mod_id)) return 0;
-  return RC.rrc[mod_id]->configuration.rach_macContentionResolutionTimer[cc_id];
+  return RC.rrc[mod_id]->configuration.radioresourceconfig[cc_id].rach_macContentionResolutionTimer;
 }
 
 Protocol__FlexDuplexMode flexran_get_duplex_mode(mid_t mod_id, uint8_t cc_id)
@@ -1131,7 +1131,7 @@ int8_t flexran_agent_get_operating_pdsch_refpower(mid_t mod_id, uint8_t cc_id)
 long flexran_agent_get_operating_pusch_p0(mid_t mod_id, uint8_t cc_id)
 {
   if (!rrc_is_present(mod_id)) return 0;
-  return RC.rrc[mod_id]->configuration.pusch_p0_Nominal[cc_id];
+  return RC.rrc[mod_id]->configuration.radioresourceconfig[cc_id].pusch_p0_Nominal;
 }
 
 void flexran_agent_set_operating_dl_freq(mid_t mod_id, uint8_t cc_id, uint32_t dl_freq_mhz)
diff --git a/openair2/LAYER2/MAC/eNB_scheduler_RA.c b/openair2/LAYER2/MAC/eNB_scheduler_RA.c
index 4e9e02af18af69fcecd80ae7fca9d1f9b6ad755f..7f55aa8d2313fb99e5e688d4fe3ad2fae9eb9fba 100755
--- a/openair2/LAYER2/MAC/eNB_scheduler_RA.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler_RA.c
@@ -132,7 +132,7 @@ add_msg3(module_id_t module_idP, int CC_id, RA_t * ra, frame_t frameP,
     memset ((void *) ul_config_pdu, 0, sizeof (nfapi_ul_config_request_pdu_t));
     ul_config_pdu->pdu_type = NFAPI_UL_CONFIG_ULSCH_PDU_TYPE;
     ul_config_pdu->pdu_size = (uint8_t) (2 + sizeof (nfapi_ul_config_ulsch_pdu));
-    ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.handle = eNB->ul_handle++;
+    ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.handle = mac->ul_handle++;
     ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.rnti = ra->rnti;
     ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.resource_block_start = narrowband_to_first_rb (cc, ra->msg34_narrowband) + ra->msg3_first_rb;
     ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.number_of_resource_blocks = ra->msg3_nb_rb;
@@ -244,21 +244,21 @@ generate_Msg2(module_id_t module_idP, int CC_idP, frame_t frameP,
 	      sub_frame_t subframeP, RA_t * ra)
 {
 
-    eNB_MAC_INST *mac = RC.mac[module_idP];
-    COMMON_channels_t *cc = mac->common_channels;
-
-    uint8_t *vrb_map;
-    int first_rb;
-    int N_RB_DL;
-    nfapi_dl_config_request_pdu_t *dl_config_pdu;
-    nfapi_tx_request_pdu_t *TX_req;
-    nfapi_dl_config_request_body_t *dl_req;
-
-    vrb_map = cc[CC_idP].vrb_map;
-    dl_req = &mac->DL_req[CC_idP].dl_config_request_body;
-    dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu];
-    N_RB_DL = to_prb(cc[CC_idP].mib->message.dl_Bandwidth);
-
+  eNB_MAC_INST *mac = RC.mac[module_idP];
+  COMMON_channels_t *cc = mac->common_channels;
+  
+  uint8_t *vrb_map;
+  int first_rb;
+  int N_RB_DL;
+  nfapi_dl_config_request_pdu_t *dl_config_pdu;
+  nfapi_tx_request_pdu_t *TX_req;
+  nfapi_dl_config_request_body_t *dl_req_body;
+  
+  vrb_map = cc[CC_idP].vrb_map;
+  dl_req_body = &mac->DL_req[CC_idP].dl_config_request_body;
+  dl_config_pdu = &dl_req_body->dl_config_pdu_list[dl_req_body->number_pdu];
+  N_RB_DL = to_prb(cc[CC_idP].mib->message.dl_Bandwidth);
+  
 #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
   int             rmax = 0;
   int             rep = 0;
@@ -319,7 +319,7 @@ generate_Msg2(module_id_t module_idP, int CC_idP, frame_t frameP,
     ra->msg2_narrowband = *p[ra->rach_resource_type - 1]->mpdcch_NarrowbandsToMonitor_r13.list.array[ra->preamble_index % num_nb]-1;
     first_rb = narrowband_to_first_rb (&cc[CC_idP], ra->msg2_narrowband);
 
-    if ((ra->msg2_mpdcch_repetition_cnt == 0) && (mpdcch_sf_condition (eNB, CC_idP, frameP, subframeP, rmax, TYPE2, -1) > 0)) {
+    if ((ra->msg2_mpdcch_repetition_cnt == 0) && (mpdcch_sf_condition (mac, CC_idP, frameP, subframeP, rmax, TYPE2, -1) > 0)) {
       ra->msg2_mpdcch_done = 0;
       // MPDCCH configuration for RAR
       LOG_I (MAC, "[eNB %d][RAPROC] Frame %d, Subframe %d : In generate_Msg2 for CE Level %d, Programming MPDCCH %d repetitions\n", module_idP, frameP, subframeP, ra->rach_resource_type-1,reps);
@@ -371,7 +371,7 @@ generate_Msg2(module_id_t module_idP, int CC_idP, frame_t frameP,
       dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.total_dci_length_including_padding = 0;        // this is not needed by OAI L1, but should be filled in
       dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_tx_antenna_ports = 1;
       ra->msg2_mpdcch_repetition_cnt++;
-      dl_req->number_pdu++;
+      dl_req_body->number_pdu++;
       ra->Msg2_subframe = (ra->Msg2_subframe + 9) % 10;
 
     }                           //repetition_count==0 && SF condition met
@@ -402,13 +402,12 @@ generate_Msg2(module_id_t module_idP, int CC_idP, frame_t frameP,
       if ((ra->Msg2_frame == frameP) && (ra->Msg2_subframe == subframeP)) {
         // Program PDSCH
         LOG_I (MAC, "[eNB %d][RAPROC] Frame %d, Subframe %d : In generate_Msg2, Programming PDSCH\n", module_idP, frameP, subframeP);
-        ra->generate_rar = 0;
 
-        dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu];
+        dl_config_pdu = &dl_req_body->dl_config_pdu_list[dl_req_body->number_pdu];
         memset ((void *) dl_config_pdu, 0, sizeof (nfapi_dl_config_request_pdu_t));
         dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DLSCH_PDU_TYPE;
         dl_config_pdu->pdu_size = (uint8_t) (2 + sizeof (nfapi_dl_config_dlsch_pdu));
-        dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index = eNB->pdu_index[CC_idP];
+        dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index = mac->pdu_index[CC_idP];
         dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.rnti = ra->RA_rnti;
         dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_allocation_type = 2;
         dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.virtual_resource_block_assignment_flag = 0;     // localized
@@ -438,22 +437,23 @@ generate_Msg2(module_id_t module_idP, int CC_idP, frame_t frameP,
         dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.pdsch_payload_type = 2;        // not SI message
         dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.initial_transmission_sf_io = (10 * frameP) + subframeP;
         dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.drms_table_flag = 0;
-        dl_req->number_pdu++;
+        dl_req_body->number_pdu++;
 
-	fill_rar_br (eNB, CC_idP, ra, frameP, subframeP, cc[CC_idP].RAR_pdu.payload, ra->rach_resource_type - 1)     ; 
+	fill_rar_br (mac, CC_idP, ra, frameP, subframeP, cc[CC_idP].RAR_pdu.payload, ra->rach_resource_type - 1)     ; 
 // Program UL processing for Msg3, same as regular LTE
         get_Msg3alloc (&cc[CC_idP], subframeP, frameP, &ra->Msg3_frame, &ra->Msg3_subframe);
         add_msg3 (module_idP, CC_idP, ra, frameP, subframeP);
+	ra->state = WAITMSG3;
         // DL request
-        LOG_I (MAC, "[eNB %d][RAPROC] Frame %d, Subframe %d : In generate_Msg2, Programming TX Req %d\n", module_idP, frameP, subframeP);
-        eNB->TX_req[CC_idP].sfn_sf = (frameP << 4) + subframeP;
-        TX_req = &eNB->TX_req[CC_idP].tx_request_body.tx_pdu_list[eNB->TX_req[CC_idP].tx_request_body.number_of_pdus];
+        LOG_I (MAC, "[eNB %d][RAPROC] Frame %d, Subframe %d : In generate_Msg2, Programming TX Req\n", module_idP, frameP, subframeP);
+        mac->TX_req[CC_idP].sfn_sf = (frameP << 4) + subframeP;
+        TX_req = &mac->TX_req[CC_idP].tx_request_body.tx_pdu_list[mac->TX_req[CC_idP].tx_request_body.number_of_pdus];
         TX_req->pdu_length = 7; // This should be changed if we have more than 1 preamble 
-        TX_req->pdu_index = eNB->pdu_index[CC_idP]++;
+        TX_req->pdu_index = mac->pdu_index[CC_idP]++;
         TX_req->num_segments = 1;
         TX_req->segments[0].segment_length = 7;
         TX_req->segments[0].segment_data = cc[CC_idP].RAR_pdu.payload;
-        eNB->TX_req[CC_idP].tx_request_body.number_of_pdus++;
+        mac->TX_req[CC_idP].tx_request_body.number_of_pdus++;
       }
     }
 
@@ -499,10 +499,10 @@ generate_Msg2(module_id_t module_idP, int CC_idP, frame_t frameP,
 		LOG_D(MAC,
 		      "Frame %d: Subframe %d : Adding common DCI for RA_RNTI %x\n",
 		      frameP, subframeP, ra->RA_rnti);
-		dl_req->number_dci++;
-		dl_req->number_pdu++;
+		dl_req_body->number_dci++;
+		dl_req_body->number_pdu++;
 
-		dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu];
+		dl_config_pdu = &dl_req_body->dl_config_pdu_list[dl_req_body->number_pdu];
 		memset((void *) dl_config_pdu, 0, sizeof(nfapi_dl_config_request_pdu_t));
 		dl_config_pdu->pdu_type                                                        = NFAPI_DL_CONFIG_DLSCH_PDU_TYPE;
 		dl_config_pdu->pdu_size                                                        = (uint8_t) (2 + sizeof(nfapi_dl_config_dlsch_pdu));
@@ -529,7 +529,7 @@ generate_Msg2(module_id_t module_idP, int CC_idP, frame_t frameP,
 		dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_prb_per_subband                 = 1;
 		dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_vector                          = 1;
 		//    dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.bf_vector                    = ; 
-		dl_req->number_pdu++;
+		dl_req_body->number_pdu++;
                 mac->DL_req[CC_idP].sfn_sf = frameP<<4 | subframeP;
 
 		// Program UL processing for Msg3
@@ -568,15 +568,15 @@ generate_Msg4(module_id_t module_idP, int CC_idP, frame_t frameP,
 	      sub_frame_t subframeP, RA_t * ra)
 {
 
-
-    eNB_MAC_INST *mac = RC.mac[module_idP];
-    COMMON_channels_t *cc = mac->common_channels;
-    int16_t rrc_sdu_length;
-    int UE_id = -1;
-    uint16_t msg4_padding;
-    uint16_t msg4_post_padding;
-    uint16_t msg4_header;
-
+  
+  eNB_MAC_INST *mac = RC.mac[module_idP];
+  COMMON_channels_t *cc = mac->common_channels;
+  int16_t rrc_sdu_length;
+  int UE_id = -1;
+  uint16_t msg4_padding;
+  uint16_t msg4_post_padding;
+  uint16_t msg4_header;
+  
   uint8_t                         *vrb_map;
   int                             first_rb;
   int                             N_RB_DL;
@@ -587,7 +587,6 @@ generate_Msg4(module_id_t module_idP, int CC_idP, frame_t frameP,
   nfapi_dl_config_request_t      *dl_req;
   nfapi_dl_config_request_body_t *dl_req_body;
   nfapi_ul_config_request_body_t *ul_req_body;
-  nfapi_ul_config_request_t      *ul_req;
   uint8_t                         lcid;
   uint8_t                         offset;
 
@@ -703,15 +702,15 @@ generate_Msg4(module_id_t module_idP, int CC_idP, frame_t frameP,
     // get first narrowband
     first_rb = narrowband_to_first_rb (&cc[CC_idP], ra->msg34_narrowband);
 
-    if ((ra->msg4_mpdcch_repetition_cnt == 0) && (mpdcch_sf_condition (eNB, CC_idP, frameP, subframeP, rmax, TYPE2, -1) > 0)) {
+    if ((ra->msg4_mpdcch_repetition_cnt == 0) && (mpdcch_sf_condition (mac, CC_idP, frameP, subframeP, rmax, TYPE2, -1) > 0)) {
       // Get RRCConnectionSetup for Piggyback
       ra->msg4_rrc_sdu_length = mac_rrc_data_req (module_idP, CC_idP, frameP, CCCH, 1,       // 1 transport block
-							   &cc[CC_idP].CCCH_pdu.payload[0], ENB_FLAG_YES, module_idP, 0);     // not used in this case
+							   &cc[CC_idP].CCCH_pdu.payload[0], 0);     // not used in this case
       
       AssertFatal (ra->msg4_rrc_sdu_length > 0, "[MAC][eNB Scheduler] CCCH not allocated\n");
       
       
-      LOG_I (MAC, "[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d: UE_id %d, rrc_sdu_length %d, dl_req->num_pdu %d\n", module_idP, CC_idP, frameP, subframeP, UE_id, ra->msg4_rrc_sdu_length,dl_req->number_pdu);
+      LOG_I (MAC, "[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d: UE_id %d, rrc_sdu_length %d, dl_req->num_pdu %d\n", module_idP, CC_idP, frameP, subframeP, UE_id, ra->msg4_rrc_sdu_length,dl_req_body->number_pdu);
       
       // MPDCCH configuration for Msg4
       ra->msg4_mpdcch_done=0;
@@ -762,7 +761,7 @@ generate_Msg4(module_id_t module_idP, int CC_idP, frame_t frameP,
       dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_tx_antenna_ports = 1;
 
       ra->msg4_mpdcch_repetition_cnt++;
-      dl_req->number_pdu++;
+      dl_req_body->number_pdu++;
       ra->msg4_TBsize = get_TBS_DL(dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mcs,
 					    6);
     }                           //repetition_count==0 && SF condition met
@@ -798,11 +797,11 @@ generate_Msg4(module_id_t module_idP, int CC_idP, frame_t frameP,
 	     module_idP, CC_idP, frameP, subframeP, ra->rach_resource_type - 1, ra->rnti);
       
       
-      dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu];
+      dl_config_pdu = &dl_req_body->dl_config_pdu_list[dl_req_body->number_pdu];
       memset ((void *) dl_config_pdu, 0, sizeof (nfapi_dl_config_request_pdu_t));
       dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DLSCH_PDU_TYPE;
       dl_config_pdu->pdu_size = (uint8_t) (2 + sizeof (nfapi_dl_config_dlsch_pdu));
-      dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index = eNB->pdu_index[CC_idP];
+      dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index = mac->pdu_index[CC_idP];
       dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.rnti = ra->rnti;
       dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_allocation_type = 2;   // format 1A/1B/1D
       dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.virtual_resource_block_assignment_flag = 0;     // localized
@@ -831,10 +830,10 @@ generate_Msg4(module_id_t module_idP, int CC_idP, frame_t frameP,
       dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.pdsch_payload_type = 2;        // not SI message
       dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.initial_transmission_sf_io = (10 * frameP) + subframeP;
       dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.drms_table_flag = 0;
-      dl_req->number_pdu++;
+      dl_req_body->number_pdu++;
       
-      ra->generate_Msg4 = 0;
-      ra->wait_ack_Msg4 = 1;
+
+      ra->state = WAITMSG4ACK;
       
       lcid = 0;
       
@@ -854,7 +853,7 @@ generate_Msg4(module_id_t module_idP, int CC_idP, frame_t frameP,
 	     module_idP, CC_idP, frameP, subframeP, ra->msg4_TBsize, ra->msg4_rrc_sdu_length, msg4_header, msg4_padding, msg4_post_padding);
       DevAssert (UE_id != UE_INDEX_INVALID);  // FIXME not sure how to gracefully return
       // CHECK THIS: &cc[CC_idP].CCCH_pdu.payload[0]
-      offset = generate_dlsch_header ((unsigned char *) eNB->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0], 1,       //num_sdus
+      offset = generate_dlsch_header ((unsigned char *) mac->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0], 1,       //num_sdus
 				      (unsigned short *) &ra->msg4_rrc_sdu_length,     //
 				      &lcid,  // sdu_lcid
 				      255,    // no drx
@@ -863,25 +862,25 @@ generate_Msg4(module_id_t module_idP, int CC_idP, frame_t frameP,
 				      msg4_padding,   // no padding
 				      msg4_post_padding);
       
-      memcpy ((void *) &eNB->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0][(unsigned char) offset], &cc[CC_idP].CCCH_pdu.payload[0], ra->msg4_rrc_sdu_length);
+      memcpy ((void *) &mac->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0][(unsigned char) offset], &cc[CC_idP].CCCH_pdu.payload[0], ra->msg4_rrc_sdu_length);
       
       // DL request
-      eNB->TX_req[CC_idP].sfn_sf = (frameP << 4) + subframeP;
-      TX_req = &eNB->TX_req[CC_idP].tx_request_body.tx_pdu_list[eNB->TX_req[CC_idP].tx_request_body.number_of_pdus];
+      mac->TX_req[CC_idP].sfn_sf = (frameP << 4) + subframeP;
+      TX_req = &mac->TX_req[CC_idP].tx_request_body.tx_pdu_list[mac->TX_req[CC_idP].tx_request_body.number_of_pdus];
       TX_req->pdu_length = ra->msg4_TBsize;
-      TX_req->pdu_index = eNB->pdu_index[CC_idP]++;
+      TX_req->pdu_index = mac->pdu_index[CC_idP]++;
       TX_req->num_segments = 1;
       TX_req->segments[0].segment_length = ra->msg4_TBsize;
-      TX_req->segments[0].segment_data = eNB->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0];
-      eNB->TX_req[CC_idP].tx_request_body.number_of_pdus++;
+      TX_req->segments[0].segment_data = mac->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0];
+      mac->TX_req[CC_idP].tx_request_body.number_of_pdus++;
       
       // Program ACK/NAK for Msg4 PDSCH
       int             absSF = (frameP * 10) + subframeP;
       // see Section 10.2 from 36.213
       int             ackNAK_absSF = absSF + reps + 3;
       AssertFatal (reps == 1, "Have to handle programming of ACK when PDSCH repetitions is > 1\n");
-      ul_req = &eNB->UL_req_tmp[CC_idP][ackNAK_absSF % 10].ul_config_request_body;
-      ul_config_pdu = &ul_req->ul_config_pdu_list[ul_req->number_of_pdus];
+      ul_req_body = &mac->UL_req_tmp[CC_idP][ackNAK_absSF % 10].ul_config_request_body;
+      ul_config_pdu = &ul_req_body->ul_config_pdu_list[ul_req_body->number_of_pdus];
       
       ul_config_pdu->pdu_type = NFAPI_UL_CONFIG_UCI_HARQ_PDU_TYPE;
       ul_config_pdu->pdu_size = (uint8_t) (2 + sizeof (nfapi_ul_config_uci_harq_pdu));
@@ -903,12 +902,12 @@ generate_Msg4(module_id_t module_idP, int CC_idP, frame_t frameP,
       } else {
 	AssertFatal (1 == 0, "PUCCH configuration for ACK/NAK not handled yet for TDD BL/CE case\n");
       }
-      ul_req->number_of_pdus++;
+      ul_req_body->number_of_pdus++;
       T (T_ENB_MAC_UE_DL_PDU_WITH_DATA, T_INT (module_idP), T_INT (CC_idP), T_INT (ra->rnti), T_INT (frameP), T_INT (subframeP),
-	 T_INT (0 /*harq_pid always 0? */ ), T_BUFFER (&eNB->UE_list.DLSCH_pdu[CC_idP][0][UE_id].payload[0], ra->msg4_TBsize));
+	 T_INT (0 /*harq_pid always 0? */ ), T_BUFFER (&mac->UE_list.DLSCH_pdu[CC_idP][0][UE_id].payload[0], ra->msg4_TBsize));
       
       if (opt_enabled == 1) {
-	trace_pdu (1, (uint8_t *) eNB->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0], ra->msg4_rrc_sdu_length, UE_id, 3, UE_RNTI (module_idP, UE_id), eNB->frame, eNB->subframe, 0, 0);
+	trace_pdu (1, (uint8_t *) mac->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0], ra->msg4_rrc_sdu_length, UE_id, 3, UE_RNTI (module_idP, UE_id), mac->frame, mac->subframe, 0, 0);
 	LOG_D (OPT, "[eNB %d][DLSCH] CC_id %d Frame %d trace pdu for rnti %x with size %d\n", module_idP, CC_idP, frameP, UE_RNTI (module_idP, UE_id), ra->msg4_rrc_sdu_length);
       }
     }                           // Msg4 frame/subframe  
diff --git a/openair2/LAYER2/MAC/eNB_scheduler_bch.c b/openair2/LAYER2/MAC/eNB_scheduler_bch.c
index 62da2e84d66c22836144d5d00de29772c5300814..983f82c94ae32d0c00a9f1684b6ab138f7134c56 100755
--- a/openair2/LAYER2/MAC/eNB_scheduler_bch.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler_bch.c
@@ -387,8 +387,6 @@ schedule_SI_BR(module_id_t module_idP, frame_t frameP,
 					     frameP,
 					     BCCH_SI_BR+i,1,
 					     &cc->BCCH_BR_pdu[i+1].payload[0],
-					     1,
-					     module_idP,
 					     0); // not used in this case
 	  
 	  AssertFatal(bcch_sdu_length>0,"RRC returned 0 bytes for SI-BR %d\n",i);
diff --git a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
index c898d399d689322cefceaf46f6e13a1b4cf4eb7c..7e1ea7be67c1b1291c7c43c3ce43a85f960cec69 100755
--- a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
@@ -2385,8 +2385,8 @@ schedule_ue_spec(module_id_t module_idP, int slice_idxP,
 	    if (ue_sched_ctl->pucch1_cqi_update[CC_id] == 1) {
 	      ue_sched_ctl->pucch1_cqi_update[CC_id] = 0;
 
-        UE_list->UE_template[CC_id][UE_id].pucch_tpc_tx_frame = frameP;
-        UE_list->UE_template[CC_id][UE_id].pucch_tpc_tx_subframe = subframeP;
+	      UE_list->UE_template[CC_id][UE_id].pucch_tpc_tx_frame = frameP;
+	      UE_list->UE_template[CC_id][UE_id].pucch_tpc_tx_subframe = subframeP;
 
 	      if (normalized_rx_power > (target_rx_power + 4)) {
 		tpc = 0;	//-1
@@ -2866,15 +2866,19 @@ schedule_ue_spec_br(
         if ( TBS-ta_len-header_len_dcch > 0 ) {
 	  LOG_I(MAC,"Calling mac_rlc_status_ind for DCCH\n");
           rlc_status = mac_rlc_status_ind(
-                         module_idP,
-                         rnti,
-			 module_idP,
-                         frameP,
-			 subframeP,
-                         ENB_FLAG_YES,
-                         MBMS_FLAG_NO,
-                         DCCH,
-                         (TBS-ta_len-header_len_dcch)); // transport block set size
+					  module_idP,
+					  rnti,
+					  module_idP,
+					  frameP,
+					  subframeP,
+					  ENB_FLAG_YES,
+					  MBMS_FLAG_NO,
+					  DCCH,
+					  (TBS-ta_len-header_len_dcch)
+#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
+					  ,0, 0
+#endif
+					  ); // transport block set size
 
           sdu_lengths[0]=0;
 
@@ -2890,7 +2894,11 @@ schedule_ue_spec_br(
 					      MBMS_FLAG_NO,
 					      DCCH,
 					      TBS, //not used
-					      (char *)&dlsch_buffer[0]);
+					      (char *)&dlsch_buffer[0]
+#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
+						,0, 0
+#endif
+);
 
             T(T_ENB_MAC_UE_DL_SDU, T_INT(module_idP), T_INT(CC_id), T_INT(rnti), T_INT(frameP), T_INT(subframeP),
               T_INT(harq_pid), T_INT(DCCH), T_INT(sdu_lengths[0]));
@@ -2918,7 +2926,11 @@ schedule_ue_spec_br(
 					  ENB_FLAG_YES,
 					  MBMS_FLAG_NO,
 					  DCCH+1,
-					  (TBS-ta_len-header_len_dcch-sdu_length_total)); // transport block set size less allocations for timing advance and
+					  (TBS-ta_len-header_len_dcch-sdu_length_total)
+#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
+					  ,0, 0
+#endif
+); // transport block set size less allocations for timing advance and
           // DCCH SDU
 	  sdu_lengths[num_sdus] = 0;
 	  
@@ -2934,7 +2946,11 @@ schedule_ue_spec_br(
 						      MBMS_FLAG_NO,
 						      DCCH+1,
 						      TBS, //not used
-						      (char *)&dlsch_buffer[sdu_length_total]);
+						      (char *)&dlsch_buffer[sdu_length_total]
+#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
+						      ,0, 0
+#endif
+);
 	    
             T(T_ENB_MAC_UE_DL_SDU, T_INT(module_idP), T_INT(CC_id), T_INT(rnti), T_INT(frameP), T_INT(subframeP),
               T_INT(harq_pid), T_INT(DCCH+1), T_INT(sdu_lengths[num_sdus]));
@@ -2970,8 +2986,12 @@ schedule_ue_spec_br(
 					    ENB_FLAG_YES,
 					    MBMS_FLAG_NO,
 					    lcid,
-					    TBS-ta_len-header_len_dcch-sdu_length_total-header_len_dtch);
-	   
+					    TBS-ta_len-header_len_dcch-sdu_length_total-header_len_dtch
+#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
+					    ,0, 0
+#endif
+					    );
+	    
 
 	    if (rlc_status.bytes_in_buffer > 0) {
 	      
@@ -2985,7 +3005,11 @@ schedule_ue_spec_br(
 						       MBMS_FLAG_NO,
 						       lcid,
 						       TBS,	//not used
-						       (char*)&dlsch_buffer[sdu_length_total]);
+						       (char*)&dlsch_buffer[sdu_length_total]
+#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
+						       ,0, 0
+#endif
+						       );
 	      T(T_ENB_MAC_UE_DL_SDU, T_INT(module_idP), T_INT(CC_id), T_INT(rnti), T_INT(frameP), T_INT(subframeP),
               T_INT(harq_pid), T_INT(lcid), T_INT(sdu_lengths[num_sdus]));
 
@@ -3109,8 +3133,8 @@ schedule_ue_spec_br(
           // this is the normalized RX power
 
           /* TODO: fix how we deal with power, unit is not dBm, it's special from nfapi */
-	  normalized_rx_power = ue_sched_ctl->pucch1_snr[CC_id];
-	  target_rx_power = 208;
+	  normalized_rx_power = (5*ue_sched_ctl->pucch1_snr[CC_id]-640)/10+30;
+	  target_rx_power = eNB->puCch10xSnr/10+30;
 	    
           // this assumes accumulated tpc
 	  // make sure that we are only sending a tpc update once a frame, otherwise the control loop will freak out
@@ -3125,17 +3149,15 @@ schedule_ue_spec_br(
 	      
 	      if (normalized_rx_power>(target_rx_power+4)) {
 		tpc = 0; //-1
-		ue_sched_ctl->pucch_tpc_accumulated[CC_id]--;
 	      } else if (normalized_rx_power<(target_rx_power-4)) {
 		tpc = 2; //+1
-		ue_sched_ctl->pucch_tpc_accumulated[CC_id]++;
 	      } else {
 		tpc = 1; //0
 	      }
 	      	      
-	      LOG_D(MAC,"[eNB %d] DLSCH scheduler: frame %d, subframe %d, harq_pid %d, tpc %d, accumulated %d, normalized/target rx power %d/%d\n",
+	      LOG_D(MAC,"[eNB %d] DLSCH scheduler: frame %d, subframe %d, harq_pid %d, tpc %d, normalized/target rx power %d/%d\n",
 		    module_idP,frameP, subframeP,harq_pid,tpc,
-		    ue_sched_ctl->pucch_tpc_accumulated[CC_id],normalized_rx_power,target_rx_power);
+		    normalized_rx_power,target_rx_power);
 
 	    } // Po_PUCCH has been updated 
 	    else {
diff --git a/openair2/LAYER2/MAC/eNB_scheduler_fairRR.c b/openair2/LAYER2/MAC/eNB_scheduler_fairRR.c
index 9ab4306000ffe05ba7686a2fcf01f14e75ccb4cc..310b3ca8dff7502677bb22fc9a58b97d206c81c1 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler_fairRR.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler_fairRR.c
@@ -195,7 +195,7 @@ void dlsch_scheduler_pre_ue_select_fairRR(
 
   // Initialization
   for (CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++) {
-    dlsch_ue_max_num[CC_id] = (uint16_t)RC.rrc[module_idP]->configuration.ue_multiple_max[CC_id];
+    dlsch_ue_max_num[CC_id] = (uint16_t)RC.rrc[module_idP]->configuration.radioresourceconfig[CC_id].ue_multiple_max;
 
     // save origin DL PDU number
     DL_req          = &eNB->DL_req[CC_id].dl_config_request_body;
@@ -1978,7 +1978,7 @@ void ulsch_scheduler_pre_ue_select_fairRR(
       //save ulsch dci number
       saved_ulsch_dci[CC_id] = eNB->HI_DCI0_req[CC_id][subframeP].hi_dci0_request_body.number_of_dci;
       // maximum multiplicity number
-      ulsch_ue_max_num[CC_id] =RC.rrc[module_idP]->configuration.ue_multiple_max[CC_id];
+      ulsch_ue_max_num[CC_id] =RC.rrc[module_idP]->configuration.radioresourceconfig[CC_id].ue_multiple_max;
 
       cc_id_flag[CC_id] = 0;
       ue_first_num[CC_id] = 0;
diff --git a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
index 023ed25dbf459ad7fdaf2aa3b3e2ce135dca3e08..00a13cc924abe1e081e2e835811011b8fef505ca 100755
--- a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
@@ -349,7 +349,11 @@ rx_sdu(const module_id_t enb_mod_idP,
                                DCCH,
                                (uint8_t *) payload_ptr,
                                rx_lengths[i],
-                               0);
+                               0
+#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
+			       ,ra->rach_resource_type>0
+#endif
+			       );
               // prepare transmission of Msg4(RRCConnectionReconfiguration)
               ra->state = MSGCRNTI;
               LOG_I(MAC,
@@ -565,11 +569,11 @@ rx_sdu(const module_id_t enb_mod_idP,
 
 	    if ((UE_id = add_new_ue(enb_mod_idP, CC_idP,
 				    mac->common_channels[CC_idP].
-				    ra[ii].rnti, harq_pid
+				    ra->rnti, harq_pid
 #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
 				    ,
 				    mac->common_channels[CC_idP].
-				    ra[ii].rach_resource_type
+				    ra->rach_resource_type
 #endif
 				    )) == -1) {
               LOG_E(MAC,"[MAC][eNB] Max user count reached\n");
@@ -598,7 +602,7 @@ rx_sdu(const module_id_t enb_mod_idP,
 			   rx_lengths[i],
 			   0
 #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
-			   ,(eNB->common_channels[CC_idP].RA_template[ii].rach_resource_type>0)
+			   ,ra->rach_resource_type>0
 #endif
 			   );
 
@@ -1067,12 +1071,11 @@ schedule_ulsch(module_id_t module_idP, frame_t frameP,
   stop_meas(&mac->schedule_ulsch);
 }
 
-void
-schedule_ulsch_rnti(module_id_t module_idP,
-        int slice_idx,
-		    frame_t frameP,
-		    sub_frame_t subframeP,
-		    unsigned char sched_subframeP, uint16_t * first_rb)
+void schedule_ulsch_rnti(module_id_t module_idP,
+			 int slice_idx,
+			 frame_t frameP,
+			 sub_frame_t subframeP,
+			 unsigned char sched_subframeP, uint16_t * first_rb)
 {
   int UE_id;
   uint8_t aggregation = 2;
@@ -1083,7 +1086,6 @@ schedule_ulsch_rnti(module_id_t module_idP,
   uint8_t rb_table_index = -1;
   uint32_t cqi_req, cshift, ndi, tpc;
   int32_t normalized_rx_power, target_rx_power;
-  static int32_t tpc_accumulated = 0;
   int n;
   int CC_id = 0;
   int drop_ue = 0;
@@ -1111,10 +1113,10 @@ schedule_ulsch_rnti(module_id_t module_idP,
   nfapi_ul_config_request_body_t *ul_req_tmp_body  = &ul_req_tmp->ul_config_request_body;
   nfapi_ul_config_ulsch_harq_information *ulsch_harq_information;
 
-	for (CC_id = 0; CC_id < RC.nb_mac_CC[module_idP]; ++CC_id) {
+  for (CC_id = 0; CC_id < RC.nb_mac_CC[module_idP]; ++CC_id) {
     N_RB_UL = to_prb(cc[CC_id].ul_Bandwidth);
-		UE_list->first_rb_offset[CC_id][slice_idx] = cmin(N_RB_UL, sli->ul[slice_idx].first_rb);
-	}
+    UE_list->first_rb_offset[CC_id][slice_idx] = cmin(N_RB_UL, sli->ul[slice_idx].first_rb);
+  }
 
   //LOG_D(MAC, "entering ulsch preprocesor\n");
   ulsch_scheduler_pre_processor(module_idP, slice_idx, frameP, subframeP, sched_subframeP, first_rb);
@@ -1295,10 +1297,10 @@ schedule_ulsch_rnti(module_id_t module_idP,
 	      UE_template->pusch_tpc_tx_subframe = subframeP;
 	      if (normalized_rx_power > (target_rx_power + 4)) {
 		tpc = 0;	//-1
-		tpc_accumulated--;
+		UE_sched_ctrl->tpc_accumulated[CC_id]--;
 	      } else if (normalized_rx_power < (target_rx_power - 4)) {
 		tpc = 2;	//+1
-		tpc_accumulated++;
+		UE_sched_ctrl->tpc_accumulated[CC_id]++;
 	      } else {
 		tpc = 1;	//0
 	      }
@@ -1310,7 +1312,7 @@ schedule_ulsch_rnti(module_id_t module_idP,
 	    LOG_D(MAC,
 		  "[eNB %d] ULSCH scheduler: frame %d, subframe %d, harq_pid %d, tpc %d, accumulated %d, normalized/target rx power %d/%d\n",
 		  module_idP, frameP, subframeP, harq_pid, tpc,
-		  tpc_accumulated, normalized_rx_power,
+		  UE_sched_ctrl->tpc_accumulated[CC_id], normalized_rx_power,
 		  target_rx_power);
 	  }
 	  // new transmission
@@ -1624,10 +1626,9 @@ void schedule_ulsch_rnti_emtc(module_id_t   module_idP,
   uint8_t           round          = 0;
   uint8_t           harq_pid       = 0;
   uint8_t           status         = 0;
-  uint32_t          cqi_req,cshift,ndi,tpc;
+  uint32_t          cshift,ndi;
   int32_t           normalized_rx_power;
   int32_t           target_rx_power=-90;
-  static int32_t    tpc_accumulated=0;
   int               n;
   int               CC_id = 0;
   int               N_RB_UL;
@@ -1638,10 +1639,12 @@ void schedule_ulsch_rnti_emtc(module_id_t   module_idP,
   UE_sched_ctrl     *UE_sched_ctrl;
   int               sched_frame=frameP;
   int               rvidx_tab[4] = {0,2,3,1};
+  int               tpc=0;
+  int               cqi_req=0;
 
   if (sched_subframeP<subframeP) sched_frame++;
 
-  nfapi_hi_dci0_request_body_t   *hi_dci0_req = &eNB->HI_DCI0_req[CC_id].hi_dci0_request_body;
+  nfapi_hi_dci0_request_body_t   *hi_dci0_req = &eNB->HI_DCI0_req[CC_id][subframeP].hi_dci0_request_body;
   nfapi_hi_dci0_request_pdu_t    *hi_dci0_pdu;
 
   nfapi_ul_config_request_body_t *ul_req_tmp       = &eNB->UL_req_tmp[CC_id][sched_subframeP].ul_config_request_body;
@@ -1682,7 +1685,7 @@ void schedule_ulsch_rnti_emtc(module_id_t   module_idP,
       LOG_D(MAC,"[eNB %d] frame %d subframe %d,Checking PUSCH %d for BL/CE UE %d/%x CC %d : aggregation level %d, N_RB_UL %d\n",
             module_idP,frameP,subframeP,harq_pid,UE_id,rnti,CC_id, 24,N_RB_UL);
 
-      RC.eNB[module_idP][CC_id]->pusch_stats_BO[UE_id][(frameP*10)+subframeP] = UE_template->ul_total_buffer;
+      RC.eNB[module_idP][CC_id]->pusch_stats_BO[UE_id][(frameP*10)+subframeP] = UE_template->estimated_ul_buffer;
       VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME(VCD_SIGNAL_DUMPER_VARIABLES_UE0_BO,RC.eNB[module_idP][CC_id]->pusch_stats_BO[UE_id][(frameP*10)+subframeP]);
       if ((UE_template->ul_SR >0  || round > 0 || status < RRC_CONNECTED)&&(subframeP==5)) 
         // if there is information on bsr of DCCH, DTCH or if there is UL_SR, or if there is a packet to retransmit, or we want to schedule a periodic feedback every 10 frames
@@ -1712,7 +1715,6 @@ void schedule_ulsch_rnti_emtc(module_id_t   module_idP,
 	  */
 	  cqi_req = 0;
 
-	  UE_template->oldCQI_UL[harq_pid] = cqi_req;
  
           //power control
           //compute the expected ULSCH RX power (for the stats)
@@ -1731,10 +1733,10 @@ void schedule_ulsch_rnti_emtc(module_id_t   module_idP,
               UE_template->pusch_tpc_tx_subframe=subframeP;
               if (normalized_rx_power>(target_rx_power+4)) {
                 tpc = 0; //-1
-                tpc_accumulated--;
+                UE_sched_ctrl->tpc_accumulated[CC_id]--;
               } else if (normalized_rx_power<(target_rx_power-4)) {
                 tpc = 2; //+1
-                tpc_accumulated++;
+                UE_sched_ctrl->tpc_accumulated[CC_id]++;
               } else {
                 tpc = 1; //0
               }
@@ -1743,12 +1745,11 @@ void schedule_ulsch_rnti_emtc(module_id_t   module_idP,
           }
           //tpc = 1;
 
-	  UE_template->oldTPC_UL[harq_pid] = tpc;
 
           if (tpc!=1) {
             LOG_D(MAC,"[eNB %d] ULSCH scheduler: frame %d, subframe %d, harq_pid %d, tpc %d, accumulated %d, normalized/target rx power %d/%d\n",
                   module_idP,frameP,subframeP,harq_pid,tpc,
-                  tpc_accumulated,normalized_rx_power,target_rx_power);
+                  UE_sched_ctrl->tpc_accumulated[CC_id],normalized_rx_power,target_rx_power);
           }
 
           // new transmission
@@ -1786,12 +1787,11 @@ void schedule_ulsch_rnti_emtc(module_id_t   module_idP,
               VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME(VCD_SIGNAL_DUMPER_VARIABLES_UE0_SCHEDULED,UE_sched_ctrl->ul_scheduled);
 
             // adjust total UL buffer status by TBS, wait for UL sdus to do final update
-            LOG_D(MAC,"[eNB %d] CC_id %d UE %d/%x : adjusting ul_total_buffer, old %d, TBS %d\n", module_idP,CC_id,UE_id,rnti,UE_template->ul_total_buffer,UE_template->TBS_UL[harq_pid]);
-            if (UE_template->ul_total_buffer > UE_template->TBS_UL[harq_pid])
-              UE_template->ul_total_buffer -= UE_template->TBS_UL[harq_pid];
-            else
-              UE_template->ul_total_buffer = 0;
-            LOG_D(MAC,"ul_total_buffer, new %d\n", UE_template->ul_total_buffer);
+            UE_template->scheduled_ul_bytes += UE_template->TBS_UL[harq_pid];
+
+            LOG_D(MAC, "scheduled_ul_bytes, new %d\n", UE_template->scheduled_ul_bytes);
+
+
             // Cyclic shift for DM RS
             cshift = 0;// values from 0 to 7 can be used for mapping the cyclic shift (36.211 , Table 5.5.2.1.1-1)
             // save it for a potential retransmission
@@ -1826,7 +1826,7 @@ void schedule_ulsch_rnti_emtc(module_id_t   module_idP,
 
             UE_template->first_rb_ul[harq_pid] = narrowband_to_first_rb (cc,
 									 epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_Narrowband_r13-1);	     
-            hi_dci0_pdu                                                         = &hi_dci0_req->hi_dci0_pdu_list[eNB->HI_DCI0_req[CC_id].hi_dci0_request_body.number_of_dci+eNB->HI_DCI0_req[CC_id].hi_dci0_request_body.number_of_hi];
+            hi_dci0_pdu                                                         = &hi_dci0_req->hi_dci0_pdu_list[hi_dci0_req->number_of_dci+hi_dci0_req->number_of_hi];
             memset((void*)hi_dci0_pdu,0,sizeof(nfapi_hi_dci0_request_pdu_t));
 
 	    hi_dci0_pdu->pdu_type = NFAPI_HI_DCI0_MPDCCH_DCI_PDU_TYPE;
@@ -1873,7 +1873,7 @@ void schedule_ulsch_rnti_emtc(module_id_t   module_idP,
 	    hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.total_dci_length_include_padding = 29; // hard-coded for 10 MHz
 	    hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.number_of_tx_antenna_ports = 1;
 
-            eNB->HI_DCI0_req[CC_id].hi_dci0_request_body.number_of_dci++;
+            hi_dci0_req->number_of_dci++;
 
 
             LOG_I(MAC,"[PUSCH %d] Frame %d, Subframe %d: Adding UL CONFIG.Request for BL/CE UE %d/%x, ulsch_frame %d, ulsch_subframe %d, UESS mpdcch narrowband %d\n",
@@ -1955,7 +1955,7 @@ void schedule_ulsch_rnti_emtc(module_id_t   module_idP,
 
             UE_template->first_rb_ul[harq_pid] = narrowband_to_first_rb (cc,
 									 epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_Narrowband_r13-1);	     
-            hi_dci0_pdu                                                         = &hi_dci0_req->hi_dci0_pdu_list[eNB->HI_DCI0_req[CC_id].hi_dci0_request_body.number_of_dci+eNB->HI_DCI0_req[CC_id].hi_dci0_request_body.number_of_hi];
+            hi_dci0_pdu                                                         = &hi_dci0_req->hi_dci0_pdu_list[hi_dci0_req->number_of_dci+hi_dci0_req->number_of_hi];
             memset((void*)hi_dci0_pdu,0,sizeof(nfapi_hi_dci0_request_pdu_t));
 
 	    hi_dci0_pdu->pdu_type = NFAPI_HI_DCI0_MPDCCH_DCI_PDU_TYPE;
@@ -1991,8 +1991,8 @@ void schedule_ulsch_rnti_emtc(module_id_t   module_idP,
 	    hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.redudency_version = rvidx_tab[round&3];
 	    hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.new_data_indication = UE_template->oldNDI_UL[harq_pid];
 	    hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.harq_process = harq_pid;
-	    hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.tpc = UE_template->oldTPC_UL[harq_pid];       
-	    hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.csi_request = UE_template->oldCQI_UL[harq_pid];
+	    hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.tpc = tpc;
+	    hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.csi_request = cqi_req;
 	    hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.ul_inex = 0;
 	    hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.dai_presence_flag = 0;
 	    hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.dl_assignment_index = 0;
@@ -2002,8 +2002,7 @@ void schedule_ulsch_rnti_emtc(module_id_t   module_idP,
 	    hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.total_dci_length_include_padding = 29; // hard-coded for 10 MHz
 	    hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.number_of_tx_antenna_ports = 1;
 
-            eNB->HI_DCI0_req[CC_id].hi_dci0_request_body.number_of_dci++;
-
+	    hi_dci0_req->number_of_dci++;
             fill_nfapi_ulsch_config_request_rel8(&ul_req_tmp->ul_config_pdu_list[ul_req_tmp->number_of_pdus],
                                                  cqi_req,
                                                  cc,
diff --git a/openair2/LAYER2/MAC/mac.h b/openair2/LAYER2/MAC/mac.h
index ed6171dcebfaa35f74e608f7a86c0d6d1ce3c187..1f23a01d4a5ea1ad151deb118a3e5a7e88d98967 100644
--- a/openair2/LAYER2/MAC/mac.h
+++ b/openair2/LAYER2/MAC/mac.h
@@ -896,9 +896,6 @@ typedef struct {
     uint32_t pucch_tpc_tx_frame;
     uint32_t pucch_tpc_tx_subframe;
 
-#ifdef LOCALIZATION
-    eNB_UE_estimated_distances distance;
-#endif
 
 #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
     uint8_t rach_resource_type;
@@ -978,6 +975,7 @@ typedef struct {
     uint16_t feedback_cnt[NFAPI_CC_MAX];
     uint16_t timing_advance;
     uint16_t timing_advance_r9;
+    uint8_t tpc_accumulated[NFAPI_CC_MAX];
     uint8_t periodic_wideband_cqi[NFAPI_CC_MAX];
     uint8_t periodic_wideband_spatial_diffcqi[NFAPI_CC_MAX];
     uint8_t periodic_wideband_pmi[NFAPI_CC_MAX];
@@ -999,60 +997,63 @@ typedef struct {
 } UE_sched_ctrl;
 /*! \brief eNB template for the Random access information */
 typedef struct {
-    /// Flag to indicate this process is active
-    RA_state state;
-    /// Subframe where preamble was received
-    uint8_t preamble_subframe;
-    /// Subframe where Msg2 is to be sent
-    uint8_t Msg2_subframe;
-    /// Frame where Msg2 is to be sent
-    frame_t Msg2_frame;
-    /// Subframe where Msg3 is to be sent
-    sub_frame_t Msg3_subframe;
-    /// Frame where Msg3 is to be sent
-    frame_t Msg3_frame;
-    /// Subframe where Msg4 is to be sent
-    sub_frame_t Msg4_subframe;
-    /// Frame where Msg4 is to be sent
-    frame_t Msg4_frame;
-    /// harq_pid used for Msg4 transmission
-    uint8_t harq_pid;
-    /// UE RNTI allocated during RAR
-    rnti_t rnti;
-    /// RA RNTI allocated from received PRACH
-    uint16_t RA_rnti;
-    /// Received preamble_index
-    uint8_t preamble_index;
-    /// Received UE Contention Resolution Identifier
-    uint8_t cont_res_id[6];
-    /// Timing offset indicated by PHY
-    int16_t timing_offset;
-    /// Timeout for RRC connection
-    int16_t RRC_timer;
-    /// Msg3 first RB
-    uint8_t msg3_first_rb;
-    /// Msg3 number of RB
-    uint8_t msg3_nb_rb;
-    /// Msg3 MCS
-    uint8_t msg3_mcs;
-    /// Msg3 TPC command
-    uint8_t msg3_TPC;
-    /// Msg3 ULdelay command
-    uint8_t msg3_ULdelay;
-    /// Msg3 cqireq command
-    uint8_t msg3_cqireq;
-    /// Round of Msg3 HARQ
-    uint8_t msg3_round;
-    /// TBS used for Msg4
-    int msg4_TBsize;
-    /// MCS used for Msg4
-    int msg4_mcs;
+  /// Flag to indicate this process is active
+  RA_state state;
+  /// Subframe where preamble was received
+  uint8_t preamble_subframe;
+  /// Subframe where Msg2 is to be sent
+  uint8_t Msg2_subframe;
+  /// Frame where Msg2 is to be sent
+  frame_t Msg2_frame;
+  /// Subframe where Msg3 is to be sent
+  sub_frame_t Msg3_subframe;
+  /// Frame where Msg3 is to be sent
+  frame_t Msg3_frame;
+  /// Subframe where Msg4 is to be sent
+  sub_frame_t Msg4_subframe;
+  /// Frame where Msg4 is to be sent
+  frame_t Msg4_frame;
+  /// harq_pid used for Msg4 transmission
+  uint8_t harq_pid;
+  /// UE RNTI allocated during RAR
+  rnti_t rnti;
+  /// RA RNTI allocated from received PRACH
+  uint16_t RA_rnti;
+  /// Received preamble_index
+  uint8_t preamble_index;
+  /// Received UE Contention Resolution Identifier
+  uint8_t cont_res_id[6];
+  /// Timing offset indicated by PHY
+  int16_t timing_offset;
+  /// Timeout for RRC connection
+  int16_t RRC_timer;
+  /// Msg3 first RB
+  uint8_t msg3_first_rb;
+  /// Msg3 number of RB
+  uint8_t msg3_nb_rb;
+  /// Msg3 MCS
+  uint8_t msg3_mcs;
+  /// Msg3 TPC command
+  uint8_t msg3_TPC;
+  /// Msg3 ULdelay command
+  uint8_t msg3_ULdelay;
+  /// Msg3 cqireq command
+  uint8_t msg3_cqireq;
+  /// Round of Msg3 HARQ
+  uint8_t msg3_round;
+  /// TBS used for Msg4
+  int msg4_TBsize;
+  /// MCS used for Msg4
+  int msg4_mcs;
 #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
-    uint8_t rach_resource_type;
-    uint8_t msg2_mpdcch_repetition_cnt;
-    uint8_t msg4_mpdcch_repetition_cnt;
-    uint8_t msg2_narrowband;
-    uint8_t msg34_narrowband;
+  uint8_t rach_resource_type;
+  uint8_t msg2_mpdcch_repetition_cnt;
+  int     msg2_mpdcch_done;
+  uint8_t msg4_mpdcch_repetition_cnt;
+  int     msg4_mpdcch_done;
+  uint8_t msg2_narrowband;
+  uint8_t msg34_narrowband;
+  int     msg4_rrc_sdu_length;
 #endif
     int32_t  crnti_rrc_mui;
     int8_t   crnti_harq_pid;
diff --git a/openair2/LAYER2/MAC/rar_tools.c b/openair2/LAYER2/MAC/rar_tools.c
index 0103341bf84897428d7168bb2cd2e231f6738665..22c20da021343625a0b5cc405c83fc8f3a419da3 100755
--- a/openair2/LAYER2/MAC/rar_tools.c
+++ b/openair2/LAYER2/MAC/rar_tools.c
@@ -112,13 +112,13 @@ fill_rar(const module_id_t module_idP,
 //------------------------------------------------------------------------------
 
 unsigned short fill_rar_br(eNB_MAC_INST *eNB,
-               int CC_id,
-               RA_TEMPLATE        *RA_template,
-               const frame_t      frameP,
-               const sub_frame_t  subframeP,
-               uint8_t*    const  dlsch_buffer,
-               const uint8_t      ce_level
-)
+			   int CC_id,
+			   RA_t        *ra,
+			   const frame_t      frameP,
+			   const sub_frame_t  subframeP,
+			   uint8_t*    const  dlsch_buffer,
+			   const uint8_t      ce_level
+			   )
 //------------------------------------------------------------------------------
 {
 
@@ -132,47 +132,46 @@ unsigned short fill_rar_br(eNB_MAC_INST *eNB,
   int input_buffer_length;
 
 
-    AssertFatal(ra != NULL, "RA is null \n");
-
-    // subheader fixed
-    rarh->E = 0;		// First and last RAR
-    rarh->T = 1;		// 0 for E/T/R/R/BI subheader, 1 for E/T/RAPID subheader
-    rarh->RAPID = ra->preamble_index;	// Respond to Preamble 0 only for the moment
-    ra->timing_offset /= 16;	//T_A = N_TA/16, where N_TA should be on a 30.72Msps
-    rar[0] = (uint8_t) (ra->timing_offset >> (2 + 4));	// 7 MSBs of timing advance + divide by 4
-    rar[1] = (uint8_t) (ra->timing_offset << (4 - 2)) & 0xf0;	// 4 LSBs of timing advance + divide by 4
-
-
+  AssertFatal(ra != NULL, "RA is null \n");
+  
+  // subheader fixed
+  rarh->E = 0;		// First and last RAR
+  rarh->T = 1;		// 0 for E/T/R/R/BI subheader, 1 for E/T/RAPID subheader
+  rarh->RAPID = ra->preamble_index;	// Respond to Preamble 0 only for the moment
+  ra->timing_offset /= 16;	//T_A = N_TA/16, where N_TA should be on a 30.72Msps
+  rar[0] = (uint8_t) (ra->timing_offset >> (2 + 4));	// 7 MSBs of timing advance + divide by 4
+  rar[1] = (uint8_t) (ra->timing_offset << (4 - 2)) & 0xf0;	// 4 LSBs of timing advance + divide by 4
+  
+  int N_NB_index;
+  
   // Copy the Msg2 narrowband
-  RA_template->msg34_narrowband = RA_template->msg2_narrowband;
-  RA_template->msg3_first_rb    = 0;
-  RA_template->msg3_nb_rb       = 2;
-
+  ra->msg34_narrowband = ra->msg2_narrowband;
+  ra->msg3_first_rb    = 0;
+  ra->msg3_nb_rb       = 2;
 
-    // Copy the Msg2 narrowband
-    ra->msg34_narrowband = ra->msg2_narrowband;
 
-    if (ce_level < 2) {		//CE Level 0,1, CEmodeA
-	input_buffer_length = 6;
-
-
-    rar[4] = (uint8_t)(RA_template->rnti>>8);
-    rar[5] = (uint8_t)(RA_template->rnti&0xff);
-    //cc->RA_template[ra_idx].timing_offset = 0;
+  if (ce_level < 2) {		//CE Level 0,1, CEmodeA
+    input_buffer_length = 6;
+    
+    N_NB_index = get_numnarrowbandbits(cc->mib->message.dl_Bandwidth);
 
+    rar[4] = (uint8_t)(ra->rnti>>8);
+    rar[5] = (uint8_t)(ra->rnti&0xff);
+    //cc->ra[ra_idx].timing_offset = 0;
+    
     reps = 0;
-    RA_template->msg3_mcs = 7;
+    ra->msg3_mcs = 7;
     TPC = 3; // no power increase
     ULdelay = 0;
     cqireq = 0;
     mpdcch_nb_index = 0;
-    rballoc = mac_computeRIV(6,RA_template->msg3_first_rb,RA_template->msg3_nb_rb);
+    rballoc = mac_computeRIV(6,ra->msg3_first_rb,ra->msg3_nb_rb);
 
     uint32_t buffer = 0;
-    buffer |= RA_template->msg34_narrowband << (16 + (4 - N_NB_index));
+    buffer |= ra->msg34_narrowband << (16 + (4 - N_NB_index));
     buffer |= ((rballoc & 0xFF) << (12 + (4 - N_NB_index)));
     buffer |= ((reps & 0x03) << (10 + (4 - N_NB_index)));
-    buffer |= ((RA_template->msg3_mcs & 0x07) << (7 + (4 - N_NB_index)));
+    buffer |= ((ra->msg3_mcs & 0x07) << (7 + (4 - N_NB_index)));
     buffer |= ((TPC & 0x07) << (4 + (4 - N_NB_index)));
     buffer |= ((cqireq & 0x01) << (3 + (4 - N_NB_index)));
     buffer |= ((ULdelay & 0x01) << (2 + (4 - N_NB_index)));
@@ -183,47 +182,30 @@ unsigned short fill_rar_br(eNB_MAC_INST *eNB,
   }
   else { // CE level 2,3 => CEModeB
 
-	//    reps    = 4;
-	mcs = 7;
-	TPC = 3;		// no power increase
-	ULdelay = 0;
-	cqireq = 0;
-	rar[2] |= ((mcs & 0x8) >> 3);	// mcs 10
-	rar[3] =
-	    (((mcs & 0x7) << 5)) | ((TPC & 7) << 2) | ((ULdelay & 1) << 1)
-	    | (cqireq & 1);
-    } else {			// CE level 2,3 => CEModeB
+    AssertFatal(1==0,"Shouldn't get here ...\n");
+    input_buffer_length =5;
 
 
-    rar[3] = (uint8_t)(RA_template->rnti>>8);
-    rar[4] = (uint8_t)(RA_template->rnti&0xff);
+    rar[3] = (uint8_t)(ra->rnti>>8);
+    rar[4] = (uint8_t)(ra->rnti&0xff);
   }
   LOG_I(MAC,"[RAPROC] Frame %d Subframe %d : Generating RAR BR (%02x|%02x.%02x.%02x.%02x.%02x.%02x) for ce_level %d, CRNTI %x,preamble %d/%d,TIMING OFFSET %d\n",
         frameP,subframeP,
         *(uint8_t*)rarh,rar[0],rar[1],rar[2],rar[3],rar[4],rar[5],
         ce_level,
-        RA_template->rnti,
-        rarh->RAPID,RA_template->preamble_index,
-        RA_template->timing_offset);
-
-	rar[3] = (uint8_t) (ra->rnti >> 8);
-	rar[4] = (uint8_t) (ra->rnti & 0xff);
-    }
-    LOG_D(MAC,
-	  "[RAPROC] Frame %d Generating RAR BR (%02x|%02x.%02x.%02x.%02x.%02x.%02x) for ce_level %d, CRNTI %x,preamble %d/%d,TIMING OFFSET %d\n",
-	  frameP, *(uint8_t *) rarh, rar[0], rar[1], rar[2], rar[3],
-	  rar[4], rar[5], ce_level, ra->rnti, rarh->RAPID,
-	  ra->preamble_index, ra->timing_offset);
-
-    if (opt_enabled) {
-	trace_pdu(DIRECTION_DOWNLINK , dlsch_buffer, input_buffer_length, eNB->Mod_id,  WS_RA_RNTI , 1,
-		  eNB->frame, eNB->subframe, 0, 0);
-	LOG_D(OPT,
-	      "[RAPROC] RAR Frame %d trace pdu for rnti %x and  rapid %d size %d\n",
-	      frameP, ra->rnti, rarh->RAPID, input_buffer_length);
-    }
+        ra->rnti,
+        rarh->RAPID,ra->preamble_index,
+        ra->timing_offset);
+
+  if (opt_enabled) {
+    trace_pdu(DIRECTION_DOWNLINK , dlsch_buffer, input_buffer_length, eNB->Mod_id,  WS_RA_RNTI , 1,
+	      eNB->frame, eNB->subframe, 0, 0);
+    LOG_D(OPT,
+	  "[RAPROC] RAR Frame %d trace pdu for rnti %x and  rapid %d size %d\n",
+	  frameP, ra->rnti, rarh->RAPID, input_buffer_length);
+  }
 
-    return (ra->rnti);
+  return (ra->rnti);
 }
 #endif
 
diff --git a/openair2/LAYER2/MAC/ue_procedures.c b/openair2/LAYER2/MAC/ue_procedures.c
index e09b3204ba04364f9d47d5a35a92a09f10a186d0..206ef086064dcdae3c80d2640900b1e50127cb29 100755
--- a/openair2/LAYER2/MAC/ue_procedures.c
+++ b/openair2/LAYER2/MAC/ue_procedures.c
@@ -558,20 +558,16 @@ ue_send_sdu(module_id_t module_idP,
 		LOG_T(MAC, "\n");
 #endif
 
-      mac_rrc_data_ind(module_idP,
-                       CC_id,
-                       frameP,subframeP,
-                       UE_mac_inst[module_idP].crnti,
-                       CCCH,
-                       (uint8_t*)payload_ptr,
-                       rx_lengths[i],
-                       ENB_FLAG_NO,
-                       eNB_index,
-                       0
-                 #ifdef Rel14
-                       ,0
-                 #endif
-                       );
+      mac_rrc_data_ind_ue(module_idP,
+			  CC_id,
+			  frameP,subframeP,
+			  UE_mac_inst[module_idP].crnti,
+			  CCCH,
+			  (uint8_t*)payload_ptr,
+			  rx_lengths[i],
+			  eNB_index,
+			  0
+			  );
 
     } else if ((rx_lcids[i] == DCCH) || (rx_lcids[i] == DCCH1)) {
       LOG_D(MAC,"[UE %d] Frame %d : DLSCH -> DL-DCCH%d, RRC message (eNB %d, %d bytes)\n", module_idP, frameP, rx_lcids[i],eNB_index,rx_lengths[i]);
diff --git a/openair2/PHY_INTERFACE/IF_Module.c b/openair2/PHY_INTERFACE/IF_Module.c
index b7a738ef0633c0877a7885178def1856dbc78b4e..4f9e1a73ef742279041401ce77c633e03e197447 100755
--- a/openair2/PHY_INTERFACE/IF_Module.c
+++ b/openair2/PHY_INTERFACE/IF_Module.c
@@ -48,8 +48,8 @@ void handle_rach(UL_IND_t *UL_info) {
 		  "Got regular PRACH preamble, not BL/CE\n");
       LOG_D(MAC,"Frame %d, Subframe %d Calling initiate_ra_proc (CE_level %d)\n",UL_info->frame,UL_info->subframe,
 
-	    UL_info->rach_ind_br.preamble_list[i].preamble_rel13.rach_resource_type-1);
-      UL_info->rach_ind_br.number_of_preambles=0;
+	    UL_info->rach_ind_br.rach_indication_body.preamble_list[i].preamble_rel13.rach_resource_type-1);
+      UL_info->rach_ind_br.rach_indication_body.number_of_preambles=0;
 
       initiate_ra_proc(UL_info->module_id,
 		       UL_info->CC_id,
diff --git a/openair2/RRC/LTE/MESSAGES/asn1_msg.c b/openair2/RRC/LTE/MESSAGES/asn1_msg.c
index 31f9c1c2d0a67337cd0f246e9064cbfc33580248..5189564ed5711b74fe4847e4d3582653f143e98d 100755
--- a/openair2/RRC/LTE/MESSAGES/asn1_msg.c
+++ b/openair2/RRC/LTE/MESSAGES/asn1_msg.c
@@ -371,7 +371,6 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier,
   uint8_t *buffer;
   BCCH_DL_SCH_Message_t *bcch_message;
   SystemInformationBlockType1_t **sib1;
-  SystemInformationBlockType1_BR_r13_t **sib1_br;
 
 #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
   if (brOption) {
@@ -400,7 +399,7 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier,
   memset(&sib_type,0,sizeof(SIB_Type_t));
 
   /* as per TS 36.311, up to 6 PLMN_identity_info are allowed in list -> add one by one */
-  for (i = 0; i < configuration->num_plmn; ++i) {
+  for (int i = 0; i < configuration->num_plmn; ++i) {
     PLMN_identity_info[i].plmn_Identity.mcc = CALLOC(1,sizeof(*PLMN_identity_info[i].plmn_Identity.mcc));
     memset(PLMN_identity_info[i].plmn_Identity.mcc,0,sizeof(*PLMN_identity_info[i].plmn_Identity.mcc));
 
@@ -616,7 +615,7 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier,
 
       if (configuration->bandwidthReducedAccessRelatedInfo_r13[CC_id])
       {
-          printf("[DEBUGGING][KOGO][TANY2]: bandwidthReducedAccessRelatedInfo_r13 = %d\n", configuration->bandwidthReducedAccessRelatedInfo_r13[CC_id]);
+
 
           sib1_1310->bandwidthReducedAccessRelatedInfo_r13
                   = calloc(1, sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13));
@@ -631,7 +630,7 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier,
           sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_RepetitionPattern_r13
                   = configuration->si_RepetitionPattern_r13[CC_id]; // 0
 
-          printf("[DEBUGGING][KOGO][ASN1]: si_RepetitionPattern_r13 = %d\n", configuration->si_RepetitionPattern_r13[CC_id]);
+
 
           sib1_1310->bandwidthReducedAccessRelatedInfo_r13->schedulingInfoList_BR_r13 = calloc(1, sizeof(SchedulingInfoList_BR_r13_t));
 
@@ -645,9 +644,7 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier,
 
               schedulinginfo_br_13->si_Narrowband_r13 = configuration->si_Narrowband_r13[CC_id][index];
               schedulinginfo_br_13->si_TBS_r13 = configuration->si_TBS_r13[CC_id][index];
-              printf("[DEBUGGING][ASN1]: si_NarrowBand_r13: %d\n", configuration->si_Narrowband_r13[CC_id][index]);
-              printf("[DEBUGGING][ASN1]: si_TBS_r13: %d\n", configuration->si_TBS_r13[CC_id][index]);
-              LOG_I(RRC,"Adding (%d,%d) to scheduling_info_br_13\n",schedulinginfo_br_13->si_Narrowband_r13,schedulinginfo_br_13->si_TBS_r13);
+              LOG_I(RRC,"Adding (%d,%d) to scheduling_info_br_13\n",(int)schedulinginfo_br_13->si_Narrowband_r13,(int)schedulinginfo_br_13->si_TBS_r13);
               ASN_SEQUENCE_ADD(&sib1_1310->bandwidthReducedAccessRelatedInfo_r13->schedulingInfoList_BR_r13->list, schedulinginfo_br_13);
           }
 
@@ -716,7 +713,7 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier,
               sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 = calloc(1, sizeof(long));
               memset(sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13, 0, sizeof(long));
               *sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 = *configuration->si_ValidityTime_r13[CC_id];
-              printf("[DEBUGGING][KOGO]: si_validity time = %d\n", *sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13);
+
           }
           else
           {
@@ -990,7 +987,7 @@ uint8_t do_SIB23(uint8_t Mod_id,
 #endif
 
 #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0))
-  struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member *sib13_part;
+  struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member *sib13_part=NULL;
   MBSFN_SubframeConfigList_t *MBSFNSubframeConfigList;
   MBSFN_AreaInfoList_r9_t *MBSFNArea_list;
   struct MBSFN_AreaInfo_r9 *MBSFN_Area1, *MBSFN_Area2;
@@ -1275,7 +1272,7 @@ uint8_t do_SIB23(uint8_t Mod_id,
   (*sib2)->radioResourceConfigCommon.ul_CyclicPrefixLength
     = rrconfig->ul_CyclicPrefixLength;
 
-  // LTE-M - +Kogo
+
   (*sib2)->radioResourceConfigCommon.ext4 = calloc(1, sizeof(struct RadioResourceConfigCommonSIB__ext4));
   memset((*sib2)->radioResourceConfigCommon.ext4, 0, sizeof(struct RadioResourceConfigCommonSIB__ext4));
   (*sib2)->radioResourceConfigCommon.ext4->bcch_Config_v1310 = NULL; //calloc(1, sizeof(BCCH_Config_v1310_t));
@@ -1303,81 +1300,18 @@ uint8_t do_SIB23(uint8_t Mod_id,
   }
 
 
+  
   if (configuration->sib2_freq_hoppingParameters_r13_exists[CC_id])
   {
-      puts("[DEBUGGING][KOGO][SIB23]: Structure exists");
-      (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13 = CALLOC(1, sizeof(FreqHoppingParameters_r13_t));
-      if (configuration->sib2_mpdcch_pdsch_hoppingNB_r13[CC_id])
-      {
-          (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->mpdcch_pdsch_HoppingNB_r13 = CALLOC(1, sizeof(long));
-          *(*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->mpdcch_pdsch_HoppingNB_r13 = *configuration->sib2_mpdcch_pdsch_hoppingNB_r13[CC_id];
-
-      }
-      else
-      {
-          (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->mpdcch_pdsch_HoppingNB_r13 = NULL;
-      }
-
-      if (configuration->sib2_interval_DLHoppingConfigCommonModeA_r13[CC_id])
-      {
-          (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeA_r13
-                  = CALLOC(1, sizeof(struct FreqHoppingParameters_r13__interval_DLHoppingConfigCommonModeA_r13));
-          if (*configuration->sib2_interval_DLHoppingConfigCommonModeA_r13[CC_id] == 0)
-          {
-              (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeA_r13->present
-                      = FreqHoppingParameters_r13__interval_DLHoppingConfigCommonModeA_r13_PR_interval_FDD_r13;
-              (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeA_r13->choice.interval_FDD_r13
-                      = configuration->sib2_interval_DLHoppingConfigCommonModeA_r13_val[CC_id];
-          }
-          else
-          {
-              (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeA_r13->present
-                      = FreqHoppingParameters_r13__interval_DLHoppingConfigCommonModeA_r13_PR_interval_TDD_r13;
-              (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeA_r13->choice.interval_TDD_r13
-                      = configuration->sib2_interval_DLHoppingConfigCommonModeA_r13_val[CC_id];
-
-          }
-      }
-      else
-      {
-          (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeA_r13 = NULL;
-      }
-
-
-      if (configuration->sib2_interval_DLHoppingConfigCommonModeB_r13[CC_id])
-      {
-          (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeB_r13
-                  = CALLOC(1, sizeof(struct FreqHoppingParameters_r13__interval_DLHoppingConfigCommonModeB_r13));
-          if (*configuration->sib2_interval_DLHoppingConfigCommonModeB_r13[CC_id] == 0)
-          {
-              (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeB_r13->present
-                      = FreqHoppingParameters_r13__interval_DLHoppingConfigCommonModeB_r13_PR_interval_FDD_r13;
-              (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeB_r13->choice.interval_FDD_r13
-                      = configuration->sib2_interval_DLHoppingConfigCommonModeB_r13_val[CC_id];
-          }
-          else
-          {
-              (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeB_r13->present
-                      = FreqHoppingParameters_r13__interval_DLHoppingConfigCommonModeB_r13_PR_interval_TDD_r13;
-              (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeB_r13->choice.interval_TDD_r13
-                      = configuration->sib2_interval_DLHoppingConfigCommonModeB_r13_val[CC_id];
-
-          }
-      }
-      else
-      {
-          (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeB_r13 = NULL;
-      }
 
+      (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13 = CALLOC(1, sizeof(FreqHoppingParameters_r13_t));
+  
       if (configuration->sib2_interval_ULHoppingConfigCommonModeA_r13[CC_id])
       {
-          puts("[DEBUGGING][KOGO][ASN]: SIB2 Interval UL HOPPING CONFIG COMMON MODE A\n");
           (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeA_r13
                   = CALLOC(1, sizeof(struct FreqHoppingParameters_r13__interval_ULHoppingConfigCommonModeA_r13));
           if (*configuration->sib2_interval_ULHoppingConfigCommonModeA_r13[CC_id] == 0)
           {
-              printf("[DEBUGGING][KOGO][ASN]: FDD UL HOPPING CONFIG COMMON MODE A\n");
-              printf("[DEBUGGING][KOGO][ASN]: interval UL hopping config common:  %d\n", configuration->sib2_interval_ULHoppingConfigCommonModeA_r13_val[CC_id]);
               (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeA_r13->present
                       = FreqHoppingParameters_r13__interval_ULHoppingConfigCommonModeA_r13_PR_interval_FDD_r13;
               (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeA_r13->choice.interval_FDD_r13
@@ -1395,7 +1329,6 @@ uint8_t do_SIB23(uint8_t Mod_id,
       }
       else
       {
-          printf("[DEBUGGING][KOGO][ALLOC ERROR] interval ul hopping: %d\n", configuration->sib2_interval_ULHoppingConfigCommonModeA_r13[CC_id]);
           (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeA_r13 = NULL;
       }
 
@@ -1424,21 +1357,12 @@ uint8_t do_SIB23(uint8_t Mod_id,
           (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeB_r13 = NULL;
       }
 
-      if (configuration->sib2_mpdcch_pdsch_hoppingOffset_r13[CC_id])
-      {
-          (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->mpdcch_pdsch_HoppingOffset_r13 = CALLOC(1, sizeof(long));
-          *(*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->mpdcch_pdsch_HoppingOffset_r13 = *configuration->sib2_mpdcch_pdsch_hoppingOffset_r13[CC_id];
-      }
-      else
-      {
-          (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->mpdcch_pdsch_HoppingOffset_r13 = NULL;
-      }
   }
   else
   {
       (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13 = NULL;
   }
-
+  
 
 
   // pdsch_ConfigCommon_v1310
@@ -1447,7 +1371,6 @@ uint8_t do_SIB23(uint8_t Mod_id,
   if (configuration->pdsch_maxNumRepetitionCEmodeA_r13[CC_id]) {
       (*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310->pdsch_maxNumRepetitionCEmodeA_r13 = CALLOC(1, sizeof(long));
       *(*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310->pdsch_maxNumRepetitionCEmodeA_r13 = *configuration->pdsch_maxNumRepetitionCEmodeA_r13[CC_id];
-      printf("[DEBUGGING][KOGO] : pdsch CE MODE A : %ld\n", *(*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310->pdsch_maxNumRepetitionCEmodeA_r13);
   } else {
       (*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310->pdsch_maxNumRepetitionCEmodeA_r13 = NULL;
   }
@@ -1455,7 +1378,6 @@ uint8_t do_SIB23(uint8_t Mod_id,
   if (configuration->pdsch_maxNumRepetitionCEmodeB_r13[CC_id]) {
       (*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310->pdsch_maxNumRepetitionCEmodeB_r13 = CALLOC(1, sizeof(long)); // check if they're really long
       *(*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310->pdsch_maxNumRepetitionCEmodeB_r13 = *configuration->pdsch_maxNumRepetitionCEmodeB_r13[CC_id];
-      printf("[DEBUGGING][KOGO] : pdsch CE MODE B : %ld\n", *(*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310->pdsch_maxNumRepetitionCEmodeB_r13);
   } else {
       (*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310->pdsch_maxNumRepetitionCEmodeB_r13 = NULL;
   }
@@ -1469,7 +1391,6 @@ uint8_t do_SIB23(uint8_t Mod_id,
   if (configuration->pusch_maxNumRepetitionCEmodeA_r13[CC_id]) {
       (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeA_r13 = calloc(1,sizeof(long));
       *(*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeA_r13 = *configuration->pusch_maxNumRepetitionCEmodeA_r13[CC_id];
-      printf("[DEBUGGING][KOGO] : pusch CE MODE A : %ld\n", *(*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeA_r13);
   } else {
       (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeA_r13 = NULL;
   }
@@ -1477,7 +1398,6 @@ uint8_t do_SIB23(uint8_t Mod_id,
   if (configuration->pusch_maxNumRepetitionCEmodeB_r13[CC_id]) {
       (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeB_r13 = CALLOC(1, sizeof(long));
       *(*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeB_r13 = *configuration->pusch_maxNumRepetitionCEmodeB_r13[CC_id];
-      printf("[DEBUGGING][KOGO] : pusch CE MODE B : %ld\n", *(*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeB_r13);
   } else {
       (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeB_r13 = NULL;
   }
@@ -1485,7 +1405,6 @@ uint8_t do_SIB23(uint8_t Mod_id,
   if (configuration->pusch_HoppingOffset_v1310[CC_id]) {
       (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_HoppingOffset_v1310 = CALLOC(1, sizeof(long));
       *(*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_HoppingOffset_v1310 = *configuration->pusch_HoppingOffset_v1310[CC_id];
-      printf("[DEBUGGING][KOGO] : pusch hopping offset : %ld\n", *(*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_HoppingOffset_v1310);
   } else {
       (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_HoppingOffset_v1310 = NULL;
   }
@@ -1509,7 +1428,6 @@ uint8_t do_SIB23(uint8_t Mod_id,
           if (configuration->rsrp_range_list_size[CC_id])
           {
               *rsrp_range = configuration->rsrp_range[CC_id][rsrp_index];
-              printf("[DEBUGGING][KOGO][SIB23] : rsrp range = %d\n", *rsrp_range);
           }
           else
           {
@@ -1536,8 +1454,6 @@ uint8_t do_SIB23(uint8_t Mod_id,
               (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13->present = PRACH_ConfigSIB_v1310__mpdcch_startSF_CSS_RA_r13_PR_tdd_r13;
               (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13->choice.tdd_r13 = rrconfig->mpdcch_startSF_CSS_RA_r13_val;
           }
-          printf("[DEBUGGING][KOGO][SIB23]: mpdcch_startSF_CSS_RA_r13->choice.fdd_r13 = %d\n",
-                 (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13->choice.fdd_r13);
       }
 
       if (rrconfig->prach_HoppingOffset_r13)
@@ -1549,9 +1465,7 @@ uint8_t do_SIB23(uint8_t Mod_id,
       {
           (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_HoppingOffset_r13 = NULL;
       }
-      printf("[DEBUGGING][KOGO][SIB23]: prach_HoppingOffset_r13 = %d\n",
-             *(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_HoppingOffset_r13);
-
+       
       PRACH_ParametersCE_r13_t *prach_parametersce_r13;
 
       int num_prach_parameters_ce = configuration->prach_parameters_list_size[CC_id];
@@ -1641,7 +1555,6 @@ uint8_t do_SIB23(uint8_t Mod_id,
       puts("LEVEL 0");
       (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level0_r13  = CALLOC(1, sizeof(long));
       *(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level0_r13 =  *configuration->pucch_NumRepetitionCE_Msg4_Level0_r13[CC_id];
-      printf("[DEBUGGING][KOGO][SIB23]: pucch_NumRepetitionCE_Msg4_Level0_r13 = %d\n", *(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level0_r13);
   }
   else
   {
@@ -1654,7 +1567,6 @@ uint8_t do_SIB23(uint8_t Mod_id,
       puts("LEVEL 1");
       (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level1_r13  = CALLOC(1, sizeof(long));
       *(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level1_r13 =  *configuration->pucch_NumRepetitionCE_Msg4_Level1_r13[CC_id];
-      printf("[DEBUGGING][KOGO][SIB23]: pucch_NumRepetitionCE_Msg4_Level1_r13 = %d\n", *(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level1_r13);
   }
   else
   {
@@ -1666,7 +1578,6 @@ uint8_t do_SIB23(uint8_t Mod_id,
       puts("LEVEL 2");
       (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level2_r13  = CALLOC(1, sizeof(long));
       *(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level2_r13 =  *configuration->pucch_NumRepetitionCE_Msg4_Level2_r13[CC_id];
-      printf("[DEBUGGING][KOGO][SIB23]: pucch_NumRepetitionCE_Msg4_Level2_r13 = %d\n", *(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level2_r13);
   }
   else
   {
@@ -1678,7 +1589,6 @@ uint8_t do_SIB23(uint8_t Mod_id,
       puts("LEVEL 3");
       (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level3_r13  = CALLOC(1, sizeof(long));
       *(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level3_r13 =  *configuration->pucch_NumRepetitionCE_Msg4_Level3_r13[CC_id];
-      printf("[DEBUGGING][KOGO][SIB23]: pucch_NumRepetitionCE_Msg4_Level3_r13 = %d\n", *(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level3_r13);
   }
   else
   {
@@ -2673,9 +2583,11 @@ uint8_t do_RRCConnectionSetupComplete(uint8_t Mod_id, uint8_t *buffer, const uin
   */
 
   enc_rval = uper_encode_to_buffer(&asn_DEF_UL_DCCH_Message,
+				   NULL,
 				   (void*)&ul_dcch_msg,
 				   buffer,
 				   100);
+
   AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n",
 	       enc_rval.failed_type->name, enc_rval.encoded);
 
@@ -2735,6 +2647,7 @@ do_RRCConnectionReconfigurationComplete(
   rrcConnectionReconfigurationComplete->criticalExtensions.choice.rrcConnectionReconfigurationComplete_r8.nonCriticalExtension=NULL;
 
   enc_rval = uper_encode_to_buffer(&asn_DEF_UL_DCCH_Message,
+				   NULL,
 				   (void*)&ul_dcch_msg,
 				   buffer,
 				   100);
@@ -2781,7 +2694,6 @@ do_RRCConnectionSetup_BR(
 {
 
   asn_enc_rval_t enc_rval;
-  uint8_t ecause=0;
   eNB_RRC_INST *rrc               = RC.rrc[ctxt_pP->module_id];
   rrc_eNB_carrier_data_t *carrier = &rrc->carrier[CC_id];
 
@@ -2938,7 +2850,7 @@ do_RRCConnectionSetup_BR(
   physicalConfigDedicated2->cqi_ReportConfig->nomPDSCH_RS_EPRE_Offset = 0; // 0 dB
   physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic = CALLOC(1,sizeof(*physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic));
   physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->present = CQI_ReportPeriodic_PR_release;
-  physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->choice.release = NULL;
+  physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->choice.release = (NULL_t)0;
 
     
   /// TODO to be reviewed
@@ -2955,7 +2867,7 @@ do_RRCConnectionSetup_BR(
                   == SoundingRS_UL_ConfigCommon_PR_setup)
               if (carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig!=0)
                   LOG_W(RRC,"This code has been optimized for SRS Subframe Config 0, but current config is %d. Expect undefined behaviour!\n",
-                        carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig);
+                        (int)carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig);
           if (ue_context_pP->local_uid >=20)
               LOG_W(RRC,"This code has been optimized for up to 10 UEs, but current UE_id is %d. Expect undefined behaviour!\n",
                     ue_context_pP->local_uid);
@@ -2968,8 +2880,8 @@ do_RRCConnectionSetup_BR(
                   == SoundingRS_UL_ConfigCommon_PR_setup)
               if (carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig!=7) {
                   LOG_W(RRC,"This code has been optimized for SRS Subframe Config 7 and TDD config 3, but current configs are %d and %d. Expect undefined behaviour!\n",
-                        carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig,
-                        carrier->sib1->tdd_Config->subframeAssignment);
+                        (int)carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig,
+                        (int)carrier->sib1->tdd_Config->subframeAssignment);
               }
           if (ue_context_pP->local_uid >=6)
               LOG_W(RRC,"This code has been optimized for up to 6 UEs, but current UE_id is %d. Expect undefined behaviour!\n",
@@ -2978,8 +2890,8 @@ do_RRCConnectionSetup_BR(
           physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.transmissionComb= ue_context_pP->local_uid%2;
       }
       LOG_W(RRC,"local UID %d, srs ConfigIndex %d, TransmissionComb %d\n",ue_context_pP->local_uid,
-            physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.srs_ConfigIndex,
-            physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.transmissionComb);
+            (int)physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.srs_ConfigIndex,
+            (int)physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.transmissionComb);
 
       physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.cyclicShift=
               SoundingRS_UL_ConfigDedicated__setup__cyclicShift_cs0;
@@ -3065,13 +2977,6 @@ do_RRCConnectionSetup_BR(
     }
   }
 
-  enc_rval = uper_encode_to_buffer(&asn_DEF_UL_DCCH_Message,
-                                   NULL,
-                                   (void*)&ul_dcch_msg,
-                                   buffer,
-                                   100);
-  AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n",
-               enc_rval.failed_type->name, enc_rval.encoded);
 
   physicalConfigDedicated2->schedulingRequestConfig->choice.setup.dsr_TransMax = SchedulingRequestConfig__setup__dsr_TransMax_n16;
 
@@ -3101,9 +3006,6 @@ do_RRCConnectionSetup_BR(
   epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11.bits_unused = 2;
   memset(epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11.buf, 0, 5 * sizeof(uint8_t));
 
-  LOG_D(RRC,"RRCConnectionSetupComplete Encoded %zd bits (%zd bytes)\n",enc_rval.encoded,(enc_rval.encoded+7)/8);
-
-
   epdcch_setconfig_r11->dmrs_ScramblingSequenceInt_r11 = 54;
   epdcch_setconfig_r11->pucch_ResourceStartOffset_r11 = 0;
   epdcch_setconfig_r11->re_MappingQCL_ConfigId_r11 = NULL;
@@ -3142,7 +3044,6 @@ do_RRCConnectionSetup_BR(
 
   physicalConfigDedicated2->ext7->csi_RS_Config_v1310 = NULL;
 
-
   // FIXME ce_Mode_r13 allocation
   physicalConfigDedicated2->ext7->ce_Mode_r13 = CALLOC(1, sizeof(struct PhysicalConfigDedicated__ext7__ce_Mode_r13));
   physicalConfigDedicated2->ext7->ce_Mode_r13->present      = PhysicalConfigDedicated__ext7__ce_Mode_r13_PR_setup;
@@ -3175,12 +3076,11 @@ do_RRCConnectionSetup_BR(
 #ifdef XER_PRINT
   xer_fprint(stdout, &asn_DEF_DL_CCCH_Message, (void*)&dl_ccch_msg);
 #endif
-  enc_rval = uper_encode_to_buffer(&asn_DEF_UL_DCCH_Message,
-                                   NULL,
-                                   (void*)&ul_dcch_msg,
-                                   buffer,
-                                   100);
-
+  enc_rval = uper_encode_to_buffer(&asn_DEF_DL_CCCH_Message,
+				   NULL,
+				   (void*)&dl_ccch_msg,
+				   buffer,
+				   100);
   AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n",
 	       enc_rval.failed_type->name, enc_rval.encoded);
 
@@ -3203,10 +3103,10 @@ do_RRCConnectionSetup_BR(
 # endif
 #endif
 
-
-  LOG_D(RRC,"RRCConnectionSetup Encoded %zd bits (%zd bytes)\n",
-	enc_rval.encoded,(enc_rval.encoded+7)/8);
-
+#ifdef USER_MODE
+  LOG_D(RRC,"RRCConnectionSetup Encoded %d bits (%d bytes), ecause %d\n",
+	enc_rval.encoded,(enc_rval.encoded+7)/8,ecause);
+#endif
 
   //  FREEMEM(SRB_list);
   //  free(SRB1_config);
@@ -3436,7 +3336,7 @@ do_RRCConnectionSetup(
                   == SoundingRS_UL_ConfigCommon_PR_setup)
               if (carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig!=0)
                   LOG_W(RRC,"This code has been optimized for SRS Subframe Config 0, but current config is %d. Expect undefined behaviour!\n",
-                        carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig);
+                        (int)carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig);
           if (ue_context_pP->local_uid >=20)
               LOG_W(RRC,"This code has been optimized for up to 10 UEs, but current UE_id is %d. Expect undefined behaviour!\n",
                     ue_context_pP->local_uid);
@@ -3922,10 +3822,11 @@ do_RRCConnectionReconfiguration_BR(
   rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.securityConfigHO     = NULL;
 
   enc_rval = uper_encode_to_buffer(&asn_DEF_DL_DCCH_Message,
+				   NULL,
 				   (void*)&dl_dcch_msg,
 				   buffer,
 				   RRC_BUF_SIZE);
-  AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %l)!\n",
+  AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed %s, %lu!\n",
 	       enc_rval.failed_type->name, enc_rval.encoded);
 
 #ifdef XER_PRINT
@@ -3951,13 +3852,8 @@ do_RRCConnectionReconfiguration_BR(
 # endif
 #endif
 
-  //#ifdef USER_MODE
-  LOG_I(RRC,"RRCConnectionReconfiguration Encoded %d bits (%d bytes)\n",enc_rval.encoded,(enc_rval.encoded+7)/8);
-  // for (i=0;i<30;i++)
-  //    msg("%x.",buffer[i]);
-  // msg("\n");
 
-  //#endif
+  LOG_I(RRC,"RRCConnectionReconfiguration Encoded %d bits (%d bytes)\n",(int)enc_rval.encoded,(int)(enc_rval.encoded+7)/8);
 
   return((enc_rval.encoded+7)/8);
 }
diff --git a/openair2/RRC/LTE/rrc_eNB.c b/openair2/RRC/LTE/rrc_eNB.c
index 58eacacecbf278403cc5c8e6405d20bbf3f9fad0..4d9268eb44e379245bd4de7826adcce7c232be19 100755
--- a/openair2/RRC/LTE/rrc_eNB.c
+++ b/openair2/RRC/LTE/rrc_eNB.c
@@ -3054,9 +3054,9 @@ rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t* cons
   //TODO: change TM for secondary CC in SCelltoaddmodlist
   if (*physicalConfigDedicated) {
     if ((*physicalConfigDedicated)->antennaInfo) {
-      (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.transmissionMode = rrc_inst->configuration.ue_TransmissionMode[0];
-      LOG_D(RRC,"Setting transmission mode to %ld+1\n",rrc_inst->configuration.ue_TransmissionMode[0]);
-      if (rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm3) {
+      (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.transmissionMode = rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode;
+      LOG_D(RRC,"Setting transmission mode to %ld+1\n",rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode);
+      if (rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode==AntennaInfoDedicated__transmissionMode_tm3) {
 	(*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction=     
 	  CALLOC(1,sizeof(AntennaInfoDedicated__codebookSubsetRestriction_PR));
 	(*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->present =
@@ -3066,7 +3066,7 @@ rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t* cons
 	(*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm3.size=1;
 	(*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm3.bits_unused=6;
       }
-      else if (rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm4) {
+      else if (rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode==AntennaInfoDedicated__transmissionMode_tm4) {
 	(*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction=     
 	  CALLOC(1,sizeof(AntennaInfoDedicated__codebookSubsetRestriction_PR));
 	(*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->present =
@@ -3077,7 +3077,7 @@ rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t* cons
 	(*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm4.bits_unused=2;
 
       }
-      else if (rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm5) {
+      else if (rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode==AntennaInfoDedicated__transmissionMode_tm5) {
 	(*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction=     
 	  CALLOC(1,sizeof(AntennaInfoDedicated__codebookSubsetRestriction_PR));
 	(*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->present =
@@ -3087,7 +3087,7 @@ rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t* cons
 	(*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm5.size=1;
 	(*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm5.bits_unused=4;
       }
-      else if (rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm6) {
+      else if (rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode==AntennaInfoDedicated__transmissionMode_tm6) {
 	(*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction=     
 	  CALLOC(1,sizeof(AntennaInfoDedicated__codebookSubsetRestriction_PR));
 	(*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->present =
@@ -3102,9 +3102,9 @@ rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t* cons
       LOG_E(RRC,"antenna_info not present in physical_config_dedicated. Not reconfiguring!\n");
     }
     if ((*physicalConfigDedicated)->cqi_ReportConfig) {
-      if ((rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm4) ||
-	  (rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm5) ||
-	  (rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm6)) {
+      if ((rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode==AntennaInfoDedicated__transmissionMode_tm4) ||
+	  (rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode==AntennaInfoDedicated__transmissionMode_tm5) ||
+	  (rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode==AntennaInfoDedicated__transmissionMode_tm6)) {
 	//feedback mode needs to be set as well
 	//TODO: I think this is taken into account in the PHY automatically based on the transmission mode variable
 	printf("setting cqi reporting mode to rm31\n");
@@ -3781,9 +3781,9 @@ flexran_rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt
   //TODO: change TM for secondary CC in SCelltoaddmodlist
   if (*physicalConfigDedicated) {
     if ((*physicalConfigDedicated)->antennaInfo) {
-      (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.transmissionMode = rrc_inst->configuration.ue_TransmissionMode[0];
-      LOG_D(RRC,"Setting transmission mode to %ld+1\n",rrc_inst->configuration.ue_TransmissionMode[0]);
-      if (rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm3) {
+      (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.transmissionMode = rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode;
+      LOG_D(RRC,"Setting transmission mode to %ld+1\n",rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode);
+      if (rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode==AntennaInfoDedicated__transmissionMode_tm3) {
   (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction=     
     CALLOC(1,sizeof(AntennaInfoDedicated__codebookSubsetRestriction_PR));
   (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->present =
@@ -3793,7 +3793,7 @@ flexran_rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt
   (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm3.size=1;
   (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm3.bits_unused=6;
       }
-      else if (rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm4) {
+      else if (rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode==AntennaInfoDedicated__transmissionMode_tm4) {
   (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction=     
     CALLOC(1,sizeof(AntennaInfoDedicated__codebookSubsetRestriction_PR));
   (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->present =
@@ -3804,7 +3804,7 @@ flexran_rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt
   (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm4.bits_unused=2;
 
       }
-      else if (rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm5) {
+      else if (rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode==AntennaInfoDedicated__transmissionMode_tm5) {
   (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction=     
     CALLOC(1,sizeof(AntennaInfoDedicated__codebookSubsetRestriction_PR));
   (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->present =
@@ -3814,7 +3814,7 @@ flexran_rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt
   (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm5.size=1;
   (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm5.bits_unused=4;
       }
-      else if (rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm6) {
+      else if (rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode==AntennaInfoDedicated__transmissionMode_tm6) {
   (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction=     
     CALLOC(1,sizeof(AntennaInfoDedicated__codebookSubsetRestriction_PR));
   (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->present =
@@ -3830,9 +3830,9 @@ flexran_rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt
       LOG_E(RRC,"antenna_info not present in physical_config_dedicated. Not reconfiguring!\n");
     }
     if ((*physicalConfigDedicated)->cqi_ReportConfig) {
-      if ((rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm4) ||
-    (rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm5) ||
-    (rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm6)) {
+      if ((rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode==AntennaInfoDedicated__transmissionMode_tm4) ||
+    (rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode==AntennaInfoDedicated__transmissionMode_tm5) ||
+    (rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode==AntennaInfoDedicated__transmissionMode_tm6)) {
   //feedback mode needs to be set as well
   //TODO: I think this is taken into account in the PHY automatically based on the transmission mode variable
   printf("setting cqi reporting mode to rm31\n");
@@ -5736,13 +5736,13 @@ rrc_eNB_generate_RRCConnectionSetup(
   if (is_mtc) {
     RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Srb0.Tx_buffer.payload_size =
       do_RRCConnectionSetup_BR(ctxt_pP,
-                            ue_context_pP,
-                            CC_id,
-                            (uint8_t*) RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Srb0.Tx_buffer.Payload,
-      (uint8_t*) RC.rrc[ctxt_pP->module_id]->carrier[CC_id].p_eNB, //at this point we do not have the UE capability information, so it can only be TM1 or TM2
-      rrc_eNB_get_next_transaction_identifier(ctxt_pP->module_id),
-      SRB_configList,
-      &ue_context_pP->ue_context.physicalConfigDedicated);
+			       ue_context_pP,
+			       CC_id,
+			       (uint8_t*) RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Srb0.Tx_buffer.Payload,
+			       (const uint8_t) RC.rrc[ctxt_pP->module_id]->carrier[CC_id].p_eNB, //at this point we do not have the UE capability information, so it can only be TM1 or TM2
+			       rrc_eNB_get_next_transaction_identifier(ctxt_pP->module_id),
+			       SRB_configList,
+			       &ue_context_pP->ue_context.physicalConfigDedicated);
   } else 
 #endif
   {
@@ -5751,7 +5751,7 @@ rrc_eNB_generate_RRCConnectionSetup(
                           ue_context_pP,
                           CC_id,
                           (uint8_t*) RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Srb0.Tx_buffer.Payload,
-              (uint8_t*) RC.rrc[ctxt_pP->module_id]->carrier[CC_id].p_eNB, //at this point we do not have the UE capability information, so it can only be TM1 or TM2
+			  (const uint8_t) RC.rrc[ctxt_pP->module_id]->carrier[CC_id].p_eNB, //at this point we do not have the UE capability information, so it can only be TM1 or TM2
                           rrc_eNB_get_next_transaction_identifier(ctxt_pP->module_id),
                           SRB_configList,
                           &ue_context_pP->ue_context.physicalConfigDedicated);
diff --git a/openair2/RRC/LTE/rrc_eNB_S1AP.c b/openair2/RRC/LTE/rrc_eNB_S1AP.c
index d225b6eae0a48c77ba4bf580e6dda295a84347c0..a830f3145ccdd29b6beeac6570cbf86ee6353e45 100755
--- a/openair2/RRC/LTE/rrc_eNB_S1AP.c
+++ b/openair2/RRC/LTE/rrc_eNB_S1AP.c
@@ -1857,7 +1857,7 @@ int rrc_eNB_process_PAGING_IND(MessageDef *msg_p, const char *msg_name, instance
                   lte_frame_type_t frame_type = RC.eNB[instance][CC_id]->frame_parms.frame_type;
                   /* get nB from configuration */
                   /* get default DRX cycle from configuration */
-                  Tc = (uint8_t)RC.rrc[instance]->configuration.pcch_defaultPagingCycle[CC_id];
+                  Tc = (uint8_t)RC.rrc[instance]->configuration.radioresourceconfig[CC_id].pcch_defaultPagingCycle;
                   if (Tc < PCCH_Config__defaultPagingCycle_rf32 || Tc > PCCH_Config__defaultPagingCycle_rf256) {
                       continue;
                   }
@@ -1865,7 +1865,7 @@ int rrc_eNB_process_PAGING_IND(MessageDef *msg_p, const char *msg_name, instance
                   /* set T = min(Tc,Tue) */
                   T = Tc < Tue ? Ttab[Tc] : Ttab[Tue];
                   /* set pcch_nB = PCCH-Config->nB */
-                  pcch_nB = (uint32_t)RC.rrc[instance]->configuration.pcch_nB[CC_id];
+                  pcch_nB = (uint32_t)RC.rrc[instance]->configuration.radioresourceconfig[CC_id].pcch_nB;
                   switch (pcch_nB) {
                     case PCCH_Config__nB_fourT:
                         Ns = 4;
diff --git a/openair2/RRC/LTE/rrc_proto.h b/openair2/RRC/LTE/rrc_proto.h
index 4fd990ba0dff8db234763d4d986e558cc5e045cd..0d36fc19234ff4b2e77d9473108f4f39a91bb072 100755
--- a/openair2/RRC/LTE/rrc_proto.h
+++ b/openair2/RRC/LTE/rrc_proto.h
@@ -432,6 +432,9 @@ mac_rrc_data_ind(
   const uint8_t*        sduP,
   const sdu_size_t      sdu_lenP,
   const uint8_t         mbsfn_sync_areaP
+#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
+  , const boolean_t		brOption
+#endif
 );
 
 int8_t
@@ -458,9 +461,6 @@ mac_rrc_data_ind_ue(
   const sdu_size_t      sdu_lenP,
   const mac_enb_index_t eNB_indexP,
   const uint8_t         mbsfn_sync_areaP
-#ifdef Rel14
-	, const boolean_t		brOption
-#endif
 );
 
 void mac_sync_ind( module_id_t Mod_instP, uint8_t status);