Commit eb3dfaf0 authored by zheng_huangkun's avatar zheng_huangkun

x2ho cell expansion and x2ho parameter configuration file conversion

parent e773fc6a
......@@ -39,7 +39,7 @@
#define X2AP_HANDOVER_CANCEL(mSGpTR) (mSGpTR)->ittiMsg.x2ap_handover_cancel
#define X2AP_MAX_NB_ENB_IP_ADDRESS 2
#define X2AP_MAX_NB_ENB_IP_ADDRESS 6
// eNB application layer -> X2AP messages
......
......@@ -304,6 +304,20 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
memset((void *)&srb1_params,0,sizeof(srb1_params_t));
paramdef_t SRB1Params[] = SRB1PARAMS_DESC(srb1_params);
paramdef_t SLParams[] = CCPARAMS_SIDELINK_DESC(SLconfig);
uint8_t allowedMeasBandwidth = 0;
measurement_event_info_t event1_config;
measurement_event_info_t event2_config;
measurement_event_info_t event3_config;
measurement_event_info_t event4_config;
measurement_event_info_t event5_config;
measurement_event_info_t event6_config;
paramdef_t MEASParams[] = MEASPARAMS_DESC;
paramdef_t MEAS_ENVENT1_Params[] = MEAS_EVENT1_PARAMS_DESC;
paramdef_t MEAS_ENVENT2_Params[] = MEAS_EVENT2_PARAMS_DESC;
paramdef_t MEAS_ENVENT3_Params[] = MEAS_EVENT3_PARAMS_DESC;
paramdef_t MEAS_ENVENT4_Params[] = MEAS_EVENT4_PARAMS_DESC;
paramdef_t MEAS_ENVENT5_Params[] = MEAS_EVENT5_PARAMS_DESC;
paramdef_t MEAS_ENVENT6_Params[] = MEAS_EVENT6_PARAMS_DESC;
/* map parameter checking array instances to parameter definition array instances */
for (int I=0; I< ( sizeof(CCsParams)/ sizeof(paramdef_t) ) ; I++) {
......@@ -1960,6 +1974,132 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) {
"Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_reordering %u!\n",
RC.config_file_name, i, srb1_params.srb1_timer_reordering);
}
char measpath[MAX_OPTNAME_SIZE*2 + 8];
sprintf(measpath,"%s.%s", enbpath, ENB_CONFIG_STRING_MEAS);
LOG_D(RRC, "enb_config::RCconfig_RRC() measurement info, measpath: %s \n \n", measpath);
config_get( MEASParams,sizeof(MEASParams)/sizeof(paramdef_t), measpath);
LOG_D(RRC, "allowedMeasBandwidth %d \n", allowedMeasBandwidth);
rrc->measurement.allowedMeasBandwidth = allowedMeasBandwidth;
char meas_event1_path[MAX_OPTNAME_SIZE*2 + 8];
sprintf(meas_event1_path,"%s.%s.%s", enbpath, ENB_CONFIG_STRING_MEAS, ENB_CONFIG_STRING_MEAS_EVENT1);
LOG_D(RRC, "enb_config::RCconfig_RRC() measurement event1 info, meas_event1_path: %s \n \n", meas_event1_path);
config_get( MEAS_ENVENT1_Params,sizeof(MEAS_ENVENT1_Params)/sizeof(paramdef_t), meas_event1_path);
LOG_D(RRC, "threshold_RSRP %d \n", event1_config.threshold_RSRP);
LOG_D(RRC, "maxReportCells %d \n", event1_config.maxReportCells);
LOG_D(RRC, "reportInterval %d \n", event1_config.reportInterval);
LOG_D(RRC, "a3_Offset %d \n", event1_config.a3_Offset);
LOG_D(RRC, "hysteresis %d \n", event1_config.hysteresis);
LOG_D(RRC, "timeToTrigger %d \n", event1_config.timeToTrigger);
rrc->measurement.event1_config.threshold_RSRP = event1_config.threshold_RSRP;
rrc->measurement.event1_config.maxReportCells = event1_config.maxReportCells;
rrc->measurement.event1_config.reportInterval = event1_config.reportInterval;
rrc->measurement.event1_config.a3_Offset = event1_config.a3_Offset;
rrc->measurement.event1_config.hysteresis = event1_config.hysteresis;
rrc->measurement.event1_config.timeToTrigger = event1_config.timeToTrigger;
char meas_event2_path[MAX_OPTNAME_SIZE*2 + 8];
sprintf(meas_event2_path,"%s.%s.%s", enbpath, ENB_CONFIG_STRING_MEAS, ENB_CONFIG_STRING_MEAS_EVENT2);
LOG_D(RRC, "enb_config::RCconfig_RRC() measurement event2 info, meas_event2_path: %s \n \n", meas_event2_path);
config_get( MEAS_ENVENT2_Params,sizeof(MEAS_ENVENT2_Params)/sizeof(paramdef_t), meas_event2_path);
LOG_D(RRC, "threshold_RSRP %d \n", event2_config.threshold_RSRP);
LOG_D(RRC, "maxReportCells %d \n", event2_config.maxReportCells);
LOG_D(RRC, "reportInterval %d \n", event2_config.reportInterval);
LOG_D(RRC, "a3_Offset %d \n", event2_config.a3_Offset);
LOG_D(RRC, "hysteresis %d \n", event2_config.hysteresis);
LOG_D(RRC, "timeToTrigger %d \n", event2_config.timeToTrigger);
rrc->measurement.event2_config.threshold_RSRP = event2_config.threshold_RSRP;
rrc->measurement.event2_config.maxReportCells = event2_config.maxReportCells;
rrc->measurement.event2_config.reportInterval = event2_config.reportInterval;
rrc->measurement.event2_config.a3_Offset = event2_config.a3_Offset;
rrc->measurement.event2_config.hysteresis = event2_config.hysteresis;
rrc->measurement.event2_config.timeToTrigger = event2_config.timeToTrigger;
char meas_event3_path[MAX_OPTNAME_SIZE*2 + 8];
sprintf(meas_event3_path,"%s.%s.%s", enbpath, ENB_CONFIG_STRING_MEAS, ENB_CONFIG_STRING_MEAS_EVENT3);
LOG_D(RRC, "enb_config::RCconfig_RRC() measurement event3 info, meas_event3_path: %s \n \n", meas_event3_path);
config_get( MEAS_ENVENT3_Params,sizeof(MEAS_ENVENT3_Params)/sizeof(paramdef_t), meas_event3_path);
LOG_D(RRC, "threshold_RSRP %d \n", event3_config.threshold_RSRP);
LOG_D(RRC, "maxReportCells %d \n", event3_config.maxReportCells);
LOG_D(RRC, "reportInterval %d \n", event3_config.reportInterval);
LOG_D(RRC, "a3_Offset %d \n", event3_config.a3_Offset);
LOG_D(RRC, "hysteresis %d \n", event3_config.hysteresis);
LOG_D(RRC, "timeToTrigger %d \n", event3_config.timeToTrigger);
rrc->measurement.event3_config.threshold_RSRP = event3_config.threshold_RSRP;
rrc->measurement.event3_config.maxReportCells = event3_config.maxReportCells;
rrc->measurement.event3_config.reportInterval = event3_config.reportInterval;
rrc->measurement.event3_config.a3_Offset = event3_config.a3_Offset;
rrc->measurement.event3_config.hysteresis = event3_config.hysteresis;
rrc->measurement.event3_config.timeToTrigger = event3_config.timeToTrigger;
char meas_event4_path[MAX_OPTNAME_SIZE*2 + 8];
sprintf(meas_event4_path,"%s.%s.%s", enbpath, ENB_CONFIG_STRING_MEAS, ENB_CONFIG_STRING_MEAS_EVENT4);
LOG_D(RRC, "enb_config::RCconfig_RRC() measurement event4 info, meas_event4_path: %s \n \n", meas_event4_path);
config_get( MEAS_ENVENT4_Params,sizeof(MEAS_ENVENT4_Params)/sizeof(paramdef_t), meas_event4_path);
LOG_D(RRC, "threshold_RSRP %d \n", event4_config.threshold_RSRP);
LOG_D(RRC, "maxReportCells %d \n", event4_config.maxReportCells);
LOG_D(RRC, "reportInterval %d \n", event4_config.reportInterval);
LOG_D(RRC, "a3_Offset %d \n", event4_config.a3_Offset);
LOG_D(RRC, "hysteresis %d \n", event4_config.hysteresis);
LOG_D(RRC, "timeToTrigger %d \n", event4_config.timeToTrigger);
rrc->measurement.event4_config.threshold_RSRP = event4_config.threshold_RSRP;
rrc->measurement.event4_config.maxReportCells = event4_config.maxReportCells;
rrc->measurement.event4_config.reportInterval = event4_config.reportInterval;
rrc->measurement.event4_config.a3_Offset = event4_config.a3_Offset;
rrc->measurement.event4_config.hysteresis = event4_config.hysteresis;
rrc->measurement.event4_config.timeToTrigger = event4_config.timeToTrigger;
char meas_event5_path[MAX_OPTNAME_SIZE*2 + 8];
sprintf(meas_event5_path,"%s.%s.%s", enbpath, ENB_CONFIG_STRING_MEAS, ENB_CONFIG_STRING_MEAS_EVENT5);
LOG_D(RRC, "enb_config::RCconfig_RRC() measurement event5 info, meas_event5_path: %s \n \n", meas_event5_path);
config_get( MEAS_ENVENT5_Params,sizeof(MEAS_ENVENT5_Params)/sizeof(paramdef_t), meas_event5_path);
LOG_D(RRC, "threshold_RSRP %d \n", event5_config.threshold_RSRP);
LOG_D(RRC, "maxReportCells %d \n", event5_config.maxReportCells);
LOG_D(RRC, "reportInterval %d \n", event5_config.reportInterval);
LOG_D(RRC, "a3_Offset %d \n", event5_config.a3_Offset);
LOG_D(RRC, "hysteresis %d \n", event5_config.hysteresis);
LOG_D(RRC, "timeToTrigger %d \n", event5_config.timeToTrigger);
rrc->measurement.event5_config.threshold_RSRP = event5_config.threshold_RSRP;
rrc->measurement.event5_config.maxReportCells = event5_config.maxReportCells;
rrc->measurement.event5_config.reportInterval = event5_config.reportInterval;
rrc->measurement.event5_config.a3_Offset = event5_config.a3_Offset;
rrc->measurement.event5_config.hysteresis = event5_config.hysteresis;
rrc->measurement.event5_config.timeToTrigger = event5_config.timeToTrigger;
char meas_event6_path[MAX_OPTNAME_SIZE*2 + 8];
sprintf(meas_event6_path,"%s.%s.%s", enbpath, ENB_CONFIG_STRING_MEAS, ENB_CONFIG_STRING_MEAS_EVENT6);
LOG_D(RRC, "enb_config::RCconfig_RRC() measurement event6 info, meas_event6_path: %s \n \n", meas_event6_path);
config_get( MEAS_ENVENT6_Params,sizeof(MEAS_ENVENT6_Params)/sizeof(paramdef_t), meas_event6_path);
LOG_D(RRC, "threshold_RSRP %d \n", event6_config.threshold_RSRP);
LOG_D(RRC, "maxReportCells %d \n", event6_config.maxReportCells);
LOG_D(RRC, "reportInterval %d \n", event6_config.reportInterval);
LOG_D(RRC, "a3_Offset %d \n", event6_config.a3_Offset);
LOG_D(RRC, "hysteresis %d \n", event6_config.hysteresis);
LOG_D(RRC, "timeToTrigger %d \n", event6_config.timeToTrigger);
rrc->measurement.event6_config.threshold_RSRP = event6_config.threshold_RSRP;
rrc->measurement.event6_config.maxReportCells = event6_config.maxReportCells;
rrc->measurement.event6_config.reportInterval = event6_config.reportInterval;
rrc->measurement.event6_config.a3_Offset = event6_config.a3_Offset;
rrc->measurement.event6_config.hysteresis = event6_config.hysteresis;
rrc->measurement.event6_config.timeToTrigger = event6_config.timeToTrigger;
}
}
}
......
......@@ -863,6 +863,126 @@ typedef struct srb1_params_s {
{ENB_CONFIG_STRING_SRB1_POLL_BYTE, NULL, 0, iptr:&srb1_params.srb1_poll_byte, defintval:99999, TYPE_UINT, 0}, \
{ENB_CONFIG_STRING_SRB1_MAX_RETX_THRESHOLD, NULL, 0, iptr:&srb1_params.srb1_max_retx_threshold, defintval:4, TYPE_UINT, 0} \
}
/*-----------------------------------------------------------------------------------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
/* measurement configuration parameters section name */
#define ENB_CONFIG_STRING_MEAS "measurement_parameters"
/* measurement configuration parameters names */
#define ENB_CONFIG_STRING_MEAS_ALLOWEDMEASBANDWIDTH "allowedMeasBandwidth"
/*-----------------------------------------------------------------------------------------------------------------------------------------------------------*/
/* measurement configuration parameters */
/* optname helpstr paramflags XXXptr defXXXval type numelt */
/*-----------------------------------------------------------------------------------------------------------------------------------------------------------*/
#define MEASPARAMS_DESC { \
{ENB_CONFIG_STRING_MEAS_ALLOWEDMEASBANDWIDTH, NULL, 0, u8ptr:&allowedMeasBandwidth, defintval:2, TYPE_UINT8, 0}, \
}
/*-----------------------------------------------------------------------------------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
/* measurement event configuration parameters section name */
#define ENB_CONFIG_STRING_MEAS_EVENT1 "event1_config"
#define ENB_CONFIG_STRING_MEAS_EVENT2 "event2_config"
#define ENB_CONFIG_STRING_MEAS_EVENT3 "event3_config"
#define ENB_CONFIG_STRING_MEAS_EVENT4 "event4_config"
#define ENB_CONFIG_STRING_MEAS_EVENT5 "event5_config"
#define ENB_CONFIG_STRING_MEAS_EVENT6 "event6_config"
/* measurement event configuration parameters names */
#define ENB_CONFIG_STRING_MEAS_EVENT_THRESHOLD_RSRP "threshold_RSRP"
#define ENB_CONFIG_STRING_MEAS_EVENT_MAXREPORTCELLS "maxReportCells"
#define ENB_CONFIG_STRING_MEAS_EVENT_REPORTINTERVAL "reportInterval"
#define ENB_CONFIG_STRING_MEAS_EVENT_A3_OFFSET "a3_Offset"
#define ENB_CONFIG_STRING_MEAS_EVENT_HYSTERESIS "hysteresis"
#define ENB_CONFIG_STRING_MEAS_EVENT_TIMETOTRIGGER "timeToTrigger"
/*-----------------------------------------------------------------------------------------------------------------------------------------------------------*/
/* measurement event1 configuration parameters */
/* optname helpstr paramflags XXXptr defXXXval type numelt */
/*-----------------------------------------------------------------------------------------------------------------------------------------------------------*/
#define MEAS_EVENT1_PARAMS_DESC { \
{ENB_CONFIG_STRING_MEAS_EVENT_THRESHOLD_RSRP, NULL, 0, u8ptr:&event1_config.threshold_RSRP, defintval:10, TYPE_UINT8, 0}, \
{ENB_CONFIG_STRING_MEAS_EVENT_MAXREPORTCELLS, NULL, 0, u8ptr:&event1_config.maxReportCells, defintval:2, TYPE_UINT8, 0}, \
{ENB_CONFIG_STRING_MEAS_EVENT_REPORTINTERVAL, NULL, 0, u8ptr:&event1_config.reportInterval, defintval:0, TYPE_UINT8, 0}, \
{ENB_CONFIG_STRING_MEAS_EVENT_A3_OFFSET, NULL, 0, u8ptr:&event1_config.a3_Offset, defintval:0, TYPE_UINT8, 0}, \
{ENB_CONFIG_STRING_MEAS_EVENT_HYSTERESIS, NULL, 0, u8ptr:&event1_config.hysteresis, defintval:0, TYPE_UINT8, 0}, \
{ENB_CONFIG_STRING_MEAS_EVENT_TIMETOTRIGGER, NULL, 0, u8ptr:&event1_config.timeToTrigger, defintval:1, TYPE_UINT8, 0} \
}
/*-----------------------------------------------------------------------------------------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------------------------------------------------------------------------------------*/
/* measurement event2 configuration parameters */
/* optname helpstr paramflags XXXptr defXXXval type numelt */
/*-----------------------------------------------------------------------------------------------------------------------------------------------------------*/
#define MEAS_EVENT2_PARAMS_DESC { \
{ENB_CONFIG_STRING_MEAS_EVENT_THRESHOLD_RSRP, NULL, 0, u8ptr:&event2_config.threshold_RSRP, defintval:10, TYPE_UINT8, 0}, \
{ENB_CONFIG_STRING_MEAS_EVENT_MAXREPORTCELLS, NULL, 0, u8ptr:&event2_config.maxReportCells, defintval:2, TYPE_UINT8, 0}, \
{ENB_CONFIG_STRING_MEAS_EVENT_REPORTINTERVAL, NULL, 0, u8ptr:&event2_config.reportInterval, defintval:0, TYPE_UINT8, 0}, \
{ENB_CONFIG_STRING_MEAS_EVENT_A3_OFFSET, NULL, 0, u8ptr:&event2_config.a3_Offset, defintval:0, TYPE_UINT8, 0}, \
{ENB_CONFIG_STRING_MEAS_EVENT_HYSTERESIS, NULL, 0, u8ptr:&event2_config.hysteresis, defintval:0, TYPE_UINT8, 0}, \
{ENB_CONFIG_STRING_MEAS_EVENT_TIMETOTRIGGER, NULL, 0, u8ptr:&event2_config.timeToTrigger, defintval:1, TYPE_UINT8, 0} \
}
/*-----------------------------------------------------------------------------------------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------------------------------------------------------------------------------------*/
/* measurement event3 configuration parameters */
/* optname helpstr paramflags XXXptr defXXXval type numelt */
/*-----------------------------------------------------------------------------------------------------------------------------------------------------------*/
#define MEAS_EVENT3_PARAMS_DESC { \
{ENB_CONFIG_STRING_MEAS_EVENT_THRESHOLD_RSRP, NULL, 0, u8ptr:&event3_config.threshold_RSRP, defintval:10, TYPE_UINT8, 0}, \
{ENB_CONFIG_STRING_MEAS_EVENT_MAXREPORTCELLS, NULL, 0, u8ptr:&event3_config.maxReportCells, defintval:2, TYPE_UINT8, 0}, \
{ENB_CONFIG_STRING_MEAS_EVENT_REPORTINTERVAL, NULL, 0, u8ptr:&event3_config.reportInterval, defintval:0, TYPE_UINT8, 0}, \
{ENB_CONFIG_STRING_MEAS_EVENT_A3_OFFSET, NULL, 0, u8ptr:&event3_config.a3_Offset, defintval:0, TYPE_UINT8, 0}, \
{ENB_CONFIG_STRING_MEAS_EVENT_HYSTERESIS, NULL, 0, u8ptr:&event3_config.hysteresis, defintval:0, TYPE_UINT8, 0}, \
{ENB_CONFIG_STRING_MEAS_EVENT_TIMETOTRIGGER, NULL, 0, u8ptr:&event3_config.timeToTrigger, defintval:1, TYPE_UINT8, 0} \
}
/*-----------------------------------------------------------------------------------------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------------------------------------------------------------------------------------*/
/* measurement event4 configuration parameters */
/* optname helpstr paramflags XXXptr defXXXval type numelt */
/*-----------------------------------------------------------------------------------------------------------------------------------------------------------*/
#define MEAS_EVENT4_PARAMS_DESC { \
{ENB_CONFIG_STRING_MEAS_EVENT_THRESHOLD_RSRP, NULL, 0, u8ptr:&event4_config.threshold_RSRP, defintval:10, TYPE_UINT8, 0}, \
{ENB_CONFIG_STRING_MEAS_EVENT_MAXREPORTCELLS, NULL, 0, u8ptr:&event4_config.maxReportCells, defintval:2, TYPE_UINT8, 0}, \
{ENB_CONFIG_STRING_MEAS_EVENT_REPORTINTERVAL, NULL, 0, u8ptr:&event4_config.reportInterval, defintval:0, TYPE_UINT8, 0}, \
{ENB_CONFIG_STRING_MEAS_EVENT_A3_OFFSET, NULL, 0, u8ptr:&event4_config.a3_Offset, defintval:0, TYPE_UINT8, 0}, \
{ENB_CONFIG_STRING_MEAS_EVENT_HYSTERESIS, NULL, 0, u8ptr:&event4_config.hysteresis, defintval:0, TYPE_UINT8, 0}, \
{ENB_CONFIG_STRING_MEAS_EVENT_TIMETOTRIGGER, NULL, 0, u8ptr:&event4_config.timeToTrigger, defintval:1, TYPE_UINT8, 0} \
}
/*-----------------------------------------------------------------------------------------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------------------------------------------------------------------------------------*/
/* measurement event5 configuration parameters */
/* optname helpstr paramflags XXXptr defXXXval type numelt */
/*-----------------------------------------------------------------------------------------------------------------------------------------------------------*/
#define MEAS_EVENT5_PARAMS_DESC { \
{ENB_CONFIG_STRING_MEAS_EVENT_THRESHOLD_RSRP, NULL, 0, u8ptr:&event5_config.threshold_RSRP, defintval:10, TYPE_UINT8, 0}, \
{ENB_CONFIG_STRING_MEAS_EVENT_MAXREPORTCELLS, NULL, 0, u8ptr:&event5_config.maxReportCells, defintval:2, TYPE_UINT8, 0}, \
{ENB_CONFIG_STRING_MEAS_EVENT_REPORTINTERVAL, NULL, 0, u8ptr:&event5_config.reportInterval, defintval:0, TYPE_UINT8, 0}, \
{ENB_CONFIG_STRING_MEAS_EVENT_A3_OFFSET, NULL, 0, u8ptr:&event5_config.a3_Offset, defintval:0, TYPE_UINT8, 0}, \
{ENB_CONFIG_STRING_MEAS_EVENT_HYSTERESIS, NULL, 0, u8ptr:&event5_config.hysteresis, defintval:0, TYPE_UINT8, 0}, \
{ENB_CONFIG_STRING_MEAS_EVENT_TIMETOTRIGGER, NULL, 0, u8ptr:&event5_config.timeToTrigger, defintval:1, TYPE_UINT8, 0} \
}
/*-----------------------------------------------------------------------------------------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------------------------------------------------------------------------------------*/
/* measurement event6 configuration parameters */
/* optname helpstr paramflags XXXptr defXXXval type numelt */
/*-----------------------------------------------------------------------------------------------------------------------------------------------------------*/
#define MEAS_EVENT6_PARAMS_DESC { \
{ENB_CONFIG_STRING_MEAS_EVENT_THRESHOLD_RSRP, NULL, 0, u8ptr:&event6_config.threshold_RSRP, defintval:10, TYPE_UINT8, 0}, \
{ENB_CONFIG_STRING_MEAS_EVENT_MAXREPORTCELLS, NULL, 0, u8ptr:&event6_config.maxReportCells, defintval:2, TYPE_UINT8, 0}, \
{ENB_CONFIG_STRING_MEAS_EVENT_REPORTINTERVAL, NULL, 0, u8ptr:&event6_config.reportInterval, defintval:0, TYPE_UINT8, 0}, \
{ENB_CONFIG_STRING_MEAS_EVENT_A3_OFFSET, NULL, 0, u8ptr:&event6_config.a3_Offset, defintval:0, TYPE_UINT8, 0}, \
{ENB_CONFIG_STRING_MEAS_EVENT_HYSTERESIS, NULL, 0, u8ptr:&event6_config.hysteresis, defintval:0, TYPE_UINT8, 0}, \
{ENB_CONFIG_STRING_MEAS_EVENT_TIMETOTRIGGER, NULL, 0, u8ptr:&event6_config.timeToTrigger, defintval:1, TYPE_UINT8, 0} \
}
/*-----------------------------------------------------------------------------------------------------------------------------------------------------------*/
/* MME configuration parameters section name */
#define ENB_CONFIG_STRING_MME_IP_ADDRESS "mme_ip_address"
......
......@@ -816,7 +816,25 @@ typedef struct {
uint32_t sizeof_paging[MAX_MOBILES_PER_ENB];
} rrc_eNB_carrier_data_t;
typedef struct measurement_event_info_s{
uint8_t threshold_RSRP;
uint8_t maxReportCells;
uint8_t reportInterval;
uint8_t a3_Offset;
uint8_t hysteresis;
uint8_t timeToTrigger;
}measurement_event_info_t;
typedef struct rrc_eNB_measurement_data_s{
uint8_t allowedMeasBandwidth;
measurement_event_info_t event1_config;
measurement_event_info_t event2_config;
measurement_event_info_t event3_config;
measurement_event_info_t event4_config;
measurement_event_info_t event5_config;
measurement_event_info_t event6_config;
}rrc_eNB_measurement_data_t;
typedef struct eNB_RRC_INST_s {
/// southbound midhaul configuration
ngran_node_t node_type;
......@@ -869,6 +887,7 @@ typedef struct eNB_RRC_INST_s {
uint16_t sctp_in_streams;
uint16_t sctp_out_streams;
rrc_eNB_measurement_data_t measurement;
} eNB_RRC_INST;
#define MAX_UE_CAPABILITY_SIZE 255
......
......@@ -1574,6 +1574,7 @@ rrc_eNB_process_RRCConnectionReestablishmentComplete(
PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP));
T(T_ENB_RRC_CONNECTION_REESTABLISHMENT_COMPLETE, T_INT(ctxt_pP->module_id), T_INT(ctxt_pP->frame),
T_INT(ctxt_pP->subframe), T_INT(ctxt_pP->rnti));
rrc_eNB_measurement_data_t *meas_data = &RC.rrc[ctxt_pP->module_id]->measurement;
LTE_DRB_ToAddModList_t *DRB_configList = ue_context_pP->ue_context.DRB_configList;
LTE_SRB_ToAddModList_t *SRB_configList = ue_context_pP->ue_context.SRB_configList;
LTE_SRB_ToAddModList_t **SRB_configList2 = NULL;
......@@ -1770,7 +1771,7 @@ rrc_eNB_process_RRCConnectionReestablishmentComplete(
MeasObj->measObject.present = LTE_MeasObjectToAddMod__measObject_PR_measObjectEUTRA;
MeasObj->measObject.choice.measObjectEUTRA.carrierFreq = 3350; //band 7, 2.68GHz
//MeasObj->measObject.choice.measObjectEUTRA.carrierFreq = 36090; //band 33, 1.909GHz
MeasObj->measObject.choice.measObjectEUTRA.allowedMeasBandwidth = LTE_AllowedMeasBandwidth_mbw25;
MeasObj->measObject.choice.measObjectEUTRA.allowedMeasBandwidth = meas_data->allowedMeasBandwidth;
MeasObj->measObject.choice.measObjectEUTRA.presenceAntennaPort1 = 1;
MeasObj->measObject.choice.measObjectEUTRA.neighCellConfig.buf = CALLOC(1, sizeof(uint8_t));
MeasObj->measObject.choice.measObjectEUTRA.neighCellConfig.buf[0] = 0;
......@@ -1808,8 +1809,8 @@ rrc_eNB_process_RRCConnectionReestablishmentComplete(
LTE_ReportConfigEUTRA__triggerType__periodical__purpose_reportStrongestCells;
ReportConfig_per->reportConfig.choice.reportConfigEUTRA.triggerQuantity = LTE_ReportConfigEUTRA__triggerQuantity_rsrp;
ReportConfig_per->reportConfig.choice.reportConfigEUTRA.reportQuantity = LTE_ReportConfigEUTRA__reportQuantity_both;
ReportConfig_per->reportConfig.choice.reportConfigEUTRA.maxReportCells = 2;
ReportConfig_per->reportConfig.choice.reportConfigEUTRA.reportInterval = LTE_ReportInterval_ms120;
ReportConfig_per->reportConfig.choice.reportConfigEUTRA.maxReportCells = meas_data->event1_config.maxReportCells;
ReportConfig_per->reportConfig.choice.reportConfigEUTRA.reportInterval = meas_data->event1_config.reportInterval;
ReportConfig_per->reportConfig.choice.reportConfigEUTRA.reportAmount = LTE_ReportConfigEUTRA__reportAmount_infinity;
ASN_SEQUENCE_ADD(&ReportConfig_list->list, ReportConfig_per);
ReportConfig_A1->reportConfigId = 2;
......@@ -1821,11 +1822,11 @@ rrc_eNB_process_RRCConnectionReestablishmentComplete(
ReportConfig_A1->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.eventId.choice.eventA1.
a1_Threshold.present = LTE_ThresholdEUTRA_PR_threshold_RSRP;
ReportConfig_A1->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.eventId.choice.eventA1.
a1_Threshold.choice.threshold_RSRP = 10;
a1_Threshold.choice.threshold_RSRP = meas_data->event2_config.threshold_RSRP;
ReportConfig_A1->reportConfig.choice.reportConfigEUTRA.triggerQuantity = LTE_ReportConfigEUTRA__triggerQuantity_rsrp;
ReportConfig_A1->reportConfig.choice.reportConfigEUTRA.reportQuantity = LTE_ReportConfigEUTRA__reportQuantity_both;
ReportConfig_A1->reportConfig.choice.reportConfigEUTRA.maxReportCells = 2;
ReportConfig_A1->reportConfig.choice.reportConfigEUTRA.reportInterval = LTE_ReportInterval_ms120;
ReportConfig_A1->reportConfig.choice.reportConfigEUTRA.maxReportCells = meas_data->event2_config.maxReportCells;
ReportConfig_A1->reportConfig.choice.reportConfigEUTRA.reportInterval = meas_data->event2_config.reportInterval;
ReportConfig_A1->reportConfig.choice.reportConfigEUTRA.reportAmount = LTE_ReportConfigEUTRA__reportAmount_infinity;
ASN_SEQUENCE_ADD(&ReportConfig_list->list, ReportConfig_A1);
......@@ -1841,12 +1842,12 @@ rrc_eNB_process_RRCConnectionReestablishmentComplete(
ReportConfig_A2->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.eventId.choice.
eventA2.a2_Threshold.present = LTE_ThresholdEUTRA_PR_threshold_RSRP;
ReportConfig_A2->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.eventId.choice.
eventA2.a2_Threshold.choice.threshold_RSRP = 10;
eventA2.a2_Threshold.choice.threshold_RSRP = meas_data->event3_config.threshold_RSRP;
ReportConfig_A2->reportConfig.choice.reportConfigEUTRA.triggerQuantity =
LTE_ReportConfigEUTRA__triggerQuantity_rsrp;
ReportConfig_A2->reportConfig.choice.reportConfigEUTRA.reportQuantity = LTE_ReportConfigEUTRA__reportQuantity_both;
ReportConfig_A2->reportConfig.choice.reportConfigEUTRA.maxReportCells = 2;
ReportConfig_A2->reportConfig.choice.reportConfigEUTRA.reportInterval = LTE_ReportInterval_ms120;
ReportConfig_A2->reportConfig.choice.reportConfigEUTRA.maxReportCells = meas_data->event3_config.maxReportCells;
ReportConfig_A2->reportConfig.choice.reportConfigEUTRA.reportInterval = meas_data->event3_config.reportInterval;
ReportConfig_A2->reportConfig.choice.reportConfigEUTRA.reportAmount = LTE_ReportConfigEUTRA__reportAmount_infinity;
ASN_SEQUENCE_ADD(&ReportConfig_list->list, ReportConfig_A2);
ReportConfig_A3->reportConfigId = 4;
......@@ -1855,18 +1856,18 @@ rrc_eNB_process_RRCConnectionReestablishmentComplete(
LTE_ReportConfigEUTRA__triggerType_PR_event;
ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.eventId.present =
LTE_ReportConfigEUTRA__triggerType__event__eventId_PR_eventA3;
ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.eventId.choice.eventA3.a3_Offset = 1; //10;
ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.eventId.choice.eventA3.a3_Offset = meas_data->event4_config.a3_Offset; //10;
ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.eventId.choice.
eventA3.reportOnLeave = 1;
ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.triggerQuantity =
LTE_ReportConfigEUTRA__triggerQuantity_rsrp;
ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.reportQuantity = LTE_ReportConfigEUTRA__reportQuantity_both;
ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.maxReportCells = 2;
ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.reportInterval = LTE_ReportInterval_ms120;
ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.maxReportCells = meas_data->event4_config.maxReportCells;
ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.reportInterval = meas_data->event4_config.reportInterval;
ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.reportAmount = LTE_ReportConfigEUTRA__reportAmount_infinity;
ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.hysteresis = 0.5; // FIXME ...hysteresis is of type long!
ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.hysteresis = meas_data->event4_config.hysteresis; // FIXME ...hysteresis is of type long!
ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.timeToTrigger =
LTE_TimeToTrigger_ms40;
meas_data->event4_config.timeToTrigger;
ASN_SEQUENCE_ADD(&ReportConfig_list->list, ReportConfig_A3);
ReportConfig_A4->reportConfigId = 5;
ReportConfig_A4->reportConfig.present = LTE_ReportConfigToAddMod__reportConfig_PR_reportConfigEUTRA;
......@@ -1877,12 +1878,12 @@ rrc_eNB_process_RRCConnectionReestablishmentComplete(
ReportConfig_A4->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.eventId.choice.
eventA4.a4_Threshold.present = LTE_ThresholdEUTRA_PR_threshold_RSRP;
ReportConfig_A4->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.eventId.choice.
eventA4.a4_Threshold.choice.threshold_RSRP = 10;
eventA4.a4_Threshold.choice.threshold_RSRP = meas_data->event5_config.threshold_RSRP;
ReportConfig_A4->reportConfig.choice.reportConfigEUTRA.triggerQuantity =
LTE_ReportConfigEUTRA__triggerQuantity_rsrp;
ReportConfig_A4->reportConfig.choice.reportConfigEUTRA.reportQuantity = LTE_ReportConfigEUTRA__reportQuantity_both;
ReportConfig_A4->reportConfig.choice.reportConfigEUTRA.maxReportCells = 2;
ReportConfig_A4->reportConfig.choice.reportConfigEUTRA.reportInterval = LTE_ReportInterval_ms120;
ReportConfig_A4->reportConfig.choice.reportConfigEUTRA.maxReportCells = meas_data->event5_config.maxReportCells;
ReportConfig_A4->reportConfig.choice.reportConfigEUTRA.reportInterval = meas_data->event5_config.reportInterval;
ReportConfig_A4->reportConfig.choice.reportConfigEUTRA.reportAmount = LTE_ReportConfigEUTRA__reportAmount_infinity;
ASN_SEQUENCE_ADD(&ReportConfig_list->list, ReportConfig_A4);
ReportConfig_A5->reportConfigId = 6;
......@@ -1896,14 +1897,14 @@ rrc_eNB_process_RRCConnectionReestablishmentComplete(
ReportConfig_A5->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.eventId.choice.
eventA5.a5_Threshold2.present = LTE_ThresholdEUTRA_PR_threshold_RSRP;
ReportConfig_A5->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.eventId.choice.
eventA5.a5_Threshold1.choice.threshold_RSRP = 10;
eventA5.a5_Threshold1.choice.threshold_RSRP = meas_data->event6_config.threshold_RSRP;
ReportConfig_A5->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.eventId.choice.
eventA5.a5_Threshold2.choice.threshold_RSRP = 10;
eventA5.a5_Threshold2.choice.threshold_RSRP = meas_data->event6_config.threshold_RSRP;
ReportConfig_A5->reportConfig.choice.reportConfigEUTRA.triggerQuantity =
LTE_ReportConfigEUTRA__triggerQuantity_rsrp;
ReportConfig_A5->reportConfig.choice.reportConfigEUTRA.reportQuantity = LTE_ReportConfigEUTRA__reportQuantity_both;
ReportConfig_A5->reportConfig.choice.reportConfigEUTRA.maxReportCells = 2;
ReportConfig_A5->reportConfig.choice.reportConfigEUTRA.reportInterval = LTE_ReportInterval_ms120;
ReportConfig_A5->reportConfig.choice.reportConfigEUTRA.maxReportCells = meas_data->event6_config.maxReportCells;
ReportConfig_A5->reportConfig.choice.reportConfigEUTRA.reportInterval = meas_data->event6_config.reportInterval;
ReportConfig_A5->reportConfig.choice.reportConfigEUTRA.reportAmount = LTE_ReportConfigEUTRA__reportAmount_infinity;
ASN_SEQUENCE_ADD(&ReportConfig_list->list, ReportConfig_A5);
// LTE_RRCConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->reportConfigToAddModList = ReportConfig_list;
......@@ -2907,6 +2908,7 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t
/* Configure SRB1/SRB2, PhysicalConfigDedicated, LTE_MAC_MainConfig for UE */
eNB_RRC_INST *rrc_inst = RC.rrc[ctxt_pP->module_id];
rrc_eNB_measurement_data_t *meas_data = &RC.rrc[ctxt_pP->module_id]->measurement;
struct LTE_PhysicalConfigDedicated **physicalConfigDedicated = &ue_context_pP->ue_context.physicalConfigDedicated;
struct LTE_SRB_ToAddMod *SRB2_config = NULL;
struct LTE_SRB_ToAddMod__rlc_Config *SRB2_rlc_config = NULL;
......@@ -3303,7 +3305,7 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t
to_earfcn_DL(RC.rrc[ctxt_pP->module_id]->configuration.eutra_band[0],
RC.rrc[ctxt_pP->module_id]->configuration.downlink_frequency[0],
RC.rrc[ctxt_pP->module_id]->configuration.N_RB_DL[0]);
MeasObj->measObject.choice.measObjectEUTRA.allowedMeasBandwidth = LTE_AllowedMeasBandwidth_mbw25;
MeasObj->measObject.choice.measObjectEUTRA.allowedMeasBandwidth = meas_data->allowedMeasBandwidth;
MeasObj->measObject.choice.measObjectEUTRA.presenceAntennaPort1 = 1;
MeasObj->measObject.choice.measObjectEUTRA.neighCellConfig.buf = CALLOC(1, sizeof(uint8_t));
MeasObj->measObject.choice.measObjectEUTRA.neighCellConfig.buf[0] = 0;
......@@ -3358,8 +3360,8 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t
LTE_ReportConfigEUTRA__triggerType__periodical__purpose_reportStrongestCells;
ReportConfig_per->reportConfig.choice.reportConfigEUTRA.triggerQuantity = LTE_ReportConfigEUTRA__triggerQuantity_rsrp;
ReportConfig_per->reportConfig.choice.reportConfigEUTRA.reportQuantity = LTE_ReportConfigEUTRA__reportQuantity_both;
ReportConfig_per->reportConfig.choice.reportConfigEUTRA.maxReportCells = 2;
ReportConfig_per->reportConfig.choice.reportConfigEUTRA.reportInterval = LTE_ReportInterval_ms120;
ReportConfig_per->reportConfig.choice.reportConfigEUTRA.maxReportCells = meas_data->event1_config.maxReportCells;
ReportConfig_per->reportConfig.choice.reportConfigEUTRA.reportInterval = meas_data->event1_config.reportInterval;
ReportConfig_per->reportConfig.choice.reportConfigEUTRA.reportAmount = LTE_ReportConfigEUTRA__reportAmount_infinity;
ASN_SEQUENCE_ADD(&ReportConfig_list->list, ReportConfig_per);
ReportConfig_A1->reportConfigId = 2;
......@@ -3371,11 +3373,11 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t
ReportConfig_A1->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.eventId.choice.eventA1.
a1_Threshold.present = LTE_ThresholdEUTRA_PR_threshold_RSRP;
ReportConfig_A1->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.eventId.choice.eventA1.
a1_Threshold.choice.threshold_RSRP = 10;
a1_Threshold.choice.threshold_RSRP = meas_data->event2_config.threshold_RSRP;
ReportConfig_A1->reportConfig.choice.reportConfigEUTRA.triggerQuantity = LTE_ReportConfigEUTRA__triggerQuantity_rsrp;
ReportConfig_A1->reportConfig.choice.reportConfigEUTRA.reportQuantity = LTE_ReportConfigEUTRA__reportQuantity_both;
ReportConfig_A1->reportConfig.choice.reportConfigEUTRA.maxReportCells = 2;
ReportConfig_A1->reportConfig.choice.reportConfigEUTRA.reportInterval = LTE_ReportInterval_ms120;
ReportConfig_A1->reportConfig.choice.reportConfigEUTRA.maxReportCells = meas_data->event2_config.maxReportCells;
ReportConfig_A1->reportConfig.choice.reportConfigEUTRA.reportInterval = meas_data->event2_config.reportInterval;
ReportConfig_A1->reportConfig.choice.reportConfigEUTRA.reportAmount = LTE_ReportConfigEUTRA__reportAmount_infinity;
ASN_SEQUENCE_ADD(&ReportConfig_list->list, ReportConfig_A1);
//if (ho_state == 1 /*HO_MEASURMENT */ ) {
......@@ -3390,12 +3392,12 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t
ReportConfig_A2->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.eventId.choice.
eventA2.a2_Threshold.present = LTE_ThresholdEUTRA_PR_threshold_RSRP;
ReportConfig_A2->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.eventId.choice.
eventA2.a2_Threshold.choice.threshold_RSRP = 10;
eventA2.a2_Threshold.choice.threshold_RSRP = meas_data->event3_config.threshold_RSRP;
ReportConfig_A2->reportConfig.choice.reportConfigEUTRA.triggerQuantity =
LTE_ReportConfigEUTRA__triggerQuantity_rsrp;
ReportConfig_A2->reportConfig.choice.reportConfigEUTRA.reportQuantity = LTE_ReportConfigEUTRA__reportQuantity_both;
ReportConfig_A2->reportConfig.choice.reportConfigEUTRA.maxReportCells = 2;
ReportConfig_A2->reportConfig.choice.reportConfigEUTRA.reportInterval = LTE_ReportInterval_ms120;
ReportConfig_A2->reportConfig.choice.reportConfigEUTRA.maxReportCells = meas_data->event3_config.maxReportCells;
ReportConfig_A2->reportConfig.choice.reportConfigEUTRA.reportInterval = meas_data->event3_config.reportInterval;
ReportConfig_A2->reportConfig.choice.reportConfigEUTRA.reportAmount = LTE_ReportConfigEUTRA__reportAmount_infinity;
ASN_SEQUENCE_ADD(&ReportConfig_list->list, ReportConfig_A2);
ReportConfig_A3->reportConfigId = 4;
......@@ -3404,18 +3406,18 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t
LTE_ReportConfigEUTRA__triggerType_PR_event;
ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.eventId.present =
LTE_ReportConfigEUTRA__triggerType__event__eventId_PR_eventA3;
ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.eventId.choice.eventA3.a3_Offset = 0; //10;
ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.eventId.choice.eventA3.a3_Offset = meas_data->event4_config.a3_Offset; //10;
ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.eventId.choice.
eventA3.reportOnLeave = 1;
ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.triggerQuantity =
LTE_ReportConfigEUTRA__triggerQuantity_rsrp;
ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.reportQuantity = LTE_ReportConfigEUTRA__reportQuantity_both;
ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.maxReportCells = 2;
ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.reportInterval = LTE_ReportInterval_ms120;
ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.maxReportCells = meas_data->event4_config.maxReportCells;
ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.reportInterval = meas_data->event4_config.reportInterval;
ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.reportAmount = LTE_ReportConfigEUTRA__reportAmount_infinity;
ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.hysteresis = 0; // FIXME ...hysteresis is of type long!
ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.hysteresis = meas_data->event4_config.hysteresis; // FIXME ...hysteresis is of type long!
ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.timeToTrigger =
LTE_TimeToTrigger_ms40;
meas_data->event4_config.timeToTrigger;
ASN_SEQUENCE_ADD(&ReportConfig_list->list, ReportConfig_A3);
ReportConfig_A4->reportConfigId = 5;
ReportConfig_A4->reportConfig.present = LTE_ReportConfigToAddMod__reportConfig_PR_reportConfigEUTRA;
......@@ -3426,12 +3428,12 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t
ReportConfig_A4->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.eventId.choice.
eventA4.a4_Threshold.present = LTE_ThresholdEUTRA_PR_threshold_RSRP;
ReportConfig_A4->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.eventId.choice.
eventA4.a4_Threshold.choice.threshold_RSRP = 10;
eventA4.a4_Threshold.choice.threshold_RSRP = meas_data->event5_config.threshold_RSRP;
ReportConfig_A4->reportConfig.choice.reportConfigEUTRA.triggerQuantity =
LTE_ReportConfigEUTRA__triggerQuantity_rsrp;
ReportConfig_A4->reportConfig.choice.reportConfigEUTRA.reportQuantity = LTE_ReportConfigEUTRA__reportQuantity_both;
ReportConfig_A4->reportConfig.choice.reportConfigEUTRA.maxReportCells = 2;
ReportConfig_A4->reportConfig.choice.reportConfigEUTRA.reportInterval = LTE_ReportInterval_ms120;
ReportConfig_A4->reportConfig.choice.reportConfigEUTRA.maxReportCells = meas_data->event5_config.maxReportCells;
ReportConfig_A4->reportConfig.choice.reportConfigEUTRA.reportInterval = meas_data->event5_config.reportInterval;
ReportConfig_A4->reportConfig.choice.reportConfigEUTRA.reportAmount = LTE_ReportConfigEUTRA__reportAmount_infinity;
ASN_SEQUENCE_ADD(&ReportConfig_list->list, ReportConfig_A4);
ReportConfig_A5->reportConfigId = 6;
......@@ -3445,14 +3447,14 @@ void rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t
ReportConfig_A5->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.eventId.choice.
eventA5.a5_Threshold2.present = LTE_ThresholdEUTRA_PR_threshold_RSRP;
ReportConfig_A5->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.eventId.choice.
eventA5.a5_Threshold1.choice.threshold_RSRP = 10;
eventA5.a5_Threshold1.choice.threshold_RSRP = meas_data->event6_config.threshold_RSRP;
ReportConfig_A5->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.eventId.choice.
eventA5.a5_Threshold2.choice.threshold_RSRP = 10;
eventA5.a5_Threshold2.choice.threshold_RSRP = meas_data->event6_config.threshold_RSRP;
ReportConfig_A5->reportConfig.choice.reportConfigEUTRA.triggerQuantity =
LTE_ReportConfigEUTRA__triggerQuantity_rsrp;
ReportConfig_A5->reportConfig.choice.reportConfigEUTRA.reportQuantity = LTE_ReportConfigEUTRA__reportQuantity_both;
ReportConfig_A5->reportConfig.choice.reportConfigEUTRA.maxReportCells = 2;
ReportConfig_A5->reportConfig.choice.reportConfigEUTRA.reportInterval = LTE_ReportInterval_ms120;
ReportConfig_A5->reportConfig.choice.reportConfigEUTRA.maxReportCells = meas_data->event6_config.maxReportCells;
ReportConfig_A5->reportConfig.choice.reportConfigEUTRA.reportInterval = meas_data->event6_config.reportInterval;
ReportConfig_A5->reportConfig.choice.reportConfigEUTRA.reportAmount = LTE_ReportConfigEUTRA__reportAmount_infinity;
ASN_SEQUENCE_ADD(&ReportConfig_list->list, ReportConfig_A5);
// LTE_RRCConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->reportConfigToAddModList = ReportConfig_list;
......@@ -5196,6 +5198,7 @@ rrc_eNB_generate_HO_RRCConnectionReconfiguration(const protocol_ctxt_t *const ct
uint8_t rv[2];
// configure SRB1/SRB2, PhysicalConfigDedicated, MAC_MainConfig for UE
eNB_RRC_INST *rrc_inst = RC.rrc[ctxt_pP->module_id];
rrc_eNB_measurement_data_t *meas_data = &RC.rrc[ctxt_pP->module_id]->measurement;
struct LTE_PhysicalConfigDedicated **physicalConfigDedicated = &ue_context_pP->ue_context.physicalConfigDedicated;
// phy config dedicated
LTE_PhysicalConfigDedicated_t *physicalConfigDedicated2;
......@@ -5847,7 +5850,7 @@ rrc_eNB_generate_HO_RRCConnectionReconfiguration(const protocol_ctxt_t *const ct
to_earfcn_DL(RC.rrc[ctxt_pP->module_id]->configuration.eutra_band[0],
RC.rrc[ctxt_pP->module_id]->configuration.downlink_frequency[0],
RC.rrc[ctxt_pP->module_id]->configuration.N_RB_DL[0]);
MeasObj->measObject.choice.measObjectEUTRA.allowedMeasBandwidth = LTE_AllowedMeasBandwidth_mbw25;
MeasObj->measObject.choice.measObjectEUTRA.allowedMeasBandwidth = meas_data->allowedMeasBandwidth;
MeasObj->measObject.choice.measObjectEUTRA.presenceAntennaPort1 = 1;
MeasObj->measObject.choice.measObjectEUTRA.neighCellConfig.buf = CALLOC(1, sizeof(uint8_t));
MeasObj->measObject.choice.measObjectEUTRA.neighCellConfig.buf[0] = 0;
......@@ -5902,8 +5905,8 @@ rrc_eNB_generate_HO_RRCConnectionReconfiguration(const protocol_ctxt_t *const ct
LTE_ReportConfigEUTRA__triggerType__periodical__purpose_reportStrongestCells;
ReportConfig_per->reportConfig.choice.reportConfigEUTRA.triggerQuantity = LTE_ReportConfigEUTRA__triggerQuantity_rsrp;
ReportConfig_per->reportConfig.choice.reportConfigEUTRA.reportQuantity = LTE_ReportConfigEUTRA__reportQuantity_both;
ReportConfig_per->reportConfig.choice.reportConfigEUTRA.maxReportCells = 2;
ReportConfig_per->reportConfig.choice.reportConfigEUTRA.reportInterval = LTE_ReportInterval_ms120;
ReportConfig_per->reportConfig.choice.reportConfigEUTRA.maxReportCells = meas_data->event1_config.maxReportCells;
ReportConfig_per->reportConfig.choice.reportConfigEUTRA.reportInterval = meas_data->event1_config.reportInterval;
ReportConfig_per->reportConfig.choice.reportConfigEUTRA.reportAmount = LTE_ReportConfigEUTRA__reportAmount_infinity;
ASN_SEQUENCE_ADD(&ReportConfig_list->list, ReportConfig_per);
ReportConfig_A1->reportConfigId = 2;
......@@ -5915,11 +5918,11 @@ rrc_eNB_generate_HO_RRCConnectionReconfiguration(const protocol_ctxt_t *const ct
ReportConfig_A1->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.eventId.choice.eventA1.
a1_Threshold.present = LTE_ThresholdEUTRA_PR_threshold_RSRP;
ReportConfig_A1->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.eventId.choice.eventA1.
a1_Threshold.choice.threshold_RSRP = 10;
a1_Threshold.choice.threshold_RSRP = meas_data->event2_config.threshold_RSRP;
ReportConfig_A1->reportConfig.choice.reportConfigEUTRA.triggerQuantity = LTE_ReportConfigEUTRA__triggerQuantity_rsrp;
ReportConfig_A1->reportConfig.choice.reportConfigEUTRA.reportQuantity = LTE_ReportConfigEUTRA__reportQuantity_both;
ReportConfig_A1->reportConfig.choice.reportConfigEUTRA.maxReportCells = 2;
ReportConfig_A1->reportConfig.choice.reportConfigEUTRA.reportInterval = LTE_ReportInterval_ms120;
ReportConfig_A1->reportConfig.choice.reportConfigEUTRA.maxReportCells = meas_data->event2_config.maxReportCells;
ReportConfig_A1->reportConfig.choice.reportConfigEUTRA.reportInterval = meas_data->event2_config.reportInterval;
ReportConfig_A1->reportConfig.choice.reportConfigEUTRA.reportAmount = LTE_ReportConfigEUTRA__reportAmount_infinity;
ASN_SEQUENCE_ADD(&ReportConfig_list->list, ReportConfig_A1);
// if (ho_state == 1 /*HO_MEASUREMENT */ ) {
......@@ -5934,12 +5937,12 @@ rrc_eNB_generate_HO_RRCConnectionReconfiguration(const protocol_ctxt_t *const ct
ReportConfig_A2->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.eventId.choice.
eventA2.a2_Threshold.present = LTE_ThresholdEUTRA_PR_threshold_RSRP;
ReportConfig_A2->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.eventId.choice.
eventA2.a2_Threshold.choice.threshold_RSRP = 10;
eventA2.a2_Threshold.choice.threshold_RSRP = meas_data->event3_config.threshold_RSRP;
ReportConfig_A2->reportConfig.choice.reportConfigEUTRA.triggerQuantity =
LTE_ReportConfigEUTRA__triggerQuantity_rsrp;
ReportConfig_A2->reportConfig.choice.reportConfigEUTRA.reportQuantity = LTE_ReportConfigEUTRA__reportQuantity_both;
ReportConfig_A2->reportConfig.choice.reportConfigEUTRA.maxReportCells = 2;
ReportConfig_A2->reportConfig.choice.reportConfigEUTRA.reportInterval = LTE_ReportInterval_ms120;
ReportConfig_A2->reportConfig.choice.reportConfigEUTRA.maxReportCells = meas_data->event3_config.maxReportCells;
ReportConfig_A2->reportConfig.choice.reportConfigEUTRA.reportInterval = meas_data->event3_config.reportInterval;
ReportConfig_A2->reportConfig.choice.reportConfigEUTRA.reportAmount = LTE_ReportConfigEUTRA__reportAmount_infinity;
ASN_SEQUENCE_ADD(&ReportConfig_list->list, ReportConfig_A2);
ReportConfig_A3->reportConfigId = 4;
......@@ -5948,18 +5951,18 @@ rrc_eNB_generate_HO_RRCConnectionReconfiguration(const protocol_ctxt_t *const ct
LTE_ReportConfigEUTRA__triggerType_PR_event;
ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.eventId.present =
LTE_ReportConfigEUTRA__triggerType__event__eventId_PR_eventA3;
ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.eventId.choice.eventA3.a3_Offset = 0; //10;
ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.eventId.choice.eventA3.a3_Offset = meas_data->event4_config.a3_Offset; //10;
ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.eventId.choice.
eventA3.reportOnLeave = 1;
ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.triggerQuantity =
LTE_ReportConfigEUTRA__triggerQuantity_rsrp;
ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.reportQuantity = LTE_ReportConfigEUTRA__reportQuantity_both;
ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.maxReportCells = 2;
ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.reportInterval = LTE_ReportInterval_ms120;
ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.maxReportCells = meas_data->event4_config.maxReportCells;
ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.reportInterval = meas_data->event4_config.reportInterval;
ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.reportAmount = LTE_ReportConfigEUTRA__reportAmount_infinity;
ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.hysteresis = 0; // FIXME ...hysteresis is of type long!
ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.hysteresis = meas_data->event4_config.hysteresis; // FIXME ...hysteresis is of type long!
ReportConfig_A3->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.timeToTrigger =
LTE_TimeToTrigger_ms40;
meas_data->event4_config.timeToTrigger;
ASN_SEQUENCE_ADD(&ReportConfig_list->list, ReportConfig_A3);
ReportConfig_A4->reportConfigId = 5;
ReportConfig_A4->reportConfig.present = LTE_ReportConfigToAddMod__reportConfig_PR_reportConfigEUTRA;
......@@ -5970,12 +5973,12 @@ rrc_eNB_generate_HO_RRCConnectionReconfiguration(const protocol_ctxt_t *const ct
ReportConfig_A4->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.eventId.choice.
eventA4.a4_Threshold.present = LTE_ThresholdEUTRA_PR_threshold_RSRP;
ReportConfig_A4->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.eventId.choice.
eventA4.a4_Threshold.choice.threshold_RSRP = 10;
eventA4.a4_Threshold.choice.threshold_RSRP = meas_data->event5_config.threshold_RSRP;
ReportConfig_A4->reportConfig.choice.reportConfigEUTRA.triggerQuantity =
LTE_ReportConfigEUTRA__triggerQuantity_rsrp;
ReportConfig_A4->reportConfig.choice.reportConfigEUTRA.reportQuantity = LTE_ReportConfigEUTRA__reportQuantity_both;
ReportConfig_A4->reportConfig.choice.reportConfigEUTRA.maxReportCells = 2;
ReportConfig_A4->reportConfig.choice.reportConfigEUTRA.reportInterval = LTE_ReportInterval_ms120;
ReportConfig_A4->reportConfig.choice.reportConfigEUTRA.maxReportCells = meas_data->event5_config.maxReportCells;
ReportConfig_A4->reportConfig.choice.reportConfigEUTRA.reportInterval = meas_data->event5_config.reportInterval;
ReportConfig_A4->reportConfig.choice.reportConfigEUTRA.reportAmount = LTE_ReportConfigEUTRA__reportAmount_infinity;
ASN_SEQUENCE_ADD(&ReportConfig_list->list, ReportConfig_A4);
ReportConfig_A5->reportConfigId = 6;
......@@ -5989,14 +5992,14 @@ rrc_eNB_generate_HO_RRCConnectionReconfiguration(const protocol_ctxt_t *const ct
ReportConfig_A5->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.eventId.choice.
eventA5.a5_Threshold2.present = LTE_ThresholdEUTRA_PR_threshold_RSRP;
ReportConfig_A5->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.eventId.choice.
eventA5.a5_Threshold1.choice.threshold_RSRP = 10;
eventA5.a5_Threshold1.choice.threshold_RSRP = meas_data->event6_config.threshold_RSRP;
ReportConfig_A5->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.eventId.choice.
eventA5.a5_Threshold2.choice.threshold_RSRP = 10;
eventA5.a5_Threshold2.choice.threshold_RSRP = meas_data->event6_config.threshold_RSRP;
ReportConfig_A5->reportConfig.choice.reportConfigEUTRA.triggerQuantity =
LTE_ReportConfigEUTRA__triggerQuantity_rsrp;
ReportConfig_A5->reportConfig.choice.reportConfigEUTRA.reportQuantity = LTE_ReportConfigEUTRA__reportQuantity_both;
ReportConfig_A5->reportConfig.choice.reportConfigEUTRA.maxReportCells = 2;
ReportConfig_A5->reportConfig.choice.reportConfigEUTRA.reportInterval = LTE_ReportInterval_ms120;
ReportConfig_A5->reportConfig.choice.reportConfigEUTRA.maxReportCells = meas_data->event6_config.maxReportCells;
ReportConfig_A5->reportConfig.choice.reportConfigEUTRA.reportInterval = meas_data->event6_config.reportInterval;
ReportConfig_A5->reportConfig.choice.reportConfigEUTRA.reportAmount = LTE_ReportConfigEUTRA__reportAmount_infinity;
ASN_SEQUENCE_ADD(&ReportConfig_list->list, ReportConfig_A5);
// rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->reportConfigToAddModList = ReportConfig_list;
......
......@@ -174,6 +174,7 @@ void x2ap_eNB_handle_sctp_association_ind(instance_t instance, sctp_new_associat
DevAssert(x2ap_enb_data_p != NULL);
x2ap_enb_data_p->cnx_id = x2ap_eNB_fetch_add_global_cnx_id();
x2ap_enb_data_p->x2ap_eNB_instance = instance_p;
x2ap_enb_data_p->assoc_id = sctp_new_association_ind->assoc_id;
/* Insert the new descriptor in list of known eNB
* but not yet associated.
*/
......@@ -191,7 +192,7 @@ void x2ap_eNB_handle_sctp_association_ind(instance_t instance, sctp_new_associat
printf("x2ap_eNB_handle_sctp_association_ind at 2\n");
dump_trees();
/* Update parameters */
x2ap_enb_data_p->assoc_id = sctp_new_association_ind->assoc_id;
//x2ap_enb_data_p->assoc_id = sctp_new_association_ind->assoc_id;
x2ap_enb_data_p->in_streams = sctp_new_association_ind->in_streams;
x2ap_enb_data_p->out_streams = sctp_new_association_ind->out_streams;
printf("x2ap_eNB_handle_sctp_association_ind at 3\n");
......
......@@ -805,7 +805,7 @@ static int sctp_create_new_listener(
return -1;
}
if (listen(sd, 5) < 0) {
if (listen(sd, 6) < 0) {
SCTP_ERROR("listen: %s:%d\n", strerror(errno), errno);
free(sctp_cnx);
sctp_cnx = NULL;
......
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