Commit 01868ade authored by Raymond Knopp's avatar Raymond Knopp

repairs after merge from upstream

parent 08f7b212
......@@ -1197,12 +1197,12 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
asn1_xer_print = 0;
}
}
#endif
// Get list of active eNBs, (only these will be configured)
setting = config_lookup(&cfg, ENB_CONFIG_STRING_ACTIVE_ENBS);
if (setting != NULL) {
num_enbs = config_setting_length(setting);
setting_enb = config_setting_get_elem(setting, i);
......@@ -1278,7 +1278,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
rrc->eth_params_s.remote_portd = remote_s_portd;
rrc->eth_params_s.transp_preference = ETH_UDP_MODE;
}
else { // other midhaul
}
......@@ -2235,7 +2235,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
RC.config_file_name, i, pcch_defaultPagingCycle);
switch (bcch_modificationPeriodCoeff) {
case 2:
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n2;
......@@ -2528,6 +2528,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
RC.config_file_name, i, ue_TransmissionMode);
break;
}
#ifdef Rel14
setting_br13 = config_setting_get_member(component_carrier, ENB_CONFIG_STRING_BR);
if (setting_br13 == NULL) {
......@@ -2541,7 +2542,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
scheduling_info_br_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_SCHEDULING_INFO_LIST);
int num_scheduling_info = config_setting_length(scheduling_info_br_list);
RRC_CONFIGURATION_REQ (msg_p).scheduling_info_br_size[j] = num_scheduling_info;
for (sched_info_idx = 0; sched_info_idx < num_scheduling_info; ++sched_info_idx)
{
scheduling_info_br = config_setting_get_elem(scheduling_info_br_list, sched_info_idx);
......@@ -2612,7 +2613,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
}
RRC_CONFIGURATION_REQ (msg_p).rsrp_range[j][rsrp_range_idx] = rsrp_range_br;
}
prach_parameters_ce_r13_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_PRACH_PARAMETERS_CE_R13);
int num_prach_parameters_ce_r13 = config_setting_length(prach_parameters_ce_r13_list);
RRC_CONFIGURATION_REQ (msg_p).prach_parameters_list_size[j] = num_prach_parameters_ce_r13;
......@@ -2696,9 +2697,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
&& config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_DELTA_SHIFT, &pucch_delta_shift)
&& config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_NRB_CQI, &pucch_nRB_CQI)
&& config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_NCS_AN, &pucch_nCS_AN)
#if !defined(Rel10) && !defined(Rel14)
&& config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_N1_AN, &pucch_n1_AN)
#endif
&& config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PDSCH_RS_EPRE, &pdsch_referenceSignalPower)
&& config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PDSCH_PB, &pdsch_p_b)
&& config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUSCH_N_SB, &pusch_n_SB)
......@@ -2811,15 +2809,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
"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);
#if !defined(Rel10) && !defined(Rel14)
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_n1_AN = pucch_n1_AN;
if ((pucch_n1_AN <0) || (pucch_n1_AN > 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);
#endif
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pdsch_referenceSignalPower = pdsch_referenceSignalPower;
if ((pdsch_referenceSignalPower <-60) || (pdsch_referenceSignalPower > 50))
......@@ -3019,32 +3008,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
"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);
#ifndef Rel14
if (strcmp(pusch_alpha, "AL0") == 0) {
RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = UplinkPowerControlCommon__alpha_al0;
}
else if (strcmp(pusch_alpha, "AL04") == 0) {
RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = UplinkPowerControlCommon__alpha_al04;
}
else if (strcmp(pusch_alpha, "AL05") == 0) {
RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = UplinkPowerControlCommon__alpha_al05;
}
else if (strcmp(pusch_alpha, "AL06") == 0) {
RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = UplinkPowerControlCommon__alpha_al06;
}
else if (strcmp(pusch_alpha, "AL07") == 0) {
RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = UplinkPowerControlCommon__alpha_al07;
}
else if (strcmp(pusch_alpha, "AL08") == 0) {
RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = UplinkPowerControlCommon__alpha_al08;
}
else if (strcmp(pusch_alpha, "AL09") == 0) {
RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = UplinkPowerControlCommon__alpha_al09;
}
else if (strcmp(pusch_alpha, "AL1") == 0) {
RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = UplinkPowerControlCommon__alpha_al1;
}
#else
if (strcmp(pusch_alpha, "AL0") == 0) {
RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al0;
}
......@@ -3069,7 +3032,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
else if (strcmp(pusch_alpha, "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",
......@@ -3280,52 +3242,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
switch (rach_preambleTransMax) {
#ifndef Rel14
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;
......@@ -3370,7 +3286,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
case 200:
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n200;
break;
#endif
default:
AssertFatal (0,
......@@ -3749,7 +3665,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
RC.config_file_name, i, ue_TransmissionMode);
break;
}
int hyperSFN_r13;
int eDRX_Allowed_r13;
int q_RxLevMinCE_r13;
......@@ -3862,11 +3778,12 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
}
else
RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = NULL;
}
else
RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[j] = FALSE;
if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_FREQHOPPINGPARAMETERSDL, &freqHoppingParametersDL_r13) && !strcmp(freqHoppingParametersDL_r13, "ENABLE"))
{
RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[j] = TRUE;
......@@ -3915,7 +3832,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
}
else
RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[j] = FALSE;
/////SIB2 Parameters
if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PREAMBLETRANSMAX_CE_R13, &preambleTransMax_CE_r13))
......@@ -3925,7 +3842,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
}
else
RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = NULL;
if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PRACH_CONFIGCOMMON_V1310, &prach_ConfigCommon_v1310) && !strcmp(prach_ConfigCommon_v1310, "ENABLE"))
{
RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_ConfigCommon_v1310 = TRUE;
......@@ -3962,337 +3879,341 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
}
else
RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_ConfigCommon_v1310 = TRUE;
RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_ConfigCommon_v1310 = FALSE;
}
else
RRC_CONFIGURATION_REQ(msg_p).schedulingInfoSIB1_BR_r13[j] = 0;
}
#endif
}
setting_srb1 = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_SRB1);
if (setting_srb1 != NULL) {
if (!(config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_TIMER_POLL_RETRANSMIT, &srb1_timer_poll_retransmit)
&& config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_TIMER_REORDERING, &srb1_timer_reordering)
&& config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_TIMER_STATUS_PROHIBIT, &srb1_timer_status_prohibit)
&& config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_MAX_RETX_THRESHOLD, &srb1_max_retx_threshold)
&& config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_POLL_PDU, &srb1_poll_pdu)
&& config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_POLL_BYTE, &srb1_poll_byte)))
AssertFatal (0,
"Failed to parse eNB configuration file %s, enb %d timer_poll_retransmit, timer_reordering, "
"timer_status_prohibit, poll_pdu, poll_byte, max_retx_threshold !\n",
RC.config_file_name, i);
switch (srb1_max_retx_threshold) {
case 1:
rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t1;
break;
case 2:
rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t2;
break;
case 3:
rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t3;
break;
case 4:
rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t4;
break;
case 6:
rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t6;
break;
case 8:
rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t8;
break;
case 16:
rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t16;
break;
case 32:
rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t32;
break;
default:
AssertFatal (0,
"Bad config value when parsing eNB configuration file %s, enb %d srb1_max_retx_threshold %u!\n",
RC.config_file_name, i, srb1_max_retx_threshold);
}
switch (srb1_poll_pdu) {
case 4:
rrc->srb1_poll_pdu = PollPDU_p4;
break;
case 8:
rrc->srb1_poll_pdu = PollPDU_p8;
break;
case 16:
rrc->srb1_poll_pdu = PollPDU_p16;
break;
case 32:
rrc->srb1_poll_pdu = PollPDU_p32;
break;
case 64:
rrc->srb1_poll_pdu = PollPDU_p64;
break;
case 128:
rrc->srb1_poll_pdu = PollPDU_p128;
break;
case 256:
rrc->srb1_poll_pdu = PollPDU_p256;
break;
default:
if (srb1_poll_pdu >= 10000)
rrc->srb1_poll_pdu = PollPDU_pInfinity;
else
AssertFatal (0,
"Bad config value when parsing eNB configuration file %s, enb %d srb1_poll_pdu %u!\n",
RC.config_file_name, i, srb1_poll_pdu);
}
rrc->srb1_poll_byte = srb1_poll_byte;
switch (srb1_poll_byte) {
case 25:
rrc->srb1_poll_byte = PollByte_kB25;
break;
case 50:
rrc->srb1_poll_byte = PollByte_kB50;
break;
case 75:
rrc->srb1_poll_byte = PollByte_kB75;
break;
case 100:
rrc->srb1_poll_byte = PollByte_kB100;
break;
case 125:
rrc->srb1_poll_byte = PollByte_kB125;
break;
case 250:
rrc->srb1_poll_byte = PollByte_kB250;
break;
case 375:
rrc->srb1_poll_byte = PollByte_kB375;
break;
case 500:
rrc->srb1_poll_byte = PollByte_kB500;
break;
case 750:
rrc->srb1_poll_byte = PollByte_kB750;
break;
case 1000:
rrc->srb1_poll_byte = PollByte_kB1000;
break;
case 1250:
rrc->srb1_poll_byte = PollByte_kB1250;
break;
case 1500:
rrc->srb1_poll_byte = PollByte_kB1500;
break;
case 2000:
rrc->srb1_poll_byte = PollByte_kB2000;
break;
case 3000:
rrc->srb1_poll_byte = PollByte_kB3000;
break;
default:
if (srb1_poll_byte >= 10000)
rrc->srb1_poll_byte = PollByte_kBinfinity;
else
AssertFatal (0,
"Bad config value when parsing eNB configuration file %s, enb %d srb1_poll_byte %u!\n",
RC.config_file_name, i, srb1_poll_byte);
}
if (srb1_timer_poll_retransmit <= 250) {
rrc->srb1_timer_poll_retransmit = (srb1_timer_poll_retransmit - 5) / 5;
}
else if (srb1_timer_poll_retransmit <= 500) {
rrc->srb1_timer_poll_retransmit = (srb1_timer_poll_retransmit - 300) / 50 + 50;
}
else {
AssertFatal(0,
"Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_poll_retransmit %u!\n",
RC.config_file_name, i, srb1_timer_poll_retransmit);
}
if (srb1_timer_status_prohibit <= 250) {
rrc->srb1_timer_status_prohibit = srb1_timer_status_prohibit / 5;
}
else if ((srb1_timer_poll_retransmit >= 300) && (srb1_timer_poll_retransmit <= 500)) {
rrc->srb1_timer_status_prohibit = (srb1_timer_status_prohibit - 300) / 50 + 51;
}
else {
AssertFatal(0,
"Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_status_prohibit %u!\n",
RC.config_file_name, i, srb1_timer_status_prohibit);
}
switch (srb1_timer_reordering) {
case 0:
rrc->srb1_timer_reordering = T_Reordering_ms0;
break;
case 5:
rrc->srb1_timer_reordering = T_Reordering_ms5;
break;
case 10:
rrc->srb1_timer_reordering = T_Reordering_ms10;
break;
case 15:
rrc->srb1_timer_reordering = T_Reordering_ms15;
break;
case 20:
rrc->srb1_timer_reordering = T_Reordering_ms20;
break;
case 25:
rrc->srb1_timer_reordering = T_Reordering_ms25;
break;
case 30:
rrc->srb1_timer_reordering = T_Reordering_ms30;
break;
case 35:
rrc->srb1_timer_reordering = T_Reordering_ms35;
break;
case 40:
rrc->srb1_timer_reordering = T_Reordering_ms40;
break;
case 45:
rrc->srb1_timer_reordering = T_Reordering_ms45;
break;
setting_srb1 = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_SRB1);
case 50:
rrc->srb1_timer_reordering = T_Reordering_ms50;
break;
case 55:
rrc->srb1_timer_reordering = T_Reordering_ms55;
break;
case 60:
rrc->srb1_timer_reordering = T_Reordering_ms60;
break;
case 65:
rrc->srb1_timer_reordering = T_Reordering_ms65;
break;
case 70:
rrc->srb1_timer_reordering = T_Reordering_ms70;
break;
case 75:
rrc->srb1_timer_reordering = T_Reordering_ms75;
break;
case 80:
rrc->srb1_timer_reordering = T_Reordering_ms80;
break;
case 85:
rrc->srb1_timer_reordering = T_Reordering_ms85;
break;
case 90:
rrc->srb1_timer_reordering = T_Reordering_ms90;
break;
case 95:
rrc->srb1_timer_reordering = T_Reordering_ms95;
break;
case 100:
rrc->srb1_timer_reordering = T_Reordering_ms100;
break;
case 110:
rrc->srb1_timer_reordering = T_Reordering_ms110;
break;
case 120:
rrc->srb1_timer_reordering = T_Reordering_ms120;
break;
case 130:
rrc->srb1_timer_reordering = T_Reordering_ms130;
break;
case 140:
rrc->srb1_timer_reordering = T_Reordering_ms140;
break;
case 150:
rrc->srb1_timer_reordering = T_Reordering_ms150;
break;
case 160:
rrc->srb1_timer_reordering = T_Reordering_ms160;
break;
case 170:
rrc->srb1_timer_reordering = T_Reordering_ms170;
break;
case 180:
rrc->srb1_timer_reordering = T_Reordering_ms180;
break;
case 190:
rrc->srb1_timer_reordering = T_Reordering_ms190;
break;
case 200:
rrc->srb1_timer_reordering = T_Reordering_ms200;
break;
if (setting_srb1 != NULL) {
if (!(config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_TIMER_POLL_RETRANSMIT, &srb1_timer_poll_retransmit)
&& config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_TIMER_REORDERING, &srb1_timer_reordering)
&& config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_TIMER_STATUS_PROHIBIT, &srb1_timer_status_prohibit)
&& config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_MAX_RETX_THRESHOLD, &srb1_max_retx_threshold)
&& config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_POLL_PDU, &srb1_poll_pdu)
&& config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_POLL_BYTE, &srb1_poll_byte)))
AssertFatal (0,
"Failed to parse eNB configuration file %s, enb %d timer_poll_retransmit, timer_reordering, "
"timer_status_prohibit, poll_pdu, poll_byte, max_retx_threshold !\n",
RC.config_file_name, i);
switch (srb1_max_retx_threshold) {
case 1:
rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t1;
break;
case 2:
rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t2;
break;
case 3:
rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t3;
break;
case 4:
rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t4;
break;
case 6:
rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t6;
break;
case 8:
rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t8;
break;
case 16:
rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t16;
break;
case 32:
rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t32;
break;
default:
AssertFatal (0,
"Bad config value when parsing eNB configuration file %s, enb %d srb1_max_retx_threshold %u!\n",
RC.config_file_name, i, srb1_max_retx_threshold);
}
switch (srb1_poll_pdu) {
case 4:
rrc->srb1_poll_pdu = PollPDU_p4;
break;
case 8:
rrc->srb1_poll_pdu = PollPDU_p8;
break;
case 16:
rrc->srb1_poll_pdu = PollPDU_p16;
break;
case 32:
rrc->srb1_poll_pdu = PollPDU_p32;
break;
case 64:
rrc->srb1_poll_pdu = PollPDU_p64;
break;
case 128:
rrc->srb1_poll_pdu = PollPDU_p128;
break;
case 256:
rrc->srb1_poll_pdu = PollPDU_p256;
break;
default:
if (srb1_poll_pdu >= 10000)
rrc->srb1_poll_pdu = PollPDU_pInfinity;
else
AssertFatal (0,
"Bad config value when parsing eNB configuration file %s, enb %d srb1_poll_pdu %u!\n",
RC.config_file_name, i, srb1_poll_pdu);
}
rrc->srb1_poll_byte = srb1_poll_byte;
switch (srb1_poll_byte) {
case 25:
rrc->srb1_poll_byte = PollByte_kB25;
break;
case 50:
rrc->srb1_poll_byte = PollByte_kB50;
break;
case 75:
rrc->srb1_poll_byte = PollByte_kB75;
break;
case 100:
rrc->srb1_poll_byte = PollByte_kB100;
break;
case 125:
rrc->srb1_poll_byte = PollByte_kB125;
break;
case 250:
rrc->srb1_poll_byte = PollByte_kB250;
break;
case 375:
rrc->srb1_poll_byte = PollByte_kB375;
break;
case 500:
rrc->srb1_poll_byte = PollByte_kB500;
break;
case 750:
rrc->srb1_poll_byte = PollByte_kB750;
break;
case 1000:
rrc->srb1_poll_byte = PollByte_kB1000;
break;
case 1250:
rrc->srb1_poll_byte = PollByte_kB1250;
break;
case 1500:
rrc->srb1_poll_byte = PollByte_kB1500;
break;
case 2000:
rrc->srb1_poll_byte = PollByte_kB2000;
break;
case 3000:
rrc->srb1_poll_byte = PollByte_kB3000;
break;
default:
if (srb1_poll_byte >= 10000)
rrc->srb1_poll_byte = PollByte_kBinfinity;
else
AssertFatal (0,
"Bad config value when parsing eNB configuration file %s, enb %d srb1_poll_byte %u!\n",
RC.config_file_name, i, srb1_poll_byte);
}
if (srb1_timer_poll_retransmit <= 250) {
rrc->srb1_timer_poll_retransmit = (srb1_timer_poll_retransmit - 5) / 5;
}
else if (srb1_timer_poll_retransmit <= 500) {
rrc->srb1_timer_poll_retransmit = (srb1_timer_poll_retransmit - 300) / 50 + 50;
}
else {
AssertFatal(0,
"Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_poll_retransmit %u!\n",
RC.config_file_name, i, srb1_timer_poll_retransmit);
}
if (srb1_timer_status_prohibit <= 250) {
rrc->srb1_timer_status_prohibit = srb1_timer_status_prohibit / 5;
}
else if ((srb1_timer_poll_retransmit >= 300) && (srb1_timer_poll_retransmit <= 500)) {
rrc->srb1_timer_status_prohibit = (srb1_timer_status_prohibit - 300) / 50 + 51;
}
else {
AssertFatal(0,
"Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_status_prohibit %u!\n",
RC.config_file_name, i, srb1_timer_status_prohibit);
}
switch (srb1_timer_reordering) {
case 0:
rrc->srb1_timer_reordering = T_Reordering_ms0;
break;
case 5:
rrc->srb1_timer_reordering = T_Reordering_ms5;
break;
case 10:
rrc->srb1_timer_reordering = T_Reordering_ms10;
break;
case 15:
rrc->srb1_timer_reordering = T_Reordering_ms15;
break;
case 20:
rrc->srb1_timer_reordering = T_Reordering_ms20;
break;
case 25:
rrc->srb1_timer_reordering = T_Reordering_ms25;
break;
case 30:
rrc->srb1_timer_reordering = T_Reordering_ms30;
break;
case 35:
rrc->srb1_timer_reordering = T_Reordering_ms35;
break;
case 40:
rrc->srb1_timer_reordering = T_Reordering_ms40;
break;
case 45:
rrc->srb1_timer_reordering = T_Reordering_ms45;
break;
case 50:
rrc->srb1_timer_reordering = T_Reordering_ms50;
break;
case 55:
rrc->srb1_timer_reordering = T_Reordering_ms55;
break;
case 60:
rrc->srb1_timer_reordering = T_Reordering_ms60;
break;
case 65:
rrc->srb1_timer_reordering = T_Reordering_ms65;
break;
case 70:
rrc->srb1_timer_reordering = T_Reordering_ms70;
break;
case 75:
rrc->srb1_timer_reordering = T_Reordering_ms75;
break;
case 80:
rrc->srb1_timer_reordering = T_Reordering_ms80;
break;
case 85:
rrc->srb1_timer_reordering = T_Reordering_ms85;
break;
case 90:
rrc->srb1_timer_reordering = T_Reordering_ms90;
break;
case 95:
rrc->srb1_timer_reordering = T_Reordering_ms95;
break;
case 100:
rrc->srb1_timer_reordering = T_Reordering_ms100;
break;
case 110:
rrc->srb1_timer_reordering = T_Reordering_ms110;
break;
case 120:
rrc->srb1_timer_reordering = T_Reordering_ms120;
break;
case 130:
rrc->srb1_timer_reordering = T_Reordering_ms130;
break;
case 140:
rrc->srb1_timer_reordering = T_Reordering_ms140;
break;
case 150:
rrc->srb1_timer_reordering = T_Reordering_ms150;
break;
case 160:
rrc->srb1_timer_reordering = T_Reordering_ms160;
break;
case 170:
rrc->srb1_timer_reordering = T_Reordering_ms170;
break;
case 180:
rrc->srb1_timer_reordering = T_Reordering_ms180;
break;
case 190:
rrc->srb1_timer_reordering = T_Reordering_ms190;
break;
case 200:
rrc->srb1_timer_reordering = T_Reordering_ms200;
break;
default:
AssertFatal (0,
"Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_reordering %u!\n",
RC.config_file_name, i, srb1_timer_reordering);
}
break;
}
default:
AssertFatal (0,
"Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_reordering %u!\n",
RC.config_file_name, i, srb1_timer_reordering);
}
break;
}
}
}
}
}
}
int RCconfig_gtpu() {
config_t cfg;
config_setting_t *setting = 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