Commit cd667e55 authored by Cedric Roux's avatar Cedric Roux

RRC: add an option to enable measurement reports

In the configuration file, to enable measurements, add:

    enable_measurement_reports = "yes";

Note that if x2 is enabled then the option 'enable_measurement_reports'
is not taken into account and the measurements are enabled.
parent 81d4202b
...@@ -360,6 +360,8 @@ eNBs = ...@@ -360,6 +360,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -141,6 +141,8 @@ eNBs = ...@@ -141,6 +141,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -141,6 +141,8 @@ eNBs = ...@@ -141,6 +141,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -141,6 +141,8 @@ eNBs = ...@@ -141,6 +141,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -178,6 +178,8 @@ eNBs = ...@@ -178,6 +178,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -178,6 +178,8 @@ eNBs = ...@@ -178,6 +178,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -186,6 +186,8 @@ eNBs = ...@@ -186,6 +186,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -181,6 +181,8 @@ eNBs = ...@@ -181,6 +181,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -178,6 +178,8 @@ eNBs = ...@@ -178,6 +178,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -141,6 +141,8 @@ eNBs = ...@@ -141,6 +141,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -144,6 +144,8 @@ eNBs = ...@@ -144,6 +144,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -144,6 +144,8 @@ eNBs = ...@@ -144,6 +144,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -144,6 +144,8 @@ eNBs = ...@@ -144,6 +144,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -181,6 +181,8 @@ eNBs = ...@@ -181,6 +181,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -181,6 +181,8 @@ eNBs = ...@@ -181,6 +181,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -181,6 +181,8 @@ eNBs = ...@@ -181,6 +181,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -179,6 +179,8 @@ eNBs = ...@@ -179,6 +179,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -141,6 +141,8 @@ eNBs = ...@@ -141,6 +141,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -141,6 +141,8 @@ eNBs = ...@@ -141,6 +141,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -141,6 +141,8 @@ eNBs = ...@@ -141,6 +141,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -141,6 +141,8 @@ eNBs = ...@@ -141,6 +141,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -141,6 +141,8 @@ eNBs = ...@@ -141,6 +141,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -141,6 +141,8 @@ eNBs = ...@@ -141,6 +141,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -141,6 +141,8 @@ eNBs = ...@@ -141,6 +141,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -141,6 +141,8 @@ eNBs = ...@@ -141,6 +141,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -141,6 +141,8 @@ eNBs = ...@@ -141,6 +141,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -143,6 +143,8 @@ eNBs = ...@@ -143,6 +143,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -143,6 +143,8 @@ eNBs = ...@@ -143,6 +143,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -143,6 +143,8 @@ eNBs = ...@@ -143,6 +143,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -181,6 +181,8 @@ eNBs = ...@@ -181,6 +181,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -180,6 +180,9 @@ typedef struct RrcConfigurationReq_s { ...@@ -180,6 +180,9 @@ typedef struct RrcConfigurationReq_s {
uint8_t mnc_digit_length[PLMN_LIST_MAX_SIZE]; uint8_t mnc_digit_length[PLMN_LIST_MAX_SIZE];
uint8_t num_plmn; uint8_t num_plmn;
int enable_measurement_reports;
int enable_x2;
uint32_t rrc_inactivity_timer_thres; // for testing, maybe change later uint32_t rrc_inactivity_timer_thres; // for testing, maybe change later
paging_drx_t default_drx; paging_drx_t default_drx;
......
...@@ -417,6 +417,22 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) { ...@@ -417,6 +417,22 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
RRC_CONFIGURATION_REQ(msg_p).mnc[l]); RRC_CONFIGURATION_REQ(msg_p).mnc[l]);
} }
/* measurement reports enabled? */
if (ENBParamList.paramarray[i][ENB_ENABLE_MEASUREMENT_REPORTS].strptr != NULL &&
*(ENBParamList.paramarray[i][ENB_ENABLE_MEASUREMENT_REPORTS].strptr) != NULL &&
!strcmp(*(ENBParamList.paramarray[i][ENB_ENABLE_MEASUREMENT_REPORTS].strptr), "yes"))
RRC_CONFIGURATION_REQ (msg_p).enable_measurement_reports = 1;
else
RRC_CONFIGURATION_REQ (msg_p).enable_measurement_reports = 0;
/* x2 enabled? */
if (ENBParamList.paramarray[i][ENB_ENABLE_X2].strptr != NULL &&
*(ENBParamList.paramarray[i][ENB_ENABLE_X2].strptr) != NULL &&
!strcmp(*(ENBParamList.paramarray[i][ENB_ENABLE_X2].strptr), "yes"))
RRC_CONFIGURATION_REQ (msg_p).enable_x2 = 1;
else
RRC_CONFIGURATION_REQ (msg_p).enable_x2 = 0;
// Parse optional physical parameters // Parse optional physical parameters
config_getlist( &CCsParamList,NULL,0,enbpath); config_getlist( &CCsParamList,NULL,0,enbpath);
LOG_I(RRC,"num component carriers %d \n",CCsParamList.numelt); LOG_I(RRC,"num component carriers %d \n",CCsParamList.numelt);
......
...@@ -204,6 +204,8 @@ typedef enum { ...@@ -204,6 +204,8 @@ typedef enum {
#define ENB_CONFIG_STRING_LOCAL_S_PORTD "local_s_portd" #define ENB_CONFIG_STRING_LOCAL_S_PORTD "local_s_portd"
#define ENB_CONFIG_STRING_REMOTE_S_PORTD "remote_s_portd" #define ENB_CONFIG_STRING_REMOTE_S_PORTD "remote_s_portd"
#define ENB_CONFIG_STRING_NR_CELLID "nr_cellid" #define ENB_CONFIG_STRING_NR_CELLID "nr_cellid"
#define ENB_CONFIG_STRING_MEASUREMENT_REPORTS "enable_measurement_reports"
#define ENB_CONFIG_STRING_X2 "enable_x2"
/*-----------------------------------------------------------------------------------------------------------------------------------------*/ /*-----------------------------------------------------------------------------------------------------------------------------------------*/
/* cell configuration parameters */ /* cell configuration parameters */
/* optname helpstr paramflags XXXptr defXXXval type numelt */ /* optname helpstr paramflags XXXptr defXXXval type numelt */
...@@ -224,6 +226,8 @@ typedef enum { ...@@ -224,6 +226,8 @@ typedef enum {
{ENB_CONFIG_STRING_LOCAL_S_PORTD, NULL, 0, uptr:NULL, defuintval:50001, TYPE_UINT, 0}, \ {ENB_CONFIG_STRING_LOCAL_S_PORTD, NULL, 0, uptr:NULL, defuintval:50001, TYPE_UINT, 0}, \
{ENB_CONFIG_STRING_REMOTE_S_PORTD, NULL, 0, uptr:NULL, defuintval:50001, TYPE_UINT, 0}, \ {ENB_CONFIG_STRING_REMOTE_S_PORTD, NULL, 0, uptr:NULL, defuintval:50001, TYPE_UINT, 0}, \
{ENB_CONFIG_STRING_NR_CELLID, NULL, 0, u64ptr:NULL, defint64val:0, TYPE_UINT64, 0}, \ {ENB_CONFIG_STRING_NR_CELLID, NULL, 0, u64ptr:NULL, defint64val:0, TYPE_UINT64, 0}, \
{ENB_CONFIG_STRING_MEASUREMENT_REPORTS, NULL, 0, strptr:NULL, defstrval:NULL, TYPE_STRING, 0}, \
{ENB_CONFIG_STRING_X2, NULL, 0, strptr:NULL, defstrval:NULL, TYPE_STRING, 0}, \
} }
#define ENB_ENB_ID_IDX 0 #define ENB_ENB_ID_IDX 0
#define ENB_CELL_TYPE_IDX 1 #define ENB_CELL_TYPE_IDX 1
...@@ -240,6 +244,8 @@ typedef enum { ...@@ -240,6 +244,8 @@ typedef enum {
#define ENB_LOCAL_S_PORTD_IDX 12 #define ENB_LOCAL_S_PORTD_IDX 12
#define ENB_REMOTE_S_PORTD_IDX 13 #define ENB_REMOTE_S_PORTD_IDX 13
#define ENB_NRCELLID_IDX 14 #define ENB_NRCELLID_IDX 14
#define ENB_ENABLE_MEASUREMENT_REPORTS 15
#define ENB_ENABLE_X2 16
#define TRACKING_AREA_CODE_OKRANGE {0x0001,0xFFFD} #define TRACKING_AREA_CODE_OKRANGE {0x0001,0xFFFD}
#define ENBPARAMS_CHECK { \ #define ENBPARAMS_CHECK { \
......
...@@ -1460,7 +1460,7 @@ rrc_eNB_process_RRCConnectionReestablishmentComplete( ...@@ -1460,7 +1460,7 @@ rrc_eNB_process_RRCConnectionReestablishmentComplete(
/* for no gcc warnings */ /* for no gcc warnings */
(void)dedicatedInfoNas; (void)dedicatedInfoNas;
LTE_C_RNTI_t *cba_RNTI = NULL; LTE_C_RNTI_t *cba_RNTI = NULL;
int x2_enabled; int measurements_enabled;
uint8_t next_xid = rrc_eNB_get_next_transaction_identifier(ctxt_pP->module_id); uint8_t next_xid = rrc_eNB_get_next_transaction_identifier(ctxt_pP->module_id);
ue_context_pP->ue_context.Status = RRC_CONNECTED; ue_context_pP->ue_context.Status = RRC_CONNECTED;
ue_context_pP->ue_context.ue_rrc_inactivity_timer = 1; // set rrc inactivity when UE goes into RRC_CONNECTED ue_context_pP->ue_context.ue_rrc_inactivity_timer = 1; // set rrc inactivity when UE goes into RRC_CONNECTED
...@@ -1872,7 +1872,8 @@ rrc_eNB_process_RRCConnectionReestablishmentComplete( ...@@ -1872,7 +1872,8 @@ rrc_eNB_process_RRCConnectionReestablishmentComplete(
dedicatedInfoNASList = NULL; dedicatedInfoNASList = NULL;
} }
x2_enabled = is_x2ap_enabled(); measurements_enabled = RC.rrc[ENB_INSTANCE_TO_MODULE_ID(ctxt_pP->instance)]->configuration.enable_x2 ||
RC.rrc[ENB_INSTANCE_TO_MODULE_ID(ctxt_pP->instance)]->configuration.enable_measurement_reports;
// send LTE_RRCConnectionReconfiguration // send LTE_RRCConnectionReconfiguration
memset(buffer, 0, RRC_BUF_SIZE); memset(buffer, 0, RRC_BUF_SIZE);
...@@ -1887,9 +1888,9 @@ rrc_eNB_process_RRCConnectionReestablishmentComplete( ...@@ -1887,9 +1888,9 @@ rrc_eNB_process_RRCConnectionReestablishmentComplete(
//#ifdef EXMIMO_IOT //#ifdef EXMIMO_IOT
// NULL, NULL, NULL,NULL, // NULL, NULL, NULL,NULL,
//#else //#else
x2_enabled ? (LTE_MeasObjectToAddModList_t *)MeasObj_list : NULL, // MeasObj_list, measurements_enabled ? (LTE_MeasObjectToAddModList_t *)MeasObj_list : NULL, // MeasObj_list,
x2_enabled ? (LTE_ReportConfigToAddModList_t *)ReportConfig_list : NULL, // ReportConfig_list, measurements_enabled ? (LTE_ReportConfigToAddModList_t *)ReportConfig_list : NULL, // ReportConfig_list,
x2_enabled ? (LTE_QuantityConfig_t *)quantityConfig : NULL, //quantityConfig, measurements_enabled ? (LTE_QuantityConfig_t *)quantityConfig : NULL, //quantityConfig,
(LTE_MeasIdToAddModList_t *)NULL, (LTE_MeasIdToAddModList_t *)NULL,
//#endif //#endif
(LTE_MAC_MainConfig_t *)ue_context_pP->ue_context.mac_MainConfig, (LTE_MAC_MainConfig_t *)ue_context_pP->ue_context.mac_MainConfig,
...@@ -2798,7 +2799,7 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t ...@@ -2798,7 +2799,7 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t
/* For no gcc warnings */ /* For no gcc warnings */
(void) dedicatedInfoNas; (void) dedicatedInfoNas;
LTE_C_RNTI_t *cba_RNTI = NULL; LTE_C_RNTI_t *cba_RNTI = NULL;
int x2_enabled; int measurements_enabled;
uint8_t xid = rrc_eNB_get_next_transaction_identifier(ctxt_pP->module_id); //Transaction_id, uint8_t xid = rrc_eNB_get_next_transaction_identifier(ctxt_pP->module_id); //Transaction_id,
uint8_t cc_id = ue_context_pP->ue_context.primaryCC_id; uint8_t cc_id = ue_context_pP->ue_context.primaryCC_id;
LTE_UE_EUTRA_Capability_t *UEcap = ue_context_pP->ue_context.UE_Capability; LTE_UE_EUTRA_Capability_t *UEcap = ue_context_pP->ue_context.UE_Capability;
...@@ -3340,7 +3341,8 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t ...@@ -3340,7 +3341,8 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t
dedicatedInfoNASList = NULL; dedicatedInfoNASList = NULL;
} }
x2_enabled = is_x2ap_enabled(); measurements_enabled = RC.rrc[ENB_INSTANCE_TO_MODULE_ID(ctxt_pP->instance)]->configuration.enable_x2 ||
RC.rrc[ENB_INSTANCE_TO_MODULE_ID(ctxt_pP->instance)]->configuration.enable_measurement_reports;
memset(buffer, 0, RRC_BUF_SIZE); memset(buffer, 0, RRC_BUF_SIZE);
...@@ -3352,10 +3354,10 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t ...@@ -3352,10 +3354,10 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t
(LTE_DRB_ToReleaseList_t *) NULL, // DRB2_list, (LTE_DRB_ToReleaseList_t *) NULL, // DRB2_list,
(struct LTE_SPS_Config *) NULL, // *sps_Config, (struct LTE_SPS_Config *) NULL, // *sps_Config,
(struct LTE_PhysicalConfigDedicated *) *physicalConfigDedicated, (struct LTE_PhysicalConfigDedicated *) *physicalConfigDedicated,
x2_enabled ? (LTE_MeasObjectToAddModList_t *) MeasObj_list : NULL, measurements_enabled ? (LTE_MeasObjectToAddModList_t *) MeasObj_list : NULL,
x2_enabled ? (LTE_ReportConfigToAddModList_t *) ReportConfig_list : NULL, measurements_enabled ? (LTE_ReportConfigToAddModList_t *) ReportConfig_list : NULL,
x2_enabled ? (LTE_QuantityConfig_t *) quantityConfig : NULL, measurements_enabled ? (LTE_QuantityConfig_t *) quantityConfig : NULL,
x2_enabled ? (LTE_MeasIdToAddModList_t *) MeasId_list : NULL, measurements_enabled ? (LTE_MeasIdToAddModList_t *) MeasId_list : NULL,
(LTE_MAC_MainConfig_t *) mac_MainConfig, (LTE_MAC_MainConfig_t *) mac_MainConfig,
(LTE_MeasGapConfig_t *) NULL, (LTE_MeasGapConfig_t *) NULL,
(LTE_MobilityControlInfo_t *) NULL, (LTE_MobilityControlInfo_t *) NULL,
...@@ -3473,7 +3475,7 @@ flexran_rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt ...@@ -3473,7 +3475,7 @@ flexran_rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt
/* for no gcc warnings */ /* for no gcc warnings */
(void)dedicatedInfoNas; (void)dedicatedInfoNas;
LTE_C_RNTI_t *cba_RNTI = NULL; LTE_C_RNTI_t *cba_RNTI = NULL;
int x2_enabled; int measurements_enabled;
uint8_t xid = rrc_eNB_get_next_transaction_identifier(ctxt_pP->module_id); //Transaction_id, uint8_t xid = rrc_eNB_get_next_transaction_identifier(ctxt_pP->module_id); //Transaction_id,
#ifdef CBA #ifdef CBA
//struct PUSCH_CBAConfigDedicated_vlola *pusch_CBAConfigDedicated_vlola; //struct PUSCH_CBAConfigDedicated_vlola *pusch_CBAConfigDedicated_vlola;
...@@ -3843,7 +3845,8 @@ flexran_rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt ...@@ -3843,7 +3845,8 @@ flexran_rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt
dedicatedInfoNASList = NULL; dedicatedInfoNASList = NULL;
} }
x2_enabled = is_x2ap_enabled(); measurements_enabled = RC.rrc[ENB_INSTANCE_TO_MODULE_ID(ctxt_pP->instance)]->configuration.enable_x2 ||
RC.rrc[ENB_INSTANCE_TO_MODULE_ID(ctxt_pP->instance)]->configuration.enable_measurement_reports;
memset(buffer, 0, RRC_BUF_SIZE); memset(buffer, 0, RRC_BUF_SIZE);
size = do_RRCConnectionReconfiguration(ctxt_pP, size = do_RRCConnectionReconfiguration(ctxt_pP,
...@@ -3857,10 +3860,10 @@ flexran_rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt ...@@ -3857,10 +3860,10 @@ flexran_rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt
// #ifdef EXMIMO_IOT // #ifdef EXMIMO_IOT
// NULL, NULL, NULL,NULL, // NULL, NULL, NULL,NULL,
// #else // #else
x2_enabled ? (LTE_MeasObjectToAddModList_t *)MeasObj_list : NULL, measurements_enabled ? (LTE_MeasObjectToAddModList_t *)MeasObj_list : NULL,
x2_enabled ? (LTE_ReportConfigToAddModList_t *)ReportConfig_list : NULL, measurements_enabled ? (LTE_ReportConfigToAddModList_t *)ReportConfig_list : NULL,
x2_enabled ? (LTE_QuantityConfig_t *)quantityConfig : NULL, measurements_enabled ? (LTE_QuantityConfig_t *)quantityConfig : NULL,
x2_enabled ? (LTE_MeasIdToAddModList_t *)MeasId_list : NULL, measurements_enabled ? (LTE_MeasIdToAddModList_t *)MeasId_list : NULL,
// #endif // #endif
(LTE_MAC_MainConfig_t *)mac_MainConfig, (LTE_MAC_MainConfig_t *)mac_MainConfig,
(LTE_MeasGapConfig_t *)NULL, (LTE_MeasGapConfig_t *)NULL,
...@@ -4108,7 +4111,7 @@ rrc_eNB_process_MeasurementReport( ...@@ -4108,7 +4111,7 @@ rrc_eNB_process_MeasurementReport(
return; return;
/* if X2AP is disabled, do nothing */ /* if X2AP is disabled, do nothing */
if (!is_x2ap_enabled()) if (!RC.rrc[ENB_INSTANCE_TO_MODULE_ID(ctxt_pP->instance)]->configuration.enable_x2)
return; return;
LOG_D(RRC, "A3 event is triggered...\n"); LOG_D(RRC, "A3 event is triggered...\n");
...@@ -4498,7 +4501,7 @@ rrc_eNB_generate_HO_RRCConnectionReconfiguration(const protocol_ctxt_t *const ct ...@@ -4498,7 +4501,7 @@ rrc_eNB_generate_HO_RRCConnectionReconfiguration(const protocol_ctxt_t *const ct
/* for no gcc warnings */ /* for no gcc warnings */
(void)dedicatedInfoNas; (void)dedicatedInfoNas;
LTE_C_RNTI_t *cba_RNTI = NULL; LTE_C_RNTI_t *cba_RNTI = NULL;
int x2_enabled; int measurements_enabled;
uint8_t xid = rrc_eNB_get_next_transaction_identifier(ctxt_pP->module_id); //Transaction_id, uint8_t xid = rrc_eNB_get_next_transaction_identifier(ctxt_pP->module_id); //Transaction_id,
#ifdef CBA #ifdef CBA
//struct PUSCH_CBAConfigDedicated_vlola *pusch_CBAConfigDedicated_vlola; //struct PUSCH_CBAConfigDedicated_vlola *pusch_CBAConfigDedicated_vlola;
...@@ -5260,7 +5263,8 @@ rrc_eNB_generate_HO_RRCConnectionReconfiguration(const protocol_ctxt_t *const ct ...@@ -5260,7 +5263,8 @@ rrc_eNB_generate_HO_RRCConnectionReconfiguration(const protocol_ctxt_t *const ct
#endif #endif
x2_enabled = is_x2ap_enabled(); measurements_enabled = RC.rrc[ENB_INSTANCE_TO_MODULE_ID(ctxt_pP->instance)]->configuration.enable_x2 ||
RC.rrc[ENB_INSTANCE_TO_MODULE_ID(ctxt_pP->instance)]->configuration.enable_measurement_reports;
memset(buffer, 0, RRC_BUF_SIZE); memset(buffer, 0, RRC_BUF_SIZE);
char rrc_buf[1000 /* arbitrary, should be big enough, has to be less than size of return buf by a few bits/bytes */]; char rrc_buf[1000 /* arbitrary, should be big enough, has to be less than size of return buf by a few bits/bytes */];
...@@ -5276,10 +5280,10 @@ rrc_eNB_generate_HO_RRCConnectionReconfiguration(const protocol_ctxt_t *const ct ...@@ -5276,10 +5280,10 @@ rrc_eNB_generate_HO_RRCConnectionReconfiguration(const protocol_ctxt_t *const ct
//#ifdef EXMIMO_IOT //#ifdef EXMIMO_IOT
// NULL, NULL, NULL,NULL, // NULL, NULL, NULL,NULL,
//#else //#else
x2_enabled ? (LTE_MeasObjectToAddModList_t *)MeasObj_list : NULL, measurements_enabled ? (LTE_MeasObjectToAddModList_t *)MeasObj_list : NULL,
x2_enabled ? (LTE_ReportConfigToAddModList_t *)ReportConfig_list : NULL, measurements_enabled ? (LTE_ReportConfigToAddModList_t *)ReportConfig_list : NULL,
x2_enabled ? (LTE_QuantityConfig_t *)quantityConfig : NULL, measurements_enabled ? (LTE_QuantityConfig_t *)quantityConfig : NULL,
x2_enabled ? (LTE_MeasIdToAddModList_t *)MeasId_list : NULL, measurements_enabled ? (LTE_MeasIdToAddModList_t *)MeasId_list : NULL,
//#endif //#endif
(LTE_MAC_MainConfig_t *)mac_MainConfig, (LTE_MAC_MainConfig_t *)mac_MainConfig,
(LTE_MeasGapConfig_t *)NULL, (LTE_MeasGapConfig_t *)NULL,
...@@ -7458,7 +7462,7 @@ void rrc_subframe_process(protocol_ctxt_t *const ctxt_pP, const int CC_id) ...@@ -7458,7 +7462,7 @@ void rrc_subframe_process(protocol_ctxt_t *const ctxt_pP, const int CC_id)
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RRC_RX_TX, VCD_FUNCTION_IN); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RRC_RX_TX, VCD_FUNCTION_IN);
if (is_x2ap_enabled()) { if (RC.rrc[ENB_INSTANCE_TO_MODULE_ID(ctxt_pP->instance)]->configuration.enable_x2) {
/* send a tick to x2ap */ /* send a tick to x2ap */
msg = itti_alloc_new_message(TASK_RRC_ENB, X2AP_SUBFRAME_PROCESS); msg = itti_alloc_new_message(TASK_RRC_ENB, X2AP_SUBFRAME_PROCESS);
itti_send_msg_to_task(TASK_X2AP, ctxt_pP->module_id, msg); itti_send_msg_to_task(TASK_X2AP, ctxt_pP->module_id, msg);
......
...@@ -37,6 +37,8 @@ eNBs = ...@@ -37,6 +37,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -49,6 +49,8 @@ eNBs = ...@@ -49,6 +49,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -36,6 +36,8 @@ eNBs = ...@@ -36,6 +36,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -360,6 +360,8 @@ eNBs = ...@@ -360,6 +360,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -142,6 +142,8 @@ eNBs = ...@@ -142,6 +142,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -178,6 +178,8 @@ eNBs = ...@@ -178,6 +178,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -142,6 +142,8 @@ eNBs = ...@@ -142,6 +142,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -178,6 +178,8 @@ eNBs = ...@@ -178,6 +178,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -145,6 +145,8 @@ eNBs = ...@@ -145,6 +145,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -178,6 +178,8 @@ eNBs = ...@@ -178,6 +178,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -179,6 +179,8 @@ eNBs = ...@@ -179,6 +179,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -179,6 +179,8 @@ eNBs = ...@@ -179,6 +179,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -179,6 +179,8 @@ eNBs = ...@@ -179,6 +179,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -146,6 +146,8 @@ eNBs = ...@@ -146,6 +146,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -148,6 +148,8 @@ eNBs = ...@@ -148,6 +148,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -148,6 +148,8 @@ eNBs = ...@@ -148,6 +148,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -179,6 +179,8 @@ eNBs = ...@@ -179,6 +179,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -148,6 +148,8 @@ eNBs = ...@@ -148,6 +148,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
...@@ -147,6 +147,8 @@ eNBs = ...@@ -147,6 +147,8 @@ eNBs =
} }
); );
enable_measurement_reports = "no";
///X2 ///X2
enable_x2 = "no"; enable_x2 = "no";
t_reloc_prep = 1000; /* unit: millisecond */ t_reloc_prep = 1000; /* unit: millisecond */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment